From 26eae8cce78315d91ddc5327c755c401673ee2fb Mon Sep 17 00:00:00 2001 From: alexayan <773655223@qq.com> Date: Thu, 6 Dec 2018 19:33:03 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .babelrc | 7 +- LICENSE | 29 + README.md | 142 + browser/sentry-mina.js | 16 + package-lock.json | 2621 ++++++++---- package.json | 11 +- sentry-mina.js | 6346 ---------------------------- src/backend.js | 8 +- src/client.js | 12 +- src/env.js | 101 +- src/index.js | 15 + src/integrations/breadcrumbs.js | 281 ++ src/integrations/globalhandlers.js | 80 + src/integrations/helpers.js | 128 + src/integrations/index.js | 4 + src/integrations/logmanager.js | 35 + src/integrations/trycatch.js | 43 + src/parsers.js | 9 + src/sdk.js | 36 +- src/tools.js | 21 +- src/tracekit.js | 11 +- src/transports/base.js | 63 +- src/transports/index.js | 2 - src/transports/request.js | 14 +- src/transports/worker.js | 32 - src/version.js | 2 +- static/breadcrumbs.png | Bin 0 -> 268914 bytes static/meta.png | Bin 0 -> 48748 bytes static/stack.png | Bin 0 -> 341808 bytes test.js | 2 - webpack.config.js | 9 +- 31 files changed, 2801 insertions(+), 7279 deletions(-) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 browser/sentry-mina.js delete mode 100644 sentry-mina.js create mode 100644 src/integrations/breadcrumbs.js create mode 100644 src/integrations/globalhandlers.js create mode 100644 src/integrations/helpers.js create mode 100644 src/integrations/logmanager.js create mode 100644 src/integrations/trycatch.js delete mode 100644 src/transports/worker.js create mode 100644 static/breadcrumbs.png create mode 100644 static/meta.png create mode 100644 static/stack.png delete mode 100644 test.js diff --git a/.babelrc b/.babelrc index 394c543..67fc288 100644 --- a/.babelrc +++ b/.babelrc @@ -1,12 +1,7 @@ { "presets": [ [ - "@babel/preset-env", - { - "targets": { - "node": "current" - } - } + "@babel/preset-env" ] ] } diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..5fb0415 --- /dev/null +++ b/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2018, alexayan +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..ea178b5 --- /dev/null +++ b/README.md @@ -0,0 +1,142 @@ +# 小程序 Sentry SDK (Beta) + +## 特性 + +除了 Sentry 基础的特性,还提供以下小程序相关特性 + +- 记录客户端基本信息 +- 记录页面 request 请求 +- 记录应用生命周期(onAppLaunch, onAppShow, onAppHide) +- 记录页面导航 +- 记录小程序 api 调用 +- 记录 console 日志 +- 记录应用异常 +- 记录 setTimeout, setInterval 内异常 +- 支持小程序 LogManager + + +## 相关链接 + +- [Sentry 快速入门](https://docs.sentry.io/quickstart/) +- [Sentry 官方 API 文档](http://getsentry.github.io/sentry-javascript/) + +## 使用 + +### 安装 + +- `npm install sentry-mina --save` +- `yarn add sentry-mina` +- 将 `browser/sentry-mina.js` 拷贝到项目中 + +### 使用 + +``` +import * as sentry from "sentry-mina/browser/sentry-mina.js"; +// import * as sentry from "sentry-mina"; + +// config Sentry +sentry.init({ + dsn: '' +}) + +// Set user information, as well as tags and further extras +Sentry.configureScope(scope => { + scope.setUser({ id: '4711' }); + scope.setTag('user_mode', 'admin'); + scope.setExtra('battery', 0.7); + // scope.clear(); +}); + +// Add a breadcrumb for future events +Sentry.addBreadcrumb({ + message: 'My Breadcrumb', + // ... +}); + +// Capture exceptions, messages or manual events +Sentry.captureMessage('Hello, world!'); +Sentry.captureException(new Error('Good bye')); +Sentry.captureEvent({ + message: 'Manual', + stacktrace: [ + // ... + ], +}); + +``` + +### INTEGRATIONS + +#### Breadcrumbs + +``` +new sentry.Integrations.Breadcrumbs({ + console: true, + request: true, + navigation: true, + api: true, + lifecycle: true +}) +``` + +配置 | 类型 | 默认值 |描述 +------------- | ------------- | ------------- | ------------- +console | Boolean, Array | true |是否记录 console 日志,如果值为数组 ['log', 'info'],则只记录数组中所列的日志 +request | Boolean | true | 是否记录页面 request 请求 +navigation | Boolean | true | 是否记录页面导航信息 +api | Boolean | true | 是否记录小程序 API 调用 +lifecycle | Boolean | true | 是否记录小程序生命周期变化 + +#### TryCatch + +捕获并记录 setTimeout, setInterval 内的异常 + +``` +new sentry.Integrations.TryCatch() +``` + +#### LogManager + +将 Sentry 事件数据记录到小程序 LogManager + +``` +new sentry.Integrations.LogManager({ + level: 0 +}) +``` +配置 | 类型 | 默认值 |描述 +------------- | ------------- | ------------- | ------------- +level | Number | 0 | 取值为0表示是否会把 App、Page 的生命周期函数和 wx 命名空间下的函数调用写入日志,取值为1则不会 + +#### GlobalHandlers + +记录 app.onError 和 app.onPageNotFound 日志 + +``` +new sentry.Integrations.GlobalHandlers() +``` + +### TRANSPORT + +目前小程序只支持通过 request 发送日志到服务器,由于小程序 request 有并发限制, `sentry-mina` 以队列的方式发送日志请求,避免过多占用请求资源。 + +`sentry-mina` 发送日志,支持失败重试,默认重试 2 次。可以通过以下方式 + +``` +sentry.init({ + transportOptions: { + retry: 2 + } +}) +``` + +进行配置。 + +`sentry-mina` 会记录未发送的日志,当用户重新进入小程序,会继续发送。 + +## PREVIEW + +![stack](static/stack.png) +![breadcrumbs](static/breadcrumbs.png) +![meta](static/meta.png) + diff --git a/browser/sentry-mina.js b/browser/sentry-mina.js new file mode 100644 index 0000000..e6ba0b4 --- /dev/null +++ b/browser/sentry-mina.js @@ -0,0 +1,16 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.sentry=t():e.sentry=t()}(window,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=23)}([function(e,t,n){"use strict";n.r(t),n.d(t,"__extends",function(){return o}),n.d(t,"__assign",function(){return i}),n.d(t,"__rest",function(){return a}),n.d(t,"__decorate",function(){return u}),n.d(t,"__param",function(){return c}),n.d(t,"__metadata",function(){return s}),n.d(t,"__awaiter",function(){return l}),n.d(t,"__generator",function(){return f}),n.d(t,"__exportStar",function(){return p}),n.d(t,"__values",function(){return d}),n.d(t,"__read",function(){return h}),n.d(t,"__spread",function(){return v}),n.d(t,"__await",function(){return g}),n.d(t,"__asyncGenerator",function(){return y}),n.d(t,"__asyncDelegator",function(){return b}),n.d(t,"__asyncValues",function(){return m}),n.d(t,"__makeTemplateObject",function(){return _}),n.d(t,"__importStar",function(){return w}),n.d(t,"__importDefault",function(){return S}); +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ +var r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function o(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var i=function(){return(i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=0;u--)(o=e[u])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function c(e,t){return function(n,r){t(n,r,e)}}function s(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function l(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function u(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){e.done?o(e.value):new n(function(t){t(e.value)}).then(a,u)}c((r=r.apply(e,t||[])).next())})}function f(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}function h(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}function v(){for(var e=[],t=0;t1||u(e,t)})})}function u(e,t){try{(n=o[e](t)).value instanceof g?Promise.resolve(n.value.v).then(c,s):l(i[0][2],n)}catch(e){l(i[0][3],e)}var n}function c(e){u("next",e)}function s(e){u("throw",e)}function l(e,t){e(t),i.shift(),i.length&&u(i[0][0],i[0][1])}}function b(e){var t,n;return t={},r("next"),r("throw",function(e){throw e}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,o){t[r]=e[r]?function(t){return(n=!n)?{value:g(e[r](t)),done:"return"===r}:o?o(t):t}:o}}function m(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=d(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,o){(function(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)})(r,o,(t=e[n](t)).done,t.value)})}}}function _(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function w(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function S(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5),o=r.getGlobalObject(),i=new(function(){function e(){this.enabled=!1}return e.prototype.disable=function(){this.enabled=!1},e.prototype.enable=function(){this.enabled=!0},e.prototype.log=function(){for(var e=[],t=0;t0?e:null},t.getCurrentPage=function(){if("function"==typeof getCurrentPages){var e=getCurrentPages();return e[e.length-1].route}return"unknow"},t.getPrevPage=function(e){if("function"==typeof getCurrentPages){var t=getCurrentPages();if(e||(e=1),t[t.length-1-e])return t[t.length-1-e].route}return"unknow"},t.getMinaApp=function(){return s.apply(this,arguments)},t.supportStorage=function(){return 2===["setStorage","getStorageSync"].filter(function(e){return!!i[e]}).length},t.supportLogManager=function(){return!!i.getLogManager},t.MINA_PAGE_LIFE_CYCLE=t.MINA_APP_LIFE_CYCLE=t.MINA_SYSTEMINFO_TAGS=void 0;var r=n(1);function o(e,t,n,r,o,i,a){try{var u=e[i](a),c=u.value}catch(e){return void n(e)}u.done?t(c):Promise.resolve(c).then(r,o)}var i="undefined"!=typeof wx?wx:{},a=null,u=null,c=["brand","model","language","version","system","platform","SDKVersion"];t.MINA_SYSTEMINFO_TAGS=c;t.MINA_APP_LIFE_CYCLE=["onAppShow","onAppHide"];function s(){var e;return e=regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!u){e.next=2;break}return e.abrupt("return",u);case 2:return e.abrupt("return",new Promise(function(e){!function t(){var n=getApp({allowDefault:!0});n?(u=n,e(n)):setTimeout(t,20)}()}));case 3:case"end":return e.stop()}},e,this)}),(s=function(){var t=this,n=arguments;return new Promise(function(r,i){var a=e.apply(t,n);function u(e){o(a,r,i,u,c,"next",e)}function c(e){o(a,r,i,u,c,"throw",e)}u(void 0)})}).apply(this,arguments)}t.MINA_PAGE_LIFE_CYCLE=["onLoad","onShow","onHide","onUnload","onReady"]},function(e,t,n){"use strict";(function(e,r){Object.defineProperty(t,"__esModule",{value:!0});var o=n(3);function i(){return"[object process]"===Object.prototype.toString.call(void 0!==e?e:0)}function a(){return i()?r:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}}function u(e){var t,n,r,i,a,u=[];if(!e||!e.tagName)return"";if(u.push(e.tagName.toLowerCase()),e.id&&u.push("#"+e.id),(t=e.className)&&o.isString(t))for(n=t.split(/\s+/),a=0;a ".length;n&&o++<5&&!("html"===(t=u(n))||o>1&&i+r.length*a+t.length>=80);)r.push(t),i+=t.length,n=n.parentNode;return r.reverse().join(" > ")},t.htmlElementAsString=u,t.parseUrl=function(e){if(!e)return{};var t=e.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)return{};var n=t[6]||"",r=t[8]||"";return{host:t[4],path:t[5],protocol:t[2],relative:t[5]+n+r}},t.getEventDescription=function(e){if(e.message)return e.message;if(e.exception&&e.exception.values&&e.exception.values[0]){var t=e.exception.values[0];return t.type&&t.value?t.type+": "+t.value:t.type||t.value||e.event_id||""}return e.event_id||""},t.consoleSandbox=function(e){var t=a();if(!("console"in t))return e();var n=t.console,r={};["debug","info","warn","error","log"].forEach(function(e){e in t.console&&n[e].__sentry__&&(r[e]=n[e].__sentry_wrapped__,n[e]=n[e].__sentry_original__)});var o=e();return Object.keys(r).forEach(function(e){n[e]=r[e]}),o}}).call(this,n(26),n(27))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(13);t.addGlobalEventProcessor=r.addGlobalEventProcessor,t.Scope=r.Scope;var o=n(28);t.getCurrentHub=o.getCurrentHub,t.getHubFromCarrier=o.getHubFromCarrier,t.getMainCarrier=o.getMainCarrier,t.Hub=o.Hub,t.setHubOnCarrier=o.setHubOnCarrier},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3);var o="[NaN]",i="[undefined]";function a(){var e=[],t=[];return function(n,a){var u=a;if(r.isNaN(a)?u=o:r.isUndefined(a)&&(u=i),e.length>0){var c=e.indexOf(this);-1!==c?(e.splice(c+1),t.splice(c,1/0,n)):(e.push(this),t.push(n)),-1!==e.indexOf(u)&&(u=function(n,r){return e[0]===r?"[Circular ~]":"[Circular ~."+t.slice(0,e.indexOf(r)).join(".")+"]"}.call(this,n,u))}else e.push(u);return u instanceof Error?function(e){var t={message:e.message,name:e.name,stack:e.stack};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}(u):u}}function u(e,t){return t===o?NaN:t!==i?t:void 0}function c(e){return JSON.stringify(e,a())}function s(e){return JSON.parse(e,u)}t.serialize=c,t.deserialize=s,t.clone=function(e){return s(c(e))},t.fill=function(e,t,n){if(t in e&&!e[t].__sentry__){var r=e[t],o=n(r);o.__sentry__=!0,o.__sentry_original__=r,o.__sentry_wrapped__=o,e[t]=o}},t.urlEncode=function(e){return Object.keys(e).map(function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])}).join("&")};var l=3,f=102400,p=40;function d(e){return function(e){return~-encodeURI(e).split(/%..|./).length}(JSON.stringify(e))}function h(e){if("string"==typeof e)return e.length<=40?e:e.substr(0,39)+"…";if("number"==typeof e||"boolean"==typeof e||void 0===e)return e;if(r.isNaN(e))return"[NaN]";if(r.isUndefined(e))return"[undefined]";var t=Object.prototype.toString.call(e);if("[object Object]"===t)return"[Object]";if("[object Array]"===t)return"[Array]";if("[object Function]"===t){var n=e.name;return n?"[Function: "+n+"]":"[Function]"}return e}function v(e,t){if(0===t)return h(e);if(r.isPlainObject(e)){var n={},o=e;return Object.keys(o).forEach(function(e){n[e]=v(o[e],t-1)}),n}return Array.isArray(e)?e.map(function(e){return v(e,t-1)}):h(e)}t.serializeObject=v,t.limitObjectDepthToSize=function e(t,n,r){void 0===n&&(n=l),void 0===r&&(r=f);var o=v(t,n);return d(c(o))>r?e(t,n-1):o},t.serializeKeysToEventMessage=function(e,t){if(void 0===t&&(t=p),!e.length)return"[object has no keys]";if(e[0].length>=t)return e[0];for(var n=e.length;n>0;n--){var r=e.slice(0,n).join(", ");if(!(r.length>t))return n===e.length?r:r+"…"}return""},t.assign=function(e){for(var t=[],n=1;n=200&&t<300?e.Success:429===t?e.RateLimit:t>=400&&t<500?e.Invalid:t>=500?e.Failed:e.Unknown}}(t.Status||(t.Status={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3);t.truncate=function(e,t){return void 0===t&&(t=0),0!==t&&r.isString(e)?e.length<=t?e:e.substr(0,t)+"…":e},t.snipLine=function(e,t){var n=e,r=n.length;if(r<=150)return n;t>r&&(t=r);var o=Math.max(t-60,0);o<5&&(o=0);var i=Math.min(o+140,r);return i>r-5&&(i=r),i===r&&(o=Math.max(i-140,0)),n=n.slice(o,i),o>0&&(n="'{snip} "+n),ie.length)&&-1!==e.indexOf(t)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),o=n(3),i=n(7),a=n(11),u=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+))?@)([\w\.-]+)(?::(\d+))?\/(.+)/,c=function(){function e(e){"string"==typeof e?this.fromString(e):this.fromComponents(e),this.validate()}return e.prototype.toString=function(e){void 0===e&&(e=!1);var t=this,n=t.host,r=t.path,o=t.pass,i=t.port,a=t.projectId;return t.protocol+"://"+t.user+(e&&o?":"+o:"")+"@"+n+(i?":"+i:"")+"/"+(r?r+"/":r)+a},e.prototype.fromString=function(e){var t=u.exec(e);if(!t)throw new a.SentryError("Invalid Dsn");var n=r.__read(t.slice(1),6),o=n[0],c=n[1],s=n[2],l=void 0===s?"":s,f=n[3],p=n[4],d=void 0===p?"":p,h="",v=n[5],g=v.split("/");g.length>1&&(h=g.slice(0,-1).join("/"),v=g.pop()),i.assign(this,{host:f,pass:l,path:h,projectId:v,port:d,protocol:o,user:c})},e.prototype.fromComponents=function(e){this.protocol=e.protocol,this.user=e.user,this.pass=e.pass||"",this.host=e.host,this.port=e.port||"",this.path=e.path||"",this.projectId=e.projectId},e.prototype.validate=function(){var e,t;try{for(var n=r.__values(["protocol","user","host","projectId"]),i=n.next();!i.done;i=n.next()){var u=i.value;if(!this[u])throw new a.SentryError("Invalid Dsn: Missing "+u)}}catch(t){e={error:t}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}if("http"!==this.protocol&&"https"!==this.protocol)throw new a.SentryError('Invalid Dsn: Unsupported protocol "'+this.protocol+'"');if(this.port&&o.isNaN(parseInt(this.port,10)))throw new a.SentryError('Invalid Dsn: Invalid port number "'+this.port+'"')},e}();t.Dsn=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),o=function(e){function t(t){var n=this.constructor,r=e.call(this,t)||this;return r.message=t,r.name=n.prototype.constructor.name,Object.setPrototypeOf(r,n.prototype),r}return r.__extends(t,e),t}(Error);t.SentryError=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.computeStackTrace=t.installGlobalUnhandledRejectionHandler=t.installGlobalHandler=t.subscribe=t.report=void 0;var r=n(3);function o(e){for(var t=1;t=0;--o)c[o]===r&&c.splice(o,1);0===c.length&&(t&&(a.onerror=e,t=!1),i&&(a.onerror=n,i=!1))},b.installGlobalHandler=function(){!0!==t&&(e=a.onerror,a.onerror=v,t=!0)},b.installGlobalUnhandledRejectionHandler=function(){!0!==i&&(n=a.onunhandledrejection,a.onunhandledrejection=g,i=!0)},b.traceKitWindowOnUnhandledRejection=g,b}(),u.computeStackTrace=function(){var e=!1,t={};function n(e){if("string"!=typeof e)return[];if(!f(t,e)){var n="",r="";try{r=a.document.domain}catch(e){}var o=/(.*)\:\/\/([^:\/]+)([:\d]*)\/{0,1}([\s\S]*)/.exec(e);o&&o[2]===r&&(n=function(e){if(!u.remoteFetching)return"";try{var t=function(){try{return new a.XMLHttpRequest}catch(e){return new a.ActiveXObject("Microsoft.XMLHTTP")}}();return t.open("GET",e,!1),t.send(""),t.responseText}catch(e){return""}}(e)),t[e]=n?n.split("\n"):[]}return t[e]}function o(e,t){var o,i=/function ([^(]*)\(([^)]*)\)/,a=/['"]?([0-9A-Za-z$_]+)['"]?\s*[:=]\s*(function|eval|new Function)/,u="",c=n(e);if(!c.length)return s;for(var l=0;l<10;++l)if(u=c[t-l]+u,!(0,r.isUndefined)(u)){if(o=a.exec(u))return o[1];if(o=i.exec(u))return o[1]}return s}function i(e,t){var o=n(e);if(!o.length)return null;var i=[],a=Math.floor(u.linesOfContext/2),c=a+u.linesOfContext%2,s=Math.max(0,t-a-1),l=Math.min(o.length,t+c-1);t-=1;for(var f=s;f0?i:null}function c(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#]/g,"\\$&")}function l(e){return c(e).replace("<","(?:<|<)").replace(">","(?:>|>)").replace("&","(?:&|&)").replace('"','(?:"|")').replace(/\s+/g,"\\s+")}function d(e,t){for(var r,o,i=0,a=t.length;ir&&(o=a.exec(i[r]))?o.index:null}function v(e){if(!(0,r.isUndefined)(a&&a.document)){for(var t,n,o,i,u=[p()],s=a.document.getElementsByTagName("script"),f=""+e,h=0;h|[a-z]:|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,l=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|moz-extension).*?:\/.*?|\[native code\]|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i,f=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i,p=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,d=/\((\S*)(?::(\d+))(?::(\d+))\)/,v=e.stack.split("\n"),g=[],y=/^(.*) is undefined$/.exec(e.message),b=0,m=v.length;b eval")>-1&&(t=p.exec(n[3]))?n[3]=t[1]:0!==b||n[5]||(0,r.isUndefined)(e.columnNumber)||(g[0].column=e.columnNumber+1),a={url:n[3],func:n[1]||s,args:n[2]?n[2].split(","):[],line:n[4]?+n[4]:null,column:n[5]?+n[5]:null}}if(!a.func&&a.line&&(a.func=o(a.url,a.line)),u.remoteFetching&&a.url&&"blob:"===a.url.substr(0,5)){var w=new XMLHttpRequest;if(w.open("GET",a.url,!1),w.send(""),200===w.status){var S=w.responseText||"",O=(S=S.slice(-300)).match(/\/\/# sourceMappingURL=(.*)$/);if(O){var E=O[1];"~"===E.charAt(0)&&(E=("undefined"==typeof document||null==document.location?"":document.location.origin?document.location.origin:document.location.protocol+"//"+document.location.hostname+(document.location.port?":"+document.location.port:""))+E.slice(1)),a.url=E.slice(0,-4)}}}a.context=a.line?i(a.url,a.line):null,g.push(a)}return g.length?(g[0]&&g[0].line&&!g[0].column&&y&&(g[0].column=h(y[1],g[0].url,g[0].line)),{mode:"stack",name:e.name,message:e.message,stack:g}):null}function y(e,t,n,r){var a={url:t,line:n};if(a.url&&a.line){e.incomplete=!1,a.func||(a.func=o(a.url,a.line)),a.context||(a.context=i(a.url,a.line));var u=/ '([^']+)' /.exec(r);if(u&&(a.column=h(u[1],a.url,a.line)),e.stack.length>0&&e.stack[0].url===a.url){if(e.stack[0].line===a.line)return!1;if(!e.stack[0].line&&e.stack[0].func===a.func)return e.stack[0].line=a.line,e.stack[0].context=a.context,!1}return e.stack.unshift(a),e.partial=!0,!0}return e.incomplete=!0,!1}function b(e,t){for(var n,r,i,a=/function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i,c=[],l={},f=!1,p=b.caller;p&&!f;p=p.caller)if(p!==m&&p!==u.report){if(r={url:null,func:s,args:[],line:null,column:null},p.name?r.func=p.name:(n=a.exec(p.toString()))&&(r.func=n[1]),void 0===r.func)try{r.func=n.input.substring(0,n.input.indexOf("{"))}catch(e){}if(i=v(p)){r.url=i.url,r.line=i.line,r.func===s&&(r.func=o(r.url,r.line));var d=/ '([^']+)' /.exec(e.message||e.description);d&&(r.column=h(d[1],i.url,i.line))}l[""+p]?f=!0:l[""+p]=!0,c.push(r)}t&&c.splice(0,t);var g={mode:"callers",name:e.name,message:e.message,stack:c};return y(g,e.sourceURL||e.fileName,e.line||e.lineNumber,e.message||e.description),g}function m(t,r){var u=null;r=null==r?0:+r;try{if(u=function(e){var t=e.stacktrace;if(t){for(var n,r=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,a=/ line (\d+), column (\d+)\s*(?:in (?:]+)>|([^\)]+))\((.*)\))? in (.*):\s*$/i,u=t.split("\n"),c=[],s=0;s=0&&(m.line=_+S.substring(0,O).split("\n").length)}}}else if(r=s.exec(t[b])){var E=p().replace(/#.*$/,""),x=d(new RegExp(l(t[b+1])),[E]);m={url:E,func:"",args:[],line:x?x.line:r[1],column:null}}if(m){m.func||(m.func=o(m.url,m.line));var j=i(m.url,m.line),k=j?j[Math.floor(j.length/2)]:null;j&&k.replace(/^\s*/,"")===t[b+1].replace(/^\s*/,"")?m.context=j:m.context=[t[b+1]],h.push(m)}}return h.length?{mode:"multiline",name:e.name,message:t[0],stack:h}:null}(t))return u}catch(t){if(e)throw t}try{if(u=b(t,r+1))return u}catch(t){if(e)throw t}return{name:t.name,message:t.message,mode:"failed"}}return m.augmentStackTraceWithInitialElement=y,m.computeStackTraceFromStackProp=g,m.guessFunctionName=o,m.gatherContext=i,m.ofCaller=function(e){e=1+(null==e?0:+e);try{throw new Error}catch(t){return m(t,e+1)}},m.getSource=n,m}(),u.extendToAsynchronousCallbacks=function(){var e=function(e){var t=a[e];a[e]=function(){var e=c.call(arguments),n=e[0];return"function"==typeof n&&(e[0]=u.wrap(n)),t.apply?t.apply(this,e):t(e[0],e[1])}};e("setTimeout"),e("setInterval")},u.remoteFetching=!1,u.collectWindowErrors=!0,u.linesOfContext=11;var d=u.report;t.report=d;var h=u.report.subscribe;t.subscribe=h;var v=u.report.installGlobalHandler;t.installGlobalHandler=v;var g=u.report.installGlobalUnhandledRejectionHandler;t.installGlobalUnhandledRejectionHandler=g;var y=u.computeStackTrace;t.computeStackTrace=y},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),o=n(5),i=n(7),a=function(){function e(){this.notifyingListeners=!1,this.scopeListeners=[],this.eventProcessors=[],this.breadcrumbs=[],this.user={},this.tags={},this.extra={}}return e.prototype.addScopeListener=function(e){this.scopeListeners.push(e)},e.prototype.addEventProcessor=function(e){return this.eventProcessors.push(e),this},e.prototype.notifyScopeListeners=function(){var e=this;this.notifyingListeners||(this.notifyingListeners=!0,setTimeout(function(){e.scopeListeners.forEach(function(t){t(e)}),e.notifyingListeners=!1},0))},e.prototype.notifyEventProcessors=function(e,t){return r.__awaiter(this,void 0,void 0,function(){var n,o,i,a,c,s,l;return r.__generator(this,function(f){switch(f.label){case 0:i=e,f.label=1;case 1:f.trys.push([1,8,9,10]),a=r.__values(r.__spread(u(),this.eventProcessors)),c=a.next(),f.label=2;case 2:if(c.done)return[3,7];s=c.value,f.label=3;case 3:return f.trys.push([3,5,,6]),[4,s(r.__assign({},i),t)];case 4:return null===(i=f.sent())?[2,null]:[3,6];case 5:return f.sent(),[3,6];case 6:return c=a.next(),[3,2];case 7:return[3,10];case 8:return l=f.sent(),n={error:l},[3,10];case 9:try{c&&!c.done&&(o=a.return)&&o.call(a)}finally{if(n)throw n.error}return[7];case 10:return[2,i]}})})},e.prototype.setUser=function(e){return this.user=e,this.notifyScopeListeners(),this},e.prototype.setTag=function(e,t){var n;return this.tags=r.__assign({},this.tags,((n={})[e]=t,n)),this.notifyScopeListeners(),this},e.prototype.setExtra=function(e,t){var n;return this.extra=r.__assign({},this.extra,((n={})[e]=t,n)),this.notifyScopeListeners(),this},e.prototype.setFingerprint=function(e){return this.fingerprint=e,this.notifyScopeListeners(),this},e.prototype.setLevel=function(e){return this.level=e,this.notifyScopeListeners(),this},e.clone=function(t){var n=new e;return i.assign(n,t,{scopeListeners:[]}),t&&(n.extra=i.assign(t.extra),n.tags=i.assign(t.tags),n.breadcrumbs=r.__spread(t.breadcrumbs),n.eventProcessors=r.__spread(t.eventProcessors)),n},e.prototype.clear=function(){this.breadcrumbs=[],this.tags={},this.extra={},this.user={},this.level=void 0,this.fingerprint=void 0,this.notifyScopeListeners()},e.prototype.addBreadcrumb=function(e,t){this.breadcrumbs=void 0!==t&&t>=0?r.__spread(this.breadcrumbs,[e]).slice(-t):r.__spread(this.breadcrumbs,[e]),this.notifyScopeListeners()},e.prototype.applyFingerprint=function(e){e.fingerprint=e.fingerprint?Array.isArray(e.fingerprint)?e.fingerprint:[e.fingerprint]:[],this.fingerprint?e.fingerprint=e.fingerprint.concat(this.fingerprint):e.message&&(e.fingerprint=e.fingerprint.concat(e.message)),e.fingerprint&&!e.fingerprint.length&&delete e.fingerprint},e.prototype.applyToEvent=function(e,t,n){return r.__awaiter(this,void 0,void 0,function(){return r.__generator(this,function(o){return this.extra&&Object.keys(this.extra).length&&(e.extra=r.__assign({},this.extra,e.extra)),this.tags&&Object.keys(this.tags).length&&(e.tags=r.__assign({},this.tags,e.tags)),this.user&&Object.keys(this.user).length&&(e.user=r.__assign({},this.user,e.user)),this.level&&(e.level=this.level),this.applyFingerprint(e),(!e.breadcrumbs||0===e.breadcrumbs.length)&&this.breadcrumbs.length>0&&(e.breadcrumbs=void 0!==n&&n>=0?this.breadcrumbs.slice(-n):this.breadcrumbs),[2,this.notifyEventProcessors(e,t)]})})},e}();function u(){var e=o.getGlobalObject();return e.__SENTRY__=e.__SENTRY__||{},e.__SENTRY__.globalEventProcessors=e.__SENTRY__.globalEventProcessors||[],e.__SENTRY__.globalEventProcessors}t.Scope=a,t.addGlobalEventProcessor=function(e){u().push(e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),o=function(){function e(){this.buffer=[]}return e.prototype.add=function(e){return r.__awaiter(this,void 0,void 0,function(){var t=this;return r.__generator(this,function(n){return-1===this.buffer.indexOf(e)&&this.buffer.push(e),e.then(function(){return r.__awaiter(t,void 0,void 0,function(){return r.__generator(this,function(t){return[2,this.remove(e)]})})}).catch(function(){return r.__awaiter(t,void 0,void 0,function(){return r.__generator(this,function(t){return[2,this.remove(e)]})})}),[2,e]})})},e.prototype.remove=function(e){return r.__awaiter(this,void 0,void 0,function(){return r.__generator(this,function(t){return[2,this.buffer.splice(this.buffer.indexOf(e),1)[0]]})})},e.prototype.length=function(){return this.buffer.length},e.prototype.drain=function(e){return r.__awaiter(this,void 0,void 0,function(){var t=this;return r.__generator(this,function(n){return[2,new Promise(function(n){var r=setTimeout(function(){e&&e>0&&n(!1)},e);Promise.all(t.buffer).then(function(){clearTimeout(r),n(!0)}).catch(function(){n(!0)})})]})})},e}();t.RequestBuffer=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MinaBackend=void 0;var r=n(2),o=n(8),i=n(3),a=n(1),u=n(16),c=n(12),s=n(17),l=n(4);function f(e){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(e){for(var t=1;t0},t.ignoreNextOnError=f,t.wrap=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};var u=arguments.length>2?arguments[2]:void 0;if(!(0,o.isFunction)(t))return t;try{if(t.__sentry__)return t;if(t.__sentry_wrapped__)return t.__sentry_wrapped__}catch(e){return t}var c=function(){u&&(0,o.isFunction)(u)&&u.apply(this,arguments);var c,l=Array.prototype.slice.call(arguments);try{var p=l.map(function(t){return e(t,n)});return t.handleEvent?t.handleEvent.apply(this,p):t.apply(this,p)}catch(e){throw f(),(0,r.withScope)((c=s(regeneratorRuntime.mark(function t(o){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:o.addEventProcessor(function(){var e=s(regeneratorRuntime.mark(function e(t){var r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=a({},t),n.mechanism&&(r.exception=r.exception||{},r.exception.mechanism=n.mechanism),r.extra=a({},r.extra,{arguments:(0,i.serializeObject)(l,2)}),e.abrupt("return",r);case 4:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()),(0,r.captureException)(e);case 2:case"end":return t.stop()}},t,this)})),function(e){return c.apply(this,arguments)})),e}};try{for(var l in t)Object.prototype.hasOwnProperty.call(t,l)&&(c[l]=t[l])}catch(e){}c.prototype=t.prototype;t.__sentry_wrapped__=c;c.__sentry__=!0;c.__sentry_original__=t;return c};var r=n(2),o=n(3),i=n(7);function a(e){for(var t=1;t1)for(var n=1;n0?e[e.length-1].scope:void 0,n=a.Scope.clone(t);return this.getStack().push({client:this.getClient(),scope:n}),n},e.prototype.popScope=function(){return void 0!==this.getStack().pop()},e.prototype.withScope=function(e){var t=this.pushScope();try{e(t)}finally{this.popScope()}},e.prototype.getClient=function(){return this.getStackTop().client},e.prototype.getScope=function(){return this.getStackTop().scope},e.prototype.getStack=function(){return this.stack},e.prototype.getStackTop=function(){return this.stack[this.stack.length-1]},e.prototype.captureException=function(e,t){var n=this._lastEventId=i.uuid4();return this.invokeClientAsync("captureException",e,r.__assign({},t,{event_id:n})),n},e.prototype.captureMessage=function(e,t,n){var o=this._lastEventId=i.uuid4();return this.invokeClientAsync("captureMessage",e,t,r.__assign({},n,{event_id:o})),o},e.prototype.captureEvent=function(e,t){var n=this._lastEventId=i.uuid4();return this.invokeClientAsync("captureEvent",e,r.__assign({},t,{event_id:n})),n},e.prototype.lastEventId=function(){return this._lastEventId},e.prototype.addBreadcrumb=function(e,t){this.invokeClient("addBreadcrumb",e,r.__assign({},t))},e.prototype.configureScope=function(e){var t=this.getStackTop();t.scope&&t.client&&e(t.scope)},e.prototype.run=function(e){var t=s(this);try{e(this)}finally{s(t)}},e.prototype.getIntegration=function(e){try{return this.getClient().getIntegration(e)}catch(t){return o.logger.warn("Cannot retrieve integration "+e.id+" from the current Hub"),null}},e}();function c(){var e=i.getGlobalObject();return e.__SENTRY__=e.__SENTRY__||{hub:void 0},e}function s(e){var t=c(),n=f(t);return p(t,e),n}function l(e){return!!(e&&e.__SENTRY__&&e.__SENTRY__.hub)}function f(e){return e&&e.__SENTRY__&&e.__SENTRY__.hub?e.__SENTRY__.hub:(e.__SENTRY__={},e.__SENTRY__.hub=new u,e.__SENTRY__.hub)}function p(e,t){return!!e&&(e.__SENTRY__=e.__SENTRY__||{},e.__SENTRY__.hub=t,!0)}t.Hub=u,t.getMainCarrier=c,t.makeMain=s,t.getCurrentHub=function(){var n=c();l(n)&&!f(n).isOlderThan(t.API_VERSION)||p(n,new u);try{var r=i.dynamicRequire(e,"domain").active;if(!r)return f(n);if(!l(r)||f(r).isOlderThan(t.API_VERSION)){var o=f(n).getStackTop();p(r,new u(o.client,a.Scope.clone(o.scope)))}return f(r)}catch(e){return f(n)}},t.hasHubOnCarrier=l,t.getHubFromCarrier=f,t.setHubOnCarrier=p}).call(this,n(29)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(7),o=n(10),i=function(){function e(e){this.dsn=e,this.dsnObject=new o.Dsn(e)}return e.prototype.getDsn=function(){return this.dsnObject},e.prototype.getStoreEndpoint=function(){return""+this.getBaseUrl()+this.getStoreEndpointPath()},e.prototype.getStoreEndpointWithUrlEncodedAuth=function(){var e={sentry_key:this.dsnObject.user,sentry_version:"7"};return this.getStoreEndpoint()+"?"+r.urlEncode(e)},e.prototype.getBaseUrl=function(){var e=this.dsnObject,t=e.protocol?e.protocol+":":"",n=e.port?":"+e.port:"";return t+"//"+e.host+n},e.prototype.getStoreEndpointPath=function(){var e=this.dsnObject;return(e.path?"/"+e.path:"")+"/api/"+e.projectId+"/store/"},e.prototype.getRequestHeaders=function(e,t){var n=this.dsnObject,r=["Sentry sentry_version=7"];return r.push("sentry_timestamp="+(new Date).getTime()),r.push("sentry_client="+e+"/"+t),r.push("sentry_key="+n.user),n.pass&&r.push("sentry_secret="+n.pass),{"Content-Type":"application/json","X-Sentry-Auth":r.join(", ")}},e.prototype.getReportDialogEndpoint=function(e){void 0===e&&(e={});var t=this.dsnObject,n=this.getBaseUrl()+(t.path?"/"+t.path:"")+"/api/embed/error-page/",r=[];for(var o in r.push("dsn="+t.toString()),e)if("user"===o){if(!e.user)continue;e.user.name&&r.push("name="+encodeURIComponent(e.user.name)),e.user.email&&r.push("email="+encodeURIComponent(e.user.email))}else r.push(encodeURIComponent(o)+"="+encodeURIComponent(e[o]));return r.length?n+"?"+r.join("&"):n},e}();t.API=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),o=n(8),i=n(32),a=n(1),u=n(5),c=n(9),s=n(10),l=n(33),f=function(){function e(e,t){this.backend=new e(t),this.options=t,t.dsn&&(this.dsn=new s.Dsn(t.dsn)),this.integrations=l.setupIntegrations(this.options)}return e.prototype.install=function(){if(!this.isEnabled())return this.installed=!1;var e=this.getBackend();return!this.installed&&e.install&&e.install(),this.installed=!0},e.prototype.buffer=function(e){return r.__awaiter(this,void 0,void 0,function(){return r.__generator(this,function(t){return[2,this.getBackend().getBuffer().add(e)]})})},e.prototype.captureException=function(e,t,n){return r.__awaiter(this,void 0,void 0,function(){var o=this;return r.__generator(this,function(i){return[2,this.buffer(r.__awaiter(o,void 0,void 0,function(){var o;return r.__generator(this,function(r){switch(r.label){case 0:return[4,this.getBackend().eventFromException(e,t)];case 1:return o=r.sent(),[2,this.captureEvent(o,t,n)]}})}))]})})},e.prototype.captureMessage=function(e,t,n,o){return r.__awaiter(this,void 0,void 0,function(){var i=this;return r.__generator(this,function(a){return[2,this.buffer(r.__awaiter(i,void 0,void 0,function(){var i;return r.__generator(this,function(r){switch(r.label){case 0:return[4,this.getBackend().eventFromMessage(e,t,n)];case 1:return i=r.sent(),[2,this.captureEvent(i,n,o)]}})}))]})})},e.prototype.captureEvent=function(e,t,n){return r.__awaiter(this,void 0,void 0,function(){var o=this;return r.__generator(this,function(i){return[2,this.buffer(r.__awaiter(o,void 0,void 0,function(){var o=this;return r.__generator(this,function(i){return[2,this.processEvent(e,function(e){return r.__awaiter(o,void 0,void 0,function(){return r.__generator(this,function(t){return[2,this.getBackend().sendEvent(e)]})})},t,n)]})}))]})})},e.prototype.addBreadcrumb=function(e,t,n){var o=this.getOptions(),i=o.beforeBreadcrumb,a=o.maxBreadcrumbs,c=void 0===a?30:a;if(!(c<=0)){var s=(new Date).getTime()/1e3,l=r.__assign({timestamp:s},e),f=i?u.consoleSandbox(function(){return i(l,t)}):l;null!==f&&this.getBackend().storeBreadcrumb(f)&&n&&n.addBreadcrumb(f,Math.min(c,100))}},e.prototype.getDsn=function(){return this.dsn},e.prototype.getOptions=function(){return this.options},e.prototype.getBackend=function(){return this.backend},e.prototype.isEnabled=function(){return!1!==this.getOptions().enabled&&void 0!==this.dsn},e.prototype.prepareEvent=function(e,t,n){return r.__awaiter(this,void 0,void 0,function(){var o,i,a,s,l,f,p,d,h;return r.__generator(this,function(v){return o=this.getOptions(),i=o.environment,a=o.maxBreadcrumbs,s=void 0===a?30:a,l=o.release,f=o.dist,void 0===(p=r.__assign({},e)).environment&&void 0!==i&&(p.environment=i),void 0===p.release&&void 0!==l&&(p.release=l),void 0===p.dist&&void 0!==f&&(p.dist=f),p.message&&(p.message=c.truncate(p.message,250)),(d=p.exception&&p.exception.values&&p.exception.values[0])&&d.value&&(d.value=c.truncate(d.value,250)),(h=p.request)&&h.url&&(h.url=c.truncate(h.url,250)),void 0===p.event_id&&(p.event_id=u.uuid4()),t?[2,t.applyToEvent(p,n,Math.min(s,100))]:[2,p]})})},e.prototype.processEvent=function(e,t,n,u){return r.__awaiter(this,void 0,void 0,function(){var c,s,l,f,p,d,h;return r.__generator(this,function(r){switch(r.label){case 0:return this.isEnabled()?(c=this.getOptions(),s=c.beforeSend,"number"==typeof(l=c.sampleRate)&&Math.random()>l?[2,{status:o.Status.Skipped}]:[4,this.prepareEvent(e,u,n)]):[2,{status:o.Status.Skipped}];case 1:if(null===(f=r.sent()))return[2,{status:o.Status.Skipped}];p=f,r.label=2;case 2:return r.trys.push([2,5,,6]),n&&n.data&&!0===n.data.__sentry__||!s?[3,4]:[4,s(f,n)];case 3:void 0===(p=r.sent())&&a.logger.error("`beforeSend` method has to return `null` or a valid event"),r.label=4;case 4:return[3,6];case 5:return d=r.sent(),i.forget(this.captureException(d,{data:{__sentry__:!0},originalException:d})),[2,{reason:"Event processing in beforeSend method threw an exception",status:o.Status.Invalid}];case 6:return null===p?[2,{reason:"Event dropped due to being discarded by beforeSend method",status:o.Status.Skipped}]:[4,t(p)];case 7:return(h=r.sent()).event=p,h.status,o.Status.RateLimit,[2,h]}})})},e.prototype.close=function(e){return r.__awaiter(this,void 0,void 0,function(){return r.__generator(this,function(t){return[2,this.getBackend().getBuffer().drain(e)]})})},e.prototype.getIntegrations=function(){return this.integrations||{}},e.prototype.getIntegration=function(e){try{return this.integrations[e.id]||null}catch(t){return a.logger.warn("Cannot retrieve integration "+e.id+" from the current Client"),null}},e}();t.BaseClient=f},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);t.forget=function(e){e.catch(function(e){console.error(e)})},t.filterAsync=function(e,t,n){return r.__awaiter(this,void 0,void 0,function(){var o;return r.__generator(this,function(r){switch(r.label){case 0:return[4,Promise.all(e.map(t,n))];case 1:return o=r.sent(),[2,e.filter(function(e,t){return o[t]})]}})})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),o=n(1);function i(e){var t,n,o,i,a=e.defaultIntegrations&&r.__spread(e.defaultIntegrations)||[],c=e.integrations,s=[];if(Array.isArray(c)){var l=c.map(function(e){return e.name}),f=[];try{for(var p=r.__values(a),d=p.next();!d.done;d=p.next()){var h=d.value;-1===l.indexOf(u(h))&&-1===f.indexOf(u(h))&&(s.push(h),f.push(u(h)))}}catch(e){t={error:e}}finally{try{d&&!d.done&&(n=p.return)&&n.call(p)}finally{if(t)throw t.error}}try{for(var v=r.__values(c),g=v.next();!g.done;g=v.next()){var y=g.value;-1===f.indexOf(u(y))&&(s.push(y),f.push(u(y)))}}catch(e){o={error:e}}finally{try{g&&!g.done&&(i=v.return)&&i.call(v)}finally{if(o)throw o.error}}}else{if("function"!=typeof c)return r.__spread(a);s=c(a),s=Array.isArray(s)?s:[s]}return s}function a(e,n){if(-1===t.installedIntegrations.indexOf(u(e))){try{e.setupOnce()}catch(t){o.logger.warn("Integration "+u(e)+': The install method is deprecated. Use "setupOnce".'),e.install&&e.install(n)}t.installedIntegrations.push(u(e)),o.logger.log("Integration installed: "+u(e))}}function u(e){return e.constructor.id||e.name}t.installedIntegrations=[],t.getIntegrationsToSetup=i,t.setupIntegration=a,t.setupIntegrations=function(e){var t={};return i(e).forEach(function(n){t[u(n)]=n,a(n,e)}),t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),o=n(1),i=n(11),a=n(14),u=function(){function e(e){this.buffer=new a.RequestBuffer,this.options=e,this.options.dsn||o.logger.warn("No DSN provided, backend will not do anything.")}return e.prototype.eventFromException=function(e,t){return r.__awaiter(this,void 0,void 0,function(){return r.__generator(this,function(e){throw new i.SentryError("Backend has to implement `eventFromException` method")})})},e.prototype.eventFromMessage=function(e,t,n){return r.__awaiter(this,void 0,void 0,function(){return r.__generator(this,function(e){throw new i.SentryError("Backend has to implement `eventFromMessage` method")})})},e.prototype.sendEvent=function(e){return r.__awaiter(this,void 0,void 0,function(){return r.__generator(this,function(e){throw new i.SentryError("Backend has to implement `sendEvent` method")})})},e.prototype.storeBreadcrumb=function(e){return!0},e.prototype.storeScope=function(e){},e.prototype.getBuffer=function(){return this.buffer},e}();t.BaseBackend=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.None=0]="None",e[e.Error=1]="Error",e[e.Debug=2]="Debug",e[e.Verbose=3]="Verbose"}(t.LogLevel||(t.LogLevel={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(6),o=n(1);t.initAndBind=function(e,t){if(!0===t.debug&&o.logger.enable(),!r.getCurrentHub().getClient()){var n=new e(t);r.getCurrentHub().bindClient(n),n.install()}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(38);t.Dedupe=r.Dedupe;var o=n(39);t.FunctionToString=o.FunctionToString;var i=n(40);t.SDKInformation=i.SDKInformation;var a=n(41);t.InboundFilters=a.InboundFilters;var u=n(42);t.Debug=u.Debug;var c=n(43);t.RewriteFrames=c.RewriteFrames},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),o=n(6),i=n(1),a=n(5),u=function(){function e(){this.name=e.id}return e.prototype.setupOnce=function(){var t=this;o.addGlobalEventProcessor(function(n){return r.__awaiter(t,void 0,void 0,function(){var t;return r.__generator(this,function(r){if(t=o.getCurrentHub().getIntegration(e)){try{if(t.shouldDropEvent(n,t.previousEvent))return[2,null]}catch(e){return[2,t.previousEvent=n]}return[2,t.previousEvent=n]}return[2,n]})})})},e.prototype.shouldDropEvent=function(e,t){return!!t&&(this.isSameMessageEvent(e,t)?(i.logger.warn("Event dropped due to being a duplicate of previous event (same message).\nEvent: "+a.getEventDescription(e)),!0):!!this.isSameExceptionEvent(e,t)&&(i.logger.warn("Event dropped due to being a duplicate of previous event (same exception).\nEvent: "+a.getEventDescription(e)),!0))},e.prototype.isSameMessageEvent=function(e,t){var n=e.message,r=t.message;return!(!n&&!r)&&(!(n&&!r||!n&&r)&&(n===r&&(!!this.isSameFingerprint(e,t)&&!!this.isSameStacktrace(e,t))))},e.prototype.getFramesFromEvent=function(e){var t=e.exception;if(!t)return e.stacktrace?e.stacktrace.frames:void 0;try{return t.values[0].stacktrace.frames}catch(e){return}},e.prototype.isSameStacktrace=function(e,t){var n=this.getFramesFromEvent(e),r=this.getFramesFromEvent(t);if(!n&&!r)return!0;if(n&&!r||!n&&r)return!1;if(n=n,(r=r).length!==n.length)return!1;for(var o=0;o=0;r--){var o=e[r];"."===o?e.splice(r,1):".."===o?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}Object.defineProperty(t,"__esModule",{value:!0});var o=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;function i(e){var t=o.exec(e);return t?t.slice(1):[]}function a(){for(var e=[],t=0;t=-1&&!o;i--){var a=i>=0?e[i]:"/";a&&(n=a+"/"+n,o="/"===a.charAt(0))}return(o?"/":"")+(n=r(n.split("/").filter(function(e){return!!e}),!o).join("/"))||"."}function u(e){for(var t=0;t=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}function c(e){var t=s(e),n="/"===e.substr(-1),o=r(e.split("/").filter(function(e){return!!e}),!t).join("/");return o||t||(o="."),o&&n&&(o+="/"),(t?"/":"")+o}function s(e){return"/"===e.charAt(0)}t.resolve=a,t.relative=function(e,t){e=a(e).substr(1),t=a(t).substr(1);for(var n=u(e.split("/")),r=u(t.split("/")),o=Math.min(n.length,r.length),i=o,c=0;c>16)+(t>>16)+(n>>16)<<16|65535&n}function a(e,t,n,r,o,a){return i((u=i(i(t,e),i(r,a)))<<(c=o)|u>>>32-c,n);var u,c}function u(e,t,n,r,o,i,u){return a(t&n|~t&r,e,t,o,i,u)}function c(e,t,n,r,o,i,u){return a(t&r|n&~r,e,t,o,i,u)}function s(e,t,n,r,o,i,u){return a(t^n^r,e,t,o,i,u)}function l(e,t,n,r,o,i,u){return a(n^(t|~r),e,t,o,i,u)}function f(e,t){var n,r,o,a,f;e[t>>5]|=128<>>9<<4)]=t;var p=1732584193,d=-271733879,h=-1732584194,v=271733878;for(n=0;n>5]>>>t%32&255);return n}function d(e){var t,n=[];for(n[(e.length>>2)-1]=void 0,t=0;t>5]|=(255&e.charCodeAt(t/8))<>>4&15)+"0123456789abcdef".charAt(15&t);return r}function v(e){return unescape(encodeURIComponent(e))}function g(e){return function(e){return p(f(d(e),8*e.length))}(v(e))}function y(e,t){return function(e,t){var n,r,o=d(e),i=[],a=[];for(i[15]=a[15]=void 0,o.length>16&&(o=f(o,8*e.length)),n=0;n<16;n+=1)i[n]=909522486^o[n],a[n]=1549556828^o[n];return r=f(i.concat(d(t)),512+8*t.length),p(f(a.concat(r),640))}(v(e),v(t))}function b(e,t,n){return t?n?y(t,e):h(y(t,e)):n?g(e):h(g(e))}void 0===(r=function(){return b}.call(t,n,t,e))||(e.exports=r)}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestTransport=void 0;var r=n(8),o=n(18),i=n(4);function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(e,t,n,r,o,i,a){try{var u=e[i](a),c=u.value}catch(e){return void n(e)}u.done?t(c):Promise.resolve(c).then(r,o)}function c(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){u(i,r,o,a,c,"next",e)}function c(e){u(i,r,o,a,c,"throw",e)}a(void 0)})}}function s(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.name=e.id,this.ctx=(0,o.getMinaContext)(),this.options=function(e){for(var t=1;t-1})),n.forEach(function(t){t in h.console&&(0,f.fill)(h.console,t,function(n){return function(){for(var r=arguments.length,o=new Array(r),a=0;a-1,i=arguments.length,a=new Array(i),u=0;u0&&void 0!==arguments[0]?arguments[0]:{},o=n.method?n.method.toUpperCase():"GET",a=n.url,u=(0,r.getCurrentHub)().getClient(),c=u&&u.getDsn();if(c){var s=new r.API(c).getStoreEndpoint();if(s&&(0,l.includes)(a,s))return"POST"===o&&n.data&&g(n.data),t.call(this.ctx,n)}var f={method:o,url:a},p=n.success,d=n.fail;return n.success=function(t){p&&p(t),f.status_code=t.statusCode,e.addBreadcrumb({category:"request",data:f,type:"http"},{input:{url:n.url,data:n.data,header:n.header,method:n.method,dataType:n.dataType},response:t.data})},n.fail=function(t){d&&d(t),e.addBreadcrumb({category:"request",data:f,level:i.Severity.Error,type:"http"},{error:t,input:{url:n.url,data:n.data,header:n.header,method:n.method,dataType:n.dataType}})},t.call(this.ctx,n)}})}},{key:"instrumentNavigation",value:function(){var t=this,n=(0,o.supportNavigations)();if(n){var r=function(t){var n=(0,o.getCurrentPage)();e.addBreadcrumb({category:"navigation",data:{from:n,to:t}})};n.forEach(function(e){(0,f.fill)(t.ctx,e,i)})}function i(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.url;return!n&&t.delta&&(n=(0,o.getPrevPage)(t.delta)),n&&r(n),e.call(this,t)}}}},{key:"instrumentLifeCycle",value:function(){var t=this.ctx;o.MINA_APP_LIFE_CYCLE.forEach(function(n){t[n]&&t[n](function(t){e.addBreadcrumb({category:"app-life-cycle",data:{name:n,args:t}})})})}},{key:"setupOnce",value:function(){this.options.console&&this.instrumentConsole(),this.options.navigation&&this.instrumentNavigation(),this.options.request&&this.instrumentRequest(),this.options.api&&this.instrumentMinaApi(),this.options.lifecycle&&this.instrumentLifeCycle()}}])&&d(t.prototype,n),u&&d(t,u),e}();function g(e){try{var t=(0,s.deserialize)(e);v.addBreadcrumb({category:"sentry",event_id:t.event_id,level:t.level||i.Severity.fromString("error"),message:(0,c.getEventDescription)(t)},{event:t})}catch(e){u.logger.error("Error while adding sentry type breadcrumb")}}t.Breadcrumbs=v,v.id="Breadcrumbs"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.compareVersion=function(e,t){e=e.split("."),t=t.split(".");var n=Math.max(e.length,t.length);for(;e.lengthi)return 1;if(o"},handled:!0,type:"instrument"}}),e.apply(t,o)}}},{key:"setupOnce",value:function(){setTimeout=a(setTimeout,this.wrapTimeFunction.bind(this)),setInterval=a(setInterval,this.wrapTimeFunction.bind(this))}}])&&o(t.prototype,n),i&&o(t,i),e}();function a(e,t){if(!e.__sentry__){var n=t(e);return n.__sentry__=!0,n.__sentry_original__=e,n.__sentry_wrapped__=n,n}}t.TryCatch=i,i.id="TryCatch"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LogManager=void 0;var r=n(2),o=n(4);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.options=function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.name="GlobalHandlers",this.ctx=(0,c.getMinaContext)(),this.options=l({onerror:!0,onpagenotfound:!0},t)}var t,n,f;return t=e,(n=[{key:"setupOnce",value:function(){var t,n=(t=regeneratorRuntime.mark(function t(){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:(0,a.subscribe)(function(t,n,o){if(!(0,u.shouldIgnoreOnError)()){var i=(0,r.getCurrentHub)().getIntegration(e);i&&(0,r.getCurrentHub)().captureEvent(i.eventFromGlobalHandler(t),{originalException:o,data:{stack:t}})}}),this.options.onerror&&this.ctx.onError&&(o.logger.log("Global Error Handler attached: onError"),this.installGlobalErrorHandler()),this.options.onpagenotfound&&this.ctx.onPageNotFound&&(o.logger.log("Global Handler attached: onPageNotFound"),this.installGlobalPageNotFoundHandler());case 3:case"end":return t.stop()}},t,this)}),function(){var e=this,n=arguments;return new Promise(function(r,o){var i=t.apply(e,n);function a(e){s(i,r,o,a,u,"next",e)}function u(e){s(i,r,o,a,u,"throw",e)}a(void 0)})});return function(){return n.apply(this,arguments)}}()},{key:"installGlobalErrorHandler",value:function(){this.ctx.onError(function(e){(0,a.traceKitWindowOnUnhandledRejection)({reason:e})})}},{key:"installGlobalPageNotFoundHandler",value:function(){this.ctx.onPageNotFound(function(e){(0,r.captureEvent)({message:"page not found",extra:e})})}},{key:"eventFromGlobalHandler",value:function(e){var t=(0,i.eventFromStacktrace)(e);return l({},t,{exception:l({},t.exception,{mechanism:{data:{mode:e.mode},handled:!1,type:e.mechanism}})})}}])&&p(t.prototype,n),f&&p(t,f),e}();t.GlobalHandlers=d,d.id="GlobalHandlers"}])}); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index cbbcd5e..74734ed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -352,7 +352,7 @@ "requires": { "@babel/helper-plugin-utils": "7.0.0", "@babel/helper-regex": "7.0.0", - "regexpu-core": "4.2.0" + "regexpu-core": "4.4.0" } }, "@babel/plugin-syntax-async-generators": { @@ -472,7 +472,7 @@ "requires": { "@babel/helper-plugin-utils": "7.0.0", "@babel/helper-regex": "7.0.0", - "regexpu-core": "4.2.0" + "regexpu-core": "4.4.0" } }, "@babel/plugin-transform-duplicate-keys": { @@ -657,7 +657,7 @@ "requires": { "@babel/helper-plugin-utils": "7.0.0", "@babel/helper-regex": "7.0.0", - "regexpu-core": "4.2.0" + "regexpu-core": "4.4.0" } }, "@babel/preset-env": { @@ -811,751 +811,372 @@ "tslib": "1.9.3" } }, - "acorn": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.4.tgz", - "integrity": "sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==", - "dev": true - }, - "acorn-jsx": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", - "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", - "dev": true - }, - "ajv": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.1.tgz", - "integrity": "sha512-ZoJjft5B+EJBjUyu9C9Hc0OZyPZSSlOF+plzouTrg6UlA8f+e/n8NIgBFG/9tppJtpPWfthHakK7juJdNDODww==", + "@webassemblyjs/ast": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz", + "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==", "dev": true, "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "@webassemblyjs/helper-module-context": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11" } }, - "ansi-escapes": { - "version": "3.1.0", - "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz", + "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==", "dev": true }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "@webassemblyjs/helper-api-error": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz", + "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==", "dev": true }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.3" - } - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" - } + "@webassemblyjs/helper-buffer": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz", + "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==", + "dev": true }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "@webassemblyjs/helper-code-frame": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz", + "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "@webassemblyjs/wast-printer": "1.7.11" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "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 - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "@webassemblyjs/helper-fsm": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz", + "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==", "dev": true }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "@webassemblyjs/helper-module-context": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz", + "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==", "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, - "optional": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz", + "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==", "dev": true }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "@webassemblyjs/helper-wasm-section": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz", + "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - }, - "dependencies": { - "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 - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://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" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "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 - } + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11" } }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "@webassemblyjs/ieee754": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz", + "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==", "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "dev": true, - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "@xtuc/ieee754": "1.2.0" } }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "@webassemblyjs/leb128": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz", + "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==", "dev": true, "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "@xtuc/long": "4.2.1" } }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } + "@webassemblyjs/utf8": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz", + "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==", + "dev": true }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "@webassemblyjs/wasm-edit": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz", + "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/helper-wasm-section": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-opt": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11", + "@webassemblyjs/wast-printer": "1.7.11" } }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "@webassemblyjs/wasm-gen": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz", + "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" } }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "@webassemblyjs/wasm-opt": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz", + "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==", "dev": true, "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11" } }, - "babel-loader": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.4.tgz", - "integrity": "sha512-fhBhNkUToJcW9nV46v8w87AJOwAJDz84c1CL57n3Stj73FANM/b9TbCUK4YhdOwEyZ+OxhYpdeZDNzSI29Firw==", + "@webassemblyjs/wasm-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz", + "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==", "dev": true, "requires": { - "find-cache-dir": "1.0.0", - "loader-utils": "1.1.0", - "mkdirp": "0.5.1", - "util.promisify": "1.0.0" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" } }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "@webassemblyjs/wast-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz", + "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/floating-point-hex-parser": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-code-frame": "1.7.11", + "@webassemblyjs/helper-fsm": "1.7.11", + "@xtuc/long": "4.2.1" } }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "@webassemblyjs/wast-printer": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz", + "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11", + "@xtuc/long": "4.2.1" } }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "http://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "@xtuc/long": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", + "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==", "dev": true }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "dev": true, - "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" - } - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true, - "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } + "acorn": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.4.tgz", + "integrity": "sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==", + "dev": true }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "acorn-dynamic-import": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", + "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "acorn": "5.7.3" + }, + "dependencies": { + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + } } }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } + "acorn-jsx": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", + "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", + "dev": true }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "ajv": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.1.tgz", + "integrity": "sha512-ZoJjft5B+EJBjUyu9C9Hc0OZyPZSSlOF+plzouTrg6UlA8f+e/n8NIgBFG/9tppJtpPWfthHakK7juJdNDODww==", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true, - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } + "ajv-errors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.0.tgz", + "integrity": "sha1-7PAh+hCP0X37Xms4Py3SM+Mf/Fk=", + "dev": true }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } + "ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "dev": true }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } + "ansi-escapes": { + "version": "3.1.0", + "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "dev": true }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "dev": true, - "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" - } + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "color-convert": "1.9.3" } }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "micromatch": "3.1.10", + "normalize-path": "2.1.1" } }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "dev": true, - "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" - } + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "sprintf-js": "1.0.3" } }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.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 }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true, - "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "bn.js": "4.11.8", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" } }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "util": "0.10.3" }, "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true, - "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", "dev": true }, - "regjsparser": { - "version": "0.1.5", - "resolved": "http://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "requires": { - "jsesc": "0.5.0" - } - } - } - }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, - "requires": { - "regenerator-transform": "0.10.1" - }, - "dependencies": { - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "util": { + "version": "0.10.3", + "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" + "inherits": "2.0.1" } } } }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-preset-es2015": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", - "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", - "dev": true, - "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0" - } - }, - "babel-preset-es2017": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-es2017/-/babel-preset-es2017-6.24.1.tgz", - "integrity": "sha1-WXvq37n38gi8/YoS6bKym4svFNE=", - "dev": true, - "requires": { - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.11" - } + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.11" - }, - "dependencies": { - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - } - } + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "1.0.3" - }, - "dependencies": { - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "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 }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, "balanced-match": { @@ -1619,6 +1240,12 @@ } } }, + "base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "dev": true + }, "big.js": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", @@ -1629,8 +1256,19 @@ "version": "1.12.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", - "dev": true, - "optional": true + "dev": true + }, + "bluebird": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", + "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==", + "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 }, "brace-expansion": { "version": "1.1.11", @@ -1671,15 +1309,143 @@ } } }, + "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.2.0", + "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.3", + "safe-buffer": "5.1.2" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "1.2.0", + "browserify-des": "1.0.2", + "evp_bytestokey": "1.0.3" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "1.0.4", + "des.js": "1.0.0", + "inherits": "2.0.3", + "safe-buffer": "5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "http://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.6" + } + }, + "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.2.0", + "create-hmac": "1.1.7", + "elliptic": "6.4.1", + "inherits": "2.0.3", + "parse-asn1": "5.1.1" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "1.0.7" + } + }, "browserslist": { "version": "4.3.5", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.5.tgz", "integrity": "sha512-z9ZhGc3d9e/sJ9dIx5NFXkKoaiQTnrvrMsN3R1fGb1tkWWNSz12UewJn9TNxGo1l7J23h0MRaPmk7jfeTZYs1w==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000914", + "caniuse-lite": "1.0.30000916", "electron-to-chromium": "1.3.88", - "node-releases": "1.0.5" + "node-releases": "1.1.0" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "1.3.0", + "ieee754": "1.1.12", + "isarray": "1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "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-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 + }, + "cacache": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.1.tgz", + "integrity": "sha512-2PEw4cRRDu+iQvBTTuttQifacYjLPhET+SYO/gEFMy8uhi+jlJREDAjSF5FWSdV/Aw5h18caHA7vMTw2c+wDzA==", + "dev": true, + "requires": { + "bluebird": "3.5.3", + "chownr": "1.1.1", + "figgy-pudding": "3.5.1", + "glob": "7.1.3", + "graceful-fs": "4.1.15", + "lru-cache": "4.1.5", + "mississippi": "3.0.0", + "mkdirp": "0.5.1", + "move-concurrently": "1.0.1", + "promise-inflight": "1.0.1", + "rimraf": "2.6.2", + "ssri": "6.0.1", + "unique-filename": "1.1.1", + "y18n": "4.0.0" } }, "cache-base": { @@ -1714,10 +1480,16 @@ "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", "dev": true }, + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true + }, "caniuse-lite": { - "version": "1.0.30000914", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000914.tgz", - "integrity": "sha512-qqj0CL1xANgg6iDOybiPTIxtsmAnfIky9mBC35qgWrnK4WwmhqfpmkDYMYgwXJ8LRZ3/2jXlCntulO8mBaAgSg==", + "version": "1.0.30000916", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000916.tgz", + "integrity": "sha512-D6J9jloPm2MPkg0PXcODLMQAJKkeixKO9xhqTUMvtd44MtTYMyyDXPQ2Lk9IgBq5FH0frwiPa/N/w8ncQf7kIQ==", "dev": true }, "chalk": { @@ -1742,7 +1514,6 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", "dev": true, - "optional": true, "requires": { "anymatch": "2.0.0", "async-each": "1.0.1", @@ -1759,6 +1530,31 @@ "upath": "1.1.0" } }, + "chownr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz", + "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==", + "dev": true, + "requires": { + "tslib": "1.9.3" + } + }, + "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.2" + } + }, "circular-json": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", @@ -1803,6 +1599,23 @@ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", "dev": true }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" + } + }, + "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 + }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -1852,6 +1665,33 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "typedarray": "0.0.6" + } + }, + "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 + }, "convert-source-map": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", @@ -1861,24 +1701,68 @@ "safe-buffer": "5.1.2" } }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "1.2.0", + "fs-write-stream-atomic": "1.0.10", + "iferr": "0.1.5", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "run-queue": "1.0.3" + } + }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", - "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 + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", "dev": true, - "optional": true + "requires": { + "bn.js": "4.11.8", + "elliptic": "6.4.1" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "1.0.4", + "inherits": "2.0.3", + "md5.js": "1.3.5", + "ripemd160": "2.0.2", + "sha.js": "2.4.11" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "inherits": "2.0.3", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" + } }, "cross-env": { "version": "5.2.0", @@ -1903,6 +1787,37 @@ "which": "1.3.1" } }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "1.0.1", + "browserify-sign": "4.0.4", + "create-ecdh": "4.0.3", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "diffie-hellman": "5.0.3", + "inherits": "2.0.3", + "pbkdf2": "3.0.17", + "public-encrypt": "4.0.3", + "randombytes": "2.0.6", + "randomfill": "1.0.4" + } + }, + "cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "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 + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -1912,6 +1827,12 @@ "ms": "2.0.0" } }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -1924,15 +1845,6 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "1.0.12" - } - }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", @@ -1974,6 +1886,27 @@ } } }, + "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.1" + } + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "miller-rabin": "4.0.1", + "randombytes": "2.0.6" + } + }, "doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -1983,40 +1916,78 @@ "esutils": "2.0.2" } }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "duplexify": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz", + "integrity": "sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==", + "dev": true, + "requires": { + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "stream-shift": "1.0.0" + } + }, "electron-to-chromium": { "version": "1.3.88", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.88.tgz", "integrity": "sha512-UPV4NuQMKeUh1S0OWRvwg0PI8ASHN9kBC8yDTk1ROXLC85W5GnhTRu/MZu3Teqx3JjlQYuckuHYXSUSgtb3J+A==", "dev": true }, + "elliptic": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", + "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.7", + "hmac-drbg": "1.0.1", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1", + "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 }, - "es-abstract": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", - "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "requires": { - "es-to-primitive": "1.2.0", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.4", - "is-regex": "1.0.4" + "once": "1.4.0" } }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "enhanced-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", + "dev": true, + "requires": { + "graceful-fs": "4.1.15", + "memory-fs": "0.4.1", + "tapable": "1.1.1" + } + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "dev": true, "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.2" + "prr": "1.0.1" } }, "escape-string-regexp": { @@ -2061,7 +2032,7 @@ "optionator": "0.8.2", "path-is-inside": "1.0.2", "pluralize": "7.0.0", - "progress": "2.0.2", + "progress": "2.0.3", "regexpp": "2.0.1", "require-uncached": "1.0.3", "semver": "5.6.0", @@ -2157,6 +2128,37 @@ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, + "events": { + "version": "1.1.1", + "resolved": "http://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.5", + "safe-buffer": "5.1.2" + } + }, + "execa": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "dev": true, + "requires": { + "cross-spawn": "6.0.5", + "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" + } + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -2307,6 +2309,12 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", + "dev": true + }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -2350,23 +2358,23 @@ } }, "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.0.0.tgz", + "integrity": "sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==", "dev": true, "requires": { "commondir": "1.0.1", "make-dir": "1.3.0", - "pkg-dir": "2.0.0" + "pkg-dir": "3.0.0" } }, "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "3.0.0" } }, "flat-cache": { @@ -2381,6 +2389,16 @@ "write": "0.2.1" } }, + "flush-write-stream": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", + "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.6" + } + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -2396,12 +2414,34 @@ "map-cache": "0.2.2" } }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.6" + } + }, "fs-readdir-recursive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", "dev": true }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "4.1.15", + "iferr": "0.1.5", + "imurmurhash": "0.1.4", + "readable-stream": "2.3.6" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2937,18 +2977,24 @@ } } }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", @@ -2974,7 +3020,6 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, - "optional": true, "requires": { "is-glob": "3.1.0", "path-dirname": "1.0.2" @@ -2985,13 +3030,18 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, - "optional": true, "requires": { "is-extglob": "2.1.1" } } } }, + "global-modules-path": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/global-modules-path/-/global-modules-path-2.3.1.tgz", + "integrity": "sha512-y+shkf4InI7mPRHSo2b/k6ix6+NLDtyccYv86whhxrSGX9wjPX1VMITmrDbE1eh7zkzhiWtW2sHklJYoQ62Cxg==", + "dev": true + }, "globals": { "version": "11.9.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", @@ -3004,44 +3054,12 @@ "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", "dev": true }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "1.1.1" - } - }, - "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" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } - } - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true - }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -3059,21 +3077,58 @@ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "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.6" - } - } + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "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.6" + } + } + } + }, + "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.2" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" + } + }, + "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.7", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" } }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -3083,18 +3138,46 @@ "safer-buffer": "2.1.2" } }, + "ieee754": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", + "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "3.0.0", + "resolve-cwd": "2.0.0" + } + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -3149,6 +3232,12 @@ } } }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -3158,6 +3247,12 @@ "loose-envify": "1.4.0" } }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", @@ -3183,7 +3278,6 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, - "optional": true, "requires": { "binary-extensions": "1.12.0" } @@ -3194,12 +3288,6 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -3220,12 +3308,6 @@ } } }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true - }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", @@ -3268,7 +3350,6 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, - "optional": true, "requires": { "is-extglob": "2.1.1" } @@ -3314,29 +3395,17 @@ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", "dev": true }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "requires": { - "has": "1.0.3" - } - }, "is-resolvable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", "dev": true }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "dev": true, - "requires": { - "has-symbols": "1.0.0" - } + "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-windows": { "version": "1.0.2", @@ -3390,6 +3459,12 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -3425,6 +3500,15 @@ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "2.0.0" + } + }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -3435,6 +3519,12 @@ "type-check": "0.3.2" } }, + "loader-runner": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.1.tgz", + "integrity": "sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw==", + "dev": true + }, "loader-utils": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", @@ -3455,12 +3545,12 @@ } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "p-locate": "2.0.0", + "p-locate": "3.0.0", "path-exists": "3.0.0" } }, @@ -3474,8 +3564,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true, - "optional": true + "dev": true }, "loose-envify": { "version": "1.4.0", @@ -3486,6 +3575,16 @@ "js-tokens": "4.0.0" } }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, "make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", @@ -3495,6 +3594,15 @@ "pify": "3.0.0" } }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "1.0.0" + } + }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", @@ -3510,6 +3618,38 @@ "object-visit": "1.0.1" } }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "3.0.4", + "inherits": "2.0.3", + "safe-buffer": "5.1.2" + } + }, + "mem": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz", + "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==", + "dev": true, + "requires": { + "map-age-cleaner": "0.1.3", + "mimic-fn": "1.2.0", + "p-is-promise": "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.7", + "readable-stream": "2.3.6" + } + }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -3531,12 +3671,34 @@ "to-regex": "3.0.2" } }, + "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" + } + }, "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "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": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -3552,6 +3714,24 @@ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "1.6.2", + "duplexify": "3.6.1", + "end-of-stream": "1.4.1", + "flush-write-stream": "1.0.3", + "from2": "2.3.0", + "parallel-transform": "1.1.0", + "pump": "3.0.0", + "pumpify": "1.5.1", + "stream-each": "1.2.3", + "through2": "2.0.5" + } + }, "mixin-deep": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", @@ -3582,6 +3762,20 @@ "minimist": "0.0.8" } }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "1.2.0", + "copy-concurrently": "1.0.5", + "fs-write-stream-atomic": "1.0.10", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "run-queue": "1.0.3" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -3626,16 +3820,61 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "neo-async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", + "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", + "dev": true + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "node-libs-browser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "dev": true, + "requires": { + "assert": "1.4.1", + "browserify-zlib": "0.2.0", + "buffer": "4.9.1", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.12.0", + "domain-browser": "1.2.0", + "events": "1.1.1", + "https-browserify": "1.0.0", + "os-browserify": "0.3.0", + "path-browserify": "0.0.0", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "2.3.6", + "stream-browserify": "2.0.1", + "stream-http": "2.8.3", + "string_decoder": "1.1.1", + "timers-browserify": "2.0.10", + "tty-browserify": "0.0.0", + "url": "0.11.0", + "util": "0.10.4", + "vm-browserify": "0.0.4" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, "node-releases": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.0.5.tgz", - "integrity": "sha512-Ky7q0BO1BBkG/rQz6PkEZ59rwo+aSfhczHP1wwq8IowoVdN/FpiP7qp0XW0P2+BVCWe5fQUBozdbVd54q1RbCQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.0.tgz", + "integrity": "sha512-+qV91QMDBvARuPxUEfI/mRF/BY+UAkTIn3pvmvM2iOLIRvv6RNYklFXBgrkky6P1wXUqQW1P3qKlWxxy4JZbfg==", "dev": true, "requires": { "semver": "5.6.0" @@ -3650,6 +3889,21 @@ "remove-trailing-separator": "1.1.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" + } + }, + "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 + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -3687,12 +3941,6 @@ } } }, - "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", - "dev": true - }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", @@ -3702,16 +3950,6 @@ "isobject": "3.0.1" } }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "dev": true, - "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0" - } - }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -3753,6 +3991,23 @@ "wordwrap": "1.0.0" } }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-locale": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz", + "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==", + "dev": true, + "requires": { + "execa": "0.10.0", + "lcid": "2.0.0", + "mem": "4.0.0" + } + }, "os-tmpdir": { "version": "1.0.2", "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -3770,42 +4025,95 @@ "mkdirp": "0.5.1" } }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, + "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-is-promise": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", + "dev": true + }, "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", + "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "2.0.0" } }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "p-limit": "1.3.0" + "p-limit": "2.0.0" } }, "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + }, + "pako": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.7.tgz", + "integrity": "sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ==", "dev": true }, + "parallel-transform": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "dev": true, + "requires": { + "cyclist": "0.2.2", + "inherits": "2.0.3", + "readable-stream": "2.3.6" + } + }, + "parse-asn1": { + "version": "5.1.1", + "resolved": "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", + "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", + "dev": true, + "requires": { + "asn1.js": "4.10.1", + "browserify-aes": "1.2.0", + "create-hash": "1.2.0", + "evp_bytestokey": "1.0.3", + "pbkdf2": "3.0.17" + } + }, "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, + "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-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true, - "optional": true + "dev": true }, "path-exists": { "version": "3.0.0", @@ -3837,6 +4145,19 @@ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, + "pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "dev": true, + "requires": { + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" + } + }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", @@ -3844,12 +4165,12 @@ "dev": true }, "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, "requires": { - "find-up": "2.1.0" + "find-up": "3.0.0" } }, "pluralize": { @@ -3876,31 +4197,131 @@ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", "dev": true }, + "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": "2.0.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true, - "optional": true + "dev": true }, "progress": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.2.tgz", - "integrity": "sha512-/OLz5F9beZUWwSHZDreXgap1XShX6W+DCHQCqwCF7uZ88s6uTlD2cR3JBE77SegCmNtb1Idst+NfmwcdU6KVhw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", "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.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.2.0", + "parse-asn1": "5.1.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "1.4.1", + "once": "1.4.0" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "3.6.1", + "inherits": "2.0.3", + "pump": "2.0.1" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "1.4.1", + "once": "1.4.0" + } + } + } + }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "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 + }, + "randombytes": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "2.0.6", + "safe-buffer": "5.1.2" + } + }, "readable-stream": { "version": "2.3.6", "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, - "optional": true, "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -3916,7 +4337,6 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, - "optional": true, "requires": { "graceful-fs": "4.1.15", "micromatch": "3.1.10", @@ -3936,13 +4356,7 @@ "dev": true, "requires": { "regenerate": "1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true + } }, "regenerator-transform": { "version": "0.13.3", @@ -3970,29 +4384,29 @@ "dev": true }, "regexpu-core": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.2.0.tgz", - "integrity": "sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.4.0.tgz", + "integrity": "sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA==", "dev": true, "requires": { "regenerate": "1.4.0", "regenerate-unicode-properties": "7.0.0", - "regjsgen": "0.4.0", - "regjsparser": "0.3.0", + "regjsgen": "0.5.0", + "regjsparser": "0.6.0", "unicode-match-property-ecmascript": "1.0.4", "unicode-match-property-value-ecmascript": "1.0.2" } }, "regjsgen": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.4.0.tgz", - "integrity": "sha512-X51Lte1gCYUdlwhF28+2YMO0U6WeN0GLpgpA7LK7mbdDnkQYiwvEpmpe0F/cv5L14EbxgrdayAG3JETBv0dbXA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", + "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", "dev": true }, "regjsparser": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.3.0.tgz", - "integrity": "sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", "dev": true, "requires": { "jsesc": "0.5.0" @@ -4024,6 +4438,18 @@ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "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-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 + }, "require-uncached": { "version": "1.0.3", "resolved": "http://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", @@ -4043,6 +4469,23 @@ "path-parse": "1.0.6" } }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, "resolve-from": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", @@ -4080,6 +4523,16 @@ "glob": "7.1.3" } }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "3.0.4", + "inherits": "2.0.3" + } + }, "run-async": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", @@ -4089,6 +4542,15 @@ "is-promise": "2.1.0" } }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "1.2.0" + } + }, "rxjs": { "version": "6.3.3", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", @@ -4119,12 +4581,34 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, + "requires": { + "ajv": "6.6.1", + "ajv-keywords": "3.2.0" + } + }, "semver": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", "dev": true }, + "serialize-javascript": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", + "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", + "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-value": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", @@ -4148,6 +4632,22 @@ } } }, + "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.11", + "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.2" + } + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -4293,6 +4793,12 @@ } } }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -4312,6 +4818,24 @@ "urix": "0.1.0" } }, + "source-map-support": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", + "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", + "dev": true, + "requires": { + "buffer-from": "1.1.1", + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", @@ -4333,6 +4857,15 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "3.5.1" + } + }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -4354,6 +4887,45 @@ } } }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "http://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.6" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "1.4.1", + "stream-shift": "1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "3.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.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 + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -4369,7 +4941,6 @@ "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, - "optional": true, "requires": { "safe-buffer": "5.1.2" } @@ -4383,6 +4954,12 @@ "ansi-regex": "3.0.0" } }, + "strip-eof": { + "version": "1.0.0", + "resolved": "http://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", @@ -4410,6 +4987,72 @@ "string-width": "2.1.1" } }, + "tapable": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz", + "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==", + "dev": true + }, + "terser": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-3.11.0.tgz", + "integrity": "sha512-5iLMdhEPIq3zFWskpmbzmKwMQixKmTYwY3Ox9pjtSklBLnHiuQ0GKJLhL1HSYtyffHM3/lDIFBnb82m9D7ewwQ==", + "dev": true, + "requires": { + "commander": "2.17.1", + "source-map": "0.6.1", + "source-map-support": "0.5.9" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz", + "integrity": "sha512-61lV0DSxMAZ8AyZG7/A4a3UPlrbOBo8NIQ4tJzLPAdGOQ+yoNC7l5ijEow27lBAL2humer01KLS6bGIMYQxKoA==", + "dev": true, + "requires": { + "cacache": "11.3.1", + "find-cache-dir": "2.0.0", + "schema-utils": "1.0.0", + "serialize-javascript": "1.5.0", + "source-map": "0.6.1", + "terser": "3.11.0", + "webpack-sources": "1.3.0", + "worker-farm": "1.6.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "6.6.1", + "ajv-errors": "1.0.0", + "ajv-keywords": "3.2.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -4422,6 +5065,25 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "2.3.6", + "xtend": "4.0.1" + } + }, + "timers-browserify": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "dev": true, + "requires": { + "setimmediate": "1.0.5" + } + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -4431,6 +5093,12 @@ "os-tmpdir": "1.0.2" } }, + "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 + }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -4490,6 +5158,12 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" }, + "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 + }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -4499,6 +5173,12 @@ "prelude-ls": "1.1.2" } }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -4562,6 +5242,24 @@ } } }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "2.0.1" + } + }, + "unique-slug": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", + "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", + "dev": true, + "requires": { + "imurmurhash": "0.1.4" + } + }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", @@ -4606,8 +5304,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", - "dev": true, - "optional": true + "dev": true }, "uri-js": { "version": "4.2.2", @@ -4624,27 +5321,145 @@ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "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 + } + } + }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "v8-compile-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz", + "integrity": "sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw==", + "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, - "optional": true + "requires": { + "indexof": "0.0.1" + } }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "dev": true, + "requires": { + "chokidar": "2.0.4", + "graceful-fs": "4.1.15", + "neo-async": "2.6.0" + } + }, + "webpack": { + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.27.1.tgz", + "integrity": "sha512-WArHiLvHrlfyRM8i7f+2SFbr/XbQ0bXqTkPF8JpHOzub5482Y3wx7rEO8stuLGOKOgZJcqcisLhD7LrM/+fVMw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-module-context": "1.7.11", + "@webassemblyjs/wasm-edit": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11", + "acorn": "5.7.3", + "acorn-dynamic-import": "3.0.0", + "ajv": "6.6.1", + "ajv-keywords": "3.2.0", + "chrome-trace-event": "1.0.0", + "enhanced-resolve": "4.1.0", + "eslint-scope": "4.0.0", + "json-parse-better-errors": "1.0.2", + "loader-runner": "2.3.1", + "loader-utils": "1.1.0", + "memory-fs": "0.4.1", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "neo-async": "2.6.0", + "node-libs-browser": "2.1.0", + "schema-utils": "0.4.7", + "tapable": "1.1.1", + "terser-webpack-plugin": "1.1.0", + "watchpack": "1.6.0", + "webpack-sources": "1.3.0" + }, + "dependencies": { + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + } + } + }, + "webpack-cli": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.1.2.tgz", + "integrity": "sha512-Cnqo7CeqeSvC6PTdts+dywNi5CRlIPbLx1AoUPK2T6vC1YAugMG3IOoO9DmEscd+Dghw7uRlnzV1KwOe5IrtgQ==", + "dev": true, + "requires": { + "chalk": "2.4.1", + "cross-spawn": "6.0.5", + "enhanced-resolve": "4.1.0", + "global-modules-path": "2.3.1", + "import-local": "2.0.0", + "interpret": "1.1.0", + "loader-utils": "1.1.0", + "supports-color": "5.5.0", + "v8-compile-cache": "2.0.2", + "yargs": "12.0.5" + } + }, + "webpack-sources": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", + "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", "dev": true, "requires": { - "define-properties": "1.1.3", - "object.getownpropertydescriptors": "2.0.3" + "source-list-map": "2.0.1", + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "which": { @@ -4656,12 +5471,74 @@ "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 + }, "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true }, + "worker-farm": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", + "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "dev": true, + "requires": { + "errno": "0.1.7" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "http://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": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "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" + } + }, + "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" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + } + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -4676,6 +5553,54 @@ "requires": { "mkdirp": "0.5.1" } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "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": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "3.0.0", + "get-caller-file": "1.0.3", + "os-locale": "3.0.1", + "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": "4.0.0", + "yargs-parser": "11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "requires": { + "camelcase": "5.0.0", + "decamelize": "1.2.0" + } } } } diff --git a/package.json b/package.json index debfd8d..9be43b1 100644 --- a/package.json +++ b/package.json @@ -5,14 +5,15 @@ "main": "./dist/index.js", "repository": "https://github.com/alexayan/sentry-mina.git", "author": "alexayan", - "license": "MIT", + "license": "BSD 3-Clause", "types": "./dist/index.d.ts", "publishConfig": { "access": "public" }, "scripts": { - "build": "eslint ./src && babel ./src --out-dir ./dist", - "clean": "rimraf dist coverage" + "build": "npm run clean && ./node_modules/.bin/eslint ./src && ./node_modules/.bin/babel ./src --out-dir ./dist && ./node_modules/.bin/webpack", + "clean": "rimraf dist coverage browser", + "prepare": "npm run build" }, "dependencies": { "@sentry/core": "4.4.1", @@ -25,6 +26,8 @@ "@babel/preset-env": "^7.2.0", "cross-env": "^5.2.0", "eslint": "^5.9.0", - "rimraf": "^2.6.2" + "rimraf": "^2.6.2", + "webpack": "^4.27.0", + "webpack-cli": "^3.1.2" } } diff --git a/sentry-mina.js b/sentry-mina.js deleted file mode 100644 index e1a2074..0000000 --- a/sentry-mina.js +++ /dev/null @@ -1,6346 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - Object.defineProperty(exports, "MinaBackend", { - enumerable: true, - get: function get() { - return _backend.MinaBackend; - } - }); - Object.defineProperty(exports, "MinaClient", { - enumerable: true, - get: function get() { - return _client.MinaClient; - } - }); - Object.defineProperty(exports, "defaultIntegrations", { - enumerable: true, - get: function get() { - return _sdk.defaultIntegrations; - } - }); - Object.defineProperty(exports, "init", { - enumerable: true, - get: function get() { - return _sdk.init; - } - }); - Object.defineProperty(exports, "lastEventId", { - enumerable: true, - get: function get() { - return _sdk.lastEventId; - } - }); - Object.defineProperty(exports, "showReportDialog", { - enumerable: true, - get: function get() { - return _sdk.showReportDialog; - } - }); - Object.defineProperty(exports, "SDK_NAME", { - enumerable: true, - get: function get() { - return _version.SDK_NAME; - } - }); - Object.defineProperty(exports, "SDK_VERSION", { - enumerable: true, - get: function get() { - return _version.SDK_VERSION; - } - }); - exports.Transports = exports.Integrations = void 0; - - __webpack_require__(1); - - var _backend = __webpack_require__(2); - - var _client = __webpack_require__(44); - - var _sdk = __webpack_require__(46); - - var _version = __webpack_require__(45); - - var _core = __webpack_require__(3); - - var MinaIntegrations = _interopRequireWildcard(__webpack_require__(47)); - - var Transports = _interopRequireWildcard(__webpack_require__(38)); - - exports.Transports = Transports; - - function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } - - function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } - - function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - - const INTEGRATIONS = _objectSpread({}, _core.Integrations, MinaIntegrations); - - exports.Integrations = INTEGRATIONS; - -/***/ }, -/* 1 */ -/***/ function(module, exports) { - - "use strict"; - - // https://github.com/getsentry/sentry-javascript/blob/master/packages/utils/src/misc.ts#L29 - if (typeof window === 'undefined') { - // eslint-disable-next-line - window = { - console: console - }; - } - -/***/ }, -/* 2 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.MinaBackend = void 0; - - __webpack_require__(1); - - var _core = __webpack_require__(3); - - var _types = __webpack_require__(19); - - var _is = __webpack_require__(10); - - var _logger = __webpack_require__(14); - - var _parsers = __webpack_require__(35); - - var _tracekit = __webpack_require__(37); - - var _transports = __webpack_require__(38); - - var _env = __webpack_require__(41); - - function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } - - function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - - function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - - function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - - class MinaBackend extends _core.BaseBackend { - install() { - const dsn = this.options.dsn; - - if (!dsn) { - throw new _core.SentryError('Invariant exception: install() must not be called when disabled'); - } - - Error.stackTraceLimit = 50; - return true; - } - - eventFromException(exception, hint) { - var _this = this; - - return _asyncToGenerator(function* () { - let event; - - if ((0, _is.isErrorEvent)(exception) && exception.error) { - const ex = exception; - exception = ex.error; - event = (0, _parsers.eventFromStacktrace)((0, _tracekit.computeStackTrace)(exception)); - } else if ((0, _is.isError)(exception)) { - event = (0, _parsers.eventFromStacktrace)((0, _tracekit.computeStackTrace)(exception)); - } else if ((0, _is.isPlainObject)(exception) && hint && hint.syntheticException) { - const ex = exception; - event = (0, _parsers.eventFromPlainObject)(ex, hint.syntheticException); - } else { - const ex = exception; - event = yield _this.eventFromMessage(ex, undefined, hint); - } - - event = _objectSpread({}, event, { - event_id: hint && hint.event_id, - exception: _objectSpread({}, event.exception, { - mechanism: { - handled: true, - type: 'generic' - } - }) - }); - return event; - })(); - } - - eventFromMessage(message, level, hint) { - var _this2 = this; - - return _asyncToGenerator(function* () { - const event = { - event_id: hint && hint.event_id, - level, - message - }; - - if (_this2.options.attachStacktrace && hint && hint.syntheticException) { - const stacktrace = (0, _tracekit.computeStackTrace)(hint.syntheticException); - const frames = (0, _parsers.prepareFramesForEvent)(stacktrace.stack); - event.stacktrace = { - frames - }; - } - - return event; - })(); - } - - sendEvent(event) { - var _this3 = this; - - return _asyncToGenerator(function* () { - if (!_this3.options.dsn) { - _logger.logger.warn('Event has been skipped because no Dsn is configured.'); - - return { - status: _types.Status.Skipped, - reason: 'Event has been skipped because no Dsn is configured.' - }; - } - - if (!_this3.transport) { - const transportOptions = _this3.options.transportOptions ? _this3.options.transportOptions : { - dsn: _this3.options.dsn - }; - - if (_this3.options.transport) { - _this3.transport = new _this3.options.transport({ - dsn: _this3.options.dsn - }); - } else if ((0, _env.isWorkerEnabled)(_this3.options)) { - transportOptions.worker = _this3.options.worker; - _this3.transport = new _transports.WorkerTransport(transportOptions); - } else if ((0, _env.supportRequest)()) { - _this3.transport = new _transports.RequestTransport(transportOptions); - } - } - - if (!_this3.transport) { - _logger.logger.warn('Event has been skipped because no transport is configured.'); - - return { - status: _types.Status.Skipped, - reason: 'Event has been skipped because no transport is configured.' - }; - } - - return _this3.transport.captureEvent(event); - })(); - } - - } - - exports.MinaBackend = MinaBackend; - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var minimal_1 = __webpack_require__(4); - exports.addBreadcrumb = minimal_1.addBreadcrumb; - exports.captureException = minimal_1.captureException; - exports.captureEvent = minimal_1.captureEvent; - exports.captureMessage = minimal_1.captureMessage; - exports.configureScope = minimal_1.configureScope; - exports.withScope = minimal_1.withScope; - var hub_1 = __webpack_require__(6); - exports.addGlobalEventProcessor = hub_1.addGlobalEventProcessor; - exports.getCurrentHub = hub_1.getCurrentHub; - exports.Hub = hub_1.Hub; - exports.getHubFromCarrier = hub_1.getHubFromCarrier; - exports.Scope = hub_1.Scope; - var api_1 = __webpack_require__(15); - exports.API = api_1.API; - var baseclient_1 = __webpack_require__(18); - exports.BaseClient = baseclient_1.BaseClient; - var basebackend_1 = __webpack_require__(23); - exports.BaseBackend = basebackend_1.BaseBackend; - var dsn_1 = __webpack_require__(16); - exports.Dsn = dsn_1.Dsn; - var error_1 = __webpack_require__(17); - exports.SentryError = error_1.SentryError; - var requestbuffer_1 = __webpack_require__(24); - exports.RequestBuffer = requestbuffer_1.RequestBuffer; - var interfaces_1 = __webpack_require__(25); - exports.LogLevel = interfaces_1.LogLevel; - var sdk_1 = __webpack_require__(26); - exports.initAndBind = sdk_1.initAndBind; - var Integrations = __webpack_require__(27); - exports.Integrations = Integrations; - //# sourceMappingURL=index.js.map - -/***/ }, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var tslib_1 = __webpack_require__(5); - var hub_1 = __webpack_require__(6); - /** - * This calls a function on the current hub. - * @param method function to call on hub. - * @param args to pass to function. - */ - function callOnHub(method) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - var hub = hub_1.getCurrentHub(); - if (hub && hub[method]) { - // tslint:disable-next-line:no-unsafe-any - return hub[method].apply(hub, tslib_1.__spread(args)); - } - throw new Error("No hub defined or " + method + " was not found on the hub, please open a bug report."); - } - /** - * Captures an exception event and sends it to Sentry. - * - * @param exception An exception-like object. - * @returns The generated eventId. - */ - function captureException(exception) { - var syntheticException; - try { - throw new Error('Sentry syntheticException'); - } - catch (exception) { - syntheticException = exception; - } - return callOnHub('captureException', exception, { - originalException: exception, - syntheticException: syntheticException, - }); - } - exports.captureException = captureException; - /** - * Captures a message event and sends it to Sentry. - * - * @param message The message to send to Sentry. - * @param level Define the level of the message. - * @returns The generated eventId. - */ - function captureMessage(message, level) { - var syntheticException; - try { - throw new Error(message); - } - catch (exception) { - syntheticException = exception; - } - return callOnHub('captureMessage', message, level, { - originalException: message, - syntheticException: syntheticException, - }); - } - exports.captureMessage = captureMessage; - /** - * Captures a manually created event and sends it to Sentry. - * - * @param event The event to send to Sentry. - * @returns The generated eventId. - */ - function captureEvent(event) { - return callOnHub('captureEvent', event); - } - exports.captureEvent = captureEvent; - /** - * Records a new breadcrumb which will be attached to future events. - * - * Breadcrumbs will be added to subsequent events to provide more context on - * user's actions prior to an error or crash. - * - * @param breadcrumb The breadcrumb to record. - */ - function addBreadcrumb(breadcrumb) { - callOnHub('addBreadcrumb', breadcrumb); - } - exports.addBreadcrumb = addBreadcrumb; - /** - * Callback to set context information onto the scope. - * @param callback Callback function that receives Scope. - */ - function configureScope(callback) { - callOnHub('configureScope', callback); - } - exports.configureScope = configureScope; - /** - * Creates a new scope with and executes the given operation within. - * The scope is automatically removed once the operation - * finishes or throws. - * - * This is essentially a convenience function for: - * - * pushScope(); - * callback(); - * popScope(); - * - * @param callback that will be enclosed into push/popScope. - */ - function withScope(callback) { - callOnHub('withScope', callback); - } - exports.withScope = withScope; - /** - * Calls a function on the latest client. Use this with caution, it's meant as - * in "internal" helper so we don't need to expose every possible function in - * the shim. It is not guaranteed that the client actually implements the - * function. - * - * @param method The method to call on the client/client. - * @param args Arguments to pass to the client/fontend. - */ - function _callOnClient(method) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - callOnHub.apply(void 0, tslib_1.__spread(['invokeClient', method], args)); - } - exports._callOnClient = _callOnClient; - //# sourceMappingURL=index.js.map - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(global) {/*! ***************************************************************************** - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 - - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. - - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. - ***************************************************************************** */ - /* global global, define, System, Reflect, Promise */ - var __extends; - var __assign; - var __rest; - var __decorate; - var __param; - var __metadata; - var __awaiter; - var __generator; - var __exportStar; - var __values; - var __read; - var __spread; - var __await; - var __asyncGenerator; - var __asyncDelegator; - var __asyncValues; - var __makeTemplateObject; - var __importStar; - var __importDefault; - (function (factory) { - var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; - if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports) { factory(createExporter(root, createExporter(exports))); }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } - else if (typeof module === "object" && typeof module.exports === "object") { - factory(createExporter(root, createExporter(module.exports))); - } - else { - factory(createExporter(root)); - } - function createExporter(exports, previous) { - if (exports !== root) { - if (typeof Object.create === "function") { - Object.defineProperty(exports, "__esModule", { value: true }); - } - else { - exports.__esModule = true; - } - } - return function (id, v) { return exports[id] = previous ? previous(id, v) : v; }; - } - }) - (function (exporter) { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - - __extends = function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - - __assign = Object.assign || function (t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - - __rest = function (s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) - t[p[i]] = s[p[i]]; - return t; - }; - - __decorate = function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; - }; - - __param = function (paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } - }; - - __metadata = function (metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); - }; - - __awaiter = function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - - __generator = function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } - }; - - __exportStar = function (m, exports) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - }; - - __values = function (o) { - var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; - if (m) return m.call(o); - return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - }; - - __read = function (o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; - }; - - __spread = function () { - for (var ar = [], i = 0; i < arguments.length; i++) - ar = ar.concat(__read(arguments[i])); - return ar; - }; - - __await = function (v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); - }; - - __asyncGenerator = function (thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } - }; - - __asyncDelegator = function (o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } - }; - - __asyncValues = function (o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } - }; - - __makeTemplateObject = function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; - }; - - __importStar = function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; - }; - - __importDefault = function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; - }; - - exporter("__extends", __extends); - exporter("__assign", __assign); - exporter("__rest", __rest); - exporter("__decorate", __decorate); - exporter("__param", __param); - exporter("__metadata", __metadata); - exporter("__awaiter", __awaiter); - exporter("__generator", __generator); - exporter("__exportStar", __exportStar); - exporter("__values", __values); - exporter("__read", __read); - exporter("__spread", __spread); - exporter("__await", __await); - exporter("__asyncGenerator", __asyncGenerator); - exporter("__asyncDelegator", __asyncDelegator); - exporter("__asyncValues", __asyncValues); - exporter("__makeTemplateObject", __makeTemplateObject); - exporter("__importStar", __importStar); - exporter("__importDefault", __importDefault); - }); - - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) - -/***/ }, -/* 6 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var scope_1 = __webpack_require__(7); - exports.addGlobalEventProcessor = scope_1.addGlobalEventProcessor; - exports.Scope = scope_1.Scope; - var hub_1 = __webpack_require__(12); - exports.getCurrentHub = hub_1.getCurrentHub; - exports.getHubFromCarrier = hub_1.getHubFromCarrier; - exports.getMainCarrier = hub_1.getMainCarrier; - exports.Hub = hub_1.Hub; - exports.setHubOnCarrier = hub_1.setHubOnCarrier; - //# sourceMappingURL=index.js.map - -/***/ }, -/* 7 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var tslib_1 = __webpack_require__(5); - var misc_1 = __webpack_require__(8); - var object_1 = __webpack_require__(11); - /** - * Holds additional event information. {@link Scope.applyToEvent} will be - * called by the client before an event will be sent. - */ - var Scope = /** @class */ (function () { - function Scope() { - /** Flag if notifiying is happening. */ - this.notifyingListeners = false; - /** Callback for client to receive scope changes. */ - this.scopeListeners = []; - /** Callback list that will be called after {@link applyToEvent}. */ - this.eventProcessors = []; - /** Array of breadcrumbs. */ - this.breadcrumbs = []; - /** User */ - this.user = {}; - /** Tags */ - this.tags = {}; - /** Extra */ - this.extra = {}; - } - /** Add internal on change listener. */ - Scope.prototype.addScopeListener = function (callback) { - this.scopeListeners.push(callback); - }; - /** Add new event processor that will be called after {@link applyToEvent}. */ - Scope.prototype.addEventProcessor = function (callback) { - this.eventProcessors.push(callback); - return this; - }; - /** - * This will be called on every set call. - */ - Scope.prototype.notifyScopeListeners = function () { - var _this = this; - if (!this.notifyingListeners) { - this.notifyingListeners = true; - setTimeout(function () { - _this.scopeListeners.forEach(function (callback) { - callback(_this); - }); - _this.notifyingListeners = false; - }, 0); - } - }; - /** - * This will be called after {@link applyToEvent} is finished. - */ - Scope.prototype.notifyEventProcessors = function (event, hint) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - var e_1, _a, processedEvent, _b, _c, processor, e_2, e_1_1; - return tslib_1.__generator(this, function (_d) { - switch (_d.label) { - case 0: - processedEvent = event; - _d.label = 1; - case 1: - _d.trys.push([1, 8, 9, 10]); - _b = tslib_1.__values(tslib_1.__spread(getGlobalEventProcessors(), this.eventProcessors)), _c = _b.next(); - _d.label = 2; - case 2: - if (!!_c.done) return [3 /*break*/, 7]; - processor = _c.value; - _d.label = 3; - case 3: - _d.trys.push([3, 5, , 6]); - return [4 /*yield*/, processor(tslib_1.__assign({}, processedEvent), hint)]; - case 4: - processedEvent = _d.sent(); - if (processedEvent === null) { - return [2 /*return*/, null]; - } - return [3 /*break*/, 6]; - case 5: - e_2 = _d.sent(); - return [3 /*break*/, 6]; - case 6: - _c = _b.next(); - return [3 /*break*/, 2]; - case 7: return [3 /*break*/, 10]; - case 8: - e_1_1 = _d.sent(); - e_1 = { error: e_1_1 }; - return [3 /*break*/, 10]; - case 9: - try { - if (_c && !_c.done && (_a = _b.return)) _a.call(_b); - } - finally { if (e_1) throw e_1.error; } - return [7 /*endfinally*/]; - case 10: return [2 /*return*/, processedEvent]; - } - }); - }); - }; - /** - * Updates user context information for future events. - * @param user User context object to merge into current context. - */ - Scope.prototype.setUser = function (user) { - this.user = user; - this.notifyScopeListeners(); - return this; - }; - /** - * Updates tags context information for future events. - * @param tags Tags context object to merge into current context. - */ - Scope.prototype.setTag = function (key, value) { - var _a; - this.tags = tslib_1.__assign({}, this.tags, (_a = {}, _a[key] = value, _a)); - this.notifyScopeListeners(); - return this; - }; - /** - * Updates extra context information for future events. - * @param extra context object to merge into current context. - */ - Scope.prototype.setExtra = function (key, extra) { - var _a; - this.extra = tslib_1.__assign({}, this.extra, (_a = {}, _a[key] = extra, _a)); - this.notifyScopeListeners(); - return this; - }; - /** - * Sets the fingerprint on the scope to send with the events. - * @param fingerprint string[] to group events in Sentry. - */ - Scope.prototype.setFingerprint = function (fingerprint) { - this.fingerprint = fingerprint; - this.notifyScopeListeners(); - return this; - }; - /** - * Sets the level on the scope for future events. - * @param level string {@link Severity} - */ - Scope.prototype.setLevel = function (level) { - this.level = level; - this.notifyScopeListeners(); - return this; - }; - /** - * Inherit values from the parent scope. - * @param scope to clone. - */ - Scope.clone = function (scope) { - var newScope = new Scope(); - object_1.assign(newScope, scope, { - scopeListeners: [], - }); - if (scope) { - newScope.extra = object_1.assign(scope.extra); - newScope.tags = object_1.assign(scope.tags); - newScope.breadcrumbs = tslib_1.__spread(scope.breadcrumbs); - newScope.eventProcessors = tslib_1.__spread(scope.eventProcessors); - } - return newScope; - }; - /** Clears the current scope and resets its properties. */ - Scope.prototype.clear = function () { - this.breadcrumbs = []; - this.tags = {}; - this.extra = {}; - this.user = {}; - this.level = undefined; - this.fingerprint = undefined; - this.notifyScopeListeners(); - }; - /** - * Sets the breadcrumbs in the scope - * @param breadcrumbs Breadcrumb - * @param maxBreadcrumbs number of max breadcrumbs to merged into event. - */ - Scope.prototype.addBreadcrumb = function (breadcrumb, maxBreadcrumbs) { - this.breadcrumbs = - maxBreadcrumbs !== undefined && maxBreadcrumbs >= 0 - ? tslib_1.__spread(this.breadcrumbs, [breadcrumb]).slice(-maxBreadcrumbs) - : tslib_1.__spread(this.breadcrumbs, [breadcrumb]); - this.notifyScopeListeners(); - }; - /** - * Applies fingerprint from the scope to the event if there's one, - * uses message if there's one instead or get rid of empty fingerprint - */ - Scope.prototype.applyFingerprint = function (event) { - // Make sure it's an array first and we actually have something in place - event.fingerprint = event.fingerprint - ? Array.isArray(event.fingerprint) - ? event.fingerprint - : [event.fingerprint] - : []; - // If we have something on the scope, then merge it with event - if (this.fingerprint) { - event.fingerprint = event.fingerprint.concat(this.fingerprint); - } - else if (event.message) { - // If not, but we have message, use it instead - event.fingerprint = event.fingerprint.concat(event.message); - } - // If we have no data at all, remove empty array default - if (event.fingerprint && !event.fingerprint.length) { - delete event.fingerprint; - } - }; - /** - * Applies the current context and fingerprint to the event. - * Note that breadcrumbs will be added by the client. - * Also if the event has already breadcrumbs on it, we do not merge them. - * @param event SentryEvent - * @param hint May contain additional informartion about the original exception. - * @param maxBreadcrumbs number of max breadcrumbs to merged into event. - */ - Scope.prototype.applyToEvent = function (event, hint, maxBreadcrumbs) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - var hasNoBreadcrumbs; - return tslib_1.__generator(this, function (_a) { - if (this.extra && Object.keys(this.extra).length) { - event.extra = tslib_1.__assign({}, this.extra, event.extra); - } - if (this.tags && Object.keys(this.tags).length) { - event.tags = tslib_1.__assign({}, this.tags, event.tags); - } - if (this.user && Object.keys(this.user).length) { - event.user = tslib_1.__assign({}, this.user, event.user); - } - if (this.level) { - event.level = this.level; - } - this.applyFingerprint(event); - hasNoBreadcrumbs = !event.breadcrumbs || event.breadcrumbs.length === 0; - if (hasNoBreadcrumbs && this.breadcrumbs.length > 0) { - event.breadcrumbs = - maxBreadcrumbs !== undefined && maxBreadcrumbs >= 0 - ? this.breadcrumbs.slice(-maxBreadcrumbs) - : this.breadcrumbs; - } - return [2 /*return*/, this.notifyEventProcessors(event, hint)]; - }); - }); - }; - return Scope; - }()); - exports.Scope = Scope; - /** - * Retruns the global event processors. - */ - function getGlobalEventProcessors() { - var global = misc_1.getGlobalObject(); - global.__SENTRY__ = global.__SENTRY__ || {}; - global.__SENTRY__.globalEventProcessors = global.__SENTRY__.globalEventProcessors || []; - return global.__SENTRY__.globalEventProcessors; - } - /** - * Add a EventProcessor to be kept globally. - * @param callback EventProcessor to add - */ - function addGlobalEventProcessor(callback) { - getGlobalEventProcessors().push(callback); - } - exports.addGlobalEventProcessor = addGlobalEventProcessor; - //# sourceMappingURL=scope.js.map - -/***/ }, -/* 8 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(process, global) {"use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var is_1 = __webpack_require__(10); - /** - * Requires a module which is protected against bundler minification. - * - * @param request The module path to resolve - */ - function dynamicRequire(mod, request) { - return mod.require(request); - } - exports.dynamicRequire = dynamicRequire; - /** - * Checks whether we're in the Node.js or Browser environment - * - * @returns Answer to given question - */ - function isNodeEnv() { - // tslint:disable:strict-type-predicates - return Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'; - } - exports.isNodeEnv = isNodeEnv; - /** - * Safely get global scope object - * - * @returns Global scope object - */ - // tslint:disable:strict-type-predicates - function getGlobalObject() { - return isNodeEnv() ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}; - } - exports.getGlobalObject = getGlobalObject; - /** - * UUID4 generator - * - * @returns string Generated UUID4. - */ - function uuid4() { - var global = getGlobalObject(); - var crypto = global.crypto || global.msCrypto; - if (!(crypto === void 0) && crypto.getRandomValues) { - // Use window.crypto API if available - var arr = new Uint16Array(8); - crypto.getRandomValues(arr); - // set 4 in byte 7 - // tslint:disable-next-line:no-bitwise - arr[3] = (arr[3] & 0xfff) | 0x4000; - // set 2 most significant bits of byte 9 to '10' - // tslint:disable-next-line:no-bitwise - arr[4] = (arr[4] & 0x3fff) | 0x8000; - var pad = function (num) { - var v = num.toString(16); - while (v.length < 4) { - v = "0" + v; - } - return v; - }; - return (pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7])); - } - else { - // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523 - return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) { - // tslint:disable-next-line:no-bitwise - var r = (Math.random() * 16) | 0; - // tslint:disable-next-line:no-bitwise - var v = c === 'x' ? r : (r & 0x3) | 0x8; - return v.toString(16); - }); - } - } - exports.uuid4 = uuid4; - /** - * Given a child DOM element, returns a query-selector statement describing that - * and its ancestors - * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz] - * @returns generated DOM path - */ - function htmlTreeAsString(elem) { - var currentElem = elem; - var MAX_TRAVERSE_HEIGHT = 5; - var MAX_OUTPUT_LEN = 80; - var out = []; - var height = 0; - var len = 0; - var separator = ' > '; - var sepLength = separator.length; - var nextStr; - while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) { - nextStr = htmlElementAsString(currentElem); - // bail out if - // - nextStr is the 'html' element - // - the length of the string that would be created exceeds MAX_OUTPUT_LEN - // (ignore this limit if we are on the first iteration) - if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) { - break; - } - out.push(nextStr); - len += nextStr.length; - currentElem = currentElem.parentNode; - } - return out.reverse().join(separator); - } - exports.htmlTreeAsString = htmlTreeAsString; - /** - * Returns a simple, query-selector representation of a DOM element - * e.g. [HTMLElement] => input#foo.btn[name=baz] - * @returns generated DOM path - */ - function htmlElementAsString(elem) { - var out = []; - var className; - var classes; - var key; - var attr; - var i; - if (!elem || !elem.tagName) { - return ''; - } - out.push(elem.tagName.toLowerCase()); - if (elem.id) { - out.push("#" + elem.id); - } - className = elem.className; - if (className && is_1.isString(className)) { - classes = className.split(/\s+/); - for (i = 0; i < classes.length; i++) { - out.push("." + classes[i]); - } - } - var attrWhitelist = ['type', 'name', 'title', 'alt']; - for (i = 0; i < attrWhitelist.length; i++) { - key = attrWhitelist[i]; - attr = elem.getAttribute(key); - if (attr) { - out.push("[" + key + "=\"" + attr + "\"]"); - } - } - return out.join(''); - } - exports.htmlElementAsString = htmlElementAsString; - /** - * Parses string form of URL into an object - * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B - * // intentionally using regex and not href parsing trick because React Native and other - * // environments where DOM might not be available - * @returns parsed URL object - */ - function parseUrl(url) { - if (!url) { - return {}; - } - var match = url.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/); - if (!match) { - return {}; - } - // coerce to undefined values to empty string so we don't get 'undefined' - var query = match[6] || ''; - var fragment = match[8] || ''; - return { - host: match[4], - path: match[5], - protocol: match[2], - relative: match[5] + query + fragment, - }; - } - exports.parseUrl = parseUrl; - /** - * Extracts either message or type+value from an event that can be used for user-facing logs - * @returns event's description - */ - function getEventDescription(event) { - if (event.message) { - return event.message; - } - else if (event.exception && event.exception.values && event.exception.values[0]) { - var exception = event.exception.values[0]; - if (exception.type && exception.value) { - return exception.type + ": " + exception.value; - } - else { - return exception.type || exception.value || event.event_id || ''; - } - } - else { - return event.event_id || ''; - } - } - exports.getEventDescription = getEventDescription; - /** JSDoc */ - function consoleSandbox(callback) { - var global = getGlobalObject(); - var levels = ['debug', 'info', 'warn', 'error', 'log']; - if (!('console' in global)) { - return callback(); - } - var originalConsole = global.console; - var wrappedLevels = {}; - // Restore all wrapped console methods - levels.forEach(function (level) { - if (level in global.console && originalConsole[level].__sentry__) { - wrappedLevels[level] = originalConsole[level].__sentry_wrapped__; - originalConsole[level] = originalConsole[level].__sentry_original__; - } - }); - // Perform callback manipulations - var result = callback(); - // Revert restoration to wrapped state - Object.keys(wrappedLevels).forEach(function (level) { - originalConsole[level] = wrappedLevels[level]; - }); - return result; - } - exports.consoleSandbox = consoleSandbox; - //# sourceMappingURL=misc.js.map - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(9), (function() { return this; }()))) - -/***/ }, -/* 9 */ -/***/ function(module, exports) { - - // shim for using process in browser - - var process = module.exports = {}; - var queue = []; - var draining = false; - var currentQueue; - var queueIndex = -1; - - function cleanUpNextTick() { - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } - } - - function drainQueue() { - if (draining) { - return; - } - var timeout = setTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - clearTimeout(timeout); - } - - process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - setTimeout(drainQueue, 0); - } - }; - - // v8 likes predictible objects - function Item(fun, array) { - this.fun = fun; - this.array = array; - } - Item.prototype.run = function () { - this.fun.apply(null, this.array); - }; - process.title = 'browser'; - process.browser = true; - process.env = {}; - process.argv = []; - process.version = ''; // empty string to avoid regexp issues - process.versions = {}; - - function noop() {} - - process.on = noop; - process.addListener = noop; - process.once = noop; - process.off = noop; - process.removeListener = noop; - process.removeAllListeners = noop; - process.emit = noop; - - process.binding = function (name) { - throw new Error('process.binding is not supported'); - }; - - process.cwd = function () { return '/' }; - process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); - }; - process.umask = function() { return 0; }; - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Checks whether given value's type is one of a few Error or Error-like - * {@link isError}. - * - * @param wat A value to be checked. - * @returns A boolean representing the result. - */ - function isError(wat) { - switch (Object.prototype.toString.call(wat)) { - case '[object Error]': - return true; - case '[object Exception]': - return true; - case '[object DOMException]': - return true; - default: - return wat instanceof Error; - } - } - exports.isError = isError; - /** - * Checks whether given value's type is ErrorEvent - * {@link isErrorEvent}. - * - * @param wat A value to be checked. - * @returns A boolean representing the result. - */ - function isErrorEvent(wat) { - return Object.prototype.toString.call(wat) === '[object ErrorEvent]'; - } - exports.isErrorEvent = isErrorEvent; - /** - * Checks whether given value's type is DOMError - * {@link isDOMError}. - * - * @param wat A value to be checked. - * @returns A boolean representing the result. - */ - function isDOMError(wat) { - return Object.prototype.toString.call(wat) === '[object DOMError]'; - } - exports.isDOMError = isDOMError; - /** - * Checks whether given value's type is DOMException - * {@link isDOMException}. - * - * @param wat A value to be checked. - * @returns A boolean representing the result. - */ - function isDOMException(wat) { - return Object.prototype.toString.call(wat) === '[object DOMException]'; - } - exports.isDOMException = isDOMException; - /** - * Checks whether given value's type is an undefined - * {@link isUndefined}. - * - * @param wat A value to be checked. - * @returns A boolean representing the result. - */ - function isUndefined(wat) { - return wat === void 0; - } - exports.isUndefined = isUndefined; - /** - * Checks whether given value's type is a function - * {@link isFunction}. - * - * @param wat A value to be checked. - * @returns A boolean representing the result. - */ - function isFunction(wat) { - return typeof wat === 'function'; - } - exports.isFunction = isFunction; - /** - * Checks whether given value's type is a string - * {@link isString}. - * - * @param wat A value to be checked. - * @returns A boolean representing the result. - */ - function isString(wat) { - return Object.prototype.toString.call(wat) === '[object String]'; - } - exports.isString = isString; - /** - * Checks whether given value's type is an array - * {@link isArray}. - * - * @param wat A value to be checked. - * @returns A boolean representing the result. - */ - function isArray(wat) { - return Object.prototype.toString.call(wat) === '[object Array]'; - } - exports.isArray = isArray; - /** - * Checks whether given value's type is an object literal - * {@link isPlainObject}. - * - * @param wat A value to be checked. - * @returns A boolean representing the result. - */ - function isPlainObject(wat) { - return Object.prototype.toString.call(wat) === '[object Object]'; - } - exports.isPlainObject = isPlainObject; - /** - * Checks whether given value's type is an regexp - * {@link isRegExp}. - * - * @param wat A value to be checked. - * @returns A boolean representing the result. - */ - function isRegExp(wat) { - return Object.prototype.toString.call(wat) === '[object RegExp]'; - } - exports.isRegExp = isRegExp; - /** - * Checks whether given value's type is a NaN - * {@link isNaN}. - * - * @param wat A value to be checked. - * @returns A boolean representing the result. - */ - function isNaN(wat) { - return wat !== wat; - } - exports.isNaN = isNaN; - //# sourceMappingURL=is.js.map - -/***/ }, -/* 11 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var is_1 = __webpack_require__(10); - /** - * Transforms Error object into an object literal with all it's attributes - * attached to it. - * - * Based on: https://github.com/ftlabs/js-abbreviate/blob/fa709e5f139e7770a71827b1893f22418097fbda/index.js#L95-L106 - * - * @param error An Error containing all relevant information - * @returns An object with all error properties - */ - function objectifyError(error) { - // These properties are implemented as magical getters and don't show up in `for-in` loop - var err = { - message: error.message, - name: error.name, - stack: error.stack, - }; - for (var i in error) { - if (Object.prototype.hasOwnProperty.call(error, i)) { - err[i] = error[i]; - } - } - return err; - } - var NAN_VALUE = '[NaN]'; - var UNDEFINED_VALUE = '[undefined]'; - /** - * Serializer function used as 2nd argument to JSON.serialize in `serialize()` util function. - */ - function serializer() { - var stack = []; - var keys = []; - var cycleReplacer = function (_, value) { - if (stack[0] === value) { - return '[Circular ~]'; - } - return "[Circular ~." + keys.slice(0, stack.indexOf(value)).join('.') + "]"; - }; - return function (key, value) { - var currentValue = value; - // NaN and undefined are not JSON.parseable, but we want to preserve this information - if (is_1.isNaN(value)) { - currentValue = NAN_VALUE; - } - else if (is_1.isUndefined(value)) { - currentValue = UNDEFINED_VALUE; - } - if (stack.length > 0) { - var thisPos = stack.indexOf(this); - if (thisPos !== -1) { - stack.splice(thisPos + 1); - keys.splice(thisPos, Infinity, key); - } - else { - stack.push(this); - keys.push(key); - } - if (stack.indexOf(currentValue) !== -1) { - currentValue = cycleReplacer.call(this, key, currentValue); - } - } - else { - stack.push(currentValue); - } - return currentValue instanceof Error ? objectifyError(currentValue) : currentValue; - }; - } - /** - * Reviver function used as 2nd argument to JSON.parse in `deserialize()` util function. - */ - function reviver(_key, value) { - // NaN and undefined are not JSON.parseable, but we want to preserve this information - if (value === NAN_VALUE) { - return NaN; - } - if (value === UNDEFINED_VALUE) { - return undefined; - } - return value; - } - /** - * Serializes the given object into a string. - * Like JSON.stringify, but doesn't throw on circular references. - * Based on a `json-stringify-safe` package and modified to handle Errors serialization. - * - * The object must be serializable, i.e.: - * - Only primitive types are allowed (object, array, number, string, boolean) - * - Its depth should be considerably low for performance reasons - * - * @param object A JSON-serializable object. - * @returns A string containing the serialized object. - */ - function serialize(object) { - return JSON.stringify(object, serializer()); - } - exports.serialize = serialize; - /** - * Deserializes an object from a string previously serialized with - * {@link serialize}. - * - * @param str A serialized object. - * @returns The deserialized object. - */ - function deserialize(str) { - return JSON.parse(str, reviver); - } - exports.deserialize = deserialize; - /** - * Creates a deep copy of the given object. - * - * The object must be serializable, i.e.: - * - It must not contain any cycles - * - Only primitive types are allowed (object, array, number, string, boolean) - * - Its depth should be considerably low for performance reasons - * - * @param object A JSON-serializable object. - * @returns The object clone. - */ - function clone(object) { - return deserialize(serialize(object)); - } - exports.clone = clone; - /** - * Wrap a given object method with a higher-order function - * - * @param source An object that contains a method to be wrapped. - * @param name A name of method to be wrapped. - * @param replacement A function that should be used to wrap a given method. - * @returns void - */ - function fill(source, name, replacement) { - if (!(name in source) || source[name].__sentry__) { - return; - } - var original = source[name]; - var wrapped = replacement(original); - wrapped.__sentry__ = true; - wrapped.__sentry_original__ = original; - wrapped.__sentry_wrapped__ = wrapped; - source[name] = wrapped; - } - exports.fill = fill; - /** - * Encodes given object into url-friendly format - * - * @param object An object that contains serializable values - * @returns string Encoded - */ - function urlEncode(object) { - return Object.keys(object) - .map( - // tslint:disable-next-line:no-unsafe-any - function (key) { return encodeURIComponent(key) + "=" + encodeURIComponent(object[key]); }) - .join('&'); - } - exports.urlEncode = urlEncode; - // Default Node.js REPL depth - var MAX_SERIALIZE_EXCEPTION_DEPTH = 3; - // 100kB, as 200kB is max payload size, so half sounds reasonable - var MAX_SERIALIZE_EXCEPTION_SIZE = 100 * 1024; - var MAX_SERIALIZE_KEYS_LENGTH = 40; - /** JSDoc */ - function utf8Length(value) { - // tslint:disable-next-line:no-bitwise - return ~-encodeURI(value).split(/%..|./).length; - } - /** JSDoc */ - function jsonSize(value) { - return utf8Length(JSON.stringify(value)); - } - /** JSDoc */ - function serializeValue(value) { - var maxLength = 40; - if (typeof value === 'string') { - return value.length <= maxLength ? value : value.substr(0, maxLength - 1) + "\u2026"; - } - else if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'undefined') { - return value; - } - else if (is_1.isNaN(value)) { - // NaN and undefined are not JSON.parseable, but we want to preserve this information - return '[NaN]'; - } - else if (is_1.isUndefined(value)) { - return '[undefined]'; - } - var type = Object.prototype.toString.call(value); - // Node.js REPL notation - if (type === '[object Object]') { - return '[Object]'; - } - if (type === '[object Array]') { - return '[Array]'; - } - if (type === '[object Function]') { - var name_1 = value.name; - return name_1 ? "[Function: " + name_1 + "]" : '[Function]'; - } - return value; - } - /** JSDoc */ - function serializeObject(value, depth) { - if (depth === 0) { - return serializeValue(value); - } - if (is_1.isPlainObject(value)) { - var serialized_1 = {}; - var val_1 = value; - Object.keys(val_1).forEach(function (key) { - serialized_1[key] = serializeObject(val_1[key], depth - 1); - }); - return serialized_1; - } - else if (Array.isArray(value)) { - var val = value; - return val.map(function (v) { return serializeObject(v, depth - 1); }); - } - return serializeValue(value); - } - exports.serializeObject = serializeObject; - /** JSDoc */ - function limitObjectDepthToSize(object, depth, maxSize) { - if (depth === void 0) { depth = MAX_SERIALIZE_EXCEPTION_DEPTH; } - if (maxSize === void 0) { maxSize = MAX_SERIALIZE_EXCEPTION_SIZE; } - var serialized = serializeObject(object, depth); - if (jsonSize(serialize(serialized)) > maxSize) { - return limitObjectDepthToSize(object, depth - 1); - } - return serialized; - } - exports.limitObjectDepthToSize = limitObjectDepthToSize; - /** JSDoc */ - function serializeKeysToEventMessage(keys, maxLength) { - if (maxLength === void 0) { maxLength = MAX_SERIALIZE_KEYS_LENGTH; } - if (!keys.length) { - return '[object has no keys]'; - } - if (keys[0].length >= maxLength) { - return keys[0]; - } - for (var includedKeys = keys.length; includedKeys > 0; includedKeys--) { - var serialized = keys.slice(0, includedKeys).join(', '); - if (serialized.length > maxLength) { - continue; - } - if (includedKeys === keys.length) { - return serialized; - } - return serialized + "\u2026"; - } - return ''; - } - exports.serializeKeysToEventMessage = serializeKeysToEventMessage; - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Polyfill - /** JSDoc */ - function assign(target) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - if (target === null || target === undefined) { - throw new TypeError('Cannot convert undefined or null to object'); - } - var to = Object(target); - // tslint:disable-next-line - for (var i = 0; i < args.length; i++) { - var source = args[i]; - if (source !== null) { - for (var nextKey in source) { - if (Object.prototype.hasOwnProperty.call(source, nextKey)) { - to[nextKey] = source[nextKey]; - } - } - } - } - return to; - } - exports.assign = assign; - //# sourceMappingURL=object.js.map - -/***/ }, -/* 12 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(module) {"use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var tslib_1 = __webpack_require__(5); - var logger_1 = __webpack_require__(14); - var misc_1 = __webpack_require__(8); - var scope_1 = __webpack_require__(7); - /** - * API compatibility version of this hub. - * - * WARNING: This number should only be incresed when the global interface - * changes a and new methods are introduced. - */ - exports.API_VERSION = 3; - /** - * Internal class used to make sure we always have the latest internal functions - * working in case we have a version conflict. - */ - var Hub = /** @class */ (function () { - /** - * Creates a new instance of the hub, will push one {@link Layer} into the - * internal stack on creation. - * - * @param client bound to the hub. - * @param scope bound to the hub. - * @param version number, higher number means higher priority. - */ - function Hub(client, scope, version) { - if (scope === void 0) { scope = new scope_1.Scope(); } - if (version === void 0) { version = exports.API_VERSION; } - this.version = version; - /** Is a {@link Layer}[] containing the client and scope */ - this.stack = []; - this.stack.push({ client: client, scope: scope }); - } - /** - * Internal helper function to call a method on the top client if it exists. - * - * @param method The method to call on the client/client. - * @param args Arguments to pass to the client/frontend. - */ - Hub.prototype.invokeClient = function (method) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - var _a; - var top = this.getStackTop(); - if (top && top.client && top.client[method]) { - (_a = top.client)[method].apply(_a, tslib_1.__spread(args, [top.scope])); - } - }; - /** - * Internal helper function to call an async method on the top client if it - * exists. - * - * @param method The method to call on the client/client. - * @param args Arguments to pass to the client/frontend. - */ - Hub.prototype.invokeClientAsync = function (method) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - var _a; - var top = this.getStackTop(); - if (top && top.client && top.client[method]) { - (_a = top.client)[method].apply(_a, tslib_1.__spread(args, [top.scope])).catch(function (err) { - logger_1.logger.error(err); - }); - } - }; - /** - * Checks if this hub's version is older than the given version. - * - * @param version A version number to compare to. - * @return True if the given version is newer; otherwise false. - */ - Hub.prototype.isOlderThan = function (version) { - return this.version < version; - }; - /** - * This binds the given client to the current scope. - * @param client An SDK client (client) instance. - */ - Hub.prototype.bindClient = function (client) { - var top = this.getStackTop(); - top.client = client; - if (top && top.scope && client) { - top.scope.addScopeListener(function (s) { - if (client.getBackend) { - try { - client.getBackend().storeScope(s); - } - catch (_a) { - // Do nothing - } - } - }); - } - }; - /** - * Create a new scope to store context information. - * - * The scope will be layered on top of the current one. It is isolated, i.e. all - * breadcrumbs and context information added to this scope will be removed once - * the scope ends. Be sure to always remove this scope with {@link this.popScope} - * when the operation finishes or throws. - * - * @returns Scope, the new cloned scope - */ - Hub.prototype.pushScope = function () { - // We want to clone the content of prev scope - var stack = this.getStack(); - var parentScope = stack.length > 0 ? stack[stack.length - 1].scope : undefined; - var scope = scope_1.Scope.clone(parentScope); - this.getStack().push({ - client: this.getClient(), - scope: scope, - }); - return scope; - }; - /** - * Removes a previously pushed scope from the stack. - * - * This restores the state before the scope was pushed. All breadcrumbs and - * context information added since the last call to {@link this.pushScope} are - * discarded. - */ - Hub.prototype.popScope = function () { - return this.getStack().pop() !== undefined; - }; - /** - * Creates a new scope with and executes the given operation within. - * The scope is automatically removed once the operation - * finishes or throws. - * - * This is essentially a convenience function for: - * - * pushScope(); - * callback(); - * popScope(); - * - * @param callback that will be enclosed into push/popScope. - */ - Hub.prototype.withScope = function (callback) { - var scope = this.pushScope(); - try { - callback(scope); - } - finally { - this.popScope(); - } - }; - /** Returns the client of the top stack. */ - Hub.prototype.getClient = function () { - return this.getStackTop().client; - }; - /** Returns the scope of the top stack. */ - Hub.prototype.getScope = function () { - return this.getStackTop().scope; - }; - /** Returns the scope stack for domains or the process. */ - Hub.prototype.getStack = function () { - return this.stack; - }; - /** Returns the topmost scope layer in the order domain > local > process. */ - Hub.prototype.getStackTop = function () { - return this.stack[this.stack.length - 1]; - }; - /** - * Captures an exception event and sends it to Sentry. - * - * @param exception An exception-like object. - * @param hint May contain additional information about the original exception. - * @returns The generated eventId. - */ - Hub.prototype.captureException = function (exception, hint) { - var eventId = (this._lastEventId = misc_1.uuid4()); - this.invokeClientAsync('captureException', exception, tslib_1.__assign({}, hint, { event_id: eventId })); - return eventId; - }; - /** - * Captures a message event and sends it to Sentry. - * - * @param message The message to send to Sentry. - * @param level Define the level of the message. - * @param hint May contain additional information about the original exception. - * @returns The generated eventId. - */ - Hub.prototype.captureMessage = function (message, level, hint) { - var eventId = (this._lastEventId = misc_1.uuid4()); - this.invokeClientAsync('captureMessage', message, level, tslib_1.__assign({}, hint, { event_id: eventId })); - return eventId; - }; - /** - * Captures a manually created event and sends it to Sentry. - * - * @param event The event to send to Sentry. - * @param hint May contain additional information about the original exception. - */ - Hub.prototype.captureEvent = function (event, hint) { - var eventId = (this._lastEventId = misc_1.uuid4()); - this.invokeClientAsync('captureEvent', event, tslib_1.__assign({}, hint, { event_id: eventId })); - return eventId; - }; - /** - * This is the getter for lastEventId. - * - * @returns The last event id of a captured event. - */ - Hub.prototype.lastEventId = function () { - return this._lastEventId; - }; - /** - * Records a new breadcrumb which will be attached to future events. - * - * Breadcrumbs will be added to subsequent events to provide more context on - * user's actions prior to an error or crash. - * - * @param breadcrumb The breadcrumb to record. - * @param hint May contain additional information about the original breadcrumb. - */ - Hub.prototype.addBreadcrumb = function (breadcrumb, hint) { - this.invokeClient('addBreadcrumb', breadcrumb, tslib_1.__assign({}, hint)); - }; - /** - * Callback to set context information onto the scope. - * - * @param callback Callback function that receives Scope. - */ - Hub.prototype.configureScope = function (callback) { - var top = this.getStackTop(); - if (top.scope && top.client) { - // TODO: freeze flag - callback(top.scope); - } - }; - /** - * For the duraction of the callback, this hub will be set as the global current Hub. - * This function is useful if you want to run your own client and hook into an already initialized one - * e.g.: Reporting issues to your own sentry when running in your component while still using the users configuration. - */ - Hub.prototype.run = function (callback) { - var oldHub = makeMain(this); - try { - callback(this); - } - finally { - makeMain(oldHub); - } - }; - /** Returns the integration if installed on the current client. */ - Hub.prototype.getIntegration = function (integration) { - try { - return this.getClient().getIntegration(integration); - } - catch (_oO) { - logger_1.logger.warn("Cannot retrieve integration " + integration.id + " from the current Hub"); - return null; - } - }; - return Hub; - }()); - exports.Hub = Hub; - /** Returns the global shim registry. */ - function getMainCarrier() { - var carrier = misc_1.getGlobalObject(); - carrier.__SENTRY__ = carrier.__SENTRY__ || { - hub: undefined, - }; - return carrier; - } - exports.getMainCarrier = getMainCarrier; - /** - * Replaces the current main hub with the passed one on the global object - * - * @returns The old replaced hub - */ - function makeMain(hub) { - var registry = getMainCarrier(); - var oldHub = getHubFromCarrier(registry); - setHubOnCarrier(registry, hub); - return oldHub; - } - exports.makeMain = makeMain; - /** - * Returns the default hub instance. - * - * If a hub is already registered in the global carrier but this module - * contains a more recent version, it replaces the registered version. - * Otherwise, the currently registered hub will be returned. - */ - function getCurrentHub() { - // Get main carrier (global for every environment) - var registry = getMainCarrier(); - // If there's no hub, or its an old API, assign a new one - if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(exports.API_VERSION)) { - setHubOnCarrier(registry, new Hub()); - } - // Prefer domains over global if they are there - try { - // We need to use `dynamicRequire` because `require` on it's own will be optimized by webpack. - // We do not want this to happen, we need to try to `require` the domain node module and fail if we are in browser - // for example so we do not have to shim it and use `getCurrentHub` universally. - var domain = misc_1.dynamicRequire(module, 'domain'); - var activeDomain = domain.active; - // If there no active domain, just return global hub - if (!activeDomain) { - return getHubFromCarrier(registry); - } - // If there's no hub on current domain, or its an old API, assign a new one - if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(exports.API_VERSION)) { - var registryHubTopStack = getHubFromCarrier(registry).getStackTop(); - setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, scope_1.Scope.clone(registryHubTopStack.scope))); - } - // Return hub that lives on a domain - return getHubFromCarrier(activeDomain); - } - catch (_Oo) { - // Return hub that lives on a global object - return getHubFromCarrier(registry); - } - } - exports.getCurrentHub = getCurrentHub; - /** - * This will tell whether a carrier has a hub on it or not - * @param carrier object - */ - function hasHubOnCarrier(carrier) { - if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub) { - return true; - } - else { - return false; - } - } - exports.hasHubOnCarrier = hasHubOnCarrier; - /** - * This will create a new {@link Hub} and add to the passed object on - * __SENTRY__.hub. - * @param carrier object - */ - function getHubFromCarrier(carrier) { - if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub) { - return carrier.__SENTRY__.hub; - } - else { - carrier.__SENTRY__ = {}; - carrier.__SENTRY__.hub = new Hub(); - return carrier.__SENTRY__.hub; - } - } - exports.getHubFromCarrier = getHubFromCarrier; - /** - * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute - * @param carrier object - * @param hub Hub - */ - function setHubOnCarrier(carrier, hub) { - if (!carrier) { - return false; - } - carrier.__SENTRY__ = carrier.__SENTRY__ || {}; - carrier.__SENTRY__.hub = hub; - return true; - } - exports.setHubOnCarrier = setHubOnCarrier; - //# sourceMappingURL=hub.js.map - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(13)(module))) - -/***/ }, -/* 13 */ -/***/ function(module, exports) { - - module.exports = function(module) { - if(!module.webpackPolyfill) { - module.deprecate = function() {}; - module.paths = []; - // module.parent = undefined by default - module.children = []; - module.webpackPolyfill = 1; - } - return module; - } - - -/***/ }, -/* 14 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var misc_1 = __webpack_require__(8); - // TODO: Implement different loggers for different environments - var global = misc_1.getGlobalObject(); - /** JSDoc */ - var Logger = /** @class */ (function () { - /** JSDoc */ - function Logger() { - this.enabled = false; - } - /** JSDoc */ - Logger.prototype.disable = function () { - this.enabled = false; - }; - /** JSDoc */ - Logger.prototype.enable = function () { - this.enabled = true; - }; - /** JSDoc */ - Logger.prototype.log = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - if (!this.enabled) { - return; - } - misc_1.consoleSandbox(function () { - global.console.log("Sentry Logger [Log]: " + args.join(' ')); // tslint:disable-line:no-console - }); - }; - /** JSDoc */ - Logger.prototype.warn = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - if (!this.enabled) { - return; - } - misc_1.consoleSandbox(function () { - global.console.warn("Sentry Logger [Warn]: " + args.join(' ')); // tslint:disable-line:no-console - }); - }; - /** JSDoc */ - Logger.prototype.error = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - if (!this.enabled) { - return; - } - misc_1.consoleSandbox(function () { - global.console.error("Sentry Logger [Error]: " + args.join(' ')); // tslint:disable-line:no-console - }); - }; - return Logger; - }()); - var logger = new Logger(); - exports.logger = logger; - //# sourceMappingURL=logger.js.map - -/***/ }, -/* 15 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var object_1 = __webpack_require__(11); - var dsn_1 = __webpack_require__(16); - var SENTRY_API_VERSION = '7'; - /** Helper class to provide urls to different Sentry endpoints. */ - var API = /** @class */ (function () { - /** Create a new instance of API */ - function API(dsn) { - this.dsn = dsn; - this.dsnObject = new dsn_1.Dsn(dsn); - } - /** Returns the Dsn object. */ - API.prototype.getDsn = function () { - return this.dsnObject; - }; - /** Returns a string with auth headers in the url to the store endpoint. */ - API.prototype.getStoreEndpoint = function () { - return "" + this.getBaseUrl() + this.getStoreEndpointPath(); - }; - /** Returns the store endpoint with auth added in url encoded. */ - API.prototype.getStoreEndpointWithUrlEncodedAuth = function () { - var dsn = this.dsnObject; - var auth = { - sentry_key: dsn.user, - sentry_version: SENTRY_API_VERSION, - }; - // Auth is intentionally sent as part of query string (NOT as custom HTTP header) - // to avoid preflight CORS requests - return this.getStoreEndpoint() + "?" + object_1.urlEncode(auth); - }; - /** Returns the base path of the url including the port. */ - API.prototype.getBaseUrl = function () { - var dsn = this.dsnObject; - var protocol = dsn.protocol ? dsn.protocol + ":" : ''; - var port = dsn.port ? ":" + dsn.port : ''; - return protocol + "//" + dsn.host + port; - }; - /** Returns only the path component for the store endpoint. */ - API.prototype.getStoreEndpointPath = function () { - var dsn = this.dsnObject; - return (dsn.path ? "/" + dsn.path : '') + "/api/" + dsn.projectId + "/store/"; - }; - /** Returns an object that can be used in request headers. */ - API.prototype.getRequestHeaders = function (clientName, clientVersion) { - var dsn = this.dsnObject; - var header = ["Sentry sentry_version=" + SENTRY_API_VERSION]; - header.push("sentry_timestamp=" + new Date().getTime()); - header.push("sentry_client=" + clientName + "/" + clientVersion); - header.push("sentry_key=" + dsn.user); - if (dsn.pass) { - header.push("sentry_secret=" + dsn.pass); - } - return { - 'Content-Type': 'application/json', - 'X-Sentry-Auth': header.join(', '), - }; - }; - /** Returns the url to the report dialog endpoint. */ - API.prototype.getReportDialogEndpoint = function (dialogOptions) { - if (dialogOptions === void 0) { dialogOptions = {}; } - var dsn = this.dsnObject; - var endpoint = "" + this.getBaseUrl() + (dsn.path ? "/" + dsn.path : '') + "/api/embed/error-page/"; - var encodedOptions = []; - encodedOptions.push("dsn=" + dsn.toString()); - for (var key in dialogOptions) { - if (key === 'user') { - if (!dialogOptions.user) { - continue; - } - if (dialogOptions.user.name) { - encodedOptions.push("name=" + encodeURIComponent(dialogOptions.user.name)); - } - if (dialogOptions.user.email) { - encodedOptions.push("email=" + encodeURIComponent(dialogOptions.user.email)); - } - } - else { - encodedOptions.push(encodeURIComponent(key) + "=" + encodeURIComponent(dialogOptions[key])); - } - } - if (encodedOptions.length) { - return endpoint + "?" + encodedOptions.join('&'); - } - return endpoint; - }; - return API; - }()); - exports.API = API; - //# sourceMappingURL=api.js.map - -/***/ }, -/* 16 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var tslib_1 = __webpack_require__(5); - var is_1 = __webpack_require__(10); - var object_1 = __webpack_require__(11); - var error_1 = __webpack_require__(17); - /** Regular expression used to parse a Dsn. */ - var DSN_REGEX = /^(?:(\w+):)\/\/(?:(\w+)(?::(\w+))?@)([\w\.-]+)(?::(\d+))?\/(.+)/; - /** The Sentry Dsn, identifying a Sentry instance and project. */ - var Dsn = /** @class */ (function () { - /** Creates a new Dsn component */ - function Dsn(from) { - if (typeof from === 'string') { - this.fromString(from); - } - else { - this.fromComponents(from); - } - this.validate(); - } - /** - * Renders the string representation of this Dsn. - * - * By default, this will render the public representation without the password - * component. To get the deprecated private representation, set `withPassword` - * to true. - * - * @param withPassword When set to true, the password will be included. - */ - Dsn.prototype.toString = function (withPassword) { - if (withPassword === void 0) { withPassword = false; } - // tslint:disable-next-line:no-this-assignment - var _a = this, host = _a.host, path = _a.path, pass = _a.pass, port = _a.port, projectId = _a.projectId, protocol = _a.protocol, user = _a.user; - return (protocol + "://" + user + (withPassword && pass ? ":" + pass : '') + - ("@" + host + (port ? ":" + port : '') + "/" + (path ? path + "/" : path) + projectId)); - }; - /** Parses a string into this Dsn. */ - Dsn.prototype.fromString = function (str) { - var match = DSN_REGEX.exec(str); - if (!match) { - throw new error_1.SentryError('Invalid Dsn'); - } - var _a = tslib_1.__read(match.slice(1), 6), protocol = _a[0], user = _a[1], _b = _a[2], pass = _b === void 0 ? '' : _b, host = _a[3], _c = _a[4], port = _c === void 0 ? '' : _c, lastPath = _a[5]; - var path = ''; - var projectId = lastPath; - var split = projectId.split('/'); - if (split.length > 1) { - path = split.slice(0, -1).join('/'); - projectId = split.pop(); - } - object_1.assign(this, { host: host, pass: pass, path: path, projectId: projectId, port: port, protocol: protocol, user: user }); - }; - /** Maps Dsn components into this instance. */ - Dsn.prototype.fromComponents = function (components) { - this.protocol = components.protocol; - this.user = components.user; - this.pass = components.pass || ''; - this.host = components.host; - this.port = components.port || ''; - this.path = components.path || ''; - this.projectId = components.projectId; - }; - /** Validates this Dsn and throws on error. */ - Dsn.prototype.validate = function () { - var e_1, _a; - try { - for (var _b = tslib_1.__values(['protocol', 'user', 'host', 'projectId']), _c = _b.next(); !_c.done; _c = _b.next()) { - var component = _c.value; - if (!this[component]) { - throw new error_1.SentryError("Invalid Dsn: Missing " + component); - } - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (_c && !_c.done && (_a = _b.return)) _a.call(_b); - } - finally { if (e_1) throw e_1.error; } - } - if (this.protocol !== 'http' && this.protocol !== 'https') { - throw new error_1.SentryError("Invalid Dsn: Unsupported protocol \"" + this.protocol + "\""); - } - if (this.port && is_1.isNaN(parseInt(this.port, 10))) { - throw new error_1.SentryError("Invalid Dsn: Invalid port number \"" + this.port + "\""); - } - }; - return Dsn; - }()); - exports.Dsn = Dsn; - //# sourceMappingURL=dsn.js.map - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var tslib_1 = __webpack_require__(5); - /** An error emitted by Sentry SDKs and related utilities. */ - var SentryError = /** @class */ (function (_super) { - tslib_1.__extends(SentryError, _super); - function SentryError(message) { - var _newTarget = this.constructor; - var _this = _super.call(this, message) || this; - _this.message = message; - // tslint:disable:no-unsafe-any - _this.name = _newTarget.prototype.constructor.name; - Object.setPrototypeOf(_this, _newTarget.prototype); - return _this; - } - return SentryError; - }(Error)); - exports.SentryError = SentryError; - //# sourceMappingURL=error.js.map - -/***/ }, -/* 18 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var tslib_1 = __webpack_require__(5); - var types_1 = __webpack_require__(19); - var async_1 = __webpack_require__(20); - var logger_1 = __webpack_require__(14); - var misc_1 = __webpack_require__(8); - var string_1 = __webpack_require__(21); - var dsn_1 = __webpack_require__(16); - var integration_1 = __webpack_require__(22); - /** - * Default maximum number of breadcrumbs added to an event. Can be overwritten - * with {@link Options.maxBreadcrumbs}. - */ - var DEFAULT_BREADCRUMBS = 30; - /** - * Absolute maximum number of breadcrumbs added to an event. The - * `maxBreadcrumbs` option cannot be higher than this value. - */ - var MAX_BREADCRUMBS = 100; - /** - * By default, truncates URL values to 250 chars - */ - var MAX_URL_LENGTH = 250; - /** - * Base implementation for all JavaScript SDK clients. - * - * Call the constructor with the corresponding backend constructor and options - * specific to the client subclass. To access these options later, use - * {@link Client.getOptions}. Also, the Backend instance is available via - * {@link Client.getBackend}. - * - * If a Dsn is specified in the options, it will be parsed and stored. Use - * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is - * invalid, the constructor will throw a {@link SentryException}. Note that - * without a valid Dsn, the SDK will not send any events to Sentry. - * - * Before sending an event via the backend, it is passed through - * {@link BaseClient.prepareEvent} to add SDK information and scope data - * (breadcrumbs and context). To add more custom information, override this - * method and extend the resulting prepared event. - * - * To issue automatically created events (e.g. via instrumentation), use - * {@link Client.captureEvent}. It will prepare the event and pass it through - * the callback lifecycle. To issue auto-breadcrumbs, use - * {@link Client.addBreadcrumb}. - * - * @example - * class NodeClient extends BaseClient { - * public constructor(options: NodeOptions) { - * super(NodeBackend, options); - * } - * - * // ... - * } - */ - var BaseClient = /** @class */ (function () { - /** - * Initializes this client instance. - * - * @param backendClass A constructor function to create the backend. - * @param options Options for the client. - */ - function BaseClient(backendClass, options) { - this.backend = new backendClass(options); - this.options = options; - if (options.dsn) { - this.dsn = new dsn_1.Dsn(options.dsn); - } - // We have to setup the integrations in the constructor since we do not want - // that anyone needs to call client.install(); - this.integrations = integration_1.setupIntegrations(this.options); - } - /** - * @inheritDoc - */ - BaseClient.prototype.install = function () { - if (!this.isEnabled()) { - return (this.installed = false); - } - var backend = this.getBackend(); - if (!this.installed && backend.install) { - backend.install(); - } - return (this.installed = true); - }; - /** - * Internal helper function to buffer promises. - * - * @param promise Any promise, but in this case Promise. - */ - BaseClient.prototype.buffer = function (promise) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.getBackend() - .getBuffer() - .add(promise)]; - }); - }); - }; - /** - * @inheritDoc - */ - BaseClient.prototype.captureException = function (exception, hint, scope) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - var _this = this; - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.buffer((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { - var event; - return tslib_1.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, this.getBackend().eventFromException(exception, hint)]; - case 1: - event = _a.sent(); - return [2 /*return*/, this.captureEvent(event, hint, scope)]; - } - }); - }); })())]; - }); - }); - }; - /** - * @inheritDoc - */ - BaseClient.prototype.captureMessage = function (message, level, hint, scope) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - var _this = this; - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.buffer((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { - var event; - return tslib_1.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, this.getBackend().eventFromMessage(message, level, hint)]; - case 1: - event = _a.sent(); - return [2 /*return*/, this.captureEvent(event, hint, scope)]; - } - }); - }); })())]; - }); - }); - }; - /** - * @inheritDoc - */ - BaseClient.prototype.captureEvent = function (event, hint, scope) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - var _this = this; - return tslib_1.__generator(this, function (_a) { - // Adding this here is technically not correct since if you call captureMessage/captureException it's already - // buffered. But since we not really need the count and we only need to know if the buffer is full or not, - // This is fine... - return [2 /*return*/, this.buffer((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { - var _this = this; - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.processEvent(event, function (finalEvent) { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.getBackend().sendEvent(finalEvent)]; - }); }); }, hint, scope)]; - }); - }); })())]; - }); - }); - }; - /** - * @inheritDoc - */ - BaseClient.prototype.addBreadcrumb = function (breadcrumb, hint, scope) { - var _a = this.getOptions(), beforeBreadcrumb = _a.beforeBreadcrumb, _b = _a.maxBreadcrumbs, maxBreadcrumbs = _b === void 0 ? DEFAULT_BREADCRUMBS : _b; - if (maxBreadcrumbs <= 0) { - return; - } - var timestamp = new Date().getTime() / 1000; - var mergedBreadcrumb = tslib_1.__assign({ timestamp: timestamp }, breadcrumb); - var finalBreadcrumb = beforeBreadcrumb - ? misc_1.consoleSandbox(function () { return beforeBreadcrumb(mergedBreadcrumb, hint); }) - : mergedBreadcrumb; - if (finalBreadcrumb === null) { - return; - } - if (this.getBackend().storeBreadcrumb(finalBreadcrumb) && scope) { - scope.addBreadcrumb(finalBreadcrumb, Math.min(maxBreadcrumbs, MAX_BREADCRUMBS)); - } - }; - /** - * @inheritDoc - */ - BaseClient.prototype.getDsn = function () { - return this.dsn; - }; - /** - * @inheritDoc - */ - BaseClient.prototype.getOptions = function () { - return this.options; - }; - /** Returns the current backend. */ - BaseClient.prototype.getBackend = function () { - return this.backend; - }; - /** Determines whether this SDK is enabled and a valid Dsn is present. */ - BaseClient.prototype.isEnabled = function () { - return this.getOptions().enabled !== false && this.dsn !== undefined; - }; - /** - * Adds common information to events. - * - * The information includes release and environment from `options`, - * breadcrumbs and context (extra, tags and user) from the scope. - * - * Information that is already present in the event is never overwritten. For - * nested objects, such as the context, keys are merged. - * - * @param event The original event. - * @param hint May contain additional informartion about the original exception. - * @param scope A scope containing event metadata. - * @returns A new event with more information. - */ - BaseClient.prototype.prepareEvent = function (event, scope, hint) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - var _a, environment, _b, maxBreadcrumbs, release, dist, prepared, exception, request; - return tslib_1.__generator(this, function (_c) { - _a = this.getOptions(), environment = _a.environment, _b = _a.maxBreadcrumbs, maxBreadcrumbs = _b === void 0 ? DEFAULT_BREADCRUMBS : _b, release = _a.release, dist = _a.dist; - prepared = tslib_1.__assign({}, event); - if (prepared.environment === undefined && environment !== undefined) { - prepared.environment = environment; - } - if (prepared.release === undefined && release !== undefined) { - prepared.release = release; - } - if (prepared.dist === undefined && dist !== undefined) { - prepared.dist = dist; - } - if (prepared.message) { - prepared.message = string_1.truncate(prepared.message, MAX_URL_LENGTH); - } - exception = prepared.exception && prepared.exception.values && prepared.exception.values[0]; - if (exception && exception.value) { - exception.value = string_1.truncate(exception.value, MAX_URL_LENGTH); - } - request = prepared.request; - if (request && request.url) { - request.url = string_1.truncate(request.url, MAX_URL_LENGTH); - } - if (prepared.event_id === undefined) { - prepared.event_id = misc_1.uuid4(); - } - // This should be the last thing called, since we want that - // {@link Hub.addEventProcessor} gets the finished prepared event. - if (scope) { - return [2 /*return*/, scope.applyToEvent(prepared, hint, Math.min(maxBreadcrumbs, MAX_BREADCRUMBS))]; - } - return [2 /*return*/, prepared]; - }); - }); - }; - /** - * Processes an event (either error or message) and sends it to Sentry. - * - * This also adds breadcrumbs and context information to the event. However, - * platform specific meta data (such as the User's IP address) must be added - * by the SDK implementor. - * - * The returned event status offers clues to whether the event was sent to - * Sentry and accepted there. If the {@link Options.shouldSend} hook returns - * `false`, the status will be {@link SendStatus.Skipped}. If the rate limit - * was exceeded, the status will be {@link SendStatus.RateLimit}. - * - * @param event The event to send to Sentry. - * @param send A function to actually send the event. - * @param scope A scope containing event metadata. - * @param hint May contain additional informartion about the original exception. - * @returns A Promise that resolves with the event status. - */ - BaseClient.prototype.processEvent = function (event, send, hint, scope) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - var _a, beforeSend, sampleRate, prepared, finalEvent, isInternalException, exception_1, response; - return tslib_1.__generator(this, function (_b) { - switch (_b.label) { - case 0: - if (!this.isEnabled()) { - return [2 /*return*/, { - status: types_1.Status.Skipped, - }]; - } - _a = this.getOptions(), beforeSend = _a.beforeSend, sampleRate = _a.sampleRate; - // 1.0 === 100% events are sent - // 0.0 === 0% events are sent - if (typeof sampleRate === 'number' && Math.random() > sampleRate) { - return [2 /*return*/, { - status: types_1.Status.Skipped, - }]; - } - return [4 /*yield*/, this.prepareEvent(event, scope, hint)]; - case 1: - prepared = _b.sent(); - if (prepared === null) { - return [2 /*return*/, { - status: types_1.Status.Skipped, - }]; - } - finalEvent = prepared; - _b.label = 2; - case 2: - _b.trys.push([2, 5, , 6]); - isInternalException = hint && hint.data && hint.data.__sentry__ === true; - if (!(!isInternalException && beforeSend)) return [3 /*break*/, 4]; - return [4 /*yield*/, beforeSend(prepared, hint)]; - case 3: - finalEvent = _b.sent(); - if (typeof finalEvent === 'undefined') { - logger_1.logger.error('`beforeSend` method has to return `null` or a valid event'); - } - _b.label = 4; - case 4: return [3 /*break*/, 6]; - case 5: - exception_1 = _b.sent(); - async_1.forget(this.captureException(exception_1, { - data: { - __sentry__: true, - }, - originalException: exception_1, - })); - return [2 /*return*/, { - reason: 'Event processing in beforeSend method threw an exception', - status: types_1.Status.Invalid, - }]; - case 6: - if (finalEvent === null) { - return [2 /*return*/, { - reason: 'Event dropped due to being discarded by beforeSend method', - status: types_1.Status.Skipped, - }]; - } - return [4 /*yield*/, send(finalEvent)]; - case 7: - response = _b.sent(); - response.event = finalEvent; - if (response.status === types_1.Status.RateLimit) { - // TODO: Handle rate limits and maintain a queue. For now, we require SDK - // implementors to override this method and handle it themselves. - } - return [2 /*return*/, response]; - } - }); - }); - }; - /** - * @inheritDoc - */ - BaseClient.prototype.close = function (timeout) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.getBackend() - .getBuffer() - .drain(timeout)]; - }); - }); - }; - /** - * @inheritDoc - */ - BaseClient.prototype.getIntegrations = function () { - return this.integrations || {}; - }; - /** - * @inheritDoc - */ - BaseClient.prototype.getIntegration = function (integration) { - try { - return this.integrations[integration.id] || null; - } - catch (_oO) { - logger_1.logger.warn("Cannot retrieve integration " + integration.id + " from the current Client"); - return null; - } - }; - return BaseClient; - }()); - exports.BaseClient = BaseClient; - //# sourceMappingURL=baseclient.js.map - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** JSDoc */ - var Severity; - (function (Severity) { - /** JSDoc */ - Severity["Fatal"] = "fatal"; - /** JSDoc */ - Severity["Error"] = "error"; - /** JSDoc */ - Severity["Warning"] = "warning"; - /** JSDoc */ - Severity["Log"] = "log"; - /** JSDoc */ - Severity["Info"] = "info"; - /** JSDoc */ - Severity["Debug"] = "debug"; - /** JSDoc */ - Severity["Critical"] = "critical"; - })(Severity = exports.Severity || (exports.Severity = {})); - // tslint:disable:no-unnecessary-qualifier no-namespace - (function (Severity) { - /** - * Converts a string-based level into a {@link Severity}. - * - * @param level string representation of Severity - * @returns Severity - */ - function fromString(level) { - switch (level) { - case 'debug': - return Severity.Debug; - case 'info': - return Severity.Info; - case 'warn': - case 'warning': - return Severity.Warning; - case 'error': - return Severity.Error; - case 'fatal': - return Severity.Fatal; - case 'critical': - return Severity.Critical; - case 'log': - default: - return Severity.Log; - } - } - Severity.fromString = fromString; - })(Severity = exports.Severity || (exports.Severity = {})); - /** The status of an event. */ - var Status; - (function (Status) { - /** The status could not be determined. */ - Status["Unknown"] = "unknown"; - /** The event was skipped due to configuration or callbacks. */ - Status["Skipped"] = "skipped"; - /** The event was sent to Sentry successfully. */ - Status["Success"] = "success"; - /** The client is currently rate limited and will try again later. */ - Status["RateLimit"] = "rate_limit"; - /** The event could not be processed. */ - Status["Invalid"] = "invalid"; - /** A server-side error ocurred during submission. */ - Status["Failed"] = "failed"; - })(Status = exports.Status || (exports.Status = {})); - // tslint:disable:no-unnecessary-qualifier no-namespace - (function (Status) { - /** - * Converts a HTTP status code into a {@link Status}. - * - * @param code The HTTP response status code. - * @returns The send status or {@link Status.Unknown}. - */ - function fromHttpCode(code) { - if (code >= 200 && code < 300) { - return Status.Success; - } - if (code === 429) { - return Status.RateLimit; - } - if (code >= 400 && code < 500) { - return Status.Invalid; - } - if (code >= 500) { - return Status.Failed; - } - return Status.Unknown; - } - Status.fromHttpCode = fromHttpCode; - })(Status = exports.Status || (exports.Status = {})); - //# sourceMappingURL=index.js.map - -/***/ }, -/* 20 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var tslib_1 = __webpack_require__(5); - /** - * Consumes the promise and logs the error when it rejects. - * @param promise A promise to forget. - */ - function forget(promise) { - promise.catch(function (e) { - // TODO: Use a better logging mechanism - console.error(e); - }); - } - exports.forget = forget; - /** - * Helper to filter an array with asynchronous callbacks. - * - * @param array An array containing items to filter. - * @param predicate An async predicate evaluated on every item. - * @param thisArg Optional value passed as "this" into the callback. - * @returns An array containing only values where the callback returned true. - */ - function filterAsync(array, predicate, thisArg) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - var verdicts; - return tslib_1.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, Promise.all(array.map(predicate, thisArg))]; - case 1: - verdicts = _a.sent(); - return [2 /*return*/, array.filter(function (_, index) { return verdicts[index]; })]; - } - }); - }); - } - exports.filterAsync = filterAsync; - //# sourceMappingURL=async.js.map - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var is_1 = __webpack_require__(10); - /** - * Encodes given object into url-friendly format - * - * @param str An object that contains serializable values - * @param max Maximum number of characters in truncated string - * @returns string Encoded - */ - function truncate(str, max) { - if (max === void 0) { max = 0; } - if (max === 0 || !is_1.isString(str)) { - return str; - } - return str.length <= max ? str : str.substr(0, max) + "\u2026"; - } - exports.truncate = truncate; - /** - * This is basically just `trim_line` from - * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67 - * - * @param str An object that contains serializable values - * @param max Maximum number of characters in truncated string - * @returns string Encoded - */ - function snipLine(line, colno) { - var newLine = line; - var ll = newLine.length; - if (ll <= 150) { - return newLine; - } - if (colno > ll) { - colno = ll; // tslint:disable-line:no-parameter-reassignment - } - var start = Math.max(colno - 60, 0); - if (start < 5) { - start = 0; - } - var end = Math.min(start + 140, ll); - if (end > ll - 5) { - end = ll; - } - if (end === ll) { - start = Math.max(end - 140, 0); - } - newLine = newLine.slice(start, end); - if (start > 0) { - newLine = "'{snip} " + newLine; - } - if (end < ll) { - newLine += ' {snip}'; - } - return newLine; - } - exports.snipLine = snipLine; - /** - * Join values in array - * @param input array of values to be joined together - * @param delimiter string to be placed in-between values - * @returns Joined values - */ - function safeJoin(input, delimiter) { - if (!Array.isArray(input)) { - return ''; - } - var output = []; - // tslint:disable-next-line - for (var i = 0; i < input.length; i++) { - var value = input[i]; - try { - output.push(String(value)); - } - catch (e) { - output.push('[value cannot be serialized]'); - } - } - return output.join(delimiter); - } - exports.safeJoin = safeJoin; - /** - * Checks if given value is included in the target - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes#Polyfill - * @param target source string - * @param search string to be looked for - * @returns An answer - */ - function includes(target, search) { - if (search.length > target.length) { - return false; - } - else { - return target.indexOf(search) !== -1; - } - } - exports.includes = includes; - //# sourceMappingURL=string.js.map - -/***/ }, -/* 22 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var tslib_1 = __webpack_require__(5); - var logger_1 = __webpack_require__(14); - exports.installedIntegrations = []; - /** Gets integration to install */ - function getIntegrationsToSetup(options) { - var e_1, _a, e_2, _b; - var defaultIntegrations = (options.defaultIntegrations && tslib_1.__spread(options.defaultIntegrations)) || []; - var userIntegrations = options.integrations; - var integrations = []; - if (Array.isArray(userIntegrations)) { - var userIntegrationsNames = userIntegrations.map(function (i) { return i.name; }); - var pickedIntegrationsNames = []; - try { - // Leave only unique default integrations, that were not overridden with provided user integrations - for (var defaultIntegrations_1 = tslib_1.__values(defaultIntegrations), defaultIntegrations_1_1 = defaultIntegrations_1.next(); !defaultIntegrations_1_1.done; defaultIntegrations_1_1 = defaultIntegrations_1.next()) { - var defaultIntegration = defaultIntegrations_1_1.value; - if (userIntegrationsNames.indexOf(getIntegrationName(defaultIntegration)) === -1 && - pickedIntegrationsNames.indexOf(getIntegrationName(defaultIntegration)) === -1) { - integrations.push(defaultIntegration); - pickedIntegrationsNames.push(getIntegrationName(defaultIntegration)); - } - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (defaultIntegrations_1_1 && !defaultIntegrations_1_1.done && (_a = defaultIntegrations_1.return)) _a.call(defaultIntegrations_1); - } - finally { if (e_1) throw e_1.error; } - } - try { - // Don't add same user integration twice - for (var userIntegrations_1 = tslib_1.__values(userIntegrations), userIntegrations_1_1 = userIntegrations_1.next(); !userIntegrations_1_1.done; userIntegrations_1_1 = userIntegrations_1.next()) { - var userIntegration = userIntegrations_1_1.value; - if (pickedIntegrationsNames.indexOf(getIntegrationName(userIntegration)) === -1) { - integrations.push(userIntegration); - pickedIntegrationsNames.push(getIntegrationName(userIntegration)); - } - } - } - catch (e_2_1) { e_2 = { error: e_2_1 }; } - finally { - try { - if (userIntegrations_1_1 && !userIntegrations_1_1.done && (_b = userIntegrations_1.return)) _b.call(userIntegrations_1); - } - finally { if (e_2) throw e_2.error; } - } - } - else if (typeof userIntegrations === 'function') { - integrations = userIntegrations(defaultIntegrations); - integrations = Array.isArray(integrations) ? integrations : [integrations]; - } - else { - return tslib_1.__spread(defaultIntegrations); - } - return integrations; - } - exports.getIntegrationsToSetup = getIntegrationsToSetup; - /** Setup given integration */ - function setupIntegration(integration, options) { - if (exports.installedIntegrations.indexOf(getIntegrationName(integration)) !== -1) { - return; - } - try { - integration.setupOnce(); - } - catch (_Oo) { - /** @deprecated */ - // TODO: Remove in v5 - logger_1.logger.warn("Integration " + getIntegrationName(integration) + ": The install method is deprecated. Use \"setupOnce\"."); - // tslint:disable:deprecation - if (integration.install) { - integration.install(options); - } - // tslint:enable:deprecation - } - exports.installedIntegrations.push(getIntegrationName(integration)); - logger_1.logger.log("Integration installed: " + getIntegrationName(integration)); - } - exports.setupIntegration = setupIntegration; - /** - * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default - * integrations are added unless they were already provided before. - * @param integrations array of integration instances - * @param withDefault should enable default integrations - */ - function setupIntegrations(options) { - var integrations = {}; - getIntegrationsToSetup(options).forEach(function (integration) { - integrations[getIntegrationName(integration)] = integration; - setupIntegration(integration, options); - }); - return integrations; - } - exports.setupIntegrations = setupIntegrations; - /** - * Returns the integration static id. - * @param integration Integration to retrieve id - */ - function getIntegrationName(integration) { - /** - * @depracted - */ - // tslint:disable-next-line:no-unsafe-any - return integration.constructor.id || integration.name; - } - //# sourceMappingURL=integration.js.map - -/***/ }, -/* 23 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var tslib_1 = __webpack_require__(5); - var logger_1 = __webpack_require__(14); - var error_1 = __webpack_require__(17); - var requestbuffer_1 = __webpack_require__(24); - /** - * This is the base implemention of a Backend. - */ - var BaseBackend = /** @class */ (function () { - /** Creates a new browser backend instance. */ - function BaseBackend(options) { - /** A simple buffer holding all requests. */ - this.buffer = new requestbuffer_1.RequestBuffer(); - this.options = options; - if (!this.options.dsn) { - logger_1.logger.warn('No DSN provided, backend will not do anything.'); - } - } - /** - * @inheritDoc - */ - BaseBackend.prototype.eventFromException = function (_exception, _hint) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - throw new error_1.SentryError('Backend has to implement `eventFromException` method'); - }); - }); - }; - /** - * @inheritDoc - */ - BaseBackend.prototype.eventFromMessage = function (_message, _level, _hint) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - throw new error_1.SentryError('Backend has to implement `eventFromMessage` method'); - }); - }); - }; - /** - * @inheritDoc - */ - BaseBackend.prototype.sendEvent = function (_event) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - throw new error_1.SentryError('Backend has to implement `sendEvent` method'); - }); - }); - }; - /** - * @inheritDoc - */ - BaseBackend.prototype.storeBreadcrumb = function (_) { - return true; - }; - /** - * @inheritDoc - */ - BaseBackend.prototype.storeScope = function (_) { - // Noop - }; - /** - * @inheritDoc - */ - BaseBackend.prototype.getBuffer = function () { - return this.buffer; - }; - return BaseBackend; - }()); - exports.BaseBackend = BaseBackend; - //# sourceMappingURL=basebackend.js.map - -/***/ }, -/* 24 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var tslib_1 = __webpack_require__(5); - /** A simple queue that holds promises. */ - var RequestBuffer = /** @class */ (function () { - function RequestBuffer() { - /** Internal set of queued Promises */ - this.buffer = []; - } - /** - * Add a promise to the queue. - * - * @param task Can be any Promise - * @returns The original promise. - */ - RequestBuffer.prototype.add = function (task) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - var _this = this; - return tslib_1.__generator(this, function (_a) { - if (this.buffer.indexOf(task) === -1) { - this.buffer.push(task); - } - task.then(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.remove(task)]; - }); }); }).catch(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.remove(task)]; - }); }); }); - return [2 /*return*/, task]; - }); - }); - }; - /** - * Remove a promise to the queue. - * - * @param task Can be any Promise - * @returns Removed promise. - */ - RequestBuffer.prototype.remove = function (task) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - var removedTask; - return tslib_1.__generator(this, function (_a) { - removedTask = this.buffer.splice(this.buffer.indexOf(task), 1)[0]; - return [2 /*return*/, removedTask]; - }); - }); - }; - /** - * This function returns the number of unresolved promises in the queue. - */ - RequestBuffer.prototype.length = function () { - return this.buffer.length; - }; - /** - * This will drain the whole queue, returns true if queue is empty or drained. - * If timeout is provided and the queue takes longer to drain, the promise still resolves but with false. - * - * @param timeout Number in ms to wait until it resolves with false. - */ - RequestBuffer.prototype.drain = function (timeout) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - var _this = this; - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, new Promise(function (resolve) { - var capturedSetTimeout = setTimeout(function () { - if (timeout && timeout > 0) { - resolve(false); - } - }, timeout); - Promise.all(_this.buffer) - .then(function () { - clearTimeout(capturedSetTimeout); - resolve(true); - }) - .catch(function () { - resolve(true); - }); - })]; - }); - }); - }; - return RequestBuffer; - }()); - exports.RequestBuffer = RequestBuffer; - //# sourceMappingURL=requestbuffer.js.map - -/***/ }, -/* 25 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** Console logging verbosity for the SDK. */ - var LogLevel; - (function (LogLevel) { - /** No logs will be generated. */ - LogLevel[LogLevel["None"] = 0] = "None"; - /** Only SDK internal errors will be logged. */ - LogLevel[LogLevel["Error"] = 1] = "Error"; - /** Information useful for debugging the SDK will be logged. */ - LogLevel[LogLevel["Debug"] = 2] = "Debug"; - /** All SDK actions will be logged. */ - LogLevel[LogLevel["Verbose"] = 3] = "Verbose"; - })(LogLevel = exports.LogLevel || (exports.LogLevel = {})); - //# sourceMappingURL=interfaces.js.map - -/***/ }, -/* 26 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var hub_1 = __webpack_require__(6); - var logger_1 = __webpack_require__(14); - /** - * Internal function to create a new SDK client instance. The client is - * installed and then bound to the current scope. - * - * @param clientClass The client class to instanciate. - * @param options Options to pass to the client. - * @returns The installed and bound client instance. - */ - function initAndBind(clientClass, options) { - if (options.debug === true) { - logger_1.logger.enable(); - } - if (hub_1.getCurrentHub().getClient()) { - return; - } - var client = new clientClass(options); - hub_1.getCurrentHub().bindClient(client); - client.install(); - } - exports.initAndBind = initAndBind; - //# sourceMappingURL=sdk.js.map - -/***/ }, -/* 27 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var dedupe_1 = __webpack_require__(28); - exports.Dedupe = dedupe_1.Dedupe; - var functiontostring_1 = __webpack_require__(29); - exports.FunctionToString = functiontostring_1.FunctionToString; - var sdkinformation_1 = __webpack_require__(30); - exports.SDKInformation = sdkinformation_1.SDKInformation; - var inboundfilters_1 = __webpack_require__(31); - exports.InboundFilters = inboundfilters_1.InboundFilters; - var debug_1 = __webpack_require__(32); - exports.Debug = debug_1.Debug; - var rewriteframes_1 = __webpack_require__(33); - exports.RewriteFrames = rewriteframes_1.RewriteFrames; - //# sourceMappingURL=index.js.map - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var tslib_1 = __webpack_require__(5); - var hub_1 = __webpack_require__(6); - var logger_1 = __webpack_require__(14); - var misc_1 = __webpack_require__(8); - /** Deduplication filter */ - var Dedupe = /** @class */ (function () { - function Dedupe() { - /** - * @inheritDoc - */ - this.name = Dedupe.id; - } - /** - * @inheritDoc - */ - Dedupe.prototype.setupOnce = function () { - var _this = this; - hub_1.addGlobalEventProcessor(function (currentEvent) { return tslib_1.__awaiter(_this, void 0, void 0, function () { - var self; - return tslib_1.__generator(this, function (_a) { - self = hub_1.getCurrentHub().getIntegration(Dedupe); - if (self) { - // Juuust in case something goes wrong - try { - if (self.shouldDropEvent(currentEvent, self.previousEvent)) { - return [2 /*return*/, null]; - } - } - catch (_oO) { - return [2 /*return*/, (self.previousEvent = currentEvent)]; - } - return [2 /*return*/, (self.previousEvent = currentEvent)]; - } - return [2 /*return*/, currentEvent]; - }); - }); }); - }; - /** JSDoc */ - Dedupe.prototype.shouldDropEvent = function (currentEvent, previousEvent) { - if (!previousEvent) { - return false; - } - if (this.isSameMessageEvent(currentEvent, previousEvent)) { - logger_1.logger.warn("Event dropped due to being a duplicate of previous event (same message).\nEvent: " + misc_1.getEventDescription(currentEvent)); - return true; - } - if (this.isSameExceptionEvent(currentEvent, previousEvent)) { - logger_1.logger.warn("Event dropped due to being a duplicate of previous event (same exception).\nEvent: " + misc_1.getEventDescription(currentEvent)); - return true; - } - return false; - }; - /** JSDoc */ - Dedupe.prototype.isSameMessageEvent = function (currentEvent, previousEvent) { - var currentMessage = currentEvent.message; - var previousMessage = previousEvent.message; - // If no event has a message, they were both exceptions, so bail out - if (!currentMessage && !previousMessage) { - return false; - } - // If only one event has a stacktrace, but not the other one, they are not the same - if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) { - return false; - } - if (currentMessage !== previousMessage) { - return false; - } - if (!this.isSameFingerprint(currentEvent, previousEvent)) { - return false; - } - if (!this.isSameStacktrace(currentEvent, previousEvent)) { - return false; - } - return true; - }; - /** JSDoc */ - Dedupe.prototype.getFramesFromEvent = function (event) { - var exception = event.exception; - if (exception) { - try { - // @ts-ignore - return exception.values[0].stacktrace.frames; - } - catch (_oO) { - return undefined; - } - } - else if (event.stacktrace) { - return event.stacktrace.frames; - } - else { - return undefined; - } - }; - /** JSDoc */ - Dedupe.prototype.isSameStacktrace = function (currentEvent, previousEvent) { - var currentFrames = this.getFramesFromEvent(currentEvent); - var previousFrames = this.getFramesFromEvent(previousEvent); - // If no event has a fingerprint, they are assumed to be the same - if (!currentFrames && !previousFrames) { - return true; - } - // If only one event has a stacktrace, but not the other one, they are not the same - if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) { - return false; - } - currentFrames = currentFrames; - previousFrames = previousFrames; - // If number of frames differ, they are not the same - if (previousFrames.length !== currentFrames.length) { - return false; - } - // Otherwise, compare the two - for (var i = 0; i < previousFrames.length; i++) { - var frameA = previousFrames[i]; - var frameB = currentFrames[i]; - if (frameA.filename !== frameB.filename || - frameA.lineno !== frameB.lineno || - frameA.colno !== frameB.colno || - frameA.function !== frameB.function) { - return false; - } - } - return true; - }; - /** JSDoc */ - Dedupe.prototype.getExceptionFromEvent = function (event) { - return event.exception && event.exception.values && event.exception.values[0]; - }; - /** JSDoc */ - Dedupe.prototype.isSameExceptionEvent = function (currentEvent, previousEvent) { - var previousException = this.getExceptionFromEvent(previousEvent); - var currentException = this.getExceptionFromEvent(currentEvent); - if (!previousException || !currentException) { - return false; - } - if (previousException.type !== currentException.type || previousException.value !== currentException.value) { - return false; - } - if (!this.isSameFingerprint(currentEvent, previousEvent)) { - return false; - } - if (!this.isSameStacktrace(currentEvent, previousEvent)) { - return false; - } - return true; - }; - /** JSDoc */ - Dedupe.prototype.isSameFingerprint = function (currentEvent, previousEvent) { - var currentFingerprint = currentEvent.fingerprint; - var previousFingerprint = previousEvent.fingerprint; - // If no event has a fingerprint, they are assumed to be the same - if (!currentFingerprint && !previousFingerprint) { - return true; - } - // If only one event has a fingerprint, but not the other one, they are not the same - if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) { - return false; - } - currentFingerprint = currentFingerprint; - previousFingerprint = previousFingerprint; - // Otherwise, compare the two - try { - return !!(currentFingerprint.join('') === previousFingerprint.join('')); - } - catch (_oO) { - return false; - } - }; - /** - * @inheritDoc - */ - Dedupe.id = 'Dedupe'; - return Dedupe; - }()); - exports.Dedupe = Dedupe; - //# sourceMappingURL=dedupe.js.map - -/***/ }, -/* 29 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var originalFunctionToString; - /** Patch toString calls to return proper name for wrapped functions */ - var FunctionToString = /** @class */ (function () { - function FunctionToString() { - /** - * @inheritDoc - */ - this.name = FunctionToString.id; - } - /** - * @inheritDoc - */ - FunctionToString.prototype.setupOnce = function () { - originalFunctionToString = Function.prototype.toString; - Function.prototype.toString = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var context = this.__sentry__ ? this.__sentry_original__ : this; - // tslint:disable-next-line:no-unsafe-any - return originalFunctionToString.apply(context, args); - }; - }; - /** - * @inheritDoc - */ - FunctionToString.id = 'FunctionToString'; - return FunctionToString; - }()); - exports.FunctionToString = FunctionToString; - //# sourceMappingURL=functiontostring.js.map - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var logger_1 = __webpack_require__(14); - /** - * @deprecated - * This file can be safely removed in the next major bump - */ - /** Adds SDK info to an event. */ - var SDKInformation = /** @class */ (function () { - function SDKInformation() { - /** - * @inheritDoc - */ - this.name = 'SDKInformation'; - } - /** - * @inheritDoc - */ - SDKInformation.prototype.setupOnce = function () { - logger_1.logger.warn("SDKInformation Integration is deprecated and can be safely removed. It's functionality has been merged into the SDK's core."); - }; - return SDKInformation; - }()); - exports.SDKInformation = SDKInformation; - //# sourceMappingURL=sdkinformation.js.map - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var tslib_1 = __webpack_require__(5); - var hub_1 = __webpack_require__(6); - var is_1 = __webpack_require__(10); - var logger_1 = __webpack_require__(14); - var misc_1 = __webpack_require__(8); - var string_1 = __webpack_require__(21); - // "Script error." is hard coded into browsers for errors that it can't read. - // this is the result of a script being pulled in from an external domain and CORS. - var DEFAULT_IGNORE_ERRORS = [/^Script error\.?$/, /^Javascript error: Script error\.? on line 0$/]; - /** Inbound filters configurable by the user */ - var InboundFilters = /** @class */ (function () { - function InboundFilters(options) { - if (options === void 0) { options = {}; } - this.options = options; - /** - * @inheritDoc - */ - this.name = InboundFilters.id; - } - /** - * @inheritDoc - */ - InboundFilters.prototype.setupOnce = function () { - var _this = this; - hub_1.addGlobalEventProcessor(function (event) { return tslib_1.__awaiter(_this, void 0, void 0, function () { - var hub, self, client, clientOptions, options; - return tslib_1.__generator(this, function (_a) { - hub = hub_1.getCurrentHub(); - if (!hub) { - return [2 /*return*/, event]; - } - self = hub.getIntegration(InboundFilters); - if (self) { - client = hub.getClient(); - clientOptions = client ? client.getOptions() : {}; - options = self.mergeOptions(clientOptions); - if (self.shouldDropEvent(event, options)) { - return [2 /*return*/, null]; - } - } - return [2 /*return*/, event]; - }); - }); }); - }; - /** JSDoc */ - InboundFilters.prototype.shouldDropEvent = function (event, options) { - if (this.isSentryError(event, options)) { - logger_1.logger.warn("Event dropped due to being internal Sentry Error.\nEvent: " + misc_1.getEventDescription(event)); - return true; - } - if (this.isIgnoredError(event, options)) { - logger_1.logger.warn("Event dropped due to being matched by `ignoreErrors` option.\nEvent: " + misc_1.getEventDescription(event)); - return true; - } - if (this.isBlacklistedUrl(event, options)) { - logger_1.logger.warn("Event dropped due to being matched by `blacklistUrls` option.\nEvent: " + misc_1.getEventDescription(event) + ".\nUrl: " + this.getEventFilterUrl(event)); - return true; - } - if (!this.isWhitelistedUrl(event, options)) { - logger_1.logger.warn("Event dropped due to not being matched by `whitelistUrls` option.\nEvent: " + misc_1.getEventDescription(event) + ".\nUrl: " + this.getEventFilterUrl(event)); - return true; - } - return false; - }; - /** JSDoc */ - InboundFilters.prototype.isSentryError = function (event, options) { - if (options === void 0) { options = {}; } - if (!options.ignoreInternal) { - return false; - } - try { - // tslint:disable-next-line:no-unsafe-any - return event.exception.values[0].type === 'SentryError'; - } - catch (_oO) { - return false; - } - }; - /** JSDoc */ - InboundFilters.prototype.isIgnoredError = function (event, options) { - var _this = this; - if (options === void 0) { options = {}; } - if (!options.ignoreErrors || !options.ignoreErrors.length) { - return false; - } - return this.getPossibleEventMessages(event).some(function (message) { - // Not sure why TypeScript complains here... - return options.ignoreErrors.some(function (pattern) { return _this.isMatchingPattern(message, pattern); }); - }); - }; - /** JSDoc */ - InboundFilters.prototype.isBlacklistedUrl = function (event, options) { - var _this = this; - if (options === void 0) { options = {}; } - // TODO: Use Glob instead? - if (!options.blacklistUrls || !options.blacklistUrls.length) { - return false; - } - var url = this.getEventFilterUrl(event); - return !url ? false : options.blacklistUrls.some(function (pattern) { return _this.isMatchingPattern(url, pattern); }); - }; - /** JSDoc */ - InboundFilters.prototype.isWhitelistedUrl = function (event, options) { - var _this = this; - if (options === void 0) { options = {}; } - // TODO: Use Glob instead? - if (!options.whitelistUrls || !options.whitelistUrls.length) { - return true; - } - var url = this.getEventFilterUrl(event); - return !url ? true : options.whitelistUrls.some(function (pattern) { return _this.isMatchingPattern(url, pattern); }); - }; - /** JSDoc */ - InboundFilters.prototype.mergeOptions = function (clientOptions) { - if (clientOptions === void 0) { clientOptions = {}; } - return { - blacklistUrls: tslib_1.__spread((this.options.blacklistUrls || []), (clientOptions.blacklistUrls || [])), - ignoreErrors: tslib_1.__spread((this.options.ignoreErrors || []), (clientOptions.ignoreErrors || []), DEFAULT_IGNORE_ERRORS), - ignoreInternal: typeof this.options.ignoreInternal !== 'undefined' ? this.options.ignoreInternal : true, - whitelistUrls: tslib_1.__spread((this.options.whitelistUrls || []), (clientOptions.whitelistUrls || [])), - }; - }; - /** JSDoc */ - InboundFilters.prototype.isMatchingPattern = function (value, pattern) { - if (is_1.isRegExp(pattern)) { - return pattern.test(value); - } - else if (typeof pattern === 'string') { - return string_1.includes(value, pattern); - } - else { - return false; - } - }; - /** JSDoc */ - InboundFilters.prototype.getPossibleEventMessages = function (event) { - if (event.message) { - return [event.message]; - } - else if (event.exception) { - try { - // tslint:disable-next-line:no-unsafe-any - var _a = event.exception.values[0], type = _a.type, value = _a.value; - return ["" + value, type + ": " + value]; - } - catch (oO) { - logger_1.logger.error("Cannot extract message for event " + misc_1.getEventDescription(event)); - return []; - } - } - else { - return []; - } - }; - /** JSDoc */ - InboundFilters.prototype.getEventFilterUrl = function (event) { - try { - if (event.stacktrace) { - // tslint:disable-next-line:no-unsafe-any - return event.stacktrace.frames[0].filename; - } - else if (event.exception) { - // tslint:disable-next-line:no-unsafe-any - return event.exception.values[0].stacktrace.frames[0].filename; - } - else { - return null; - } - } - catch (oO) { - logger_1.logger.error("Cannot extract url for event " + misc_1.getEventDescription(event)); - return null; - } - }; - /** - * @inheritDoc - */ - InboundFilters.id = 'InboundFilters'; - return InboundFilters; - }()); - exports.InboundFilters = InboundFilters; - //# sourceMappingURL=inboundfilters.js.map - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var tslib_1 = __webpack_require__(5); - var hub_1 = __webpack_require__(6); - /** JSDoc */ - var Debug = /** @class */ (function () { - /** - * @inheritDoc - */ - function Debug(options) { - /** - * @inheritDoc - */ - this.name = Debug.id; - this.options = tslib_1.__assign({ debugger: false, stringify: false }, options); - } - /** - * @inheritDoc - */ - Debug.prototype.setupOnce = function () { - var _this = this; - hub_1.addGlobalEventProcessor(function (event, hint) { return tslib_1.__awaiter(_this, void 0, void 0, function () { - var self; - return tslib_1.__generator(this, function (_a) { - self = hub_1.getCurrentHub().getIntegration(Debug); - if (self) { - // tslint:disable:no-console - // tslint:disable:no-debugger - if (self.options.debugger) { - debugger; - } - if (self.options.stringify) { - console.log(JSON.stringify(event, null, 2)); - if (hint) { - console.log(JSON.stringify(hint, null, 2)); - } - } - else { - console.log(event); - if (hint) { - console.log(hint); - } - } - } - return [2 /*return*/, event]; - }); - }); }); - }; - /** - * @inheritDoc - */ - Debug.id = 'Debug'; - return Debug; - }()); - exports.Debug = Debug; - //# sourceMappingURL=debug.js.map - -/***/ }, -/* 33 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var tslib_1 = __webpack_require__(5); - var hub_1 = __webpack_require__(6); - var path_1 = __webpack_require__(34); - /** Rewrite event frames paths */ - var RewriteFrames = /** @class */ (function () { - /** - * @inheritDoc - */ - function RewriteFrames(options) { - if (options === void 0) { options = {}; } - var _this = this; - /** - * @inheritDoc - */ - this.name = RewriteFrames.id; - /** - * @inheritDoc - */ - this.iteratee = function (frame) { return tslib_1.__awaiter(_this, void 0, void 0, function () { - var base; - return tslib_1.__generator(this, function (_a) { - if (frame.filename && frame.filename.startsWith('/')) { - base = this.root ? path_1.relative(this.root, frame.filename) : path_1.basename(frame.filename); - frame.filename = "app:///" + base; - } - return [2 /*return*/, frame]; - }); - }); }; - if (options.root) { - this.root = options.root; - } - if (options.iteratee) { - this.iteratee = options.iteratee; - } - } - /** - * @inheritDoc - */ - RewriteFrames.prototype.setupOnce = function () { - var _this = this; - hub_1.addGlobalEventProcessor(function (event) { return tslib_1.__awaiter(_this, void 0, void 0, function () { - var self; - return tslib_1.__generator(this, function (_a) { - self = hub_1.getCurrentHub().getIntegration(RewriteFrames); - if (self) { - return [2 /*return*/, self.process(event)]; - } - return [2 /*return*/, event]; - }); - }); }); - }; - /** JSDoc */ - RewriteFrames.prototype.process = function (event) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - var frames, _a, _b, _i, i, _c, _d; - return tslib_1.__generator(this, function (_e) { - switch (_e.label) { - case 0: - frames = this.getFramesFromEvent(event); - if (!frames) return [3 /*break*/, 4]; - _a = []; - for (_b in frames) - _a.push(_b); - _i = 0; - _e.label = 1; - case 1: - if (!(_i < _a.length)) return [3 /*break*/, 4]; - i = _a[_i]; - // tslint:disable-next-line - _c = frames; - _d = i; - return [4 /*yield*/, this.iteratee(frames[i])]; - case 2: - // tslint:disable-next-line - _c[_d] = _e.sent(); - _e.label = 3; - case 3: - _i++; - return [3 /*break*/, 1]; - case 4: return [2 /*return*/, event]; - } - }); - }); - }; - /** JSDoc */ - RewriteFrames.prototype.getFramesFromEvent = function (event) { - var exception = event.exception; - if (exception) { - try { - // tslint:disable-next-line:no-unsafe-any - return exception.values[0].stacktrace.frames; - } - catch (_oO) { - return undefined; - } - } - else if (event.stacktrace) { - return event.stacktrace.frames; - } - else { - return undefined; - } - }; - /** - * @inheritDoc - */ - RewriteFrames.id = 'RewriteFrames'; - return RewriteFrames; - }()); - exports.RewriteFrames = RewriteFrames; - //# sourceMappingURL=rewriteframes.js.map - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - "use strict"; - // Slightly modified (no IE8 support, ES6) and transcribed to TypeScript - // https://raw.githubusercontent.com/calvinmetcalf/rollup-plugin-node-builtins/master/src/es6/path.js - Object.defineProperty(exports, "__esModule", { value: true }); - /** JSDoc */ - function normalizeArray(parts, allowAboveRoot) { - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === '.') { - parts.splice(i, 1); - } - else if (last === '..') { - parts.splice(i, 1); - up++; - } - else if (up) { - parts.splice(i, 1); - up--; - } - } - // if the path is allowed to go above the root, restore leading ..s - if (allowAboveRoot) { - for (; up--; up) { - parts.unshift('..'); - } - } - return parts; - } - // Split a filename into [root, dir, basename, ext], unix version - // 'root' is just a slash, or nothing. - var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; - /** JSDoc */ - function splitPath(filename) { - var parts = splitPathRe.exec(filename); - return parts ? parts.slice(1) : []; - } - // path.resolve([from ...], to) - // posix version - /** JSDoc */ - function resolve() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var resolvedPath = ''; - var resolvedAbsolute = false; - for (var i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = i >= 0 ? args[i] : '/'; - // Skip empty entries - if (!path) { - continue; - } - resolvedPath = path + "/" + resolvedPath; - resolvedAbsolute = path.charAt(0) === '/'; - } - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when process.cwd() fails) - // Normalize the path - resolvedPath = normalizeArray(resolvedPath.split('/').filter(function (p) { return !!p; }), !resolvedAbsolute).join('/'); - return (resolvedAbsolute ? '/' : '') + resolvedPath || '.'; - } - exports.resolve = resolve; - /** JSDoc */ - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== '') { - break; - } - } - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== '') { - break; - } - } - if (start > end) { - return []; - } - return arr.slice(start, end - start + 1); - } - // path.relative(from, to) - // posix version - /** JSDoc */ - function relative(from, to) { - // tslint:disable:no-parameter-reassignment - from = resolve(from).substr(1); - to = resolve(to).substr(1); - var fromParts = trim(from.split('/')); - var toParts = trim(to.split('/')); - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push('..'); - } - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - return outputParts.join('/'); - } - exports.relative = relative; - // path.normalize(path) - // posix version - /** JSDoc */ - function normalize(path) { - var isPathAbsolute = isAbsolute(path); - var trailingSlash = path.substr(-1) === '/'; - // Normalize the path - var normalizedPath = normalizeArray(path.split('/').filter(function (p) { return !!p; }), !isPathAbsolute).join('/'); - if (!normalizedPath && !isPathAbsolute) { - normalizedPath = '.'; - } - if (normalizedPath && trailingSlash) { - normalizedPath += '/'; - } - return (isPathAbsolute ? '/' : '') + normalizedPath; - } - exports.normalize = normalize; - // posix version - /** JSDoc */ - function isAbsolute(path) { - return path.charAt(0) === '/'; - } - exports.isAbsolute = isAbsolute; - // posix version - /** JSDoc */ - function join() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return normalize(args.join('/')); - } - exports.join = join; - /** JSDoc */ - function dirname(path) { - var result = splitPath(path); - var root = result[0]; - var dir = result[1]; - if (!root && !dir) { - // No dirname whatsoever - return '.'; - } - if (dir) { - // It has a dirname, strip trailing slash - dir = dir.substr(0, dir.length - 1); - } - return root + dir; - } - exports.dirname = dirname; - /** JSDoc */ - function basename(path, ext) { - var f = splitPath(path)[2]; - if (ext && f.substr(ext.length * -1) === ext) { - f = f.substr(0, f.length - ext.length); - } - return f; - } - exports.basename = basename; - //# sourceMappingURL=path.js.map - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.exceptionFromStacktrace = exceptionFromStacktrace; - exports.eventFromPlainObject = eventFromPlainObject; - exports.eventFromStacktrace = eventFromStacktrace; - exports.prepareFramesForEvent = prepareFramesForEvent; - - var _object = __webpack_require__(11); - - var _string = __webpack_require__(21); - - var _md = __webpack_require__(36); - - var _tracekit = __webpack_require__(37); - - const STACKTRACE_LIMIT = 50; - /** JSDoc */ - - function exceptionFromStacktrace(stacktrace) { - const frames = prepareFramesForEvent(stacktrace.stack); - const exception = { - stacktrace: { - frames - }, - type: stacktrace.name, - value: stacktrace.message - }; // tslint:disable-next-line:strict-type-predicates - - if (exception.type === undefined && exception.value === '') { - exception.value = 'Unrecoverable error caught'; - } - - return exception; - } - /** JSDoc */ - - - function eventFromPlainObject(exception, syntheticException) { - const exceptionKeys = Object.keys(exception).sort(); - const event = { - extra: { - __serialized__: (0, _object.limitObjectDepthToSize)(exception) - }, - fingerprint: [(0, _md.md5)(exceptionKeys.join(''))], - message: `Non-Error exception captured with keys: ${(0, _object.serializeKeysToEventMessage)(exceptionKeys)}` - }; - - if (syntheticException) { - const stacktrace = (0, _tracekit.computeStackTrace)(syntheticException); - const frames = prepareFramesForEvent(stacktrace.stack); - event.stacktrace = { - frames - }; - } - - return event; - } - /** JSDoc */ - - - function eventFromStacktrace(stacktrace) { - const exception = exceptionFromStacktrace(stacktrace); - return { - exception: { - values: [exception] - } - }; - } - /** JSDoc */ - - - function prepareFramesForEvent(stack) { - if (!stack || !stack.length) { - return []; - } - - let localStack = stack; - const firstFrameFunction = localStack[0].func || ''; - const lastFrameFunction = localStack[localStack.length - 1].func || ''; // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call) - - if ((0, _string.includes)(firstFrameFunction, 'captureMessage') || (0, _string.includes)(firstFrameFunction, 'captureException')) { - localStack = localStack.slice(1); - } // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call) - - - if ((0, _string.includes)(lastFrameFunction, 'sentryWrapped')) { - localStack = localStack.slice(0, -1); - } // The frame where the crash happened, should be the last entry in the array - - - return localStack.map(frame => ({ - colno: frame.column, - filename: frame.url || localStack[0].url, - function: frame.func || '?', - in_app: true, - lineno: frame.line - })).slice(0, STACKTRACE_LIMIT).reverse(); - } - -/***/ }, -/* 36 */ -/***/ function(module, exports, __webpack_require__) { - - var __WEBPACK_AMD_DEFINE_RESULT__;"use strict"; - - /* - * JavaScript MD5 - * https://github.com/blueimp/JavaScript-MD5 - * - * Copyright 2011, Sebastian Tschan - * https://blueimp.net - * - * Licensed under the MIT license: - * https://opensource.org/licenses/MIT - * - * Based on - * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message - * Digest Algorithm, as defined in RFC 1321. - * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009 - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - * See http://pajhome.org.uk/crypt/md5 for more info. - */ - - /* global define */ - (function ($) { - 'use strict'; - /* - * Add integers, wrapping at 2^32. This uses 16-bit operations internally - * to work around bugs in some JS interpreters. - */ - - function safeAdd(x, y) { - var lsw = (x & 0xffff) + (y & 0xffff); - var msw = (x >> 16) + (y >> 16) + (lsw >> 16); - return msw << 16 | lsw & 0xffff; - } - /* - * Bitwise rotate a 32-bit number to the left. - */ - - - function bitRotateLeft(num, cnt) { - return num << cnt | num >>> 32 - cnt; - } - /* - * These functions implement the four basic operations the algorithm uses. - */ - - - function md5cmn(q, a, b, x, s, t) { - return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b); - } - - function md5ff(a, b, c, d, x, s, t) { - return md5cmn(b & c | ~b & d, a, b, x, s, t); - } - - function md5gg(a, b, c, d, x, s, t) { - return md5cmn(b & d | c & ~d, a, b, x, s, t); - } - - function md5hh(a, b, c, d, x, s, t) { - return md5cmn(b ^ c ^ d, a, b, x, s, t); - } - - function md5ii(a, b, c, d, x, s, t) { - return md5cmn(c ^ (b | ~d), a, b, x, s, t); - } - /* - * Calculate the MD5 of an array of little-endian words, and a bit length. - */ - - - function binlMD5(x, len) { - /* append padding */ - x[len >> 5] |= 0x80 << len % 32; - x[(len + 64 >>> 9 << 4) + 14] = len; - var i; - var olda; - var oldb; - var oldc; - var oldd; - var a = 1732584193; - var b = -271733879; - var c = -1732584194; - var d = 271733878; - - for (i = 0; i < x.length; i += 16) { - olda = a; - oldb = b; - oldc = c; - oldd = d; - a = md5ff(a, b, c, d, x[i], 7, -680876936); - d = md5ff(d, a, b, c, x[i + 1], 12, -389564586); - c = md5ff(c, d, a, b, x[i + 2], 17, 606105819); - b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330); - a = md5ff(a, b, c, d, x[i + 4], 7, -176418897); - d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426); - c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341); - b = md5ff(b, c, d, a, x[i + 7], 22, -45705983); - a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416); - d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417); - c = md5ff(c, d, a, b, x[i + 10], 17, -42063); - b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162); - a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682); - d = md5ff(d, a, b, c, x[i + 13], 12, -40341101); - c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290); - b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329); - a = md5gg(a, b, c, d, x[i + 1], 5, -165796510); - d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632); - c = md5gg(c, d, a, b, x[i + 11], 14, 643717713); - b = md5gg(b, c, d, a, x[i], 20, -373897302); - a = md5gg(a, b, c, d, x[i + 5], 5, -701558691); - d = md5gg(d, a, b, c, x[i + 10], 9, 38016083); - c = md5gg(c, d, a, b, x[i + 15], 14, -660478335); - b = md5gg(b, c, d, a, x[i + 4], 20, -405537848); - a = md5gg(a, b, c, d, x[i + 9], 5, 568446438); - d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690); - c = md5gg(c, d, a, b, x[i + 3], 14, -187363961); - b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501); - a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467); - d = md5gg(d, a, b, c, x[i + 2], 9, -51403784); - c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473); - b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734); - a = md5hh(a, b, c, d, x[i + 5], 4, -378558); - d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463); - c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562); - b = md5hh(b, c, d, a, x[i + 14], 23, -35309556); - a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060); - d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353); - c = md5hh(c, d, a, b, x[i + 7], 16, -155497632); - b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640); - a = md5hh(a, b, c, d, x[i + 13], 4, 681279174); - d = md5hh(d, a, b, c, x[i], 11, -358537222); - c = md5hh(c, d, a, b, x[i + 3], 16, -722521979); - b = md5hh(b, c, d, a, x[i + 6], 23, 76029189); - a = md5hh(a, b, c, d, x[i + 9], 4, -640364487); - d = md5hh(d, a, b, c, x[i + 12], 11, -421815835); - c = md5hh(c, d, a, b, x[i + 15], 16, 530742520); - b = md5hh(b, c, d, a, x[i + 2], 23, -995338651); - a = md5ii(a, b, c, d, x[i], 6, -198630844); - d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415); - c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905); - b = md5ii(b, c, d, a, x[i + 5], 21, -57434055); - a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571); - d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606); - c = md5ii(c, d, a, b, x[i + 10], 15, -1051523); - b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799); - a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359); - d = md5ii(d, a, b, c, x[i + 15], 10, -30611744); - c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380); - b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649); - a = md5ii(a, b, c, d, x[i + 4], 6, -145523070); - d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379); - c = md5ii(c, d, a, b, x[i + 2], 15, 718787259); - b = md5ii(b, c, d, a, x[i + 9], 21, -343485551); - a = safeAdd(a, olda); - b = safeAdd(b, oldb); - c = safeAdd(c, oldc); - d = safeAdd(d, oldd); - } - - return [a, b, c, d]; - } - /* - * Convert an array of little-endian words to a string - */ - - - function binl2rstr(input) { - var i; - var output = ''; - var length32 = input.length * 32; - - for (i = 0; i < length32; i += 8) { - output += String.fromCharCode(input[i >> 5] >>> i % 32 & 0xff); - } - - return output; - } - /* - * Convert a raw string to an array of little-endian words - * Characters >255 have their high-byte silently ignored. - */ - - - function rstr2binl(input) { - var i; - var output = []; - output[(input.length >> 2) - 1] = undefined; - - for (i = 0; i < output.length; i += 1) { - output[i] = 0; - } - - var length8 = input.length * 8; - - for (i = 0; i < length8; i += 8) { - output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << i % 32; - } - - return output; - } - /* - * Calculate the MD5 of a raw string - */ - - - function rstrMD5(s) { - return binl2rstr(binlMD5(rstr2binl(s), s.length * 8)); - } - /* - * Calculate the HMAC-MD5, of a key and some data (raw strings) - */ - - - function rstrHMACMD5(key, data) { - var i; - var bkey = rstr2binl(key); - var ipad = []; - var opad = []; - var hash; - ipad[15] = opad[15] = undefined; - - if (bkey.length > 16) { - bkey = binlMD5(bkey, key.length * 8); - } - - for (i = 0; i < 16; i += 1) { - ipad[i] = bkey[i] ^ 0x36363636; - opad[i] = bkey[i] ^ 0x5c5c5c5c; - } - - hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8); - return binl2rstr(binlMD5(opad.concat(hash), 512 + 128)); - } - /* - * Convert a raw string to a hex string - */ - - - function rstr2hex(input) { - var hexTab = '0123456789abcdef'; - var output = ''; - var x; - var i; - - for (i = 0; i < input.length; i += 1) { - x = input.charCodeAt(i); - output += hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f); - } - - return output; - } - /* - * Encode a string as utf-8 - */ - - - function str2rstrUTF8(input) { - return unescape(encodeURIComponent(input)); - } - /* - * Take string arguments and return either raw or hex encoded strings - */ - - - function rawMD5(s) { - return rstrMD5(str2rstrUTF8(s)); - } - - function hexMD5(s) { - return rstr2hex(rawMD5(s)); - } - - function rawHMACMD5(k, d) { - return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d)); - } - - function hexHMACMD5(k, d) { - return rstr2hex(rawHMACMD5(k, d)); - } - - function md5(string, key, raw) { - if (!key) { - if (!raw) { - return hexMD5(string); - } - - return rawMD5(string); - } - - if (!raw) { - return hexHMACMD5(key, string); - } - - return rawHMACMD5(key, string); - } - - if (true) { - !(__WEBPACK_AMD_DEFINE_RESULT__ = function () { - return md5; - }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else if (typeof module === 'object' && module.exports) { - module.exports = md5; - } else { - $.md5 = md5; - } - })(void 0); - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.computeStackTrace = exports.installGlobalUnhandledRejectionHandler = exports.installGlobalHandler = exports.subscribe = exports.report = void 0; - - var _is = __webpack_require__(10); - - var _misc = __webpack_require__(8); - - function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } - - function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - - var window = (0, _misc.getGlobalObject)(); - var TraceKit = { - wrap: () => () => {}, - report: false, - collectWindowErrors: false, - computeStackTrace: false, - remoteFetching: false, - linesOfContext: false, - extendToAsynchronousCallbacks: false - }; - var _slice = [].slice; - var UNKNOWN_FUNCTION = '?'; - var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/; - - function _has(object, key) { - return Object.prototype.hasOwnProperty.call(object, key); - } - - function getLocationHref() { - if (typeof document === 'undefined' || document.location == null) return ''; - return document.location.href; - } - - function getLocationOrigin() { - if (typeof document === 'undefined' || document.location == null) return ''; - - if (!document.location.origin) { - return document.location.protocol + '//' + document.location.hostname + (document.location.port ? ':' + document.location.port : ''); - } - - return document.location.origin; - } - - TraceKit.wrap = function traceKitWrapper(func) { - function wrapped() { - try { - // @ts-ignore - return func.apply(this, arguments); - } catch (e) { - TraceKit.report(e); - throw e; - } - } - - return wrapped; - }; - - TraceKit.report = function reportModuleWrapper() { - var handlers = [], - lastException = null, - lastExceptionStack = null; - - function subscribe(handler) { - handlers.push(handler); - } - - function unsubscribe(handler) { - for (var i = handlers.length - 1; i >= 0; --i) { - if (handlers[i] === handler) { - handlers.splice(i, 1); - } - } - - if (handlers.length === 0) { - uninstallGlobalHandler(); - uninstallGlobalUnhandledRejectionHandler(); - } - } - - function notifyHandlers(stack, isWindowError, error) { - var exception = null; - - if (isWindowError && !TraceKit.collectWindowErrors) { - return; - } - - for (var i in handlers) { - if (_has(handlers, i)) { - try { - handlers[i](stack, isWindowError, error); - } catch (inner) { - exception = inner; - } - } - } - - if (exception) { - throw exception; - } - } - - var _oldOnerrorHandler, _onErrorHandlerInstalled; - - var _oldOnunhandledrejectionHandler, _onUnhandledRejectionHandlerInstalled; - - function traceKitWindowOnError(message, url, lineNo, columnNo, errorObj) { - var stack = null; - errorObj = (0, _is.isErrorEvent)(errorObj) ? errorObj.error : errorObj; - message = (0, _is.isErrorEvent)(message) ? message.message : message; - - if (lastExceptionStack) { - TraceKit.computeStackTrace.augmentStackTraceWithInitialElement(lastExceptionStack, url, lineNo, message); - processLastException(); - } else if (errorObj && (0, _is.isError)(errorObj)) { - stack = TraceKit.computeStackTrace(errorObj); - stack.mechanism = 'onerror'; - notifyHandlers(stack, true, errorObj); - } else { - var location = { - url: url, - line: lineNo, - column: columnNo - }; - var name; - var msg = message; // must be new var or will modify original `arguments` - - if ({}.toString.call(message) === '[object String]') { - var groups = message.match(ERROR_TYPES_RE); - - if (groups) { - name = groups[1]; - msg = groups[2]; - } - } - - location.func = TraceKit.computeStackTrace.guessFunctionName(location.url, location.line); - location.context = TraceKit.computeStackTrace.gatherContext(location.url, location.line); - stack = { - name: name, - message: msg, - mode: 'onerror', - mechanism: 'onerror', - stack: [_objectSpread({}, location, { - // Firefox sometimes doesn't return url correctly and this is an old behavior - // that I prefer to port here as well. - // It can be altered only here, as previously it's using `location.url` for other things — Kamil - url: location.url || getLocationHref() - })] - }; - notifyHandlers(stack, true, null); - } - - if (_oldOnerrorHandler) { - // @ts-ignore - return _oldOnerrorHandler.apply(this, arguments); - } - - return false; - } - /** - * Ensures all unhandled rejections are recorded. - * @param {PromiseRejectionEvent} e event. - * @memberof TraceKit.report - * @see https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onunhandledrejection - * @see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent - */ - - - function traceKitWindowOnUnhandledRejection(e) { - var err = e && (e.detail ? e.detail.reason : e.reason) || e; - var stack = TraceKit.computeStackTrace(err); - stack.mechanism = 'onunhandledrejection'; - notifyHandlers(stack, true, err); - } - /** - * Install a global onerror handler - * @memberof TraceKit.report - */ - - - function installGlobalHandler() { - if (_onErrorHandlerInstalled === true) { - return; - } - - _oldOnerrorHandler = window.onerror; - window.onerror = traceKitWindowOnError; - _onErrorHandlerInstalled = true; - } - /** - * Uninstall the global onerror handler - * @memberof TraceKit.report - */ - - - function uninstallGlobalHandler() { - if (_onErrorHandlerInstalled) { - window.onerror = _oldOnerrorHandler; - _onErrorHandlerInstalled = false; - } - } - /** - * Install a global onunhandledrejection handler - * @memberof TraceKit.report - */ - - - function installGlobalUnhandledRejectionHandler() { - if (_onUnhandledRejectionHandlerInstalled === true) { - return; - } - - _oldOnunhandledrejectionHandler = window.onunhandledrejection; - window.onunhandledrejection = traceKitWindowOnUnhandledRejection; - _onUnhandledRejectionHandlerInstalled = true; - } - /** - * Uninstall the global onunhandledrejection handler - * @memberof TraceKit.report - */ - - - function uninstallGlobalUnhandledRejectionHandler() { - if (_onUnhandledRejectionHandlerInstalled) { - window.onerror = _oldOnunhandledrejectionHandler; - _onUnhandledRejectionHandlerInstalled = false; - } - } - /** - * Process the most recent exception - * @memberof TraceKit.report - */ - - - function processLastException() { - var _lastExceptionStack = lastExceptionStack, - _lastException = lastException; - lastExceptionStack = null; - lastException = null; - notifyHandlers(_lastExceptionStack, false, _lastException); - } - /** - * Reports an unhandled Error to TraceKit. - * @param {Error} ex - * @memberof TraceKit.report - * @throws An exception if an incomplete stack trace is detected (old IE browsers). - */ - - - function report(ex) { - if (lastExceptionStack) { - if (lastException === ex) { - return; // already caught by an inner catch block, ignore - } else { - processLastException(); - } - } - - var stack = TraceKit.computeStackTrace(ex); - lastExceptionStack = stack; - lastException = ex; // If the stack trace is incomplete, wait for 2 seconds for - // slow slow IE to see if onerror occurs or not before reporting - // this exception; otherwise, we will end up with an incomplete - // stack trace - - setTimeout(function () { - if (lastException === ex) { - processLastException(); - } - }, stack.incomplete ? 2000 : 0); - throw ex; // re-throw to propagate to the top level (and cause window.onerror) - } - - report.subscribe = subscribe; - report.unsubscribe = unsubscribe; - report.installGlobalHandler = installGlobalHandler; - report.installGlobalUnhandledRejectionHandler = installGlobalUnhandledRejectionHandler; - return report; - }(); - /** - * An object representing a single stack frame. - * @typedef {Object} StackFrame - * @property {string} url The JavaScript or HTML file URL. - * @property {string} func The function name, or empty for anonymous functions (if guessing did not work). - * @property {string[]?} args The arguments passed to the function, if known. - * @property {number=} line The line number, if known. - * @property {number=} column The column number, if known. - * @property {string[]} context An array of source code lines; the middle element corresponds to the correct line#. - * @memberof TraceKit - */ - - /** - * An object representing a JavaScript stack trace. - * @typedef {Object} StackTrace - * @property {string} name The name of the thrown exception. - * @property {string} message The exception error message. - * @property {TraceKit.StackFrame[]} stack An array of stack frames. - * @property {string} mode 'stack', 'stacktrace', 'multiline', 'callers', 'onerror', or 'failed' -- method used to collect the stack trace. - * @memberof TraceKit - */ - - /** - * TraceKit.computeStackTrace: cross-browser stack traces in JavaScript - * - * Syntax: - * ```js - * s = TraceKit.computeStackTrace.ofCaller([depth]) - * s = TraceKit.computeStackTrace(exception) // consider using TraceKit.report instead (see below) - * ``` - * - * Supports: - * - Firefox: full stack trace with line numbers and unreliable column - * number on top frame - * - Opera 10: full stack trace with line and column numbers - * - Opera 9-: full stack trace with line numbers - * - Chrome: full stack trace with line and column numbers - * - Safari: line and column number for the topmost stacktrace element - * only - * - IE: no line numbers whatsoever - * - * Tries to guess names of anonymous functions by looking for assignments - * in the source code. In IE and Safari, we have to guess source file names - * by searching for function bodies inside all page scripts. This will not - * work for scripts that are loaded cross-domain. - * Here be dragons: some function names may be guessed incorrectly, and - * duplicate functions may be mismatched. - * - * TraceKit.computeStackTrace should only be used for tracing purposes. - * Logging of unhandled exceptions should be done with TraceKit.report, - * which builds on top of TraceKit.computeStackTrace and provides better - * IE support by utilizing the window.onerror event to retrieve information - * about the top of the stack. - * - * Note: In IE and Safari, no stack trace is recorded on the Error object, - * so computeStackTrace instead walks its *own* chain of callers. - * This means that: - * * in Safari, some methods may be missing from the stack trace; - * * in IE, the topmost function in the stack trace will always be the - * caller of computeStackTrace. - * - * This is okay for tracing (because you are likely to be calling - * computeStackTrace from the function you want to be the topmost element - * of the stack trace anyway), but not okay for logging unhandled - * exceptions (because your catch block will likely be far away from the - * inner function that actually caused the exception). - * - * Tracing example: - * ```js - * function trace(message) { - * var stackInfo = TraceKit.computeStackTrace.ofCaller(); - * var data = message + "\n"; - * for(var i in stackInfo.stack) { - * var item = stackInfo.stack[i]; - * data += (item.func || '[anonymous]') + "() in " + item.url + ":" + (item.line || '0') + "\n"; - * } - * if (window.console) - * console.info(data); - * else - * alert(data); - * } - * ``` - * @memberof TraceKit - * @namespace - */ - - - TraceKit.computeStackTrace = function computeStackTraceWrapper() { - var debug = false, - sourceCache = {}; - /** - * Attempts to retrieve source code via XMLHttpRequest, which is used - * to look up anonymous function names. - * @param {string} url URL of source code. - * @return {string} Source contents. - * @memberof TraceKit.computeStackTrace - */ - - function loadSource(url) { - if (!TraceKit.remoteFetching) { - //Only attempt request if remoteFetching is on. - return ''; - } - - try { - var getXHR = function getXHR() { - try { - return new window.XMLHttpRequest(); - } catch (e) { - // explicitly bubble up the exception if not found - return new window.ActiveXObject('Microsoft.XMLHTTP'); - } - }; - - var request = getXHR(); - request.open('GET', url, false); - request.send(''); - return request.responseText; - } catch (e) { - return ''; - } - } - /** - * Retrieves source code from the source code cache. - * @param {string} url URL of source code. - * @return {Array.} Source contents. - * @memberof TraceKit.computeStackTrace - */ - - - function getSource(url) { - if (typeof url !== 'string') { - return []; - } - - if (!_has(sourceCache, url)) { - // URL needs to be able to fetched within the acceptable domain. Otherwise, - // cross-domain errors will be triggered. - - /* - Regex matches: - 0 - Full Url - 1 - Protocol - 2 - Domain - 3 - Port (Useful for internal applications) - 4 - Path - */ - var source = ''; - var domain = ''; - - try { - domain = window.document.domain; - } catch (e) { - 1; - } // eslint-disable-next-line - - - var match = /(.*)\:\/\/([^:\/]+)([:\d]*)\/{0,1}([\s\S]*)/.exec(url); - - if (match && match[2] === domain) { - source = loadSource(url); - } - - sourceCache[url] = source ? source.split('\n') : []; - } - - return sourceCache[url]; - } - /** - * Tries to use an externally loaded copy of source code to determine - * the name of a function by looking at the name of the variable it was - * assigned to, if any. - * @param {string} url URL of source code. - * @param {(string|number)} lineNo Line number in source code. - * @return {string} The function name, if discoverable. - * @memberof TraceKit.computeStackTrace - */ - - - function guessFunctionName(url, lineNo) { - var reFunctionArgNames = /function ([^(]*)\(([^)]*)\)/, - reGuessFunction = /['"]?([0-9A-Za-z$_]+)['"]?\s*[:=]\s*(function|eval|new Function)/, - line = '', - maxLines = 10, - source = getSource(url), - m; - - if (!source.length) { - return UNKNOWN_FUNCTION; - } // Walk backwards from the first line in the function until we find the line which - // matches the pattern above, which is the function definition - - - for (var i = 0; i < maxLines; ++i) { - line = source[lineNo - i] + line; - - if (!(0, _is.isUndefined)(line)) { - if (m = reGuessFunction.exec(line)) { - return m[1]; - } else if (m = reFunctionArgNames.exec(line)) { - return m[1]; - } - } - } - - return UNKNOWN_FUNCTION; - } - /** - * Retrieves the surrounding lines from where an exception occurred. - * @param {string} url URL of source code. - * @param {(string|number)} line Line number in source code to center around for context. - * @return {?Array.} Lines of source code. - * @memberof TraceKit.computeStackTrace - */ - - - function gatherContext(url, line) { - var source = getSource(url); - - if (!source.length) { - return null; - } - - var context = [], - // linesBefore & linesAfter are inclusive with the offending line. - // if linesOfContext is even, there will be one extra line - // *before* the offending line. - linesBefore = Math.floor(TraceKit.linesOfContext / 2), - // Add one extra line if linesOfContext is odd - linesAfter = linesBefore + TraceKit.linesOfContext % 2, - start = Math.max(0, line - linesBefore - 1), - end = Math.min(source.length, line + linesAfter - 1); - line -= 1; // convert to 0-based index - - for (var i = start; i < end; ++i) { - if (!(0, _is.isUndefined)(source[i])) { - context.push(source[i]); - } - } - - return context.length > 0 ? context : null; - } - /** - * Escapes special characters, except for whitespace, in a string to be - * used inside a regular expression as a string literal. - * @param {string} text The string. - * @return {string} The escaped string literal. - * @memberof TraceKit.computeStackTrace - */ - - - function escapeRegExp(text) { - // eslint-disable-next-line - return text.replace(/[\-\[\]{}()*+?.,\\\^$|#]/g, '\\$&'); - } - /** - * Escapes special characters in a string to be used inside a regular - * expression as a string literal. Also ensures that HTML entities will - * be matched the same as their literal friends. - * @param {string} body The string. - * @return {string} The escaped string. - * @memberof TraceKit.computeStackTrace - */ - - - function escapeCodeAsRegExpForMatchingInsideHTML(body) { - return escapeRegExp(body).replace('<', '(?:<|<)').replace('>', '(?:>|>)').replace('&', '(?:&|&)').replace('"', '(?:"|")').replace(/\s+/g, '\\s+'); - } - /** - * Determines where a code fragment occurs in the source code. - * @param {RegExp} re The function definition. - * @param {Array.} urls A list of URLs to search. - * @return {?Object.} An object containing - * the url, line, and column number of the defined function. - * @memberof TraceKit.computeStackTrace - */ - - - function findSourceInUrls(re, urls) { - var source, m; - - for (var i = 0, j = urls.length; i < j; ++i) { - if ((source = getSource(urls[i])).length) { - source = source.join('\n'); - - if (m = re.exec(source)) { - return { - url: urls[i], - line: source.substring(0, m.index).split('\n').length, - column: m.index - source.lastIndexOf('\n', m.index) - 1 - }; - } - } - } - - return null; - } - /** - * Determines at which column a code fragment occurs on a line of the - * source code. - * @param {string} fragment The code fragment. - * @param {string} url The URL to search. - * @param {(string|number)} line The line number to examine. - * @return {?number} The column number. - * @memberof TraceKit.computeStackTrace - */ - - - function findSourceInLine(fragment, url, line) { - var source = getSource(url), - re = new RegExp('\\b' + escapeRegExp(fragment) + '\\b'), - m; - line -= 1; - - if (source && source.length > line && (m = re.exec(source[line]))) { - return m.index; - } - - return null; - } - /** - * Determines where a function was defined within the source code. - * @param {(Function|string)} func A function reference or serialized - * function definition. - * @return {?Object.} An object containing - * the url, line, and column number of the defined function. - * @memberof TraceKit.computeStackTrace - */ - - - function findSourceByFunctionBody(func) { - if ((0, _is.isUndefined)(window && window.document)) { - return; - } - - var urls = [getLocationHref()], - scripts = window.document.getElementsByTagName('script'), - body, - code = '' + func, - codeRE = /^function(?:\s+([\w$]+))?\s*\(([\w\s,]*)\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/, - eventRE = /^function on([\w$]+)\s*\(event\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/, - re, - parts, - result; - - for (var i = 0; i < scripts.length; ++i) { - var script = scripts[i]; - - if (script.src) { - urls.push(script.src); - } - } - - if (!(parts = codeRE.exec(code))) { - re = new RegExp(escapeRegExp(code).replace(/\s+/g, '\\s+')); - } // not sure if this is really necessary, but I don’t have a test - // corpus large enough to confirm that and it was in the original. - else { - var name = parts[1] ? '\\s+' + parts[1] : '', - args = parts[2].split(',').join('\\s*,\\s*'); - body = escapeRegExp(parts[3]).replace(/;$/, ';?'); // semicolon is inserted if the function ends with a comment.replace(/\s+/g, '\\s+'); - - re = new RegExp('function' + name + '\\s*\\(\\s*' + args + '\\s*\\)\\s*{\\s*' + body + '\\s*}'); - } // look for a normal function definition - - - if (result = findSourceInUrls(re, urls)) { - return result; - } // look for an old-school event handler function - - - if (parts = eventRE.exec(code)) { - var event = parts[1]; - body = escapeCodeAsRegExpForMatchingInsideHTML(parts[2]); // look for a function defined in HTML as an onXXX handler - - re = new RegExp('on' + event + '=[\\\'"]\\s*' + body + '\\s*[\\\'"]', 'i'); - - if (result = findSourceInUrls(re, urls[0])) { - return result; - } // look for ??? - - - re = new RegExp(body); - - if (result = findSourceInUrls(re, urls)) { - return result; - } - } - - return null; - } // Contents of Exception in various browsers. - // - // SAFARI: - // ex.message = Can't find variable: qq - // ex.line = 59 - // ex.sourceId = 580238192 - // ex.sourceURL = http://... - // ex.expressionBeginOffset = 96 - // ex.expressionCaretOffset = 98 - // ex.expressionEndOffset = 98 - // ex.name = ReferenceError - // - // FIREFOX: - // ex.message = qq is not defined - // ex.fileName = http://... - // ex.lineNumber = 59 - // ex.columnNumber = 69 - // ex.stack = ...stack trace... (see the example below) - // ex.name = ReferenceError - // - // CHROME: - // ex.message = qq is not defined - // ex.name = ReferenceError - // ex.type = not_defined - // ex.arguments = ['aa'] - // ex.stack = ...stack trace... - // - // INTERNET EXPLORER: - // ex.message = ... - // ex.name = ReferenceError - // - // OPERA: - // ex.message = ...message... (see the example below) - // ex.name = ReferenceError - // ex.opera#sourceloc = 11 (pretty much useless, duplicates the info in ex.message) - // ex.stacktrace = n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace' - - /** - * Computes stack trace information from the stack property. - * Chrome and Gecko use this property. - * @param {Error} ex - * @return {?TraceKit.StackTrace} Stack trace information. - * @memberof TraceKit.computeStackTrace - */ - - - function computeStackTraceFromStackProp(ex) { - if (!ex.stack) { - return null; - } - - var chrome = /^\s*at (?:(.*?) ?\()?((?:file|https?|blob|chrome-extension|native|eval|webpack||[a-z]:|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i, - gecko = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|moz-extension).*?:\/.*?|\[native code\]|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i, - winjs = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i, - // Used to additionally parse URL/line/column from eval frames - isEval, - geckoEval = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i, - chromeEval = /\((\S*)(?::(\d+))(?::(\d+))\)/, - lines = ex.stack.split('\n'), - stack = [], - submatch, - parts, - element, - reference = /^(.*) is undefined$/.exec(ex.message); - - for (var i = 0, j = lines.length; i < j; ++i) { - if (parts = chrome.exec(lines[i])) { - var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line - - isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line - - if (isEval && (submatch = chromeEval.exec(parts[2]))) { - // throw out eval line/column and use top-most line/column number - parts[2] = submatch[1]; // url - // NOTE: It's messing out our integration tests in Karma, let's see if we can live with it – Kamil - // parts[3] = submatch[2]; // line - // parts[4] = submatch[3]; // column - } - - element = { - url: !isNative ? parts[2] : null, - func: parts[1] || UNKNOWN_FUNCTION, - args: isNative ? [parts[2]] : [], - line: parts[3] ? +parts[3] : null, - column: parts[4] ? +parts[4] : null - }; - } else if (parts = winjs.exec(lines[i])) { - element = { - url: parts[2], - func: parts[1] || UNKNOWN_FUNCTION, - args: [], - line: +parts[3], - column: parts[4] ? +parts[4] : null - }; - } else if (parts = gecko.exec(lines[i])) { - isEval = parts[3] && parts[3].indexOf(' > eval') > -1; - - if (isEval && (submatch = geckoEval.exec(parts[3]))) { - // throw out eval line/column and use top-most line number - parts[3] = submatch[1]; // NOTE: It's messing out our integration tests in Karma, let's see if we can live with it – Kamil - // parts[4] = submatch[2]; - // parts[5] = null; // no column when eval - } else if (i === 0 && !parts[5] && !(0, _is.isUndefined)(ex.columnNumber)) { - // FireFox uses this awesome columnNumber property for its top frame - // Also note, Firefox's column number is 0-based and everything else expects 1-based, - // so adding 1 - // NOTE: this hack doesn't work if top-most frame is eval - stack[0].column = ex.columnNumber + 1; - } - - element = { - url: parts[3], - func: parts[1] || UNKNOWN_FUNCTION, - args: parts[2] ? parts[2].split(',') : [], - line: parts[4] ? +parts[4] : null, - column: parts[5] ? +parts[5] : null - }; - } else { - continue; - } - - if (!element.func && element.line) { - element.func = guessFunctionName(element.url, element.line); - } - - if (TraceKit.remoteFetching && element.url && element.url.substr(0, 5) === 'blob:') { - // Special case for handling JavaScript loaded into a blob. - // We use a synchronous AJAX request here as a blob is already in - // memory - it's not making a network request. This will generate a warning - // in the browser console, but there has already been an error so that's not - // that much of an issue. - var xhr = new XMLHttpRequest(); - xhr.open('GET', element.url, false); - xhr.send(''); // If we failed to download the source, skip this patch - - if (xhr.status === 200) { - var source = xhr.responseText || ''; // We trim the source down to the last 300 characters as sourceMappingURL is always at the end of the file. - // Why 300? To be in line with: https://github.com/getsentry/sentry/blob/4af29e8f2350e20c28a6933354e4f42437b4ba42/src/sentry/lang/javascript/processor.py#L164-L175 - - source = source.slice(-300); // Now we dig out the source map URL - - var sourceMaps = source.match(/\/\/# sourceMappingURL=(.*)$/); // If we don't find a source map comment or we find more than one, continue on to the next element. - - if (sourceMaps) { - var sourceMapAddress = sourceMaps[1]; // Now we check to see if it's a relative URL. - // If it is, convert it to an absolute one. - - if (sourceMapAddress.charAt(0) === '~') { - sourceMapAddress = getLocationOrigin() + sourceMapAddress.slice(1); - } // Now we strip the '.map' off of the end of the URL and update the - // element so that Sentry can match the map to the blob. - - - element.url = sourceMapAddress.slice(0, -4); - } - } - } - - element.context = element.line ? gatherContext(element.url, element.line) : null; - stack.push(element); - } - - if (!stack.length) { - return null; - } - - if (stack[0] && stack[0].line && !stack[0].column && reference) { - stack[0].column = findSourceInLine(reference[1], stack[0].url, stack[0].line); - } - - return { - mode: 'stack', - name: ex.name, - message: ex.message, - stack: stack - }; - } - /** - * Computes stack trace information from the stacktrace property. - * Opera 10+ uses this property. - * @param {Error} ex - * @return {?TraceKit.StackTrace} Stack trace information. - * @memberof TraceKit.computeStackTrace - */ - - - function computeStackTraceFromStacktraceProp(ex) { - // Access and store the stacktrace property before doing ANYTHING - // else to it because Opera is not very good at providing it - // reliably in other circumstances. - var stacktrace = ex.stacktrace; - - if (!stacktrace) { - return; - } - - var opera10Regex = / line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i, - // eslint-disable-next-line - opera11Regex = / line (\d+), column (\d+)\s*(?:in (?:]+)>|([^\)]+))\((.*)\))? in (.*):\s*$/i, - lines = stacktrace.split('\n'), - stack = [], - parts; - - for (var line = 0; line < lines.length; line += 2) { - var element = null; - - if (parts = opera10Regex.exec(lines[line])) { - element = { - url: parts[2], - line: +parts[1], - column: null, - func: parts[3], - args: [] - }; - } else if (parts = opera11Regex.exec(lines[line])) { - element = { - url: parts[6], - line: +parts[1], - column: +parts[2], - func: parts[3] || parts[4], - args: parts[5] ? parts[5].split(',') : [] - }; - } - - if (element) { - if (!element.func && element.line) { - element.func = guessFunctionName(element.url, element.line); - } - - if (element.line) { - try { - element.context = gatherContext(element.url, element.line); - } catch (exc) { - 1; - } - } - - if (!element.context) { - element.context = [lines[line + 1]]; - } - - stack.push(element); - } - } - - if (!stack.length) { - return null; - } - - return { - mode: 'stacktrace', - name: ex.name, - message: ex.message, - stack: stack - }; - } - /** - * NOT TESTED. - * Computes stack trace information from an error message that includes - * the stack trace. - * Opera 9 and earlier use this method if the option to show stack - * traces is turned on in opera:config. - * @param {Error} ex - * @return {?TraceKit.StackTrace} Stack information. - * @memberof TraceKit.computeStackTrace - */ - - - function computeStackTraceFromOperaMultiLineMessage(ex) { - // TODO: Clean this function up - // Opera includes a stack trace into the exception message. An example is: - // - // Statement on line 3: Undefined variable: undefinedFunc - // Backtrace: - // Line 3 of linked script file://localhost/Users/andreyvit/Projects/TraceKit/javascript-client/sample.js: In function zzz - // undefinedFunc(a); - // Line 7 of inline#1 script in file://localhost/Users/andreyvit/Projects/TraceKit/javascript-client/sample.html: In function yyy - // zzz(x, y, z); - // Line 3 of inline#1 script in file://localhost/Users/andreyvit/Projects/TraceKit/javascript-client/sample.html: In function xxx - // yyy(a, a, a); - // Line 1 of function script - // try { xxx('hi'); return false; } catch(ex) { TraceKit.report(ex); } - // ... - var lines = ex.message.split('\n'); - - if (lines.length < 4) { - return null; - } - - var lineRE1 = /^\s*Line (\d+) of linked script ((?:file|https?|blob)\S+)(?:: in function (\S+))?\s*$/i, - lineRE2 = /^\s*Line (\d+) of inline#(\d+) script in ((?:file|https?|blob)\S+)(?:: in function (\S+))?\s*$/i, - lineRE3 = /^\s*Line (\d+) of function script\s*$/i, - stack = [], - scripts = window && window.document && window.document.getElementsByTagName('script'), - inlineScriptBlocks = [], - parts; - - for (var s in scripts) { - if (_has(scripts, s) && !scripts[s].src) { - inlineScriptBlocks.push(scripts[s]); - } - } - - for (var line = 2; line < lines.length; line += 2) { - var item = null; - - if (parts = lineRE1.exec(lines[line])) { - item = { - url: parts[2], - func: parts[3], - args: [], - line: +parts[1], - column: null - }; - } else if (parts = lineRE2.exec(lines[line])) { - item = { - url: parts[3], - func: parts[4], - args: [], - line: +parts[1], - column: null // TODO: Check to see if inline#1 (+parts[2]) points to the script number or column number. - - }; - var relativeLine = +parts[1]; // relative to the start of the