diff --git a/.travis.yml b/.travis.yml index 5d2740c..b21b510 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,13 +1,8 @@ version: ~> 1.0 import: - - silverstripe/silverstripe-travis-shared:config/provision/standard-jobs-fixed-behat-npm.yml - # TODO: uncomment 'range' when 4.8 branch is available, remove 'fixed' requirement above - # - silverstripe/silverstripe-travis-shared:config/provision/standard-jobs-range-behat-npm.yml + - silverstripe/silverstripe-travis-shared:config/provision/standard-jobs-range-behat-npm.yml env: global: - - REQUIRE_RECIPE="4.x-dev" - # TODO: uncomment 4.8.x-dev requirement below when 4.8 branch is available, remove 4.x-dev requirement above - # require at minimum recipe 4.8 so that latest RememberLoginHash logic is available - # - REQUIRE_RECIPE="4.8.x-dev || " + - REQUIRE_RECIPE="4.8.x-dev || " diff --git a/README.md b/README.md index d319fec..e72c99e 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ Read [Saved User Logins](https://docs.silverstripe.org/en/4/developer_guides/sec Non-persisted login sessions (those where the user hasn’t ticked “remember me”) should expire after a period of inactivity, so that they’re removed from the list of active sessions even if the user closes their browser without completing the “log out” action. The length of time before expiry matches the `SilverStripe\Control\Session.timeout` value if one is set, otherwise falling back to a default of one hour. This default can be changed via the following config setting: ```yml -SilverStripe\SessionManager\Model\LoginSession: +SilverStripe\SessionManager\Models\LoginSession: default_session_lifetime: 3600 # Default value: 1 hour in seconds ``` diff --git a/_config/config.yml b/_config/config.yml index 5c0f6a2..cabe233 100644 --- a/_config/config.yml +++ b/_config/config.yml @@ -42,7 +42,7 @@ SilverStripe\Core\Injector\Injector: SilverStripe\Control\Director: properties: Middlewares: - LoginSessionMiddleware: '%$SilverStripe\SessionManager\Control\LoginSessionMiddleware' + LoginSessionMiddleware: '%$SilverStripe\SessionManager\Middleware\LoginSessionMiddleware' --- Name: session-manager-rememberloginhash After: '#coreauthentication' diff --git a/_config/routes.yml b/_config/routes.yml new file mode 100644 index 0000000..6114643 --- /dev/null +++ b/_config/routes.yml @@ -0,0 +1,7 @@ +--- +Name: session-manager-routes +After: '#coreroutes' +--- +SilverStripe\Control\Director: + rules: + 'loginsession//remove/$ID': SilverStripe\SessionManager\Controllers\LoginSessionController diff --git a/client/dist/js/bundle.js b/client/dist/js/bundle.js index c217db1..f109ed4 100755 --- a/client/dist/js/bundle.js +++ b/client/dist/js/bundle.js @@ -1 +1 @@ -!function(e){function t(r){if(o[r])return o[r].exports;var n=o[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var o={};t.m=e,t.c=o,t.i=function(e){return e},t.d=function(e,o,r){t.o(e,o)||Object.defineProperty(e,o,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(o,"a",o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s="./client/src/bundles/bundle.js")}({"./client/src/boot/index.js":function(e,t,o){"use strict";var r=o("./client/src/boot/registerComponents.js"),n=function(e){return e&&e.__esModule?e:{default:e}}(r);window.document.addEventListener("DOMContentLoaded",function(){(0,n.default)()})},"./client/src/boot/registerComponents.js":function(e,t,o){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=o("./client/src/components/LoginSession/LoginSession.js"),s=r(n),a=o("./client/src/components/LoginSession/LoginSessionContainer.js"),i=r(a),l=o("./client/src/components/SessionManagerField/SessionManagerField.js"),u=r(l),d=o(4),c=r(d);t.default=function(){c.default.component.registerMany({LoginSession:s.default,LoginSessionContainer:i.default,SessionManagerField:u.default})}},"./client/src/bundles/bundle.js":function(e,t,o){"use strict";o("./client/src/legacy/index.js"),o("./client/src/boot/index.js")},"./client/src/components/LoginSession/LoginSession.js":function(e,t,o){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function n(e){var t=function(){var t=(0,l.default)(a.default.mark(function t(){var o,r,n;return a.default.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!e.submitting){t.next=2;break}return t.abrupt("return");case 2:return o=d.default._t("SessionManager.DELETE_CONFIRMATION","Are you sure you want to delete this login session?"),r=d.default._t("SessionManager.CONFIRMATION_TITLE","Are you sure?"),n=d.default._t("SessionManager.DELETE_CONFIRMATION_BUTTON","Remove login session"),t.next=7,(0,y.default)(o,{title:r,confirmLabel:n});case 7:if(t.sent){t.next=9;break}return t.abrupt("return");case 9:e.logout();case 10:case"end":return t.stop()}},t,this)}));return function(){return t.apply(this,arguments)}}(),o=d.default._t("SessionManager.CURRENT","Current"),r=e.submitting||e.complete&&!e.failed?d.default._t("SessionManager.LOGGING_OUT","Logging out..."):d.default._t("SessionManager.LOG_OUT","Log out");return f.default.createElement("div",{className:"login-session "+(e.complete&&!e.failed?"hidden":"")},f.default.createElement("p",null,e.UserAgent),f.default.createElement("p",{className:"text-muted"},e.IPAddress,function(){b.default.locale(d.default.detectLocale());var t=b.default.utc(e.Created).local(),o=b.default.utc(e.LastAccessed).local(),r=t.fromNow(),n=o.fromNow(),s=d.default.inject(d.default._t("Admin.ACTIVITY_TOOLTIP_TEXT","Signed in {signedIn}, Last active {lastActive}"),{signedIn:t.format(_),lastActive:o.format(_)}),a=e.IsCurrent?d.default.inject(d.default._t("SessionManager.AUTHENTICATED","authenticated {createdElapsed}..."),{createdElapsed:r}):d.default.inject(d.default._t("SessionManager.LAST_ACTIVE","last active {lastAccessedElapsed}..."),{lastAccessedElapsed:n});return f.default.createElement("span",{"data-toggle":"tooltip","data-placement":"top",title:s},", ",a)}()),f.default.createElement("p",null,e.IsCurrent&&f.default.createElement("strong",{className:"text-success"},o),!e.IsCurrent&&f.default.createElement(v.default,{color:"link",className:"login-session__logout",onClick:function(){return t()}},r)))}Object.defineProperty(t,"__esModule",{value:!0});var s=o("./node_modules/babel-runtime/regenerator/index.js"),a=r(s),i=o("./node_modules/babel-runtime/helpers/asyncToGenerator.js"),l=r(i),u=o(5),d=r(u),c=o(1),p=r(c),m=o(0),f=r(m),h=o(12),b=r(h),g=o("./node_modules/@silverstripe/reactstrap-confirm/dist/index.js"),y=r(g),j=o(7),v=r(j),_="L LT";n.propTypes={IPAddress:p.default.string.isRequired,IsCurrent:p.default.bool,UserAgent:p.default.string,Created:p.default.string.isRequired,LastAccessed:p.default.string.isRequired,submitting:p.default.bool.isRequired,complete:p.default.bool.isRequired,failed:p.default.bool.isRequired},t.default=n},"./client/src/components/LoginSession/LoginSessionContainer.js":function(e,t,o){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function n(e){return j.default.createEndpointFetcher({url:e+"/:id",method:"delete",payloadSchema:{id:{urlReplacement:":id",remove:!0},SecurityID:{querystring:!0}}})}function s(e){function t(){return j(!0),n(e.LogOutEndpoint)({id:e.ID,SecurityID:_.default.get("SecurityID")}).then(function(t){var o=!t.success;m(o),o?e.displayToastFailure(t.message):e.displayToastSuccess(t.message)}).catch(function(){m(!0),e.displayToastFailure(C.default._t("SessionManager.COULD_NOT_LOGOUT","Could not log out of session. Try again later."))}).finally(function(){a(!0),j(!1)})}var o=(0,h.useState)(!1),r=(0,p.default)(o,2),s=r[0],a=r[1],i=(0,h.useState)(!1),u=(0,p.default)(i,2),c=u[0],m=u[1],f=(0,h.useState)(!1),g=(0,p.default)(f,2),y=g[0],j=g[1],v=(e.ID,(0,d.default)(e,["ID"])),x=(0,l.default)({logout:t,complete:s,failed:c,submitting:y},v);return b.default.createElement(T.default,x)}function a(e){return{displayToastSuccess:function(t){e((0,E.success)(t))},displayToastFailure:function(t){e((0,E.error)(t))}}}Object.defineProperty(t,"__esModule",{value:!0}),t.Component=void 0;var i=o("./node_modules/babel-runtime/helpers/extends.js"),l=r(i),u=o("./node_modules/babel-runtime/helpers/objectWithoutProperties.js"),d=r(u),c=o("./node_modules/babel-runtime/helpers/slicedToArray.js"),p=r(c),m=o(1),f=r(m),h=o(0),b=r(h),g=o(9),y=o(6),j=r(y),v=o(8),_=r(v),x=o("./client/src/components/LoginSession/LoginSession.js"),T=r(x),E=o(10),O=o(5),C=r(O);s.propTypes={ID:f.default.number.isRequired,LogOutEndpoint:f.default.string.isRequired,displayToastSuccess:f.default.func.isRequired,displayToastFailure:f.default.func.isRequired,IPAddress:f.default.string.isRequired,IsCurrent:f.default.bool,UserAgent:f.default.string,Created:f.default.string.isRequired,LastAccessed:f.default.string.isRequired},t.Component=s,t.default=(0,g.connect)(function(){return{}},a)(s)},"./client/src/components/SessionManagerField/SessionManagerField.js":function(e,t,o){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function n(e){return a.default.createElement("ul",{className:"session-manager-field list-unstyled"},e.loginSessions.map(function(e){return a.default.createElement("li",{key:e.ID,className:"list-unstyled"},a.default.createElement(l.default,e))}))}Object.defineProperty(t,"__esModule",{value:!0});var s=o(0),a=r(s),i=o("./client/src/components/LoginSession/LoginSessionContainer.js"),l=r(i),u=o(1),d=r(u);n.propTypes={loginSessions:d.default.arrayOf(l.default.propTypes)},t.default=n},"./client/src/legacy/SessionManagerFieldEntwine.js":function(e,t,o){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function n(e){var t=(0,u.loadComponent)("SessionManagerField"),o=e.data("schema"),r=o.schema.loginSessions;l.default.render(a.default.createElement(t,{loginSessions:r}),e[0])}var s=o(0),a=r(s),i=o(3),l=r(i),u=o(4),d=o(11),c=r(d);c.default.entwine("ss",function(){(0,c.default)('.js-injector-boot [data-field-type="session-manager-field"]').entwine({onmatch:function(){n(this)}})})},"./client/src/legacy/index.js":function(e,t,o){"use strict";o("./client/src/legacy/SessionManagerFieldEntwine.js")},"./node_modules/@babel/runtime/helpers/assertThisInitialized.js":function(e,t){function o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}e.exports=o,e.exports.default=e.exports,e.exports.__esModule=!0},"./node_modules/@babel/runtime/helpers/defineProperty.js":function(e,t){function o(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}e.exports=o,e.exports.default=e.exports,e.exports.__esModule=!0},"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js":function(e,t,o){"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}t.a=r},"./node_modules/@babel/runtime/helpers/esm/defineProperty.js":function(e,t,o){"use strict";function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}t.a=r},"./node_modules/@babel/runtime/helpers/esm/extends.js":function(e,t,o){"use strict";function r(){return r=Object.assign||function(e){for(var t=1;t=0||(n[o]=e[o]);return n}t.a=r},"./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js":function(e,t,o){"use strict";function r(e,t){return(r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}t.a=r},"./node_modules/@babel/runtime/helpers/extends.js":function(e,t){function o(){return e.exports=o=Object.assign||function(e){for(var t=1;t=0||(n[o]=e[o]);return n}e.exports=o,e.exports.default=e.exports,e.exports.__esModule=!0},"./node_modules/@babel/runtime/helpers/setPrototypeOf.js":function(e,t){function o(t,r){return e.exports=o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},e.exports.default=e.exports,e.exports.__esModule=!0,o(t,r)}e.exports=o,e.exports.default=e.exports,e.exports.__esModule=!0},"./node_modules/@babel/runtime/helpers/typeof.js":function(e,t){function o(t){"@babel/helpers - typeof";return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?(e.exports=o=function(e){return typeof e},e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=o=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.default=e.exports,e.exports.__esModule=!0),o(t)}e.exports=o,e.exports.default=e.exports,e.exports.__esModule=!0},"./node_modules/@hypnosphi/create-react-context/lib/implementation.js":function(e,t,o){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e,t){return e===t?0!==e||1/e==1/t:e!==e&&t!==t}function l(e){var t=[];return{on:function(e){t.push(e)},off:function(e){t=t.filter(function(t){return t!==e})},get:function(){return e},set:function(o,r){e=o,t.forEach(function(t){return t(e,r)})}}}function u(e){return Array.isArray(e)?e[0]:e}function d(e,t){var o,r,d="__create-react-context-"+(0,h.default)()+"__",p=function(e){function o(){var t,r,a;n(this,o);for(var i=arguments.length,u=Array(i),d=0;d=0||Object.prototype.hasOwnProperty.call(e,r)&&(o[r]=e[r]);return o}},"./node_modules/babel-runtime/helpers/slicedToArray.js":function(e,t,o){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var n=o("./node_modules/babel-runtime/core-js/is-iterable.js"),s=r(n),a=o("./node_modules/babel-runtime/core-js/get-iterator.js"),i=r(a);t.default=function(){function e(e,t){var o=[],r=!0,n=!1,s=void 0;try{for(var a,l=(0,i.default)(e);!(r=(a=l.next()).done)&&(o.push(a.value),!t||o.length!==t);r=!0);}catch(e){n=!0,s=e}finally{try{!r&&l.return&&l.return()}finally{if(n)throw s}}return o}return function(t,o){if(Array.isArray(t))return t;if((0,s.default)(Object(t)))return e(t,o);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},"./node_modules/babel-runtime/regenerator/index.js":function(e,t,o){e.exports=o("./node_modules/regenerator-runtime/runtime-module.js")},"./node_modules/call-bind/callBound.js":function(e,t,o){"use strict";var r=o("./node_modules/get-intrinsic/index.js"),n=o("./node_modules/call-bind/index.js"),s=n(r("String.prototype.indexOf"));e.exports=function(e,t){var o=r(e,!!t);return"function"==typeof o&&s(e,".prototype.")>-1?n(o):o}},"./node_modules/call-bind/index.js":function(e,t,o){"use strict";var r=o("./node_modules/function-bind/index.js"),n=o("./node_modules/get-intrinsic/index.js"),s=n("%Function.prototype.apply%"),a=n("%Function.prototype.call%"),i=n("%Reflect.apply%",!0)||r.call(a,s),l=n("%Object.getOwnPropertyDescriptor%",!0),u=n("%Object.defineProperty%",!0),d=n("%Math.max%");if(u)try{u({},"a",{value:1})}catch(e){u=null}e.exports=function(e){var t=i(r,a,arguments);return l&&u&&l(t,"length").configurable&&u(t,"length",{value:1+d(0,e.length-(arguments.length-1))}),t};var c=function(){return i(r,s,arguments)};u?u(e.exports,"apply",{value:c}):e.exports.apply=c},"./node_modules/core-js/library/fn/get-iterator.js":function(e,t,o){o("./node_modules/core-js/library/modules/web.dom.iterable.js"),o("./node_modules/core-js/library/modules/es6.string.iterator.js"),e.exports=o("./node_modules/core-js/library/modules/core.get-iterator.js")},"./node_modules/core-js/library/fn/is-iterable.js":function(e,t,o){o("./node_modules/core-js/library/modules/web.dom.iterable.js"),o("./node_modules/core-js/library/modules/es6.string.iterator.js"),e.exports=o("./node_modules/core-js/library/modules/core.is-iterable.js")},"./node_modules/core-js/library/fn/object/assign.js":function(e,t,o){o("./node_modules/core-js/library/modules/es6.object.assign.js"),e.exports=o("./node_modules/core-js/library/modules/_core.js").Object.assign},"./node_modules/core-js/library/fn/promise.js":function(e,t,o){o("./node_modules/core-js/library/modules/es6.object.to-string.js"),o("./node_modules/core-js/library/modules/es6.string.iterator.js"),o("./node_modules/core-js/library/modules/web.dom.iterable.js"),o("./node_modules/core-js/library/modules/es6.promise.js"),o("./node_modules/core-js/library/modules/es7.promise.finally.js"),o("./node_modules/core-js/library/modules/es7.promise.try.js"),e.exports=o("./node_modules/core-js/library/modules/_core.js").Promise},"./node_modules/core-js/library/modules/_a-function.js":function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},"./node_modules/core-js/library/modules/_add-to-unscopables.js":function(e,t){e.exports=function(){}},"./node_modules/core-js/library/modules/_an-instance.js":function(e,t){e.exports=function(e,t,o,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(o+": incorrect invocation!");return e}},"./node_modules/core-js/library/modules/_an-object.js":function(e,t,o){var r=o("./node_modules/core-js/library/modules/_is-object.js");e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},"./node_modules/core-js/library/modules/_array-includes.js":function(e,t,o){var r=o("./node_modules/core-js/library/modules/_to-iobject.js"),n=o("./node_modules/core-js/library/modules/_to-length.js"),s=o("./node_modules/core-js/library/modules/_to-absolute-index.js");e.exports=function(e){return function(t,o,a){var i,l=r(t),u=n(l.length),d=s(a,u);if(e&&o!=o){for(;u>d;)if((i=l[d++])!=i)return!0}else for(;u>d;d++)if((e||d in l)&&l[d]===o)return e||d||0;return!e&&-1}}},"./node_modules/core-js/library/modules/_classof.js":function(e,t,o){var r=o("./node_modules/core-js/library/modules/_cof.js"),n=o("./node_modules/core-js/library/modules/_wks.js")("toStringTag"),s="Arguments"==r(function(){return arguments}()),a=function(e,t){try{return e[t]}catch(e){}};e.exports=function(e){var t,o,i;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(o=a(t=Object(e),n))?o:s?r(t):"Object"==(i=r(t))&&"function"==typeof t.callee?"Arguments":i}},"./node_modules/core-js/library/modules/_cof.js":function(e,t){var o={}.toString;e.exports=function(e){return o.call(e).slice(8,-1)}},"./node_modules/core-js/library/modules/_core.js":function(e,t){var o=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=o)},"./node_modules/core-js/library/modules/_ctx.js":function(e,t,o){var r=o("./node_modules/core-js/library/modules/_a-function.js");e.exports=function(e,t,o){if(r(e),void 0===t)return e;switch(o){case 1:return function(o){return e.call(t,o)};case 2:return function(o,r){return e.call(t,o,r)};case 3:return function(o,r,n){return e.call(t,o,r,n)}}return function(){return e.apply(t,arguments)}}},"./node_modules/core-js/library/modules/_defined.js":function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},"./node_modules/core-js/library/modules/_descriptors.js":function(e,t,o){e.exports=!o("./node_modules/core-js/library/modules/_fails.js")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},"./node_modules/core-js/library/modules/_dom-create.js":function(e,t,o){var r=o("./node_modules/core-js/library/modules/_is-object.js"),n=o("./node_modules/core-js/library/modules/_global.js").document,s=r(n)&&r(n.createElement);e.exports=function(e){return s?n.createElement(e):{}}},"./node_modules/core-js/library/modules/_enum-bug-keys.js":function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},"./node_modules/core-js/library/modules/_export.js":function(e,t,o){var r=o("./node_modules/core-js/library/modules/_global.js"),n=o("./node_modules/core-js/library/modules/_core.js"),s=o("./node_modules/core-js/library/modules/_ctx.js"),a=o("./node_modules/core-js/library/modules/_hide.js"),i=o("./node_modules/core-js/library/modules/_has.js"),l=function(e,t,o){var u,d,c,p=e&l.F,m=e&l.G,f=e&l.S,h=e&l.P,b=e&l.B,g=e&l.W,y=m?n:n[t]||(n[t]={}),j=y.prototype,v=m?r:f?r[t]:(r[t]||{}).prototype;m&&(o=t);for(u in o)(d=!p&&v&&void 0!==v[u])&&i(y,u)||(c=d?v[u]:o[u],y[u]=m&&"function"!=typeof v[u]?o[u]:b&&d?s(c,r):g&&v[u]==c?function(e){var t=function(t,o,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,o)}return new e(t,o,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(c):h&&"function"==typeof c?s(Function.call,c):c,h&&((y.virtual||(y.virtual={}))[u]=c,e&l.R&&j&&!j[u]&&a(j,u,c)))};l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,e.exports=l},"./node_modules/core-js/library/modules/_fails.js":function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},"./node_modules/core-js/library/modules/_for-of.js":function(e,t,o){var r=o("./node_modules/core-js/library/modules/_ctx.js"),n=o("./node_modules/core-js/library/modules/_iter-call.js"),s=o("./node_modules/core-js/library/modules/_is-array-iter.js"),a=o("./node_modules/core-js/library/modules/_an-object.js"),i=o("./node_modules/core-js/library/modules/_to-length.js"),l=o("./node_modules/core-js/library/modules/core.get-iterator-method.js"),u={},d={},t=e.exports=function(e,t,o,c,p){var m,f,h,b,g=p?function(){return e}:l(e),y=r(o,c,t?2:1),j=0;if("function"!=typeof g)throw TypeError(e+" is not iterable!");if(s(g)){for(m=i(e.length);m>j;j++)if((b=t?y(a(f=e[j])[0],f[1]):y(e[j]))===u||b===d)return b}else for(h=g.call(e);!(f=h.next()).done;)if((b=n(h,y,f.value,t))===u||b===d)return b};t.BREAK=u,t.RETURN=d},"./node_modules/core-js/library/modules/_global.js":function(e,t){var o=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=o)},"./node_modules/core-js/library/modules/_has.js":function(e,t){var o={}.hasOwnProperty;e.exports=function(e,t){return o.call(e,t)}},"./node_modules/core-js/library/modules/_hide.js":function(e,t,o){var r=o("./node_modules/core-js/library/modules/_object-dp.js"),n=o("./node_modules/core-js/library/modules/_property-desc.js");e.exports=o("./node_modules/core-js/library/modules/_descriptors.js")?function(e,t,o){return r.f(e,t,n(1,o))}:function(e,t,o){return e[t]=o,e}},"./node_modules/core-js/library/modules/_html.js":function(e,t,o){var r=o("./node_modules/core-js/library/modules/_global.js").document;e.exports=r&&r.documentElement},"./node_modules/core-js/library/modules/_ie8-dom-define.js":function(e,t,o){e.exports=!o("./node_modules/core-js/library/modules/_descriptors.js")&&!o("./node_modules/core-js/library/modules/_fails.js")(function(){return 7!=Object.defineProperty(o("./node_modules/core-js/library/modules/_dom-create.js")("div"),"a",{get:function(){return 7}}).a})},"./node_modules/core-js/library/modules/_invoke.js":function(e,t){e.exports=function(e,t,o){var r=void 0===o;switch(t.length){case 0:return r?e():e.call(o);case 1:return r?e(t[0]):e.call(o,t[0]);case 2:return r?e(t[0],t[1]):e.call(o,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(o,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(o,t[0],t[1],t[2],t[3])}return e.apply(o,t)}},"./node_modules/core-js/library/modules/_iobject.js":function(e,t,o){var r=o("./node_modules/core-js/library/modules/_cof.js");e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},"./node_modules/core-js/library/modules/_is-array-iter.js":function(e,t,o){var r=o("./node_modules/core-js/library/modules/_iterators.js"),n=o("./node_modules/core-js/library/modules/_wks.js")("iterator"),s=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||s[n]===e)}},"./node_modules/core-js/library/modules/_is-object.js":function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},"./node_modules/core-js/library/modules/_iter-call.js":function(e,t,o){var r=o("./node_modules/core-js/library/modules/_an-object.js");e.exports=function(e,t,o,n){try{return n?t(r(o)[0],o[1]):t(o)}catch(t){var s=e.return;throw void 0!==s&&r(s.call(e)),t}}},"./node_modules/core-js/library/modules/_iter-create.js":function(e,t,o){"use strict";var r=o("./node_modules/core-js/library/modules/_object-create.js"),n=o("./node_modules/core-js/library/modules/_property-desc.js"),s=o("./node_modules/core-js/library/modules/_set-to-string-tag.js"),a={};o("./node_modules/core-js/library/modules/_hide.js")(a,o("./node_modules/core-js/library/modules/_wks.js")("iterator"),function(){return this}),e.exports=function(e,t,o){e.prototype=r(a,{next:n(1,o)}),s(e,t+" Iterator")}},"./node_modules/core-js/library/modules/_iter-define.js":function(e,t,o){"use strict";var r=o("./node_modules/core-js/library/modules/_library.js"),n=o("./node_modules/core-js/library/modules/_export.js"),s=o("./node_modules/core-js/library/modules/_redefine.js"),a=o("./node_modules/core-js/library/modules/_hide.js"),i=o("./node_modules/core-js/library/modules/_iterators.js"),l=o("./node_modules/core-js/library/modules/_iter-create.js"),u=o("./node_modules/core-js/library/modules/_set-to-string-tag.js"),d=o("./node_modules/core-js/library/modules/_object-gpo.js"),c=o("./node_modules/core-js/library/modules/_wks.js")("iterator"),p=!([].keys&&"next"in[].keys()),m=function(){return this};e.exports=function(e,t,o,f,h,b,g){l(o,t,f);var y,j,v,_=function(e){if(!p&&e in O)return O[e];switch(e){case"keys":case"values":return function(){return new o(this,e)}}return function(){return new o(this,e)}},x=t+" Iterator",T="values"==h,E=!1,O=e.prototype,C=O[c]||O["@@iterator"]||h&&O[h],P=C||_(h),w=h?T?_("entries"):P:void 0,N="Array"==t?O.entries||C:C;if(N&&(v=d(N.call(new e)))!==Object.prototype&&v.next&&(u(v,x,!0),r||"function"==typeof v[c]||a(v,c,m)),T&&C&&"values"!==C.name&&(E=!0,P=function(){return C.call(this)}),r&&!g||!p&&!E&&O[c]||a(O,c,P),i[t]=P,i[x]=m,h)if(y={values:T?P:_("values"),keys:b?P:_("keys"),entries:w},g)for(j in y)j in O||s(O,j,y[j]);else n(n.P+n.F*(p||E),t,y);return y}},"./node_modules/core-js/library/modules/_iter-detect.js":function(e,t,o){var r=o("./node_modules/core-js/library/modules/_wks.js")("iterator"),n=!1;try{var s=[7][r]();s.return=function(){n=!0},Array.from(s,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!n)return!1;var o=!1;try{var s=[7],a=s[r]();a.next=function(){return{done:o=!0}},s[r]=function(){return a},e(s)}catch(e){}return o}},"./node_modules/core-js/library/modules/_iter-step.js":function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},"./node_modules/core-js/library/modules/_iterators.js":function(e,t){e.exports={}},"./node_modules/core-js/library/modules/_library.js":function(e,t){e.exports=!0},"./node_modules/core-js/library/modules/_microtask.js":function(e,t,o){var r=o("./node_modules/core-js/library/modules/_global.js"),n=o("./node_modules/core-js/library/modules/_task.js").set,s=r.MutationObserver||r.WebKitMutationObserver,a=r.process,i=r.Promise,l="process"==o("./node_modules/core-js/library/modules/_cof.js")(a);e.exports=function(){var e,t,o,u=function(){var r,n;for(l&&(r=a.domain)&&r.exit();e;){n=e.fn,e=e.next;try{n()}catch(r){throw e?o():t=void 0,r}}t=void 0,r&&r.enter()};if(l)o=function(){a.nextTick(u)};else if(!s||r.navigator&&r.navigator.standalone)if(i&&i.resolve){var d=i.resolve(void 0);o=function(){d.then(u)}}else o=function(){n.call(r,u)};else{var c=!0,p=document.createTextNode("");new s(u).observe(p,{characterData:!0}),o=function(){p.data=c=!c}}return function(r){var n={fn:r,next:void 0};t&&(t.next=n),e||(e=n,o()),t=n}}},"./node_modules/core-js/library/modules/_new-promise-capability.js":function(e,t,o){"use strict";function r(e){var t,o;this.promise=new e(function(e,r){if(void 0!==t||void 0!==o)throw TypeError("Bad Promise constructor");t=e,o=r}),this.resolve=n(t),this.reject=n(o)}var n=o("./node_modules/core-js/library/modules/_a-function.js");e.exports.f=function(e){return new r(e)}},"./node_modules/core-js/library/modules/_object-assign.js":function(e,t,o){"use strict";var r=o("./node_modules/core-js/library/modules/_descriptors.js"),n=o("./node_modules/core-js/library/modules/_object-keys.js"),s=o("./node_modules/core-js/library/modules/_object-gops.js"),a=o("./node_modules/core-js/library/modules/_object-pie.js"),i=o("./node_modules/core-js/library/modules/_to-object.js"),l=o("./node_modules/core-js/library/modules/_iobject.js"),u=Object.assign;e.exports=!u||o("./node_modules/core-js/library/modules/_fails.js")(function(){var e={},t={},o=Symbol(),r="abcdefghijklmnopqrst";return e[o]=7,r.split("").forEach(function(e){t[e]=e}),7!=u({},e)[o]||Object.keys(u({},t)).join("")!=r})?function(e,t){for(var o=i(e),u=arguments.length,d=1,c=s.f,p=a.f;u>d;)for(var m,f=l(arguments[d++]),h=c?n(f).concat(c(f)):n(f),b=h.length,g=0;b>g;)m=h[g++],r&&!p.call(f,m)||(o[m]=f[m]);return o}:u},"./node_modules/core-js/library/modules/_object-create.js":function(e,t,o){var r=o("./node_modules/core-js/library/modules/_an-object.js"),n=o("./node_modules/core-js/library/modules/_object-dps.js"),s=o("./node_modules/core-js/library/modules/_enum-bug-keys.js"),a=o("./node_modules/core-js/library/modules/_shared-key.js")("IE_PROTO"),i=function(){},l=function(){var e,t=o("./node_modules/core-js/library/modules/_dom-create.js")("iframe"),r=s.length;for(t.style.display="none",o("./node_modules/core-js/library/modules/_html.js").appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write("