diff --git a/.gitignore b/.gitignore index 5f803099d..b68fc1b4b 100644 --- a/.gitignore +++ b/.gitignore @@ -2,8 +2,8 @@ node_modules .DS_Store credentials.json *.mp4 -!dist/blank.mp4 npm-debug.log yarn-error.log *.webm .idea/ +dist/ diff --git a/.npmignore b/.npmignore index 1caa61f0f..4970b6549 100644 --- a/.npmignore +++ b/.npmignore @@ -7,6 +7,6 @@ credentials.json deploy.json yarn.lock package-lock.json -*.mp4 *.webm +*.mp4 !dist/blank.mp4 diff --git a/demo/dist/demo.css b/demo/dist/demo.css deleted file mode 100644 index e49e115bc..000000000 --- a/demo/dist/demo.css +++ /dev/null @@ -1 +0,0 @@ -:root{--plyr-color-main:#00b3ff;--plyr-font-size-base:13px;--plyr-font-size-small:12px;--plyr-font-size-time:11px;--plyr-font-size-badges:9px;--plyr-font-size-menu:var(--plyr-font-size-base);--plyr-font-weight-regular:500;--plyr-font-weight-bold:600;--plyr-font-size-captions-medium:18px;--plyr-font-size-captions-large:21px}@font-face{font-display:swap;font-family:Gordita;font-style:normal;font-weight:300;src:url(https://cdn.plyr.io/static/fonts/gordita-light.woff2) format("woff2"),url(https://cdn.plyr.io/static/fonts/gordita-light.woff) format("woff")}@font-face{font-display:swap;font-family:Gordita;font-style:normal;font-weight:400;src:url(https://cdn.plyr.io/static/fonts/gordita-regular.woff2) format("woff2"),url(https://cdn.plyr.io/static/fonts/gordita-regular.woff) format("woff")}@font-face{font-display:swap;font-family:Gordita;font-style:normal;font-weight:500;src:url(https://cdn.plyr.io/static/fonts/gordita-medium.woff2) format("woff2"),url(https://cdn.plyr.io/static/fonts/gordita-medium.woff) format("woff")}@font-face{font-display:swap;font-family:Gordita;font-style:normal;font-weight:600;src:url(https://cdn.plyr.io/static/fonts/gordita-bold.woff2) format("woff2"),url(https://cdn.plyr.io/static/fonts/gordita-bold.woff) format("woff")}@font-face{font-display:swap;font-family:Gordita;font-style:normal;font-weight:900;src:url(https://cdn.plyr.io/static/fonts/gordita-black.woff2) format("woff2"),url(https://cdn.plyr.io/static/fonts/gordita-black.woff) format("woff")}@keyframes fadein{0%{opacity:0}100%{opacity:1}}@keyframes shrinkHide{0%{opacity:.5;width:38px}20%{width:45px}100%{opacity:0;width:0}}/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a,button.faux-link{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}*,::after,::before{box-sizing:border-box}body,html{display:flex;width:100%}html{background:linear-gradient(to left top,#e0f6ff,#f5fcff);background-attachment:fixed;height:100%}body{align-items:center;display:flex;flex-direction:column;min-height:100%}.grid{flex:1;overflow:auto}main{margin:auto;padding-bottom:1px;text-align:center}aside{align-items:center;background:#fff;display:flex;flex-shrink:0;justify-content:center;padding:16px;position:relative;text-align:center;text-shadow:none;width:100%}aside .icon{fill:#4baaf4;margin-right:8px}aside p{margin:0}aside a,aside button.faux-link{color:#4baaf4}aside a.tab-focus,aside button.tab-focus.faux-link{box-shadow:0 0 0 3px rgba(75,170,244,.35);outline:0}.grid{margin:0 auto;padding:16px}@media only screen and (min-width:768px){.grid{align-items:center;display:flex;max-width:1260px;width:100%}.grid>*{flex:1}}html{font-size:100%}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:15px;font-size:.9375rem;color:#4a5764;font-family:Gordita,Avenir,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-weight:500;line-height:1.75}button,input,select,textarea{font:inherit}p,small{margin:0 0 24px}small{font-size:13px;font-size:.8125rem;display:block}h1{font-size:64px;font-size:4rem;color:#00b3ff;font-weight:600;letter-spacing:-.025em;line-height:1.2;margin:0 0 24px}.button,.button__count{align-items:center;border:0;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.1);display:inline-flex;padding:12px;position:relative;text-shadow:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle}.button{background:#00b3ff;color:#fff;font-weight:600;padding-left:20px;padding-right:20px;transition:all .2s ease}.button:focus,.button:hover{background:#1abaff}.button:focus::after,.button:hover::after{display:none}.button:hover{box-shadow:0 2px 2px rgba(0,0,0,.1)}.button:focus{outline:0}.button.tab-focus{box-shadow:0 0 0 3px rgba(255,255,255,.35);outline:0}.button:active{top:1px}.button--with-count{display:inline-flex}.button--with-count .button .icon{flex-shrink:0}.button__count{animation:fadein .2s ease;background:#fff;color:#5d6e7e;margin-left:12px}.button__count::before{border:5px solid transparent;border-left-width:0;border-right-color:#fff;content:'';height:0;position:absolute;right:100%;top:50%;transform:translateY(-50%);width:0}header{padding-bottom:16px;text-align:center}header h1 span{animation:shrinkHide 1s cubic-bezier(.175,.885,.32,1.275) 2s forwards;display:inline-block;font-weight:300;opacity:.5}header .call-to-action{margin-top:24px}@media only screen and (min-width:768px){header{margin-right:48px;max-width:360px;padding-bottom:32px;text-align:left}header p:first-of-type{font-size:16px;font-size:1rem}}.icon{fill:currentColor;height:16px;vertical-align:-3px;width:16px}a svg,button svg,button.faux-link svg,label svg{pointer-events:none}.btn .icon,a .icon,button.faux-link .icon{margin-right:8px}button.faux-link{background:0 0;border:0;border-radius:0;cursor:pointer;font:inherit;line-height:1.75;margin:0;padding:0;position:relative;text-align:inherit;text-shadow:inherit;-moz-user-select:text;vertical-align:baseline;width:auto}a,button.faux-link{border-bottom:1px dotted currentColor;color:#00b3ff;position:relative;text-decoration:none;transition:all .2s ease}a::after,button.faux-link::after{background:currentColor;content:'';height:1px;left:50%;position:absolute;top:100%;transform:translateX(-50%);transition:width .2s ease;width:0}a:focus,a:hover,button.faux-link:focus,button.faux-link:hover{border-bottom-color:transparent;outline:0}a:focus::after,a:hover::after,button.faux-link:focus::after,button.faux-link:hover::after{width:100%}a.tab-focus,button.tab-focus.faux-link{box-shadow:0 0 0 3px rgba(255,255,255,.35);outline:0}a.no-border::after,button.no-border.faux-link::after{display:none}li,ul{list-style:none;margin:0;padding:0}audio,img,video{max-width:100%;vertical-align:middle}nav{display:flex;justify-content:center;margin-bottom:16px}.plyr{border-radius:8px;box-shadow:0 2px 15px rgba(0,0,0,.1);margin:16px auto}.plyr.plyr--audio{max-width:480px}.plyr__video-wrapper::after{border:1px solid rgba(0,0,0,.15);border-radius:inherit;bottom:0;content:'';left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:3}.plyr__cite{color:#728597}.plyr__cite .icon{margin-right:3px}@keyframes plyr-progress{to{background-position:25px 0;background-position:var(--plyr-progress-loading-size,25px) 0}}@keyframes plyr-popup{0%{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes plyr-fade-in{from{opacity:0}to{opacity:1}}.plyr{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;align-items:center;direction:ltr;display:flex;flex-direction:column;font-family:inherit;font-family:var(--plyr-font-family,inherit);font-variant-numeric:tabular-nums;font-weight:500;font-weight:var(--plyr-font-weight-regular,400);line-height:1.7;line-height:var(--plyr-line-height,1.7);max-width:100%;min-width:200px;position:relative;text-shadow:none;transition:box-shadow .3s ease;z-index:0}.plyr audio,.plyr iframe,.plyr video{display:block;height:100%;width:100%}.plyr button{font:inherit;line-height:inherit;width:auto}.plyr:focus{outline:0}.plyr--full-ui{box-sizing:border-box}.plyr--full-ui *,.plyr--full-ui ::after,.plyr--full-ui ::before{box-sizing:inherit}.plyr--full-ui a,.plyr--full-ui button,.plyr--full-ui button.faux-link,.plyr--full-ui input,.plyr--full-ui label{touch-action:manipulation}.plyr__badge{background:#4a5464;background:var(--plyr-badge-background,#4a5464);border-radius:2px;border-radius:var(--plyr-badge-border-radius,2px);color:#fff;color:var(--plyr-badge-text-color,#fff);font-size:9px;font-size:var(--plyr-font-size-badge,9px);line-height:1;padding:3px 4px}.plyr--full-ui ::-webkit-media-text-track-container{display:none}.plyr__captions{animation:plyr-fade-in .3s ease;bottom:0;display:none;font-size:12px;font-size:var(--plyr-font-size-small,13px);left:0;padding:10px;padding:var(--plyr-control-spacing,10px);position:absolute;text-align:center;transition:transform .4s ease-in-out;width:100%}.plyr__captions span:empty{display:none}@media (min-width:480px){.plyr__captions{font-size:13px;font-size:var(--plyr-font-size-base,15px);padding:calc(10px * 2);padding:calc(var(--plyr-control-spacing,10px) * 2)}}@media (min-width:768px){.plyr__captions{font-size:18px;font-size:var(--plyr-font-size-large,18px)}}.plyr--captions-active .plyr__captions{display:block}.plyr:not(.plyr--hide-controls) .plyr__controls:not(:empty)~.plyr__captions{transform:translateY(calc(10px * -4));transform:translateY(calc(var(--plyr-control-spacing,10px) * -4))}.plyr__caption{background:rgba(0,0,0,.8);background:var(--plyr-captions-background,rgba(0,0,0,.8));border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone;color:#fff;color:var(--plyr-captions-text-color,#fff);line-height:185%;padding:.2em .5em;white-space:pre-wrap}.plyr__caption div{display:inline}.plyr__control{background:0 0;border:0;border-radius:3px;border-radius:var(--plyr-control-radius,3px);color:inherit;cursor:pointer;flex-shrink:0;overflow:visible;padding:calc(10px * .7);padding:calc(var(--plyr-control-spacing,10px) * .7);position:relative;transition:all .3s ease}.plyr__control svg{display:block;fill:currentColor;height:18px;height:var(--plyr-control-icon-size,18px);pointer-events:none;width:18px;width:var(--plyr-control-icon-size,18px)}.plyr__control:focus{outline:0}.plyr__control.plyr__tab-focus{outline-color:var(--plyr-color-main,var(--plyr-color-main,#00b3ff));outline-color:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));outline-offset:2px;outline-style:dotted;outline-width:3px}a.plyr__control,button.plyr__control.faux-link{text-decoration:none}a.plyr__control::after,a.plyr__control::before,button.plyr__control.faux-link::after,button.plyr__control.faux-link::before{display:none}.plyr__control.plyr__control--pressed .icon--not-pressed,.plyr__control.plyr__control--pressed .label--not-pressed,.plyr__control:not(.plyr__control--pressed) .icon--pressed,.plyr__control:not(.plyr__control--pressed) .label--pressed{display:none}.plyr--full-ui ::-webkit-media-controls{display:none}.plyr__controls{align-items:center;display:flex;justify-content:flex-end;text-align:center}.plyr__controls .plyr__progress__container{flex:1;min-width:0}.plyr__controls .plyr__controls__item{margin-left:calc(10px / 4);margin-left:calc(var(--plyr-control-spacing,10px)/ 4)}.plyr__controls .plyr__controls__item:first-child{margin-left:0;margin-right:auto}.plyr__controls .plyr__controls__item.plyr__progress__container{padding-left:calc(10px / 4);padding-left:calc(var(--plyr-control-spacing,10px)/ 4)}.plyr__controls .plyr__controls__item.plyr__time{padding:0 calc(10px / 2);padding:0 calc(var(--plyr-control-spacing,10px)/ 2)}.plyr__controls .plyr__controls__item.plyr__progress__container:first-child,.plyr__controls .plyr__controls__item.plyr__time+.plyr__time,.plyr__controls .plyr__controls__item.plyr__time:first-child{padding-left:0}.plyr__controls:empty{display:none}.plyr [data-plyr=airplay],.plyr [data-plyr=captions],.plyr [data-plyr=fullscreen],.plyr [data-plyr=pip]{display:none}.plyr--airplay-supported [data-plyr=airplay],.plyr--captions-enabled [data-plyr=captions],.plyr--fullscreen-enabled [data-plyr=fullscreen],.plyr--pip-supported [data-plyr=pip]{display:inline-block}.plyr__menu{display:flex;position:relative}.plyr__menu .plyr__control svg{transition:transform .3s ease}.plyr__menu .plyr__control[aria-expanded=true] svg{transform:rotate(90deg)}.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip{display:none}.plyr__menu__container{animation:plyr-popup .2s ease;background:rgba(255,255,255,.9);background:var(--plyr-menu-background,rgba(255,255,255,.9));border-radius:4px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);box-shadow:var(--plyr-menu-shadow,0 1px 2px rgba(0,0,0,.15));color:#4a5464;color:var(--plyr-menu-color,#4a5464);font-size:13px;font-size:var(--plyr-font-size-base,15px);margin-bottom:10px;position:absolute;right:-3px;text-align:left;white-space:nowrap;z-index:3}.plyr__menu__container>div{overflow:hidden;transition:height .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1)}.plyr__menu__container::after{border:4px solid transparent;border:var(--plyr-menu-arrow-size,4px) solid transparent;border-top-color:rgba(255,255,255,.9);border-top-color:var(--plyr-menu-background,rgba(255,255,255,.9));content:'';height:0;position:absolute;right:calc(((18px / 2) + calc(10px * .7)) - (4px / 2));right:calc(((var(--plyr-control-icon-size,18px)/ 2) + calc(var(--plyr-control-spacing,10px) * .7)) - (var(--plyr-menu-arrow-size,4px)/ 2));top:100%;width:0}.plyr__menu__container [role=menu]{padding:calc(10px * .7);padding:calc(var(--plyr-control-spacing,10px) * .7)}.plyr__menu__container [role=menuitem],.plyr__menu__container [role=menuitemradio]{margin-top:2px}.plyr__menu__container [role=menuitem]:first-child,.plyr__menu__container [role=menuitemradio]:first-child{margin-top:0}.plyr__menu__container .plyr__control{align-items:center;color:#4a5464;color:var(--plyr-menu-color,#4a5464);display:flex;font-size:13px;font-size:var(--plyr-font-size-menu,var(--plyr-font-size-small,13px));padding-bottom:calc(calc(10px * .7)/ 1.5);padding-bottom:calc(calc(var(--plyr-control-spacing,10px) * .7)/ 1.5);padding-left:calc(calc(10px * .7) * 1.5);padding-left:calc(calc(var(--plyr-control-spacing,10px) * .7) * 1.5);padding-right:calc(calc(10px * .7) * 1.5);padding-right:calc(calc(var(--plyr-control-spacing,10px) * .7) * 1.5);padding-top:calc(calc(10px * .7)/ 1.5);padding-top:calc(calc(var(--plyr-control-spacing,10px) * .7)/ 1.5);-webkit-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr__menu__container .plyr__control>span{align-items:inherit;display:flex;width:100%}.plyr__menu__container .plyr__control::after{border:4px solid transparent;border:var(--plyr-menu-item-arrow-size,4px) solid transparent;content:'';position:absolute;top:50%;transform:translateY(-50%)}.plyr__menu__container .plyr__control--forward{padding-right:calc(calc(10px * .7) * 4);padding-right:calc(calc(var(--plyr-control-spacing,10px) * .7) * 4)}.plyr__menu__container .plyr__control--forward::after{border-left-color:#728197;border-left-color:var(--plyr-menu-arrow-color,#728197);right:calc((calc(10px * .7) * 1.5) - 4px);right:calc((calc(var(--plyr-control-spacing,10px) * .7) * 1.5) - var(--plyr-menu-item-arrow-size,4px))}.plyr__menu__container .plyr__control--forward.plyr__tab-focus::after,.plyr__menu__container .plyr__control--forward:hover::after{border-left-color:currentColor}.plyr__menu__container .plyr__control--back{font-weight:500;font-weight:var(--plyr-font-weight-regular,400);margin:calc(10px * .7);margin:calc(var(--plyr-control-spacing,10px) * .7);margin-bottom:calc(calc(10px * .7)/ 2);margin-bottom:calc(calc(var(--plyr-control-spacing,10px) * .7)/ 2);padding-left:calc(calc(10px * .7) * 4);padding-left:calc(calc(var(--plyr-control-spacing,10px) * .7) * 4);position:relative;width:calc(100% - (calc(10px * .7) * 2));width:calc(100% - (calc(var(--plyr-control-spacing,10px) * .7) * 2))}.plyr__menu__container .plyr__control--back::after{border-right-color:#728197;border-right-color:var(--plyr-menu-arrow-color,#728197);left:calc((calc(10px * .7) * 1.5) - 4px);left:calc((calc(var(--plyr-control-spacing,10px) * .7) * 1.5) - var(--plyr-menu-item-arrow-size,4px))}.plyr__menu__container .plyr__control--back::before{background:#dcdfe5;background:var(--plyr-menu-back-border-color,#dcdfe5);box-shadow:0 1px 0 #fff;box-shadow:0 1px 0 var(--plyr-menu-back-border-shadow-color,#fff);content:'';height:1px;left:0;margin-top:calc(calc(10px * .7)/ 2);margin-top:calc(calc(var(--plyr-control-spacing,10px) * .7)/ 2);overflow:hidden;position:absolute;right:0;top:100%}.plyr__menu__container .plyr__control--back.plyr__tab-focus::after,.plyr__menu__container .plyr__control--back:hover::after{border-right-color:currentColor}.plyr__menu__container .plyr__control[role=menuitemradio]{padding-left:calc(10px * .7);padding-left:calc(var(--plyr-control-spacing,10px) * .7)}.plyr__menu__container .plyr__control[role=menuitemradio]::after,.plyr__menu__container .plyr__control[role=menuitemradio]::before{border-radius:100%}.plyr__menu__container .plyr__control[role=menuitemradio]::before{background:rgba(0,0,0,.1);content:'';display:block;flex-shrink:0;height:16px;margin-right:10px;margin-right:var(--plyr-control-spacing,10px);transition:all .3s ease;width:16px}.plyr__menu__container .plyr__control[role=menuitemradio]::after{background:#fff;border:0;height:6px;left:12px;opacity:0;top:50%;transform:translateY(-50%) scale(0);transition:transform .3s ease,opacity .3s ease;width:6px}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]::before{background:var(--plyr-color-main,var(--plyr-color-main,#00b3ff));background:var(--plyr-control-toggle-checked-background,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)))}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]::after{opacity:1;transform:translateY(-50%) scale(1)}.plyr__menu__container .plyr__control[role=menuitemradio].plyr__tab-focus::before,.plyr__menu__container .plyr__control[role=menuitemradio]:hover::before{background:rgba(35,40,47,.1)}.plyr__menu__container .plyr__menu__value{align-items:center;display:flex;margin-left:auto;margin-right:calc((calc(10px * .7) - 2) * -1);margin-right:calc((calc(var(--plyr-control-spacing,10px) * .7) - 2) * -1);overflow:hidden;padding-left:calc(calc(10px * .7) * 3.5);padding-left:calc(calc(var(--plyr-control-spacing,10px) * .7) * 3.5);pointer-events:none}.plyr--full-ui input[type=range]{-webkit-appearance:none;background:0 0;border:0;border-radius:calc(13px * 2);border-radius:calc(var(--plyr-range-thumb-height,13px) * 2);color:var(--plyr-color-main,var(--plyr-color-main,#00b3ff));color:var(--plyr-range-fill-background,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));display:block;height:calc((3px * 2) + 13px);height:calc((var(--plyr-range-thumb-active-shadow-width,3px) * 2) + var(--plyr-range-thumb-height,13px));margin:0;min-width:0;padding:0;transition:box-shadow .3s ease;width:100%}.plyr--full-ui input[type=range]::-webkit-slider-runnable-track{background:0 0;border:0;border-radius:calc(5px / 2);border-radius:calc(var(--plyr-range-track-height,5px)/ 2);height:5px;height:var(--plyr-range-track-height,5px);-webkit-transition:box-shadow .3s ease;transition:box-shadow .3s ease;-webkit-user-select:none;user-select:none;background-image:linear-gradient(to right,currentColor 0,transparent 0);background-image:linear-gradient(to right,currentColor var(--value,0),transparent var(--value,0))}.plyr--full-ui input[type=range]::-webkit-slider-thumb{background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2));height:13px;height:var(--plyr-range-thumb-height,13px);position:relative;-webkit-transition:all .2s ease;transition:all .2s ease;width:13px;width:var(--plyr-range-thumb-height,13px);-webkit-appearance:none;margin-top:calc(((13px - 5px)/ 2) * -1);margin-top:calc(((var(--plyr-range-thumb-height,13px) - var(--plyr-range-track-height,5px))/ 2) * -1)}.plyr--full-ui input[type=range]::-moz-range-track{background:0 0;border:0;border-radius:calc(5px / 2);border-radius:calc(var(--plyr-range-track-height,5px)/ 2);height:5px;height:var(--plyr-range-track-height,5px);-moz-transition:box-shadow .3s ease;transition:box-shadow .3s ease;user-select:none}.plyr--full-ui input[type=range]::-moz-range-thumb{background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2));height:13px;height:var(--plyr-range-thumb-height,13px);position:relative;-moz-transition:all .2s ease;transition:all .2s ease;width:13px;width:var(--plyr-range-thumb-height,13px)}.plyr--full-ui input[type=range]::-moz-range-progress{background:currentColor;border-radius:calc(5px / 2);border-radius:calc(var(--plyr-range-track-height,5px)/ 2);height:5px;height:var(--plyr-range-track-height,5px)}.plyr--full-ui input[type=range]::-ms-track{background:0 0;border:0;border-radius:calc(5px / 2);border-radius:calc(var(--plyr-range-track-height,5px)/ 2);height:5px;height:var(--plyr-range-track-height,5px);-ms-transition:box-shadow .3s ease;transition:box-shadow .3s ease;-ms-user-select:none;user-select:none;color:transparent}.plyr--full-ui input[type=range]::-ms-fill-upper{background:0 0;border:0;border-radius:calc(5px / 2);border-radius:calc(var(--plyr-range-track-height,5px)/ 2);height:5px;height:var(--plyr-range-track-height,5px);-ms-transition:box-shadow .3s ease;transition:box-shadow .3s ease;-ms-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-ms-fill-lower{background:0 0;border:0;border-radius:calc(5px / 2);border-radius:calc(var(--plyr-range-track-height,5px)/ 2);height:5px;height:var(--plyr-range-track-height,5px);-ms-transition:box-shadow .3s ease;transition:box-shadow .3s ease;-ms-user-select:none;user-select:none;background:currentColor}.plyr--full-ui input[type=range]::-ms-thumb{background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2));height:13px;height:var(--plyr-range-thumb-height,13px);position:relative;-ms-transition:all .2s ease;transition:all .2s ease;width:13px;width:var(--plyr-range-thumb-height,13px);margin-top:0}.plyr--full-ui input[type=range]::-ms-tooltip{display:none}.plyr--full-ui input[type=range]:focus{outline:0}.plyr--full-ui input[type=range]::-moz-focus-outer{border:0}.plyr--full-ui input[type=range].plyr__tab-focus::-webkit-slider-runnable-track{outline-color:var(--plyr-color-main,var(--plyr-color-main,#00b3ff));outline-color:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));outline-offset:2px;outline-style:dotted;outline-width:3px}.plyr--full-ui input[type=range].plyr__tab-focus::-moz-range-track{outline-color:var(--plyr-color-main,var(--plyr-color-main,#00b3ff));outline-color:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));outline-offset:2px;outline-style:dotted;outline-width:3px}.plyr--full-ui input[type=range].plyr__tab-focus::-ms-track{outline-color:var(--plyr-color-main,var(--plyr-color-main,#00b3ff));outline-color:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));outline-offset:2px;outline-style:dotted;outline-width:3px}.plyr__poster{background-color:#000;background-color:var(--plyr-video-background,var(--plyr-video-background,#000));background-position:50% 50%;background-repeat:no-repeat;background-size:contain;height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .2s ease;width:100%;z-index:1}.plyr--stopped.plyr__poster-enabled .plyr__poster{opacity:1}.plyr__time{font-size:11px;font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px))}.plyr__time+.plyr__time::before{content:'\2044';margin-right:10px;margin-right:var(--plyr-control-spacing,10px)}@media (max-width:767px){.plyr__time+.plyr__time{display:none}}.plyr__tooltip{background:rgba(255,255,255,.9);background:var(--plyr-tooltip-background,rgba(255,255,255,.9));border-radius:3px;border-radius:var(--plyr-tooltip-radius,3px);bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);box-shadow:var(--plyr-tooltip-shadow,0 1px 2px rgba(0,0,0,.15));color:#4a5464;color:var(--plyr-tooltip-color,#4a5464);font-size:12px;font-size:var(--plyr-font-size-small,13px);font-weight:500;font-weight:var(--plyr-font-weight-regular,400);left:50%;line-height:1.3;margin-bottom:calc(calc(10px / 2) * 2);margin-bottom:calc(calc(var(--plyr-control-spacing,10px)/ 2) * 2);opacity:0;padding:calc(10px / 2) calc(calc(10px / 2) * 1.5);padding:calc(var(--plyr-control-spacing,10px)/ 2) calc(calc(var(--plyr-control-spacing,10px)/ 2) * 1.5);pointer-events:none;position:absolute;transform:translate(-50%,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s .1s ease,opacity .2s .1s ease;white-space:nowrap;z-index:2}.plyr__tooltip::before{border-left:4px solid transparent;border-left:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-right:4px solid transparent;border-right:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-top:4px solid rgba(255,255,255,.9);border-top:var(--plyr-tooltip-arrow-size,4px) solid var(--plyr-tooltip-background,rgba(255,255,255,.9));bottom:calc(4px * -1);bottom:calc(var(--plyr-tooltip-arrow-size,4px) * -1);content:'';height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:2}.plyr .plyr__control.plyr__tab-focus .plyr__tooltip,.plyr .plyr__control:hover .plyr__tooltip,.plyr__tooltip--visible{opacity:1;transform:translate(-50%,0) scale(1)}.plyr .plyr__control:hover .plyr__tooltip{z-index:3}.plyr__controls>.plyr__control:first-child .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip{left:0;transform:translate(0,10px) scale(.8);transform-origin:0 100%}.plyr__controls>.plyr__control:first-child .plyr__tooltip::before,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip::before{left:calc((18px / 2) + calc(10px * .7));left:calc((var(--plyr-control-icon-size,18px)/ 2) + calc(var(--plyr-control-spacing,10px) * .7))}.plyr__controls>.plyr__control:last-child .plyr__tooltip{left:auto;right:0;transform:translate(0,10px) scale(.8);transform-origin:100% 100%}.plyr__controls>.plyr__control:last-child .plyr__tooltip::before{left:auto;right:calc((18px / 2) + calc(10px * .7));right:calc((var(--plyr-control-icon-size,18px)/ 2) + calc(var(--plyr-control-spacing,10px) * .7));transform:translateX(50%)}.plyr__controls>.plyr__control:first-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control:hover .plyr__tooltip,.plyr__controls>.plyr__control:first-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child:hover .plyr__tooltip,.plyr__controls>.plyr__control:last-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:last-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:last-child:hover .plyr__tooltip{transform:translate(0,0) scale(1)}.plyr__progress{left:calc(13px * .5);left:calc(var(--plyr-range-thumb-height,13px) * .5);margin-right:13px;margin-right:var(--plyr-range-thumb-height,13px);position:relative}.plyr__progress input[type=range],.plyr__progress__buffer{margin-left:calc(13px * -.5);margin-left:calc(var(--plyr-range-thumb-height,13px) * -.5);margin-right:calc(13px * -.5);margin-right:calc(var(--plyr-range-thumb-height,13px) * -.5);width:calc(100% + 13px);width:calc(100% + var(--plyr-range-thumb-height,13px))}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress .plyr__tooltip{font-size:11px;font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px));left:0}.plyr__progress__buffer{-webkit-appearance:none;background:0 0;border:0;border-radius:100px;height:5px;height:var(--plyr-range-track-height,5px);left:0;margin-top:calc((5px / 2) * -1);margin-top:calc((var(--plyr-range-track-height,5px)/ 2) * -1);padding:0;position:absolute;top:50%}.plyr__progress__buffer::-webkit-progress-bar{background:0 0}.plyr__progress__buffer::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:5px;min-width:var(--plyr-range-track-height,5px);-webkit-transition:width .2s ease;transition:width .2s ease}.plyr__progress__buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:5px;min-width:var(--plyr-range-track-height,5px);-moz-transition:width .2s ease;transition:width .2s ease}.plyr__progress__buffer::-ms-fill{border-radius:100px;-ms-transition:width .2s ease;transition:width .2s ease}.plyr--loading .plyr__progress__buffer{animation:plyr-progress 1s linear infinite;background-image:linear-gradient(-45deg,rgba(35,40,47,.6) 25%,transparent 25%,transparent 50%,rgba(35,40,47,.6) 50%,rgba(35,40,47,.6) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,var(--plyr-progress-loading-background,rgba(35,40,47,.6)) 25%,transparent 25%,transparent 50%,var(--plyr-progress-loading-background,rgba(35,40,47,.6)) 50%,var(--plyr-progress-loading-background,rgba(35,40,47,.6)) 75%,transparent 75%,transparent);background-repeat:repeat-x;background-size:25px 25px;background-size:var(--plyr-progress-loading-size,25px) var(--plyr-progress-loading-size,25px);color:transparent}.plyr--video.plyr--loading .plyr__progress__buffer{background-color:rgba(255,255,255,.25);background-color:var(--plyr-video-progress-buffered-background,rgba(255,255,255,.25))}.plyr--audio.plyr--loading .plyr__progress__buffer{background-color:rgba(193,200,209,.6);background-color:var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6))}.plyr__volume{align-items:center;display:flex;max-width:110px;min-width:80px;position:relative;width:20%}.plyr__volume input[type=range]{margin-left:calc(10px / 2);margin-left:calc(var(--plyr-control-spacing,10px)/ 2);margin-right:calc(10px / 2);margin-right:calc(var(--plyr-control-spacing,10px)/ 2);position:relative;z-index:2}.plyr--is-ios .plyr__volume{min-width:0;width:auto}.plyr--audio{display:block}.plyr--audio .plyr__controls{background:#fff;background:var(--plyr-audio-controls-background,#fff);border-radius:inherit;color:#4a5464;color:var(--plyr-audio-control-color,#4a5464);padding:10px;padding:var(--plyr-control-spacing,10px)}.plyr--audio .plyr__control.plyr__tab-focus,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:var(--plyr-color-main,var(--plyr-color-main,#00b3ff));background:var(--plyr-audio-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));color:#fff;color:var(--plyr-audio-control-color-hover,#fff)}.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track{background-color:rgba(193,200,209,.6);background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6)))}.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track{background-color:rgba(193,200,209,.6);background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6)))}.plyr--full-ui.plyr--audio input[type=range]::-ms-track{background-color:rgba(193,200,209,.6);background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6)))}.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2),0 0 0 3px rgba(35,40,47,.1);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(35,40,47,.1))}.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2),0 0 0 3px rgba(35,40,47,.1);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(35,40,47,.1))}.plyr--full-ui.plyr--audio input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2),0 0 0 3px rgba(35,40,47,.1);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(35,40,47,.1))}.plyr--audio .plyr__progress__buffer{color:rgba(193,200,209,.6);color:var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6))}.plyr--video{background:#000;background:var(--plyr-video-background,var(--plyr-video-background,#000));overflow:hidden}.plyr--video.plyr--menu-open{overflow:visible}.plyr__video-wrapper{background:#000;background:var(--plyr-video-background,var(--plyr-video-background,#000));height:100%;margin:auto;overflow:hidden;position:relative;width:100%}.plyr__video-embed,.plyr__video-wrapper--fixed-ratio{height:0;padding-bottom:56.25%}.plyr__video-embed iframe,.plyr__video-wrapper--fixed-ratio video{border:0;left:0;position:absolute;top:0}.plyr--full-ui .plyr__video-embed>.plyr__video-embed__container{padding-bottom:240%;position:relative;transform:translateY(-38.28125%)}.plyr--video .plyr__controls{background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.75));background:var(--plyr-video-controls-background,linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.75)));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:#fff;color:var(--plyr-video-control-color,#fff);left:0;padding:calc(10px / 2);padding:calc(var(--plyr-control-spacing,10px)/ 2);padding-top:calc(10px * 2);padding-top:calc(var(--plyr-control-spacing,10px) * 2);position:absolute;right:0;transition:opacity .4s ease-in-out,transform .4s ease-in-out;z-index:3}@media (min-width:480px){.plyr--video .plyr__controls{padding:10px;padding:var(--plyr-control-spacing,10px);padding-top:calc(10px * 3.5);padding-top:calc(var(--plyr-control-spacing,10px) * 3.5)}}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;pointer-events:none;transform:translateY(100%)}.plyr--video .plyr__control.plyr__tab-focus,.plyr--video .plyr__control:hover,.plyr--video .plyr__control[aria-expanded=true]{background:var(--plyr-color-main,var(--plyr-color-main,#00b3ff));background:var(--plyr-video-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));color:#fff;color:var(--plyr-video-control-color-hover,#fff)}.plyr__control--overlaid{background:var(--plyr-color-main,var(--plyr-color-main,#00b3ff));background:var(--plyr-video-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));border:0;border-radius:100%;color:#fff;color:var(--plyr-video-control-color,#fff);display:none;left:50%;opacity:.9;padding:calc(10px * 1.5);padding:calc(var(--plyr-control-spacing,10px) * 1.5);position:absolute;top:50%;transform:translate(-50%,-50%);transition:.3s;z-index:2}.plyr__control--overlaid svg{left:2px;position:relative}.plyr__control--overlaid:focus,.plyr__control--overlaid:hover{opacity:1}.plyr--playing .plyr__control--overlaid{opacity:0;visibility:hidden}.plyr--full-ui.plyr--video .plyr__control--overlaid{display:block}.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track{background-color:rgba(255,255,255,.25);background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,rgba(255,255,255,.25)))}.plyr--full-ui.plyr--video input[type=range]::-moz-range-track{background-color:rgba(255,255,255,.25);background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,rgba(255,255,255,.25)))}.plyr--full-ui.plyr--video input[type=range]::-ms-track{background-color:rgba(255,255,255,.25);background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,rgba(255,255,255,.25)))}.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2),0 0 0 3px rgba(255,255,255,.5);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(255,255,255,.5))}.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2),0 0 0 3px rgba(255,255,255,.5);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(255,255,255,.5))}.plyr--full-ui.plyr--video input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2),0 0 0 3px rgba(255,255,255,.5);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(255,255,255,.5))}.plyr--video .plyr__progress__buffer{color:rgba(255,255,255,.25);color:var(--plyr-video-progress-buffered-background,rgba(255,255,255,.25))}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-webkit-full-screen video{height:100%}.plyr:-ms-fullscreen video{height:100%}.plyr:fullscreen video{height:100%}.plyr:-webkit-full-screen .plyr__video-wrapper{height:100%;position:static}.plyr:-ms-fullscreen .plyr__video-wrapper{height:100%;position:static}.plyr:fullscreen .plyr__video-wrapper{height:100%;position:static}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative}.plyr:fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}.plyr:fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}.plyr:-ms-fullscreen .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}.plyr:fullscreen .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-webkit-full-screen video{height:100%}.plyr:-webkit-full-screen .plyr__video-wrapper{height:100%;position:static}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}}.plyr:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-moz-full-screen video{height:100%}.plyr:-moz-full-screen .plyr__video-wrapper{height:100%;position:static}.plyr:-moz-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-moz-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-moz-full-screen .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-ms-fullscreen video{height:100%}.plyr:-ms-fullscreen .plyr__video-wrapper{height:100%;position:static}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-ms-fullscreen .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}}.plyr--fullscreen-fallback{background:#000;border-radius:0!important;height:100%;margin:0;width:100%;bottom:0;display:block;left:0;position:fixed;right:0;top:0;z-index:10000000}.plyr--fullscreen-fallback video{height:100%}.plyr--fullscreen-fallback .plyr__video-wrapper{height:100%;position:static}.plyr--fullscreen-fallback.plyr--vimeo .plyr__video-wrapper{height:0;position:relative}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr--fullscreen-fallback.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr--fullscreen-fallback .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}}.plyr__ads{border-radius:inherit;bottom:0;cursor:pointer;left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:-1}.plyr__ads>div,.plyr__ads>div iframe{height:100%;position:absolute;width:100%}.plyr__ads::after{background:#23282f;border-radius:2px;bottom:10px;bottom:var(--plyr-control-spacing,10px);color:#fff;content:attr(data-badge-text);font-size:11px;padding:2px 6px;pointer-events:none;position:absolute;right:10px;right:var(--plyr-control-spacing,10px);z-index:3}.plyr__ads::after:empty{display:none}.plyr__cues{background:currentColor;display:block;height:5px;height:var(--plyr-range-track-height,5px);left:0;margin:-var(--plyr-range-track-height,5px)/2 0 0;opacity:.8;position:absolute;top:50%;width:3px;z-index:3}.plyr__preview-thumb{background-color:rgba(255,255,255,.9);background-color:var(--plyr-tooltip-background,rgba(255,255,255,.9));border-radius:3px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);box-shadow:var(--plyr-tooltip-shadow,0 1px 2px rgba(0,0,0,.15));margin-bottom:calc(calc(10px / 2) * 2);margin-bottom:calc(calc(var(--plyr-control-spacing,10px)/ 2) * 2);opacity:0;padding:3px;padding:var(--plyr-tooltip-radius,3px);pointer-events:none;position:absolute;transform:translate(0,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s .1s ease,opacity .2s .1s ease;z-index:2}.plyr__preview-thumb--is-shown{opacity:1;transform:translate(0,0) scale(1)}.plyr__preview-thumb::before{border-left:4px solid transparent;border-left:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-right:4px solid transparent;border-right:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-top:4px solid rgba(255,255,255,.9);border-top:var(--plyr-tooltip-arrow-size,4px) solid var(--plyr-tooltip-background,rgba(255,255,255,.9));bottom:calc(4px * -1);bottom:calc(var(--plyr-tooltip-arrow-size,4px) * -1);content:'';height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:2}.plyr__preview-thumb__image-container{background:#c1c8d1;border-radius:calc(3px - 1px);border-radius:calc(var(--plyr-tooltip-radius,3px) - 1px);overflow:hidden;position:relative;z-index:0}.plyr__preview-thumb__image-container img{height:100%;left:0;max-height:none;max-width:none;position:absolute;top:0;width:100%}.plyr__preview-thumb__time-container{bottom:6px;left:0;position:absolute;right:0;white-space:nowrap;z-index:3}.plyr__preview-thumb__time-container span{background-color:rgba(0,0,0,.55);border-radius:calc(3px - 1px);border-radius:calc(var(--plyr-tooltip-radius,3px) - 1px);color:#fff;font-size:11px;font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px));padding:3px 6px}.plyr__preview-scrubbing{bottom:0;filter:blur(1px);height:100%;left:0;margin:auto;opacity:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .3s ease;width:100%;z-index:1}.plyr__preview-scrubbing--is-shown{opacity:1}.plyr__preview-scrubbing img{height:100%;left:0;max-height:none;max-width:none;object-fit:contain;position:absolute;top:0;width:100%}.plyr--no-transition{transition:none!important}.plyr__sr-only{clip:rect(1px,1px,1px,1px);overflow:hidden;border:0!important;height:1px!important;padding:0!important;position:absolute!important;width:1px!important}.plyr [hidden]{display:none!important}.no-border{border:0}[hidden]{display:none}.sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;opacity:.001;overflow:hidden;padding:0;position:absolute;width:1px} \ No newline at end of file diff --git a/demo/dist/demo.js b/demo/dist/demo.js deleted file mode 100644 index ba30d1bce..000000000 --- a/demo/dist/demo.js +++ /dev/null @@ -1,29822 +0,0 @@ -typeof navigator === "object" && (function () { - 'use strict'; - - var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; - - function createCommonjsModule(fn, module) { - return module = { exports: {} }, fn(module, module.exports), module.exports; - } - - var check = function (it) { - return it && it.Math == Math && it; - }; - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global_1 = - // eslint-disable-next-line no-undef - check(typeof globalThis == 'object' && globalThis) || - check(typeof window == 'object' && window) || - check(typeof self == 'object' && self) || - check(typeof commonjsGlobal == 'object' && commonjsGlobal) || - // eslint-disable-next-line no-new-func - Function('return this')(); - - var fails = function (exec) { - try { - return !!exec(); - } catch (error) { - return true; - } - }; - - // Thank's IE8 for his funny defineProperty - var descriptors = !fails(function () { - return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; - }); - - var nativePropertyIsEnumerable = {}.propertyIsEnumerable; - var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - - // Nashorn ~ JDK8 bug - var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1); - - // `Object.prototype.propertyIsEnumerable` method implementation - // https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable - var f = NASHORN_BUG ? function propertyIsEnumerable(V) { - var descriptor = getOwnPropertyDescriptor(this, V); - return !!descriptor && descriptor.enumerable; - } : nativePropertyIsEnumerable; - - var objectPropertyIsEnumerable = { - f: f - }; - - var createPropertyDescriptor = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; - }; - - var toString = {}.toString; - - var classofRaw = function (it) { - return toString.call(it).slice(8, -1); - }; - - var split = ''.split; - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var indexedObject = fails(function () { - // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 - // eslint-disable-next-line no-prototype-builtins - return !Object('z').propertyIsEnumerable(0); - }) ? function (it) { - return classofRaw(it) == 'String' ? split.call(it, '') : Object(it); - } : Object; - - // `RequireObjectCoercible` abstract operation - // https://tc39.github.io/ecma262/#sec-requireobjectcoercible - var requireObjectCoercible = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; - }; - - // toObject with fallback for non-array-like ES3 strings - - - - var toIndexedObject = function (it) { - return indexedObject(requireObjectCoercible(it)); - }; - - var isObject = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - - // `ToPrimitive` abstract operation - // https://tc39.github.io/ecma262/#sec-toprimitive - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - var toPrimitive = function (input, PREFERRED_STRING) { - if (!isObject(input)) return input; - var fn, val; - if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; - if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val; - if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; - throw TypeError("Can't convert object to primitive value"); - }; - - var hasOwnProperty = {}.hasOwnProperty; - - var has = function (it, key) { - return hasOwnProperty.call(it, key); - }; - - var document$1 = global_1.document; - // typeof document.createElement is 'object' in old IE - var EXISTS = isObject(document$1) && isObject(document$1.createElement); - - var documentCreateElement = function (it) { - return EXISTS ? document$1.createElement(it) : {}; - }; - - // Thank's IE8 for his funny defineProperty - var ie8DomDefine = !descriptors && !fails(function () { - return Object.defineProperty(documentCreateElement('div'), 'a', { - get: function () { return 7; } - }).a != 7; - }); - - var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - - // `Object.getOwnPropertyDescriptor` method - // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor - var f$1 = descriptors ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { - O = toIndexedObject(O); - P = toPrimitive(P, true); - if (ie8DomDefine) try { - return nativeGetOwnPropertyDescriptor(O, P); - } catch (error) { /* empty */ } - if (has(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]); - }; - - var objectGetOwnPropertyDescriptor = { - f: f$1 - }; - - var anObject = function (it) { - if (!isObject(it)) { - throw TypeError(String(it) + ' is not an object'); - } return it; - }; - - var nativeDefineProperty = Object.defineProperty; - - // `Object.defineProperty` method - // https://tc39.github.io/ecma262/#sec-object.defineproperty - var f$2 = descriptors ? nativeDefineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (ie8DomDefine) try { - return nativeDefineProperty(O, P, Attributes); - } catch (error) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; - }; - - var objectDefineProperty = { - f: f$2 - }; - - var createNonEnumerableProperty = descriptors ? function (object, key, value) { - return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value)); - } : function (object, key, value) { - object[key] = value; - return object; - }; - - var setGlobal = function (key, value) { - try { - createNonEnumerableProperty(global_1, key, value); - } catch (error) { - global_1[key] = value; - } return value; - }; - - var SHARED = '__core-js_shared__'; - var store = global_1[SHARED] || setGlobal(SHARED, {}); - - var sharedStore = store; - - var functionToString = Function.toString; - - // this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper - if (typeof sharedStore.inspectSource != 'function') { - sharedStore.inspectSource = function (it) { - return functionToString.call(it); - }; - } - - var inspectSource = sharedStore.inspectSource; - - var WeakMap$1 = global_1.WeakMap; - - var nativeWeakMap = typeof WeakMap$1 === 'function' && /native code/.test(inspectSource(WeakMap$1)); - - var isPure = false; - - var shared = createCommonjsModule(function (module) { - (module.exports = function (key, value) { - return sharedStore[key] || (sharedStore[key] = value !== undefined ? value : {}); - })('versions', []).push({ - version: '3.6.5', - mode: 'global', - copyright: '© 2020 Denis Pushkarev (zloirock.ru)' - }); - }); - - var id = 0; - var postfix = Math.random(); - - var uid = function (key) { - return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); - }; - - var keys = shared('keys'); - - var sharedKey = function (key) { - return keys[key] || (keys[key] = uid(key)); - }; - - var hiddenKeys = {}; - - var WeakMap$2 = global_1.WeakMap; - var set, get, has$1; - - var enforce = function (it) { - return has$1(it) ? get(it) : set(it, {}); - }; - - var getterFor = function (TYPE) { - return function (it) { - var state; - if (!isObject(it) || (state = get(it)).type !== TYPE) { - throw TypeError('Incompatible receiver, ' + TYPE + ' required'); - } return state; - }; - }; - - if (nativeWeakMap) { - var store$1 = new WeakMap$2(); - var wmget = store$1.get; - var wmhas = store$1.has; - var wmset = store$1.set; - set = function (it, metadata) { - wmset.call(store$1, it, metadata); - return metadata; - }; - get = function (it) { - return wmget.call(store$1, it) || {}; - }; - has$1 = function (it) { - return wmhas.call(store$1, it); - }; - } else { - var STATE = sharedKey('state'); - hiddenKeys[STATE] = true; - set = function (it, metadata) { - createNonEnumerableProperty(it, STATE, metadata); - return metadata; - }; - get = function (it) { - return has(it, STATE) ? it[STATE] : {}; - }; - has$1 = function (it) { - return has(it, STATE); - }; - } - - var internalState = { - set: set, - get: get, - has: has$1, - enforce: enforce, - getterFor: getterFor - }; - - var redefine = createCommonjsModule(function (module) { - var getInternalState = internalState.get; - var enforceInternalState = internalState.enforce; - var TEMPLATE = String(String).split('String'); - - (module.exports = function (O, key, value, options) { - var unsafe = options ? !!options.unsafe : false; - var simple = options ? !!options.enumerable : false; - var noTargetGet = options ? !!options.noTargetGet : false; - if (typeof value == 'function') { - if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key); - enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : ''); - } - if (O === global_1) { - if (simple) O[key] = value; - else setGlobal(key, value); - return; - } else if (!unsafe) { - delete O[key]; - } else if (!noTargetGet && O[key]) { - simple = true; - } - if (simple) O[key] = value; - else createNonEnumerableProperty(O, key, value); - // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative - })(Function.prototype, 'toString', function toString() { - return typeof this == 'function' && getInternalState(this).source || inspectSource(this); - }); - }); - - var path = global_1; - - var aFunction = function (variable) { - return typeof variable == 'function' ? variable : undefined; - }; - - var getBuiltIn = function (namespace, method) { - return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global_1[namespace]) - : path[namespace] && path[namespace][method] || global_1[namespace] && global_1[namespace][method]; - }; - - var ceil = Math.ceil; - var floor = Math.floor; - - // `ToInteger` abstract operation - // https://tc39.github.io/ecma262/#sec-tointeger - var toInteger = function (argument) { - return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); - }; - - var min = Math.min; - - // `ToLength` abstract operation - // https://tc39.github.io/ecma262/#sec-tolength - var toLength = function (argument) { - return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 - }; - - var max = Math.max; - var min$1 = Math.min; - - // Helper for a popular repeating case of the spec: - // Let integer be ? ToInteger(index). - // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). - var toAbsoluteIndex = function (index, length) { - var integer = toInteger(index); - return integer < 0 ? max(integer + length, 0) : min$1(integer, length); - }; - - // `Array.prototype.{ indexOf, includes }` methods implementation - var createMethod = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIndexedObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - // eslint-disable-next-line no-self-compare - if (value != value) return true; - // Array#indexOf ignores holes, Array#includes - not - } else for (;length > index; index++) { - if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - - var arrayIncludes = { - // `Array.prototype.includes` method - // https://tc39.github.io/ecma262/#sec-array.prototype.includes - includes: createMethod(true), - // `Array.prototype.indexOf` method - // https://tc39.github.io/ecma262/#sec-array.prototype.indexof - indexOf: createMethod(false) - }; - - var indexOf = arrayIncludes.indexOf; - - - var objectKeysInternal = function (object, names) { - var O = toIndexedObject(object); - var i = 0; - var result = []; - var key; - for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while (names.length > i) if (has(O, key = names[i++])) { - ~indexOf(result, key) || result.push(key); - } - return result; - }; - - // IE8- don't enum bug keys - var enumBugKeys = [ - 'constructor', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'toLocaleString', - 'toString', - 'valueOf' - ]; - - var hiddenKeys$1 = enumBugKeys.concat('length', 'prototype'); - - // `Object.getOwnPropertyNames` method - // https://tc39.github.io/ecma262/#sec-object.getownpropertynames - var f$3 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return objectKeysInternal(O, hiddenKeys$1); - }; - - var objectGetOwnPropertyNames = { - f: f$3 - }; - - var f$4 = Object.getOwnPropertySymbols; - - var objectGetOwnPropertySymbols = { - f: f$4 - }; - - // all object keys, includes non-enumerable and symbols - var ownKeys = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { - var keys = objectGetOwnPropertyNames.f(anObject(it)); - var getOwnPropertySymbols = objectGetOwnPropertySymbols.f; - return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; - }; - - var copyConstructorProperties = function (target, source) { - var keys = ownKeys(source); - var defineProperty = objectDefineProperty.f; - var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); - } - }; - - var replacement = /#|\.prototype\./; - - var isForced = function (feature, detection) { - var value = data[normalize(feature)]; - return value == POLYFILL ? true - : value == NATIVE ? false - : typeof detection == 'function' ? fails(detection) - : !!detection; - }; - - var normalize = isForced.normalize = function (string) { - return String(string).replace(replacement, '.').toLowerCase(); - }; - - var data = isForced.data = {}; - var NATIVE = isForced.NATIVE = 'N'; - var POLYFILL = isForced.POLYFILL = 'P'; - - var isForced_1 = isForced; - - var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f; - - - - - - - /* - options.target - name of the target object - options.global - target is the global object - options.stat - export as static methods of target - options.proto - export as prototype methods of target - options.real - real prototype method for the `pure` version - options.forced - export even if the native feature is available - options.bind - bind methods to the target, required for the `pure` version - options.wrap - wrap constructors to preventing global pollution, required for the `pure` version - options.unsafe - use the simple assignment of property instead of delete + defineProperty - options.sham - add a flag to not completely full polyfills - options.enumerable - export as enumerable property - options.noTargetGet - prevent calling a getter on target - */ - var _export = function (options, source) { - var TARGET = options.target; - var GLOBAL = options.global; - var STATIC = options.stat; - var FORCED, target, key, targetProperty, sourceProperty, descriptor; - if (GLOBAL) { - target = global_1; - } else if (STATIC) { - target = global_1[TARGET] || setGlobal(TARGET, {}); - } else { - target = (global_1[TARGET] || {}).prototype; - } - if (target) for (key in source) { - sourceProperty = source[key]; - if (options.noTargetGet) { - descriptor = getOwnPropertyDescriptor$1(target, key); - targetProperty = descriptor && descriptor.value; - } else targetProperty = target[key]; - FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); - // contained in target - if (!FORCED && targetProperty !== undefined) { - if (typeof sourceProperty === typeof targetProperty) continue; - copyConstructorProperties(sourceProperty, targetProperty); - } - // add a flag to not completely full polyfills - if (options.sham || (targetProperty && targetProperty.sham)) { - createNonEnumerableProperty(sourceProperty, 'sham', true); - } - // extend global - redefine(target, key, sourceProperty, options); - } - }; - - var aFunction$1 = function (it) { - if (typeof it != 'function') { - throw TypeError(String(it) + ' is not a function'); - } return it; - }; - - // optional / simple context binding - var functionBindContext = function (fn, that, length) { - aFunction$1(fn); - if (that === undefined) return fn; - switch (length) { - case 0: return function () { - return fn.call(that); - }; - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { - return fn.apply(that, arguments); - }; - }; - - // `ToObject` abstract operation - // https://tc39.github.io/ecma262/#sec-toobject - var toObject = function (argument) { - return Object(requireObjectCoercible(argument)); - }; - - // `IsArray` abstract operation - // https://tc39.github.io/ecma262/#sec-isarray - var isArray = Array.isArray || function isArray(arg) { - return classofRaw(arg) == 'Array'; - }; - - var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () { - // Chrome 38 Symbol has incorrect toString conversion - // eslint-disable-next-line no-undef - return !String(Symbol()); - }); - - var useSymbolAsUid = nativeSymbol - // eslint-disable-next-line no-undef - && !Symbol.sham - // eslint-disable-next-line no-undef - && typeof Symbol.iterator == 'symbol'; - - var WellKnownSymbolsStore = shared('wks'); - var Symbol$1 = global_1.Symbol; - var createWellKnownSymbol = useSymbolAsUid ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid; - - var wellKnownSymbol = function (name) { - if (!has(WellKnownSymbolsStore, name)) { - if (nativeSymbol && has(Symbol$1, name)) WellKnownSymbolsStore[name] = Symbol$1[name]; - else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); - } return WellKnownSymbolsStore[name]; - }; - - var SPECIES = wellKnownSymbol('species'); - - // `ArraySpeciesCreate` abstract operation - // https://tc39.github.io/ecma262/#sec-arrayspeciescreate - var arraySpeciesCreate = function (originalArray, length) { - var C; - if (isArray(originalArray)) { - C = originalArray.constructor; - // cross-realm fallback - if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; - else if (isObject(C)) { - C = C[SPECIES]; - if (C === null) C = undefined; - } - } return new (C === undefined ? Array : C)(length === 0 ? 0 : length); - }; - - var push = [].push; - - // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation - var createMethod$1 = function (TYPE) { - var IS_MAP = TYPE == 1; - var IS_FILTER = TYPE == 2; - var IS_SOME = TYPE == 3; - var IS_EVERY = TYPE == 4; - var IS_FIND_INDEX = TYPE == 6; - var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; - return function ($this, callbackfn, that, specificCreate) { - var O = toObject($this); - var self = indexedObject(O); - var boundFunction = functionBindContext(callbackfn, that, 3); - var length = toLength(self.length); - var index = 0; - var create = specificCreate || arraySpeciesCreate; - var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; - var value, result; - for (;length > index; index++) if (NO_HOLES || index in self) { - value = self[index]; - result = boundFunction(value, index, O); - if (TYPE) { - if (IS_MAP) target[index] = result; // map - else if (result) switch (TYPE) { - case 3: return true; // some - case 5: return value; // find - case 6: return index; // findIndex - case 2: push.call(target, value); // filter - } else if (IS_EVERY) return false; // every - } - } - return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; - }; - }; - - var arrayIteration = { - // `Array.prototype.forEach` method - // https://tc39.github.io/ecma262/#sec-array.prototype.foreach - forEach: createMethod$1(0), - // `Array.prototype.map` method - // https://tc39.github.io/ecma262/#sec-array.prototype.map - map: createMethod$1(1), - // `Array.prototype.filter` method - // https://tc39.github.io/ecma262/#sec-array.prototype.filter - filter: createMethod$1(2), - // `Array.prototype.some` method - // https://tc39.github.io/ecma262/#sec-array.prototype.some - some: createMethod$1(3), - // `Array.prototype.every` method - // https://tc39.github.io/ecma262/#sec-array.prototype.every - every: createMethod$1(4), - // `Array.prototype.find` method - // https://tc39.github.io/ecma262/#sec-array.prototype.find - find: createMethod$1(5), - // `Array.prototype.findIndex` method - // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex - findIndex: createMethod$1(6) - }; - - var arrayMethodIsStrict = function (METHOD_NAME, argument) { - var method = [][METHOD_NAME]; - return !!method && fails(function () { - // eslint-disable-next-line no-useless-call,no-throw-literal - method.call(null, argument || function () { throw 1; }, 1); - }); - }; - - var defineProperty = Object.defineProperty; - var cache = {}; - - var thrower = function (it) { throw it; }; - - var arrayMethodUsesToLength = function (METHOD_NAME, options) { - if (has(cache, METHOD_NAME)) return cache[METHOD_NAME]; - if (!options) options = {}; - var method = [][METHOD_NAME]; - var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false; - var argument0 = has(options, 0) ? options[0] : thrower; - var argument1 = has(options, 1) ? options[1] : undefined; - - return cache[METHOD_NAME] = !!method && !fails(function () { - if (ACCESSORS && !descriptors) return true; - var O = { length: -1 }; - - if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower }); - else O[1] = 1; - - method.call(O, argument0, argument1); - }); - }; - - var $forEach = arrayIteration.forEach; - - - - var STRICT_METHOD = arrayMethodIsStrict('forEach'); - var USES_TO_LENGTH = arrayMethodUsesToLength('forEach'); - - // `Array.prototype.forEach` method implementation - // https://tc39.github.io/ecma262/#sec-array.prototype.foreach - var arrayForEach = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) { - return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } : [].forEach; - - // `Array.prototype.forEach` method - // https://tc39.github.io/ecma262/#sec-array.prototype.foreach - _export({ target: 'Array', proto: true, forced: [].forEach != arrayForEach }, { - forEach: arrayForEach - }); - - // call something on iterator step with safe closing on error - var callWithSafeIterationClosing = function (iterator, fn, value, ENTRIES) { - try { - return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); - // 7.4.6 IteratorClose(iterator, completion) - } catch (error) { - var returnMethod = iterator['return']; - if (returnMethod !== undefined) anObject(returnMethod.call(iterator)); - throw error; - } - }; - - var iterators = {}; - - var ITERATOR = wellKnownSymbol('iterator'); - var ArrayPrototype = Array.prototype; - - // check on default Array iterator - var isArrayIteratorMethod = function (it) { - return it !== undefined && (iterators.Array === it || ArrayPrototype[ITERATOR] === it); - }; - - var createProperty = function (object, key, value) { - var propertyKey = toPrimitive(key); - if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value)); - else object[propertyKey] = value; - }; - - var TO_STRING_TAG = wellKnownSymbol('toStringTag'); - var test = {}; - - test[TO_STRING_TAG] = 'z'; - - var toStringTagSupport = String(test) === '[object z]'; - - var TO_STRING_TAG$1 = wellKnownSymbol('toStringTag'); - // ES3 wrong here - var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; - - // fallback for IE11 Script Access Denied error - var tryGet = function (it, key) { - try { - return it[key]; - } catch (error) { /* empty */ } - }; - - // getting tag from ES6+ `Object.prototype.toString` - var classof = toStringTagSupport ? classofRaw : function (it) { - var O, tag, result; - return it === undefined ? 'Undefined' : it === null ? 'Null' - // @@toStringTag case - : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG$1)) == 'string' ? tag - // builtinTag case - : CORRECT_ARGUMENTS ? classofRaw(O) - // ES3 arguments fallback - : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; - }; - - var ITERATOR$1 = wellKnownSymbol('iterator'); - - var getIteratorMethod = function (it) { - if (it != undefined) return it[ITERATOR$1] - || it['@@iterator'] - || iterators[classof(it)]; - }; - - // `Array.from` method implementation - // https://tc39.github.io/ecma262/#sec-array.from - var arrayFrom = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { - var O = toObject(arrayLike); - var C = typeof this == 'function' ? this : Array; - var argumentsLength = arguments.length; - var mapfn = argumentsLength > 1 ? arguments[1] : undefined; - var mapping = mapfn !== undefined; - var iteratorMethod = getIteratorMethod(O); - var index = 0; - var length, result, step, iterator, next, value; - if (mapping) mapfn = functionBindContext(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2); - // if the target is not iterable or it's an array with the default iterator - use a simple case - if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) { - iterator = iteratorMethod.call(O); - next = iterator.next; - result = new C(); - for (;!(step = next.call(iterator)).done; index++) { - value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value; - createProperty(result, index, value); - } - } else { - length = toLength(O.length); - result = new C(length); - for (;length > index; index++) { - value = mapping ? mapfn(O[index], index) : O[index]; - createProperty(result, index, value); - } - } - result.length = index; - return result; - }; - - var ITERATOR$2 = wellKnownSymbol('iterator'); - var SAFE_CLOSING = false; - - try { - var called = 0; - var iteratorWithReturn = { - next: function () { - return { done: !!called++ }; - }, - 'return': function () { - SAFE_CLOSING = true; - } - }; - iteratorWithReturn[ITERATOR$2] = function () { - return this; - }; - // eslint-disable-next-line no-throw-literal - Array.from(iteratorWithReturn, function () { throw 2; }); - } catch (error) { /* empty */ } - - var checkCorrectnessOfIteration = function (exec, SKIP_CLOSING) { - if (!SKIP_CLOSING && !SAFE_CLOSING) return false; - var ITERATION_SUPPORT = false; - try { - var object = {}; - object[ITERATOR$2] = function () { - return { - next: function () { - return { done: ITERATION_SUPPORT = true }; - } - }; - }; - exec(object); - } catch (error) { /* empty */ } - return ITERATION_SUPPORT; - }; - - var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) { - Array.from(iterable); - }); - - // `Array.from` method - // https://tc39.github.io/ecma262/#sec-array.from - _export({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, { - from: arrayFrom - }); - - // `Object.keys` method - // https://tc39.github.io/ecma262/#sec-object.keys - var objectKeys = Object.keys || function keys(O) { - return objectKeysInternal(O, enumBugKeys); - }; - - // `Object.defineProperties` method - // https://tc39.github.io/ecma262/#sec-object.defineproperties - var objectDefineProperties = descriptors ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = objectKeys(Properties); - var length = keys.length; - var index = 0; - var key; - while (length > index) objectDefineProperty.f(O, key = keys[index++], Properties[key]); - return O; - }; - - var html = getBuiltIn('document', 'documentElement'); - - var GT = '>'; - var LT = '<'; - var PROTOTYPE = 'prototype'; - var SCRIPT = 'script'; - var IE_PROTO = sharedKey('IE_PROTO'); - - var EmptyConstructor = function () { /* empty */ }; - - var scriptTag = function (content) { - return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; - }; - - // Create object with fake `null` prototype: use ActiveX Object with cleared prototype - var NullProtoObjectViaActiveX = function (activeXDocument) { - activeXDocument.write(scriptTag('')); - activeXDocument.close(); - var temp = activeXDocument.parentWindow.Object; - activeXDocument = null; // avoid memory leak - return temp; - }; - - // Create object with fake `null` prototype: use iframe Object with cleared prototype - var NullProtoObjectViaIFrame = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = documentCreateElement('iframe'); - var JS = 'java' + SCRIPT + ':'; - var iframeDocument; - iframe.style.display = 'none'; - html.appendChild(iframe); - // https://github.com/zloirock/core-js/issues/475 - iframe.src = String(JS); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(scriptTag('document.F=Object')); - iframeDocument.close(); - return iframeDocument.F; - }; - - // Check for document.domain and active x support - // No need to use active x approach when document.domain is not set - // see https://github.com/es-shims/es5-shim/issues/150 - // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 - // avoid IE GC bug - var activeXDocument; - var NullProtoObject = function () { - try { - /* global ActiveXObject */ - activeXDocument = document.domain && new ActiveXObject('htmlfile'); - } catch (error) { /* ignore */ } - NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame(); - var length = enumBugKeys.length; - while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; - return NullProtoObject(); - }; - - hiddenKeys[IE_PROTO] = true; - - // `Object.create` method - // https://tc39.github.io/ecma262/#sec-object.create - var objectCreate = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - EmptyConstructor[PROTOTYPE] = anObject(O); - result = new EmptyConstructor(); - EmptyConstructor[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = NullProtoObject(); - return Properties === undefined ? result : objectDefineProperties(result, Properties); - }; - - var UNSCOPABLES = wellKnownSymbol('unscopables'); - var ArrayPrototype$1 = Array.prototype; - - // Array.prototype[@@unscopables] - // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables - if (ArrayPrototype$1[UNSCOPABLES] == undefined) { - objectDefineProperty.f(ArrayPrototype$1, UNSCOPABLES, { - configurable: true, - value: objectCreate(null) - }); - } - - // add a key to Array.prototype[@@unscopables] - var addToUnscopables = function (key) { - ArrayPrototype$1[UNSCOPABLES][key] = true; - }; - - var $includes = arrayIncludes.includes; - - - - var USES_TO_LENGTH$1 = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 }); - - // `Array.prototype.includes` method - // https://tc39.github.io/ecma262/#sec-array.prototype.includes - _export({ target: 'Array', proto: true, forced: !USES_TO_LENGTH$1 }, { - includes: function includes(el /* , fromIndex = 0 */) { - return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); - } - }); - - // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables - addToUnscopables('includes'); - - var engineUserAgent = getBuiltIn('navigator', 'userAgent') || ''; - - var process$1 = global_1.process; - var versions = process$1 && process$1.versions; - var v8 = versions && versions.v8; - var match, version; - - if (v8) { - match = v8.split('.'); - version = match[0] + match[1]; - } else if (engineUserAgent) { - match = engineUserAgent.match(/Edge\/(\d+)/); - if (!match || match[1] >= 74) { - match = engineUserAgent.match(/Chrome\/(\d+)/); - if (match) version = match[1]; - } - } - - var engineV8Version = version && +version; - - var SPECIES$1 = wellKnownSymbol('species'); - - var arrayMethodHasSpeciesSupport = function (METHOD_NAME) { - // We can't use this feature detection in V8 since it causes - // deoptimization and serious performance degradation - // https://github.com/zloirock/core-js/issues/677 - return engineV8Version >= 51 || !fails(function () { - var array = []; - var constructor = array.constructor = {}; - constructor[SPECIES$1] = function () { - return { foo: 1 }; - }; - return array[METHOD_NAME](Boolean).foo !== 1; - }); - }; - - var $map = arrayIteration.map; - - - - var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map'); - // FF49- issue - var USES_TO_LENGTH$2 = arrayMethodUsesToLength('map'); - - // `Array.prototype.map` method - // https://tc39.github.io/ecma262/#sec-array.prototype.map - // with adding support of @@species - _export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH$2 }, { - map: function map(callbackfn /* , thisArg */) { - return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } - }); - - var FAILS_ON_PRIMITIVES = fails(function () { objectKeys(1); }); - - // `Object.keys` method - // https://tc39.github.io/ecma262/#sec-object.keys - _export({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { - keys: function keys(it) { - return objectKeys(toObject(it)); - } - }); - - var aPossiblePrototype = function (it) { - if (!isObject(it) && it !== null) { - throw TypeError("Can't set " + String(it) + ' as a prototype'); - } return it; - }; - - // `Object.setPrototypeOf` method - // https://tc39.github.io/ecma262/#sec-object.setprototypeof - // Works with __proto__ only. Old v8 can't work with null proto objects. - /* eslint-disable no-proto */ - var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? function () { - var CORRECT_SETTER = false; - var test = {}; - var setter; - try { - setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set; - setter.call(test, []); - CORRECT_SETTER = test instanceof Array; - } catch (error) { /* empty */ } - return function setPrototypeOf(O, proto) { - anObject(O); - aPossiblePrototype(proto); - if (CORRECT_SETTER) setter.call(O, proto); - else O.__proto__ = proto; - return O; - }; - }() : undefined); - - // makes subclassing work correct for wrapped built-ins - var inheritIfRequired = function ($this, dummy, Wrapper) { - var NewTarget, NewTargetPrototype; - if ( - // it can work only with native `setPrototypeOf` - objectSetPrototypeOf && - // we haven't completely correct pre-ES6 way for getting `new.target`, so use this - typeof (NewTarget = dummy.constructor) == 'function' && - NewTarget !== Wrapper && - isObject(NewTargetPrototype = NewTarget.prototype) && - NewTargetPrototype !== Wrapper.prototype - ) objectSetPrototypeOf($this, NewTargetPrototype); - return $this; - }; - - var MATCH = wellKnownSymbol('match'); - - // `IsRegExp` abstract operation - // https://tc39.github.io/ecma262/#sec-isregexp - var isRegexp = function (it) { - var isRegExp; - return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classofRaw(it) == 'RegExp'); - }; - - // `RegExp.prototype.flags` getter implementation - // https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags - var regexpFlags = function () { - var that = anObject(this); - var result = ''; - if (that.global) result += 'g'; - if (that.ignoreCase) result += 'i'; - if (that.multiline) result += 'm'; - if (that.dotAll) result += 's'; - if (that.unicode) result += 'u'; - if (that.sticky) result += 'y'; - return result; - }; - - // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError, - // so we use an intermediate function. - function RE(s, f) { - return RegExp(s, f); - } - - var UNSUPPORTED_Y = fails(function () { - // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError - var re = RE('a', 'y'); - re.lastIndex = 2; - return re.exec('abcd') != null; - }); - - var BROKEN_CARET = fails(function () { - // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 - var re = RE('^r', 'gy'); - re.lastIndex = 2; - return re.exec('str') != null; - }); - - var regexpStickyHelpers = { - UNSUPPORTED_Y: UNSUPPORTED_Y, - BROKEN_CARET: BROKEN_CARET - }; - - var SPECIES$2 = wellKnownSymbol('species'); - - var setSpecies = function (CONSTRUCTOR_NAME) { - var Constructor = getBuiltIn(CONSTRUCTOR_NAME); - var defineProperty = objectDefineProperty.f; - - if (descriptors && Constructor && !Constructor[SPECIES$2]) { - defineProperty(Constructor, SPECIES$2, { - configurable: true, - get: function () { return this; } - }); - } - }; - - var defineProperty$1 = objectDefineProperty.f; - var getOwnPropertyNames = objectGetOwnPropertyNames.f; - - - - - - var setInternalState = internalState.set; - - - - var MATCH$1 = wellKnownSymbol('match'); - var NativeRegExp = global_1.RegExp; - var RegExpPrototype = NativeRegExp.prototype; - var re1 = /a/g; - var re2 = /a/g; - - // "new" should create a new object, old webkit bug - var CORRECT_NEW = new NativeRegExp(re1) !== re1; - - var UNSUPPORTED_Y$1 = regexpStickyHelpers.UNSUPPORTED_Y; - - var FORCED = descriptors && isForced_1('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y$1 || fails(function () { - re2[MATCH$1] = false; - // RegExp constructor can alter flags and IsRegExp works correct with @@match - return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i'; - }))); - - // `RegExp` constructor - // https://tc39.github.io/ecma262/#sec-regexp-constructor - if (FORCED) { - var RegExpWrapper = function RegExp(pattern, flags) { - var thisIsRegExp = this instanceof RegExpWrapper; - var patternIsRegExp = isRegexp(pattern); - var flagsAreUndefined = flags === undefined; - var sticky; - - if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) { - return pattern; - } - - if (CORRECT_NEW) { - if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source; - } else if (pattern instanceof RegExpWrapper) { - if (flagsAreUndefined) flags = regexpFlags.call(pattern); - pattern = pattern.source; - } - - if (UNSUPPORTED_Y$1) { - sticky = !!flags && flags.indexOf('y') > -1; - if (sticky) flags = flags.replace(/y/g, ''); - } - - var result = inheritIfRequired( - CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags), - thisIsRegExp ? this : RegExpPrototype, - RegExpWrapper - ); - - if (UNSUPPORTED_Y$1 && sticky) setInternalState(result, { sticky: sticky }); - - return result; - }; - var proxy = function (key) { - key in RegExpWrapper || defineProperty$1(RegExpWrapper, key, { - configurable: true, - get: function () { return NativeRegExp[key]; }, - set: function (it) { NativeRegExp[key] = it; } - }); - }; - var keys$1 = getOwnPropertyNames(NativeRegExp); - var index = 0; - while (keys$1.length > index) proxy(keys$1[index++]); - RegExpPrototype.constructor = RegExpWrapper; - RegExpWrapper.prototype = RegExpPrototype; - redefine(global_1, 'RegExp', RegExpWrapper); - } - - // https://tc39.github.io/ecma262/#sec-get-regexp-@@species - setSpecies('RegExp'); - - var nativeExec = RegExp.prototype.exec; - // This always refers to the native implementation, because the - // String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js, - // which loads this file before patching the method. - var nativeReplace = String.prototype.replace; - - var patchedExec = nativeExec; - - var UPDATES_LAST_INDEX_WRONG = (function () { - var re1 = /a/; - var re2 = /b*/g; - nativeExec.call(re1, 'a'); - nativeExec.call(re2, 'a'); - return re1.lastIndex !== 0 || re2.lastIndex !== 0; - })(); - - var UNSUPPORTED_Y$2 = regexpStickyHelpers.UNSUPPORTED_Y || regexpStickyHelpers.BROKEN_CARET; - - // nonparticipating capturing group, copied from es5-shim's String#split patch. - var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; - - var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y$2; - - if (PATCH) { - patchedExec = function exec(str) { - var re = this; - var lastIndex, reCopy, match, i; - var sticky = UNSUPPORTED_Y$2 && re.sticky; - var flags = regexpFlags.call(re); - var source = re.source; - var charsAdded = 0; - var strCopy = str; - - if (sticky) { - flags = flags.replace('y', ''); - if (flags.indexOf('g') === -1) { - flags += 'g'; - } - - strCopy = String(str).slice(re.lastIndex); - // Support anchored sticky behavior. - if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) { - source = '(?: ' + source + ')'; - strCopy = ' ' + strCopy; - charsAdded++; - } - // ^(? + rx + ) is needed, in combination with some str slicing, to - // simulate the 'y' flag. - reCopy = new RegExp('^(?:' + source + ')', flags); - } - - if (NPCG_INCLUDED) { - reCopy = new RegExp('^' + source + '$(?!\\s)', flags); - } - if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; - - match = nativeExec.call(sticky ? reCopy : re, strCopy); - - if (sticky) { - if (match) { - match.input = match.input.slice(charsAdded); - match[0] = match[0].slice(charsAdded); - match.index = re.lastIndex; - re.lastIndex += match[0].length; - } else re.lastIndex = 0; - } else if (UPDATES_LAST_INDEX_WRONG && match) { - re.lastIndex = re.global ? match.index + match[0].length : lastIndex; - } - if (NPCG_INCLUDED && match && match.length > 1) { - // Fix browsers whose `exec` methods don't consistently return `undefined` - // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ - nativeReplace.call(match[0], reCopy, function () { - for (i = 1; i < arguments.length - 2; i++) { - if (arguments[i] === undefined) match[i] = undefined; - } - }); - } - - return match; - }; - } - - var regexpExec = patchedExec; - - _export({ target: 'RegExp', proto: true, forced: /./.exec !== regexpExec }, { - exec: regexpExec - }); - - var TO_STRING = 'toString'; - var RegExpPrototype$1 = RegExp.prototype; - var nativeToString = RegExpPrototype$1[TO_STRING]; - - var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; }); - // FF44- RegExp#toString has a wrong name - var INCORRECT_NAME = nativeToString.name != TO_STRING; - - // `RegExp.prototype.toString` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring - if (NOT_GENERIC || INCORRECT_NAME) { - redefine(RegExp.prototype, TO_STRING, function toString() { - var R = anObject(this); - var p = String(R.source); - var rf = R.flags; - var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype$1) ? regexpFlags.call(R) : rf); - return '/' + p + '/' + f; - }, { unsafe: true }); - } - - var notARegexp = function (it) { - if (isRegexp(it)) { - throw TypeError("The method doesn't accept regular expressions"); - } return it; - }; - - var MATCH$2 = wellKnownSymbol('match'); - - var correctIsRegexpLogic = function (METHOD_NAME) { - var regexp = /./; - try { - '/./'[METHOD_NAME](regexp); - } catch (e) { - try { - regexp[MATCH$2] = false; - return '/./'[METHOD_NAME](regexp); - } catch (f) { /* empty */ } - } return false; - }; - - // `String.prototype.includes` method - // https://tc39.github.io/ecma262/#sec-string.prototype.includes - _export({ target: 'String', proto: true, forced: !correctIsRegexpLogic('includes') }, { - includes: function includes(searchString /* , position = 0 */) { - return !!~String(requireObjectCoercible(this)) - .indexOf(notARegexp(searchString), arguments.length > 1 ? arguments[1] : undefined); - } - }); - - // `String.prototype.{ codePointAt, at }` methods implementation - var createMethod$2 = function (CONVERT_TO_STRING) { - return function ($this, pos) { - var S = String(requireObjectCoercible($this)); - var position = toInteger(pos); - var size = S.length; - var first, second; - if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; - first = S.charCodeAt(position); - return first < 0xD800 || first > 0xDBFF || position + 1 === size - || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF - ? CONVERT_TO_STRING ? S.charAt(position) : first - : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; - }; - }; - - var stringMultibyte = { - // `String.prototype.codePointAt` method - // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat - codeAt: createMethod$2(false), - // `String.prototype.at` method - // https://github.com/mathiasbynens/String.prototype.at - charAt: createMethod$2(true) - }; - - var correctPrototypeGetter = !fails(function () { - function F() { /* empty */ } - F.prototype.constructor = null; - return Object.getPrototypeOf(new F()) !== F.prototype; - }); - - var IE_PROTO$1 = sharedKey('IE_PROTO'); - var ObjectPrototype = Object.prototype; - - // `Object.getPrototypeOf` method - // https://tc39.github.io/ecma262/#sec-object.getprototypeof - var objectGetPrototypeOf = correctPrototypeGetter ? Object.getPrototypeOf : function (O) { - O = toObject(O); - if (has(O, IE_PROTO$1)) return O[IE_PROTO$1]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectPrototype : null; - }; - - var ITERATOR$3 = wellKnownSymbol('iterator'); - var BUGGY_SAFARI_ITERATORS = false; - - var returnThis = function () { return this; }; - - // `%IteratorPrototype%` object - // https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object - var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; - - if ([].keys) { - arrayIterator = [].keys(); - // Safari 8 has buggy iterators w/o `next` - if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; - else { - PrototypeOfArrayIteratorPrototype = objectGetPrototypeOf(objectGetPrototypeOf(arrayIterator)); - if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; - } - } - - if (IteratorPrototype == undefined) IteratorPrototype = {}; - - // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() - if ( !has(IteratorPrototype, ITERATOR$3)) { - createNonEnumerableProperty(IteratorPrototype, ITERATOR$3, returnThis); - } - - var iteratorsCore = { - IteratorPrototype: IteratorPrototype, - BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS - }; - - var defineProperty$2 = objectDefineProperty.f; - - - - var TO_STRING_TAG$2 = wellKnownSymbol('toStringTag'); - - var setToStringTag = function (it, TAG, STATIC) { - if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG$2)) { - defineProperty$2(it, TO_STRING_TAG$2, { configurable: true, value: TAG }); - } - }; - - var IteratorPrototype$1 = iteratorsCore.IteratorPrototype; - - - - - - var returnThis$1 = function () { return this; }; - - var createIteratorConstructor = function (IteratorConstructor, NAME, next) { - var TO_STRING_TAG = NAME + ' Iterator'; - IteratorConstructor.prototype = objectCreate(IteratorPrototype$1, { next: createPropertyDescriptor(1, next) }); - setToStringTag(IteratorConstructor, TO_STRING_TAG, false); - iterators[TO_STRING_TAG] = returnThis$1; - return IteratorConstructor; - }; - - var IteratorPrototype$2 = iteratorsCore.IteratorPrototype; - var BUGGY_SAFARI_ITERATORS$1 = iteratorsCore.BUGGY_SAFARI_ITERATORS; - var ITERATOR$4 = wellKnownSymbol('iterator'); - var KEYS = 'keys'; - var VALUES = 'values'; - var ENTRIES = 'entries'; - - var returnThis$2 = function () { return this; }; - - var defineIterator = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { - createIteratorConstructor(IteratorConstructor, NAME, next); - - var getIterationMethod = function (KIND) { - if (KIND === DEFAULT && defaultIterator) return defaultIterator; - if (!BUGGY_SAFARI_ITERATORS$1 && KIND in IterablePrototype) return IterablePrototype[KIND]; - switch (KIND) { - case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; - case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; - case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; - } return function () { return new IteratorConstructor(this); }; - }; - - var TO_STRING_TAG = NAME + ' Iterator'; - var INCORRECT_VALUES_NAME = false; - var IterablePrototype = Iterable.prototype; - var nativeIterator = IterablePrototype[ITERATOR$4] - || IterablePrototype['@@iterator'] - || DEFAULT && IterablePrototype[DEFAULT]; - var defaultIterator = !BUGGY_SAFARI_ITERATORS$1 && nativeIterator || getIterationMethod(DEFAULT); - var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; - var CurrentIteratorPrototype, methods, KEY; - - // fix native - if (anyNativeIterator) { - CurrentIteratorPrototype = objectGetPrototypeOf(anyNativeIterator.call(new Iterable())); - if (IteratorPrototype$2 !== Object.prototype && CurrentIteratorPrototype.next) { - if ( objectGetPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype$2) { - if (objectSetPrototypeOf) { - objectSetPrototypeOf(CurrentIteratorPrototype, IteratorPrototype$2); - } else if (typeof CurrentIteratorPrototype[ITERATOR$4] != 'function') { - createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR$4, returnThis$2); - } - } - // Set @@toStringTag to native iterators - setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true); - } - } - - // fix Array#{values, @@iterator}.name in V8 / FF - if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { - INCORRECT_VALUES_NAME = true; - defaultIterator = function values() { return nativeIterator.call(this); }; - } - - // define iterator - if ( IterablePrototype[ITERATOR$4] !== defaultIterator) { - createNonEnumerableProperty(IterablePrototype, ITERATOR$4, defaultIterator); - } - iterators[NAME] = defaultIterator; - - // export additional methods - if (DEFAULT) { - methods = { - values: getIterationMethod(VALUES), - keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), - entries: getIterationMethod(ENTRIES) - }; - if (FORCED) for (KEY in methods) { - if (BUGGY_SAFARI_ITERATORS$1 || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { - redefine(IterablePrototype, KEY, methods[KEY]); - } - } else _export({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS$1 || INCORRECT_VALUES_NAME }, methods); - } - - return methods; - }; - - var charAt = stringMultibyte.charAt; - - - - var STRING_ITERATOR = 'String Iterator'; - var setInternalState$1 = internalState.set; - var getInternalState = internalState.getterFor(STRING_ITERATOR); - - // `String.prototype[@@iterator]` method - // https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator - defineIterator(String, 'String', function (iterated) { - setInternalState$1(this, { - type: STRING_ITERATOR, - string: String(iterated), - index: 0 - }); - // `%StringIteratorPrototype%.next` method - // https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next - }, function next() { - var state = getInternalState(this); - var string = state.string; - var index = state.index; - var point; - if (index >= string.length) return { value: undefined, done: true }; - point = charAt(string, index); - state.index += point.length; - return { value: point, done: false }; - }); - - // iterable DOM collections - // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods - var domIterables = { - CSSRuleList: 0, - CSSStyleDeclaration: 0, - CSSValueList: 0, - ClientRectList: 0, - DOMRectList: 0, - DOMStringList: 0, - DOMTokenList: 1, - DataTransferItemList: 0, - FileList: 0, - HTMLAllCollection: 0, - HTMLCollection: 0, - HTMLFormElement: 0, - HTMLSelectElement: 0, - MediaList: 0, - MimeTypeArray: 0, - NamedNodeMap: 0, - NodeList: 1, - PaintRequestList: 0, - Plugin: 0, - PluginArray: 0, - SVGLengthList: 0, - SVGNumberList: 0, - SVGPathSegList: 0, - SVGPointList: 0, - SVGStringList: 0, - SVGTransformList: 0, - SourceBufferList: 0, - StyleSheetList: 0, - TextTrackCueList: 0, - TextTrackList: 0, - TouchList: 0 - }; - - for (var COLLECTION_NAME in domIterables) { - var Collection = global_1[COLLECTION_NAME]; - var CollectionPrototype = Collection && Collection.prototype; - // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype && CollectionPrototype.forEach !== arrayForEach) try { - createNonEnumerableProperty(CollectionPrototype, 'forEach', arrayForEach); - } catch (error) { - CollectionPrototype.forEach = arrayForEach; - } - } - - // Setup tab focus - var container = document.getElementById('container'); - var tabClassName = 'tab-focus'; // Remove class on blur - - document.addEventListener('focusout', function (event) { - if (!event.target.classList || container.contains(event.target)) { - return; - } - - event.target.classList.remove(tabClassName); - }); // Add classname to tabbed elements - - document.addEventListener('keydown', function (event) { - if (event.keyCode !== 9) { - return; - } // Delay the adding of classname until the focus has changed - // This event fires before the focusin event - - - setTimeout(function () { - var focused = document.activeElement; - - if (!focused || !focused.classList || container.contains(focused)) { - return; - } - - focused.classList.add(tabClassName); - }, 10); - }); - - // Polyfill for creating CustomEvents on IE9/10/11 - // code pulled from: - // https://github.com/d4tocchini/customevent-polyfill - // https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Polyfill - (function () { - if (typeof window === 'undefined') { - return; - } - - try { - var ce = new window.CustomEvent('test', { - cancelable: true - }); - ce.preventDefault(); - - if (ce.defaultPrevented !== true) { - // IE has problems with .preventDefault() on custom events - // http://stackoverflow.com/questions/23349191 - throw new Error('Could not prevent default'); - } - } catch (e) { - var CustomEvent = function CustomEvent(event, params) { - var evt, origPrevent; - params = params || {}; - params.bubbles = !!params.bubbles; - params.cancelable = !!params.cancelable; - evt = document.createEvent('CustomEvent'); - evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail); - origPrevent = evt.preventDefault; - - evt.preventDefault = function () { - origPrevent.call(this); - - try { - Object.defineProperty(this, 'defaultPrevented', { - get: function get() { - return true; - } - }); - } catch (e) { - this.defaultPrevented = true; - } - }; - - return evt; - }; - - CustomEvent.prototype = window.Event.prototype; - window.CustomEvent = CustomEvent; // expose definition to window - } - })(); - - var nativeGetOwnPropertyNames = objectGetOwnPropertyNames.f; - - var toString$1 = {}.toString; - - var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - - var getWindowNames = function (it) { - try { - return nativeGetOwnPropertyNames(it); - } catch (error) { - return windowNames.slice(); - } - }; - - // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window - var f$5 = function getOwnPropertyNames(it) { - return windowNames && toString$1.call(it) == '[object Window]' - ? getWindowNames(it) - : nativeGetOwnPropertyNames(toIndexedObject(it)); - }; - - var objectGetOwnPropertyNamesExternal = { - f: f$5 - }; - - var f$6 = wellKnownSymbol; - - var wellKnownSymbolWrapped = { - f: f$6 - }; - - var defineProperty$3 = objectDefineProperty.f; - - var defineWellKnownSymbol = function (NAME) { - var Symbol = path.Symbol || (path.Symbol = {}); - if (!has(Symbol, NAME)) defineProperty$3(Symbol, NAME, { - value: wellKnownSymbolWrapped.f(NAME) - }); - }; - - var $forEach$1 = arrayIteration.forEach; - - var HIDDEN = sharedKey('hidden'); - var SYMBOL = 'Symbol'; - var PROTOTYPE$1 = 'prototype'; - var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); - var setInternalState$2 = internalState.set; - var getInternalState$1 = internalState.getterFor(SYMBOL); - var ObjectPrototype$1 = Object[PROTOTYPE$1]; - var $Symbol = global_1.Symbol; - var $stringify = getBuiltIn('JSON', 'stringify'); - var nativeGetOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f; - var nativeDefineProperty$1 = objectDefineProperty.f; - var nativeGetOwnPropertyNames$1 = objectGetOwnPropertyNamesExternal.f; - var nativePropertyIsEnumerable$1 = objectPropertyIsEnumerable.f; - var AllSymbols = shared('symbols'); - var ObjectPrototypeSymbols = shared('op-symbols'); - var StringToSymbolRegistry = shared('string-to-symbol-registry'); - var SymbolToStringRegistry = shared('symbol-to-string-registry'); - var WellKnownSymbolsStore$1 = shared('wks'); - var QObject = global_1.QObject; - // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 - var USE_SETTER = !QObject || !QObject[PROTOTYPE$1] || !QObject[PROTOTYPE$1].findChild; - - // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 - var setSymbolDescriptor = descriptors && fails(function () { - return objectCreate(nativeDefineProperty$1({}, 'a', { - get: function () { return nativeDefineProperty$1(this, 'a', { value: 7 }).a; } - })).a != 7; - }) ? function (O, P, Attributes) { - var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor$1(ObjectPrototype$1, P); - if (ObjectPrototypeDescriptor) delete ObjectPrototype$1[P]; - nativeDefineProperty$1(O, P, Attributes); - if (ObjectPrototypeDescriptor && O !== ObjectPrototype$1) { - nativeDefineProperty$1(ObjectPrototype$1, P, ObjectPrototypeDescriptor); - } - } : nativeDefineProperty$1; - - var wrap = function (tag, description) { - var symbol = AllSymbols[tag] = objectCreate($Symbol[PROTOTYPE$1]); - setInternalState$2(symbol, { - type: SYMBOL, - tag: tag, - description: description - }); - if (!descriptors) symbol.description = description; - return symbol; - }; - - var isSymbol = useSymbolAsUid ? function (it) { - return typeof it == 'symbol'; - } : function (it) { - return Object(it) instanceof $Symbol; - }; - - var $defineProperty = function defineProperty(O, P, Attributes) { - if (O === ObjectPrototype$1) $defineProperty(ObjectPrototypeSymbols, P, Attributes); - anObject(O); - var key = toPrimitive(P, true); - anObject(Attributes); - if (has(AllSymbols, key)) { - if (!Attributes.enumerable) { - if (!has(O, HIDDEN)) nativeDefineProperty$1(O, HIDDEN, createPropertyDescriptor(1, {})); - O[HIDDEN][key] = true; - } else { - if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false; - Attributes = objectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) }); - } return setSymbolDescriptor(O, key, Attributes); - } return nativeDefineProperty$1(O, key, Attributes); - }; - - var $defineProperties = function defineProperties(O, Properties) { - anObject(O); - var properties = toIndexedObject(Properties); - var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties)); - $forEach$1(keys, function (key) { - if (!descriptors || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]); - }); - return O; - }; - - var $create = function create(O, Properties) { - return Properties === undefined ? objectCreate(O) : $defineProperties(objectCreate(O), Properties); - }; - - var $propertyIsEnumerable = function propertyIsEnumerable(V) { - var P = toPrimitive(V, true); - var enumerable = nativePropertyIsEnumerable$1.call(this, P); - if (this === ObjectPrototype$1 && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false; - return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true; - }; - - var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) { - var it = toIndexedObject(O); - var key = toPrimitive(P, true); - if (it === ObjectPrototype$1 && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return; - var descriptor = nativeGetOwnPropertyDescriptor$1(it, key); - if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) { - descriptor.enumerable = true; - } - return descriptor; - }; - - var $getOwnPropertyNames = function getOwnPropertyNames(O) { - var names = nativeGetOwnPropertyNames$1(toIndexedObject(O)); - var result = []; - $forEach$1(names, function (key) { - if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key); - }); - return result; - }; - - var $getOwnPropertySymbols = function getOwnPropertySymbols(O) { - var IS_OBJECT_PROTOTYPE = O === ObjectPrototype$1; - var names = nativeGetOwnPropertyNames$1(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O)); - var result = []; - $forEach$1(names, function (key) { - if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype$1, key))) { - result.push(AllSymbols[key]); - } - }); - return result; - }; - - // `Symbol` constructor - // https://tc39.github.io/ecma262/#sec-symbol-constructor - if (!nativeSymbol) { - $Symbol = function Symbol() { - if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor'); - var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]); - var tag = uid(description); - var setter = function (value) { - if (this === ObjectPrototype$1) setter.call(ObjectPrototypeSymbols, value); - if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; - setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value)); - }; - if (descriptors && USE_SETTER) setSymbolDescriptor(ObjectPrototype$1, tag, { configurable: true, set: setter }); - return wrap(tag, description); - }; - - redefine($Symbol[PROTOTYPE$1], 'toString', function toString() { - return getInternalState$1(this).tag; - }); - - redefine($Symbol, 'withoutSetter', function (description) { - return wrap(uid(description), description); - }); - - objectPropertyIsEnumerable.f = $propertyIsEnumerable; - objectDefineProperty.f = $defineProperty; - objectGetOwnPropertyDescriptor.f = $getOwnPropertyDescriptor; - objectGetOwnPropertyNames.f = objectGetOwnPropertyNamesExternal.f = $getOwnPropertyNames; - objectGetOwnPropertySymbols.f = $getOwnPropertySymbols; - - wellKnownSymbolWrapped.f = function (name) { - return wrap(wellKnownSymbol(name), name); - }; - - if (descriptors) { - // https://github.com/tc39/proposal-Symbol-description - nativeDefineProperty$1($Symbol[PROTOTYPE$1], 'description', { - configurable: true, - get: function description() { - return getInternalState$1(this).description; - } - }); - { - redefine(ObjectPrototype$1, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true }); - } - } - } - - _export({ global: true, wrap: true, forced: !nativeSymbol, sham: !nativeSymbol }, { - Symbol: $Symbol - }); - - $forEach$1(objectKeys(WellKnownSymbolsStore$1), function (name) { - defineWellKnownSymbol(name); - }); - - _export({ target: SYMBOL, stat: true, forced: !nativeSymbol }, { - // `Symbol.for` method - // https://tc39.github.io/ecma262/#sec-symbol.for - 'for': function (key) { - var string = String(key); - if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string]; - var symbol = $Symbol(string); - StringToSymbolRegistry[string] = symbol; - SymbolToStringRegistry[symbol] = string; - return symbol; - }, - // `Symbol.keyFor` method - // https://tc39.github.io/ecma262/#sec-symbol.keyfor - keyFor: function keyFor(sym) { - if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol'); - if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym]; - }, - useSetter: function () { USE_SETTER = true; }, - useSimple: function () { USE_SETTER = false; } - }); - - _export({ target: 'Object', stat: true, forced: !nativeSymbol, sham: !descriptors }, { - // `Object.create` method - // https://tc39.github.io/ecma262/#sec-object.create - create: $create, - // `Object.defineProperty` method - // https://tc39.github.io/ecma262/#sec-object.defineproperty - defineProperty: $defineProperty, - // `Object.defineProperties` method - // https://tc39.github.io/ecma262/#sec-object.defineproperties - defineProperties: $defineProperties, - // `Object.getOwnPropertyDescriptor` method - // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors - getOwnPropertyDescriptor: $getOwnPropertyDescriptor - }); - - _export({ target: 'Object', stat: true, forced: !nativeSymbol }, { - // `Object.getOwnPropertyNames` method - // https://tc39.github.io/ecma262/#sec-object.getownpropertynames - getOwnPropertyNames: $getOwnPropertyNames, - // `Object.getOwnPropertySymbols` method - // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols - getOwnPropertySymbols: $getOwnPropertySymbols - }); - - // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives - // https://bugs.chromium.org/p/v8/issues/detail?id=3443 - _export({ target: 'Object', stat: true, forced: fails(function () { objectGetOwnPropertySymbols.f(1); }) }, { - getOwnPropertySymbols: function getOwnPropertySymbols(it) { - return objectGetOwnPropertySymbols.f(toObject(it)); - } - }); - - // `JSON.stringify` method behavior with symbols - // https://tc39.github.io/ecma262/#sec-json.stringify - if ($stringify) { - var FORCED_JSON_STRINGIFY = !nativeSymbol || fails(function () { - var symbol = $Symbol(); - // MS Edge converts symbol values to JSON as {} - return $stringify([symbol]) != '[null]' - // WebKit converts symbol values to JSON as null - || $stringify({ a: symbol }) != '{}' - // V8 throws on boxed symbols - || $stringify(Object(symbol)) != '{}'; - }); - - _export({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, { - // eslint-disable-next-line no-unused-vars - stringify: function stringify(it, replacer, space) { - var args = [it]; - var index = 1; - var $replacer; - while (arguments.length > index) args.push(arguments[index++]); - $replacer = replacer; - if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined - if (!isArray(replacer)) replacer = function (key, value) { - if (typeof $replacer == 'function') value = $replacer.call(this, key, value); - if (!isSymbol(value)) return value; - }; - args[1] = replacer; - return $stringify.apply(null, args); - } - }); - } - - // `Symbol.prototype[@@toPrimitive]` method - // https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive - if (!$Symbol[PROTOTYPE$1][TO_PRIMITIVE]) { - createNonEnumerableProperty($Symbol[PROTOTYPE$1], TO_PRIMITIVE, $Symbol[PROTOTYPE$1].valueOf); - } - // `Symbol.prototype[@@toStringTag]` property - // https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag - setToStringTag($Symbol, SYMBOL); - - hiddenKeys[HIDDEN] = true; - - var defineProperty$4 = objectDefineProperty.f; - - - var NativeSymbol = global_1.Symbol; - - if (descriptors && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) || - // Safari 12 bug - NativeSymbol().description !== undefined - )) { - var EmptyStringDescriptionStore = {}; - // wrap Symbol constructor for correct work with undefined description - var SymbolWrapper = function Symbol() { - var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]); - var result = this instanceof SymbolWrapper - ? new NativeSymbol(description) - // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)' - : description === undefined ? NativeSymbol() : NativeSymbol(description); - if (description === '') EmptyStringDescriptionStore[result] = true; - return result; - }; - copyConstructorProperties(SymbolWrapper, NativeSymbol); - var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype; - symbolPrototype.constructor = SymbolWrapper; - - var symbolToString = symbolPrototype.toString; - var native = String(NativeSymbol('test')) == 'Symbol(test)'; - var regexp = /^Symbol\((.*)\)[^)]+$/; - defineProperty$4(symbolPrototype, 'description', { - configurable: true, - get: function description() { - var symbol = isObject(this) ? this.valueOf() : this; - var string = symbolToString.call(symbol); - if (has(EmptyStringDescriptionStore, symbol)) return ''; - var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1'); - return desc === '' ? undefined : desc; - } - }); - - _export({ global: true, forced: true }, { - Symbol: SymbolWrapper - }); - } - - // `Symbol.iterator` well-known symbol - // https://tc39.github.io/ecma262/#sec-symbol.iterator - defineWellKnownSymbol('iterator'); - - var $indexOf = arrayIncludes.indexOf; - - - - var nativeIndexOf = [].indexOf; - - var NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0; - var STRICT_METHOD$1 = arrayMethodIsStrict('indexOf'); - var USES_TO_LENGTH$3 = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 }); - - // `Array.prototype.indexOf` method - // https://tc39.github.io/ecma262/#sec-array.prototype.indexof - _export({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD$1 || !USES_TO_LENGTH$3 }, { - indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { - return NEGATIVE_ZERO - // convert -0 to +0 - ? nativeIndexOf.apply(this, arguments) || 0 - : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined); - } - }); - - var ARRAY_ITERATOR = 'Array Iterator'; - var setInternalState$3 = internalState.set; - var getInternalState$2 = internalState.getterFor(ARRAY_ITERATOR); - - // `Array.prototype.entries` method - // https://tc39.github.io/ecma262/#sec-array.prototype.entries - // `Array.prototype.keys` method - // https://tc39.github.io/ecma262/#sec-array.prototype.keys - // `Array.prototype.values` method - // https://tc39.github.io/ecma262/#sec-array.prototype.values - // `Array.prototype[@@iterator]` method - // https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator - // `CreateArrayIterator` internal method - // https://tc39.github.io/ecma262/#sec-createarrayiterator - var es_array_iterator = defineIterator(Array, 'Array', function (iterated, kind) { - setInternalState$3(this, { - type: ARRAY_ITERATOR, - target: toIndexedObject(iterated), // target - index: 0, // next index - kind: kind // kind - }); - // `%ArrayIteratorPrototype%.next` method - // https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next - }, function () { - var state = getInternalState$2(this); - var target = state.target; - var kind = state.kind; - var index = state.index++; - if (!target || index >= target.length) { - state.target = undefined; - return { value: undefined, done: true }; - } - if (kind == 'keys') return { value: index, done: false }; - if (kind == 'values') return { value: target[index], done: false }; - return { value: [index, target[index]], done: false }; - }, 'values'); - - // argumentsList[@@iterator] is %ArrayProto_values% - // https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject - // https://tc39.github.io/ecma262/#sec-createmappedargumentsobject - iterators.Arguments = iterators.Array; - - // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables - addToUnscopables('keys'); - addToUnscopables('values'); - addToUnscopables('entries'); - - var nativeJoin = [].join; - - var ES3_STRINGS = indexedObject != Object; - var STRICT_METHOD$2 = arrayMethodIsStrict('join', ','); - - // `Array.prototype.join` method - // https://tc39.github.io/ecma262/#sec-array.prototype.join - _export({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD$2 }, { - join: function join(separator) { - return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator); - } - }); - - var HAS_SPECIES_SUPPORT$1 = arrayMethodHasSpeciesSupport('slice'); - var USES_TO_LENGTH$4 = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 }); - - var SPECIES$3 = wellKnownSymbol('species'); - var nativeSlice = [].slice; - var max$1 = Math.max; - - // `Array.prototype.slice` method - // https://tc39.github.io/ecma262/#sec-array.prototype.slice - // fallback for not array-like ES3 strings and DOM objects - _export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$1 || !USES_TO_LENGTH$4 }, { - slice: function slice(start, end) { - var O = toIndexedObject(this); - var length = toLength(O.length); - var k = toAbsoluteIndex(start, length); - var fin = toAbsoluteIndex(end === undefined ? length : end, length); - // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible - var Constructor, result, n; - if (isArray(O)) { - Constructor = O.constructor; - // cross-realm fallback - if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) { - Constructor = undefined; - } else if (isObject(Constructor)) { - Constructor = Constructor[SPECIES$3]; - if (Constructor === null) Constructor = undefined; - } - if (Constructor === Array || Constructor === undefined) { - return nativeSlice.call(O, k, fin); - } - } - result = new (Constructor === undefined ? Array : Constructor)(max$1(fin - k, 0)); - for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]); - result.length = n; - return result; - } - }); - - // `Object.prototype.toString` method implementation - // https://tc39.github.io/ecma262/#sec-object.prototype.tostring - var objectToString = toStringTagSupport ? {}.toString : function toString() { - return '[object ' + classof(this) + ']'; - }; - - // `Object.prototype.toString` method - // https://tc39.github.io/ecma262/#sec-object.prototype.tostring - if (!toStringTagSupport) { - redefine(Object.prototype, 'toString', objectToString, { unsafe: true }); - } - - // TODO: Remove from `core-js@4` since it's moved to entry points - - - - - - - - var SPECIES$4 = wellKnownSymbol('species'); - - var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { - // #replace needs built-in support for named groups. - // #match works fine because it just return the exec results, even if it has - // a "grops" property. - var re = /./; - re.exec = function () { - var result = []; - result.groups = { a: '7' }; - return result; - }; - return ''.replace(re, '$') !== '7'; - }); - - // IE <= 11 replaces $0 with the whole match, as if it was $& - // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 - var REPLACE_KEEPS_$0 = (function () { - return 'a'.replace(/./, '$0') === '$0'; - })(); - - var REPLACE = wellKnownSymbol('replace'); - // Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string - var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { - if (/./[REPLACE]) { - return /./[REPLACE]('a', '$0') === ''; - } - return false; - })(); - - // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec - // Weex JS has frozen built-in prototypes, so use try / catch wrapper - var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () { - var re = /(?:)/; - var originalExec = re.exec; - re.exec = function () { return originalExec.apply(this, arguments); }; - var result = 'ab'.split(re); - return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b'; - }); - - var fixRegexpWellKnownSymbolLogic = function (KEY, length, exec, sham) { - var SYMBOL = wellKnownSymbol(KEY); - - var DELEGATES_TO_SYMBOL = !fails(function () { - // String methods call symbol-named RegEp methods - var O = {}; - O[SYMBOL] = function () { return 7; }; - return ''[KEY](O) != 7; - }); - - var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () { - // Symbol-named RegExp methods call .exec - var execCalled = false; - var re = /a/; - - if (KEY === 'split') { - // We can't use real regex here since it causes deoptimization - // and serious performance degradation in V8 - // https://github.com/zloirock/core-js/issues/306 - re = {}; - // RegExp[@@split] doesn't call the regex's exec method, but first creates - // a new one. We need to return the patched regex when creating the new one. - re.constructor = {}; - re.constructor[SPECIES$4] = function () { return re; }; - re.flags = ''; - re[SYMBOL] = /./[SYMBOL]; - } - - re.exec = function () { execCalled = true; return null; }; - - re[SYMBOL](''); - return !execCalled; - }); - - if ( - !DELEGATES_TO_SYMBOL || - !DELEGATES_TO_EXEC || - (KEY === 'replace' && !( - REPLACE_SUPPORTS_NAMED_GROUPS && - REPLACE_KEEPS_$0 && - !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE - )) || - (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC) - ) { - var nativeRegExpMethod = /./[SYMBOL]; - var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { - if (regexp.exec === regexpExec) { - if (DELEGATES_TO_SYMBOL && !forceStringMethod) { - // The native String method already delegates to @@method (this - // polyfilled function), leasing to infinite recursion. - // We avoid it by directly calling the native @@method method. - return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) }; - } - return { done: true, value: nativeMethod.call(str, regexp, arg2) }; - } - return { done: false }; - }, { - REPLACE_KEEPS_$0: REPLACE_KEEPS_$0, - REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE - }); - var stringMethod = methods[0]; - var regexMethod = methods[1]; - - redefine(String.prototype, KEY, stringMethod); - redefine(RegExp.prototype, SYMBOL, length == 2 - // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) - // 21.2.5.11 RegExp.prototype[@@split](string, limit) - ? function (string, arg) { return regexMethod.call(string, this, arg); } - // 21.2.5.6 RegExp.prototype[@@match](string) - // 21.2.5.9 RegExp.prototype[@@search](string) - : function (string) { return regexMethod.call(string, this); } - ); - } - - if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true); - }; - - var charAt$1 = stringMultibyte.charAt; - - // `AdvanceStringIndex` abstract operation - // https://tc39.github.io/ecma262/#sec-advancestringindex - var advanceStringIndex = function (S, index, unicode) { - return index + (unicode ? charAt$1(S, index).length : 1); - }; - - // `RegExpExec` abstract operation - // https://tc39.github.io/ecma262/#sec-regexpexec - var regexpExecAbstract = function (R, S) { - var exec = R.exec; - if (typeof exec === 'function') { - var result = exec.call(R, S); - if (typeof result !== 'object') { - throw TypeError('RegExp exec method returned something other than an Object or null'); - } - return result; - } - - if (classofRaw(R) !== 'RegExp') { - throw TypeError('RegExp#exec called on incompatible receiver'); - } - - return regexpExec.call(R, S); - }; - - var max$2 = Math.max; - var min$2 = Math.min; - var floor$1 = Math.floor; - var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d\d?|<[^>]*>)/g; - var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d\d?)/g; - - var maybeToString = function (it) { - return it === undefined ? it : String(it); - }; - - // @@replace logic - fixRegexpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) { - var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE; - var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0; - var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; - - return [ - // `String.prototype.replace` method - // https://tc39.github.io/ecma262/#sec-string.prototype.replace - function replace(searchValue, replaceValue) { - var O = requireObjectCoercible(this); - var replacer = searchValue == undefined ? undefined : searchValue[REPLACE]; - return replacer !== undefined - ? replacer.call(searchValue, O, replaceValue) - : nativeReplace.call(String(O), searchValue, replaceValue); - }, - // `RegExp.prototype[@@replace]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace - function (regexp, replaceValue) { - if ( - (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) || - (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1) - ) { - var res = maybeCallNative(nativeReplace, regexp, this, replaceValue); - if (res.done) return res.value; - } - - var rx = anObject(regexp); - var S = String(this); - - var functionalReplace = typeof replaceValue === 'function'; - if (!functionalReplace) replaceValue = String(replaceValue); - - var global = rx.global; - if (global) { - var fullUnicode = rx.unicode; - rx.lastIndex = 0; - } - var results = []; - while (true) { - var result = regexpExecAbstract(rx, S); - if (result === null) break; - - results.push(result); - if (!global) break; - - var matchStr = String(result[0]); - if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); - } - - var accumulatedResult = ''; - var nextSourcePosition = 0; - for (var i = 0; i < results.length; i++) { - result = results[i]; - - var matched = String(result[0]); - var position = max$2(min$2(toInteger(result.index), S.length), 0); - var captures = []; - // NOTE: This is equivalent to - // captures = result.slice(1).map(maybeToString) - // but for some reason `nativeSlice.call(result, 1, result.length)` (called in - // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and - // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. - for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j])); - var namedCaptures = result.groups; - if (functionalReplace) { - var replacerArgs = [matched].concat(captures, position, S); - if (namedCaptures !== undefined) replacerArgs.push(namedCaptures); - var replacement = String(replaceValue.apply(undefined, replacerArgs)); - } else { - replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); - } - if (position >= nextSourcePosition) { - accumulatedResult += S.slice(nextSourcePosition, position) + replacement; - nextSourcePosition = position + matched.length; - } - } - return accumulatedResult + S.slice(nextSourcePosition); - } - ]; - - // https://tc39.github.io/ecma262/#sec-getsubstitution - function getSubstitution(matched, str, position, captures, namedCaptures, replacement) { - var tailPos = position + matched.length; - var m = captures.length; - var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; - if (namedCaptures !== undefined) { - namedCaptures = toObject(namedCaptures); - symbols = SUBSTITUTION_SYMBOLS; - } - return nativeReplace.call(replacement, symbols, function (match, ch) { - var capture; - switch (ch.charAt(0)) { - case '$': return '$'; - case '&': return matched; - case '`': return str.slice(0, position); - case "'": return str.slice(tailPos); - case '<': - capture = namedCaptures[ch.slice(1, -1)]; - break; - default: // \d\d? - var n = +ch; - if (n === 0) return match; - if (n > m) { - var f = floor$1(n / 10); - if (f === 0) return match; - if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1); - return match; - } - capture = captures[n - 1]; - } - return capture === undefined ? '' : capture; - }); - } - }); - - // `SameValue` abstract operation - // https://tc39.github.io/ecma262/#sec-samevalue - var sameValue = Object.is || function is(x, y) { - // eslint-disable-next-line no-self-compare - return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y; - }; - - // @@search logic - fixRegexpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) { - return [ - // `String.prototype.search` method - // https://tc39.github.io/ecma262/#sec-string.prototype.search - function search(regexp) { - var O = requireObjectCoercible(this); - var searcher = regexp == undefined ? undefined : regexp[SEARCH]; - return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O)); - }, - // `RegExp.prototype[@@search]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search - function (regexp) { - var res = maybeCallNative(nativeSearch, regexp, this); - if (res.done) return res.value; - - var rx = anObject(regexp); - var S = String(this); - - var previousLastIndex = rx.lastIndex; - if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0; - var result = regexpExecAbstract(rx, S); - if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; - return result === null ? -1 : result.index; - } - ]; - }); - - var SPECIES$5 = wellKnownSymbol('species'); - - // `SpeciesConstructor` abstract operation - // https://tc39.github.io/ecma262/#sec-speciesconstructor - var speciesConstructor = function (O, defaultConstructor) { - var C = anObject(O).constructor; - var S; - return C === undefined || (S = anObject(C)[SPECIES$5]) == undefined ? defaultConstructor : aFunction$1(S); - }; - - var arrayPush = [].push; - var min$3 = Math.min; - var MAX_UINT32 = 0xFFFFFFFF; - - // babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError - var SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); }); - - // @@split logic - fixRegexpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) { - var internalSplit; - if ( - 'abbc'.split(/(b)*/)[1] == 'c' || - 'test'.split(/(?:)/, -1).length != 4 || - 'ab'.split(/(?:ab)*/).length != 2 || - '.'.split(/(.?)(.?)/).length != 4 || - '.'.split(/()()/).length > 1 || - ''.split(/.?/).length - ) { - // based on es5-shim implementation, need to rework it - internalSplit = function (separator, limit) { - var string = String(requireObjectCoercible(this)); - var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; - if (lim === 0) return []; - if (separator === undefined) return [string]; - // If `separator` is not a regex, use native split - if (!isRegexp(separator)) { - return nativeSplit.call(string, separator, lim); - } - var output = []; - var flags = (separator.ignoreCase ? 'i' : '') + - (separator.multiline ? 'm' : '') + - (separator.unicode ? 'u' : '') + - (separator.sticky ? 'y' : ''); - var lastLastIndex = 0; - // Make `global` and avoid `lastIndex` issues by working with a copy - var separatorCopy = new RegExp(separator.source, flags + 'g'); - var match, lastIndex, lastLength; - while (match = regexpExec.call(separatorCopy, string)) { - lastIndex = separatorCopy.lastIndex; - if (lastIndex > lastLastIndex) { - output.push(string.slice(lastLastIndex, match.index)); - if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1)); - lastLength = match[0].length; - lastLastIndex = lastIndex; - if (output.length >= lim) break; - } - if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop - } - if (lastLastIndex === string.length) { - if (lastLength || !separatorCopy.test('')) output.push(''); - } else output.push(string.slice(lastLastIndex)); - return output.length > lim ? output.slice(0, lim) : output; - }; - // Chakra, V8 - } else if ('0'.split(undefined, 0).length) { - internalSplit = function (separator, limit) { - return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit); - }; - } else internalSplit = nativeSplit; - - return [ - // `String.prototype.split` method - // https://tc39.github.io/ecma262/#sec-string.prototype.split - function split(separator, limit) { - var O = requireObjectCoercible(this); - var splitter = separator == undefined ? undefined : separator[SPLIT]; - return splitter !== undefined - ? splitter.call(separator, O, limit) - : internalSplit.call(String(O), separator, limit); - }, - // `RegExp.prototype[@@split]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split - // - // NOTE: This cannot be properly polyfilled in engines that don't support - // the 'y' flag. - function (regexp, limit) { - var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit); - if (res.done) return res.value; - - var rx = anObject(regexp); - var S = String(this); - var C = speciesConstructor(rx, RegExp); - - var unicodeMatching = rx.unicode; - var flags = (rx.ignoreCase ? 'i' : '') + - (rx.multiline ? 'm' : '') + - (rx.unicode ? 'u' : '') + - (SUPPORTS_Y ? 'y' : 'g'); - - // ^(? + rx + ) is needed, in combination with some S slicing, to - // simulate the 'y' flag. - var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags); - var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; - if (lim === 0) return []; - if (S.length === 0) return regexpExecAbstract(splitter, S) === null ? [S] : []; - var p = 0; - var q = 0; - var A = []; - while (q < S.length) { - splitter.lastIndex = SUPPORTS_Y ? q : 0; - var z = regexpExecAbstract(splitter, SUPPORTS_Y ? S : S.slice(q)); - var e; - if ( - z === null || - (e = min$3(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p - ) { - q = advanceStringIndex(S, q, unicodeMatching); - } else { - A.push(S.slice(p, q)); - if (A.length === lim) return A; - for (var i = 1; i <= z.length - 1; i++) { - A.push(z[i]); - if (A.length === lim) return A; - } - q = p = e; - } - } - A.push(S.slice(p)); - return A; - } - ]; - }, !SUPPORTS_Y); - - var ITERATOR$5 = wellKnownSymbol('iterator'); - var TO_STRING_TAG$3 = wellKnownSymbol('toStringTag'); - var ArrayValues = es_array_iterator.values; - - for (var COLLECTION_NAME$1 in domIterables) { - var Collection$1 = global_1[COLLECTION_NAME$1]; - var CollectionPrototype$1 = Collection$1 && Collection$1.prototype; - if (CollectionPrototype$1) { - // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype$1[ITERATOR$5] !== ArrayValues) try { - createNonEnumerableProperty(CollectionPrototype$1, ITERATOR$5, ArrayValues); - } catch (error) { - CollectionPrototype$1[ITERATOR$5] = ArrayValues; - } - if (!CollectionPrototype$1[TO_STRING_TAG$3]) { - createNonEnumerableProperty(CollectionPrototype$1, TO_STRING_TAG$3, COLLECTION_NAME$1); - } - if (domIterables[COLLECTION_NAME$1]) for (var METHOD_NAME in es_array_iterator) { - // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype$1[METHOD_NAME] !== es_array_iterator[METHOD_NAME]) try { - createNonEnumerableProperty(CollectionPrototype$1, METHOD_NAME, es_array_iterator[METHOD_NAME]); - } catch (error) { - CollectionPrototype$1[METHOD_NAME] = es_array_iterator[METHOD_NAME]; - } - } - } - } - - var ITERATOR$6 = wellKnownSymbol('iterator'); - - var nativeUrl = !fails(function () { - var url = new URL('b?a=1&b=2&c=3', 'http://a'); - var searchParams = url.searchParams; - var result = ''; - url.pathname = 'c%20d'; - searchParams.forEach(function (value, key) { - searchParams['delete']('b'); - result += key + value; - }); - return (isPure && !url.toJSON) - || !searchParams.sort - || url.href !== 'http://a/c%20d?a=1&c=3' - || searchParams.get('c') !== '3' - || String(new URLSearchParams('?a=1')) !== 'a=1' - || !searchParams[ITERATOR$6] - // throws in Edge - || new URL('https://a@b').username !== 'a' - || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b' - // not punycoded in Edge - || new URL('http://тест').host !== 'xn--e1aybc' - // not escaped in Chrome 62- - || new URL('http://a#б').hash !== '#%D0%B1' - // fails in Chrome 66- - || result !== 'a1c3' - // throws in Safari - || new URL('http://x', undefined).host !== 'x'; - }); - - var anInstance = function (it, Constructor, name) { - if (!(it instanceof Constructor)) { - throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation'); - } return it; - }; - - var nativeAssign = Object.assign; - var defineProperty$5 = Object.defineProperty; - - // `Object.assign` method - // https://tc39.github.io/ecma262/#sec-object.assign - var objectAssign = !nativeAssign || fails(function () { - // should have correct order of operations (Edge bug) - if (descriptors && nativeAssign({ b: 1 }, nativeAssign(defineProperty$5({}, 'a', { - enumerable: true, - get: function () { - defineProperty$5(this, 'b', { - value: 3, - enumerable: false - }); - } - }), { b: 2 })).b !== 1) return true; - // should work with symbols and should have deterministic property order (V8 bug) - var A = {}; - var B = {}; - // eslint-disable-next-line no-undef - var symbol = Symbol(); - var alphabet = 'abcdefghijklmnopqrst'; - A[symbol] = 7; - alphabet.split('').forEach(function (chr) { B[chr] = chr; }); - return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet; - }) ? function assign(target, source) { // eslint-disable-line no-unused-vars - var T = toObject(target); - var argumentsLength = arguments.length; - var index = 1; - var getOwnPropertySymbols = objectGetOwnPropertySymbols.f; - var propertyIsEnumerable = objectPropertyIsEnumerable.f; - while (argumentsLength > index) { - var S = indexedObject(arguments[index++]); - var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S); - var length = keys.length; - var j = 0; - var key; - while (length > j) { - key = keys[j++]; - if (!descriptors || propertyIsEnumerable.call(S, key)) T[key] = S[key]; - } - } return T; - } : nativeAssign; - - // based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js - var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 - var base = 36; - var tMin = 1; - var tMax = 26; - var skew = 38; - var damp = 700; - var initialBias = 72; - var initialN = 128; // 0x80 - var delimiter = '-'; // '\x2D' - var regexNonASCII = /[^\0-\u007E]/; // non-ASCII chars - var regexSeparators = /[.\u3002\uFF0E\uFF61]/g; // RFC 3490 separators - var OVERFLOW_ERROR = 'Overflow: input needs wider integers to process'; - var baseMinusTMin = base - tMin; - var floor$2 = Math.floor; - var stringFromCharCode = String.fromCharCode; - - /** - * Creates an array containing the numeric code points of each Unicode - * character in the string. While JavaScript uses UCS-2 internally, - * this function will convert a pair of surrogate halves (each of which - * UCS-2 exposes as separate characters) into a single code point, - * matching UTF-16. - */ - var ucs2decode = function (string) { - var output = []; - var counter = 0; - var length = string.length; - while (counter < length) { - var value = string.charCodeAt(counter++); - if (value >= 0xD800 && value <= 0xDBFF && counter < length) { - // It's a high surrogate, and there is a next character. - var extra = string.charCodeAt(counter++); - if ((extra & 0xFC00) == 0xDC00) { // Low surrogate. - output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); - } else { - // It's an unmatched surrogate; only append this code unit, in case the - // next code unit is the high surrogate of a surrogate pair. - output.push(value); - counter--; - } - } else { - output.push(value); - } - } - return output; - }; - - /** - * Converts a digit/integer into a basic code point. - */ - var digitToBasic = function (digit) { - // 0..25 map to ASCII a..z or A..Z - // 26..35 map to ASCII 0..9 - return digit + 22 + 75 * (digit < 26); - }; - - /** - * Bias adaptation function as per section 3.4 of RFC 3492. - * https://tools.ietf.org/html/rfc3492#section-3.4 - */ - var adapt = function (delta, numPoints, firstTime) { - var k = 0; - delta = firstTime ? floor$2(delta / damp) : delta >> 1; - delta += floor$2(delta / numPoints); - for (; delta > baseMinusTMin * tMax >> 1; k += base) { - delta = floor$2(delta / baseMinusTMin); - } - return floor$2(k + (baseMinusTMin + 1) * delta / (delta + skew)); - }; - - /** - * Converts a string of Unicode symbols (e.g. a domain name label) to a - * Punycode string of ASCII-only symbols. - */ - // eslint-disable-next-line max-statements - var encode = function (input) { - var output = []; - - // Convert the input in UCS-2 to an array of Unicode code points. - input = ucs2decode(input); - - // Cache the length. - var inputLength = input.length; - - // Initialize the state. - var n = initialN; - var delta = 0; - var bias = initialBias; - var i, currentValue; - - // Handle the basic code points. - for (i = 0; i < input.length; i++) { - currentValue = input[i]; - if (currentValue < 0x80) { - output.push(stringFromCharCode(currentValue)); - } - } - - var basicLength = output.length; // number of basic code points. - var handledCPCount = basicLength; // number of code points that have been handled; - - // Finish the basic string with a delimiter unless it's empty. - if (basicLength) { - output.push(delimiter); - } - - // Main encoding loop: - while (handledCPCount < inputLength) { - // All non-basic code points < n have been handled already. Find the next larger one: - var m = maxInt; - for (i = 0; i < input.length; i++) { - currentValue = input[i]; - if (currentValue >= n && currentValue < m) { - m = currentValue; - } - } - - // Increase `delta` enough to advance the decoder's state to , but guard against overflow. - var handledCPCountPlusOne = handledCPCount + 1; - if (m - n > floor$2((maxInt - delta) / handledCPCountPlusOne)) { - throw RangeError(OVERFLOW_ERROR); - } - - delta += (m - n) * handledCPCountPlusOne; - n = m; - - for (i = 0; i < input.length; i++) { - currentValue = input[i]; - if (currentValue < n && ++delta > maxInt) { - throw RangeError(OVERFLOW_ERROR); - } - if (currentValue == n) { - // Represent delta as a generalized variable-length integer. - var q = delta; - for (var k = base; /* no condition */; k += base) { - var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); - if (q < t) break; - var qMinusT = q - t; - var baseMinusT = base - t; - output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT))); - q = floor$2(qMinusT / baseMinusT); - } - - output.push(stringFromCharCode(digitToBasic(q))); - bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); - delta = 0; - ++handledCPCount; - } - } - - ++delta; - ++n; - } - return output.join(''); - }; - - var stringPunycodeToAscii = function (input) { - var encoded = []; - var labels = input.toLowerCase().replace(regexSeparators, '\u002E').split('.'); - var i, label; - for (i = 0; i < labels.length; i++) { - label = labels[i]; - encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label); - } - return encoded.join('.'); - }; - - var redefineAll = function (target, src, options) { - for (var key in src) redefine(target, key, src[key], options); - return target; - }; - - var getIterator = function (it) { - var iteratorMethod = getIteratorMethod(it); - if (typeof iteratorMethod != 'function') { - throw TypeError(String(it) + ' is not iterable'); - } return anObject(iteratorMethod.call(it)); - }; - - // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` - - - - - - - - - - - - - - - - - - - - - - var $fetch = getBuiltIn('fetch'); - var Headers$1 = getBuiltIn('Headers'); - var ITERATOR$7 = wellKnownSymbol('iterator'); - var URL_SEARCH_PARAMS = 'URLSearchParams'; - var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator'; - var setInternalState$4 = internalState.set; - var getInternalParamsState = internalState.getterFor(URL_SEARCH_PARAMS); - var getInternalIteratorState = internalState.getterFor(URL_SEARCH_PARAMS_ITERATOR); - - var plus = /\+/g; - var sequences = Array(4); - - var percentSequence = function (bytes) { - return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '})', 'gi')); - }; - - var percentDecode = function (sequence) { - try { - return decodeURIComponent(sequence); - } catch (error) { - return sequence; - } - }; - - var deserialize = function (it) { - var result = it.replace(plus, ' '); - var bytes = 4; - try { - return decodeURIComponent(result); - } catch (error) { - while (bytes) { - result = result.replace(percentSequence(bytes--), percentDecode); - } - return result; - } - }; - - var find = /[!'()~]|%20/g; - - var replace = { - '!': '%21', - "'": '%27', - '(': '%28', - ')': '%29', - '~': '%7E', - '%20': '+' - }; - - var replacer = function (match) { - return replace[match]; - }; - - var serialize = function (it) { - return encodeURIComponent(it).replace(find, replacer); - }; - - var parseSearchParams = function (result, query) { - if (query) { - var attributes = query.split('&'); - var index = 0; - var attribute, entry; - while (index < attributes.length) { - attribute = attributes[index++]; - if (attribute.length) { - entry = attribute.split('='); - result.push({ - key: deserialize(entry.shift()), - value: deserialize(entry.join('=')) - }); - } - } - } - }; - - var updateSearchParams = function (query) { - this.entries.length = 0; - parseSearchParams(this.entries, query); - }; - - var validateArgumentsLength = function (passed, required) { - if (passed < required) throw TypeError('Not enough arguments'); - }; - - var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) { - setInternalState$4(this, { - type: URL_SEARCH_PARAMS_ITERATOR, - iterator: getIterator(getInternalParamsState(params).entries), - kind: kind - }); - }, 'Iterator', function next() { - var state = getInternalIteratorState(this); - var kind = state.kind; - var step = state.iterator.next(); - var entry = step.value; - if (!step.done) { - step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value]; - } return step; - }); - - // `URLSearchParams` constructor - // https://url.spec.whatwg.org/#interface-urlsearchparams - var URLSearchParamsConstructor = function URLSearchParams(/* init */) { - anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS); - var init = arguments.length > 0 ? arguments[0] : undefined; - var that = this; - var entries = []; - var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key; - - setInternalState$4(that, { - type: URL_SEARCH_PARAMS, - entries: entries, - updateURL: function () { /* empty */ }, - updateSearchParams: updateSearchParams - }); - - if (init !== undefined) { - if (isObject(init)) { - iteratorMethod = getIteratorMethod(init); - if (typeof iteratorMethod === 'function') { - iterator = iteratorMethod.call(init); - next = iterator.next; - while (!(step = next.call(iterator)).done) { - entryIterator = getIterator(anObject(step.value)); - entryNext = entryIterator.next; - if ( - (first = entryNext.call(entryIterator)).done || - (second = entryNext.call(entryIterator)).done || - !entryNext.call(entryIterator).done - ) throw TypeError('Expected sequence with length 2'); - entries.push({ key: first.value + '', value: second.value + '' }); - } - } else for (key in init) if (has(init, key)) entries.push({ key: key, value: init[key] + '' }); - } else { - parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + ''); - } - } - }; - - var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype; - - redefineAll(URLSearchParamsPrototype, { - // `URLSearchParams.prototype.appent` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-append - append: function append(name, value) { - validateArgumentsLength(arguments.length, 2); - var state = getInternalParamsState(this); - state.entries.push({ key: name + '', value: value + '' }); - state.updateURL(); - }, - // `URLSearchParams.prototype.delete` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-delete - 'delete': function (name) { - validateArgumentsLength(arguments.length, 1); - var state = getInternalParamsState(this); - var entries = state.entries; - var key = name + ''; - var index = 0; - while (index < entries.length) { - if (entries[index].key === key) entries.splice(index, 1); - else index++; - } - state.updateURL(); - }, - // `URLSearchParams.prototype.get` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-get - get: function get(name) { - validateArgumentsLength(arguments.length, 1); - var entries = getInternalParamsState(this).entries; - var key = name + ''; - var index = 0; - for (; index < entries.length; index++) { - if (entries[index].key === key) return entries[index].value; - } - return null; - }, - // `URLSearchParams.prototype.getAll` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-getall - getAll: function getAll(name) { - validateArgumentsLength(arguments.length, 1); - var entries = getInternalParamsState(this).entries; - var key = name + ''; - var result = []; - var index = 0; - for (; index < entries.length; index++) { - if (entries[index].key === key) result.push(entries[index].value); - } - return result; - }, - // `URLSearchParams.prototype.has` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-has - has: function has(name) { - validateArgumentsLength(arguments.length, 1); - var entries = getInternalParamsState(this).entries; - var key = name + ''; - var index = 0; - while (index < entries.length) { - if (entries[index++].key === key) return true; - } - return false; - }, - // `URLSearchParams.prototype.set` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-set - set: function set(name, value) { - validateArgumentsLength(arguments.length, 1); - var state = getInternalParamsState(this); - var entries = state.entries; - var found = false; - var key = name + ''; - var val = value + ''; - var index = 0; - var entry; - for (; index < entries.length; index++) { - entry = entries[index]; - if (entry.key === key) { - if (found) entries.splice(index--, 1); - else { - found = true; - entry.value = val; - } - } - } - if (!found) entries.push({ key: key, value: val }); - state.updateURL(); - }, - // `URLSearchParams.prototype.sort` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-sort - sort: function sort() { - var state = getInternalParamsState(this); - var entries = state.entries; - // Array#sort is not stable in some engines - var slice = entries.slice(); - var entry, entriesIndex, sliceIndex; - entries.length = 0; - for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) { - entry = slice[sliceIndex]; - for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) { - if (entries[entriesIndex].key > entry.key) { - entries.splice(entriesIndex, 0, entry); - break; - } - } - if (entriesIndex === sliceIndex) entries.push(entry); - } - state.updateURL(); - }, - // `URLSearchParams.prototype.forEach` method - forEach: function forEach(callback /* , thisArg */) { - var entries = getInternalParamsState(this).entries; - var boundFunction = functionBindContext(callback, arguments.length > 1 ? arguments[1] : undefined, 3); - var index = 0; - var entry; - while (index < entries.length) { - entry = entries[index++]; - boundFunction(entry.value, entry.key, this); - } - }, - // `URLSearchParams.prototype.keys` method - keys: function keys() { - return new URLSearchParamsIterator(this, 'keys'); - }, - // `URLSearchParams.prototype.values` method - values: function values() { - return new URLSearchParamsIterator(this, 'values'); - }, - // `URLSearchParams.prototype.entries` method - entries: function entries() { - return new URLSearchParamsIterator(this, 'entries'); - } - }, { enumerable: true }); - - // `URLSearchParams.prototype[@@iterator]` method - redefine(URLSearchParamsPrototype, ITERATOR$7, URLSearchParamsPrototype.entries); - - // `URLSearchParams.prototype.toString` method - // https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior - redefine(URLSearchParamsPrototype, 'toString', function toString() { - var entries = getInternalParamsState(this).entries; - var result = []; - var index = 0; - var entry; - while (index < entries.length) { - entry = entries[index++]; - result.push(serialize(entry.key) + '=' + serialize(entry.value)); - } return result.join('&'); - }, { enumerable: true }); - - setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS); - - _export({ global: true, forced: !nativeUrl }, { - URLSearchParams: URLSearchParamsConstructor - }); - - // Wrap `fetch` for correct work with polyfilled `URLSearchParams` - // https://github.com/zloirock/core-js/issues/674 - if (!nativeUrl && typeof $fetch == 'function' && typeof Headers$1 == 'function') { - _export({ global: true, enumerable: true, forced: true }, { - fetch: function fetch(input /* , init */) { - var args = [input]; - var init, body, headers; - if (arguments.length > 1) { - init = arguments[1]; - if (isObject(init)) { - body = init.body; - if (classof(body) === URL_SEARCH_PARAMS) { - headers = init.headers ? new Headers$1(init.headers) : new Headers$1(); - if (!headers.has('content-type')) { - headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); - } - init = objectCreate(init, { - body: createPropertyDescriptor(0, String(body)), - headers: createPropertyDescriptor(0, headers) - }); - } - } - args.push(init); - } return $fetch.apply(this, args); - } - }); - } - - var web_urlSearchParams = { - URLSearchParams: URLSearchParamsConstructor, - getState: getInternalParamsState - }; - - // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` - - - - - - - - - - - - var codeAt = stringMultibyte.codeAt; - - - - - - var NativeURL = global_1.URL; - var URLSearchParams$1 = web_urlSearchParams.URLSearchParams; - var getInternalSearchParamsState = web_urlSearchParams.getState; - var setInternalState$5 = internalState.set; - var getInternalURLState = internalState.getterFor('URL'); - var floor$3 = Math.floor; - var pow = Math.pow; - - var INVALID_AUTHORITY = 'Invalid authority'; - var INVALID_SCHEME = 'Invalid scheme'; - var INVALID_HOST = 'Invalid host'; - var INVALID_PORT = 'Invalid port'; - - var ALPHA = /[A-Za-z]/; - var ALPHANUMERIC = /[\d+-.A-Za-z]/; - var DIGIT = /\d/; - var HEX_START = /^(0x|0X)/; - var OCT = /^[0-7]+$/; - var DEC = /^\d+$/; - var HEX = /^[\dA-Fa-f]+$/; - // eslint-disable-next-line no-control-regex - var FORBIDDEN_HOST_CODE_POINT = /[\u0000\u0009\u000A\u000D #%/:?@[\\]]/; - // eslint-disable-next-line no-control-regex - var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\u0000\u0009\u000A\u000D #/:?@[\\]]/; - // eslint-disable-next-line no-control-regex - var LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g; - // eslint-disable-next-line no-control-regex - var TAB_AND_NEW_LINE = /[\u0009\u000A\u000D]/g; - var EOF; - - var parseHost = function (url, input) { - var result, codePoints, index; - if (input.charAt(0) == '[') { - if (input.charAt(input.length - 1) != ']') return INVALID_HOST; - result = parseIPv6(input.slice(1, -1)); - if (!result) return INVALID_HOST; - url.host = result; - // opaque host - } else if (!isSpecial(url)) { - if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST; - result = ''; - codePoints = arrayFrom(input); - for (index = 0; index < codePoints.length; index++) { - result += percentEncode(codePoints[index], C0ControlPercentEncodeSet); - } - url.host = result; - } else { - input = stringPunycodeToAscii(input); - if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST; - result = parseIPv4(input); - if (result === null) return INVALID_HOST; - url.host = result; - } - }; - - var parseIPv4 = function (input) { - var parts = input.split('.'); - var partsLength, numbers, index, part, radix, number, ipv4; - if (parts.length && parts[parts.length - 1] == '') { - parts.pop(); - } - partsLength = parts.length; - if (partsLength > 4) return input; - numbers = []; - for (index = 0; index < partsLength; index++) { - part = parts[index]; - if (part == '') return input; - radix = 10; - if (part.length > 1 && part.charAt(0) == '0') { - radix = HEX_START.test(part) ? 16 : 8; - part = part.slice(radix == 8 ? 1 : 2); - } - if (part === '') { - number = 0; - } else { - if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input; - number = parseInt(part, radix); - } - numbers.push(number); - } - for (index = 0; index < partsLength; index++) { - number = numbers[index]; - if (index == partsLength - 1) { - if (number >= pow(256, 5 - partsLength)) return null; - } else if (number > 255) return null; - } - ipv4 = numbers.pop(); - for (index = 0; index < numbers.length; index++) { - ipv4 += numbers[index] * pow(256, 3 - index); - } - return ipv4; - }; - - // eslint-disable-next-line max-statements - var parseIPv6 = function (input) { - var address = [0, 0, 0, 0, 0, 0, 0, 0]; - var pieceIndex = 0; - var compress = null; - var pointer = 0; - var value, length, numbersSeen, ipv4Piece, number, swaps, swap; - - var char = function () { - return input.charAt(pointer); - }; - - if (char() == ':') { - if (input.charAt(1) != ':') return; - pointer += 2; - pieceIndex++; - compress = pieceIndex; - } - while (char()) { - if (pieceIndex == 8) return; - if (char() == ':') { - if (compress !== null) return; - pointer++; - pieceIndex++; - compress = pieceIndex; - continue; - } - value = length = 0; - while (length < 4 && HEX.test(char())) { - value = value * 16 + parseInt(char(), 16); - pointer++; - length++; - } - if (char() == '.') { - if (length == 0) return; - pointer -= length; - if (pieceIndex > 6) return; - numbersSeen = 0; - while (char()) { - ipv4Piece = null; - if (numbersSeen > 0) { - if (char() == '.' && numbersSeen < 4) pointer++; - else return; - } - if (!DIGIT.test(char())) return; - while (DIGIT.test(char())) { - number = parseInt(char(), 10); - if (ipv4Piece === null) ipv4Piece = number; - else if (ipv4Piece == 0) return; - else ipv4Piece = ipv4Piece * 10 + number; - if (ipv4Piece > 255) return; - pointer++; - } - address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece; - numbersSeen++; - if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++; - } - if (numbersSeen != 4) return; - break; - } else if (char() == ':') { - pointer++; - if (!char()) return; - } else if (char()) return; - address[pieceIndex++] = value; - } - if (compress !== null) { - swaps = pieceIndex - compress; - pieceIndex = 7; - while (pieceIndex != 0 && swaps > 0) { - swap = address[pieceIndex]; - address[pieceIndex--] = address[compress + swaps - 1]; - address[compress + --swaps] = swap; - } - } else if (pieceIndex != 8) return; - return address; - }; - - var findLongestZeroSequence = function (ipv6) { - var maxIndex = null; - var maxLength = 1; - var currStart = null; - var currLength = 0; - var index = 0; - for (; index < 8; index++) { - if (ipv6[index] !== 0) { - if (currLength > maxLength) { - maxIndex = currStart; - maxLength = currLength; - } - currStart = null; - currLength = 0; - } else { - if (currStart === null) currStart = index; - ++currLength; - } - } - if (currLength > maxLength) { - maxIndex = currStart; - maxLength = currLength; - } - return maxIndex; - }; - - var serializeHost = function (host) { - var result, index, compress, ignore0; - // ipv4 - if (typeof host == 'number') { - result = []; - for (index = 0; index < 4; index++) { - result.unshift(host % 256); - host = floor$3(host / 256); - } return result.join('.'); - // ipv6 - } else if (typeof host == 'object') { - result = ''; - compress = findLongestZeroSequence(host); - for (index = 0; index < 8; index++) { - if (ignore0 && host[index] === 0) continue; - if (ignore0) ignore0 = false; - if (compress === index) { - result += index ? ':' : '::'; - ignore0 = true; - } else { - result += host[index].toString(16); - if (index < 7) result += ':'; - } - } - return '[' + result + ']'; - } return host; - }; - - var C0ControlPercentEncodeSet = {}; - var fragmentPercentEncodeSet = objectAssign({}, C0ControlPercentEncodeSet, { - ' ': 1, '"': 1, '<': 1, '>': 1, '`': 1 - }); - var pathPercentEncodeSet = objectAssign({}, fragmentPercentEncodeSet, { - '#': 1, '?': 1, '{': 1, '}': 1 - }); - var userinfoPercentEncodeSet = objectAssign({}, pathPercentEncodeSet, { - '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\': 1, ']': 1, '^': 1, '|': 1 - }); - - var percentEncode = function (char, set) { - var code = codeAt(char, 0); - return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char); - }; - - var specialSchemes = { - ftp: 21, - file: null, - http: 80, - https: 443, - ws: 80, - wss: 443 - }; - - var isSpecial = function (url) { - return has(specialSchemes, url.scheme); - }; - - var includesCredentials = function (url) { - return url.username != '' || url.password != ''; - }; - - var cannotHaveUsernamePasswordPort = function (url) { - return !url.host || url.cannotBeABaseURL || url.scheme == 'file'; - }; - - var isWindowsDriveLetter = function (string, normalized) { - var second; - return string.length == 2 && ALPHA.test(string.charAt(0)) - && ((second = string.charAt(1)) == ':' || (!normalized && second == '|')); - }; - - var startsWithWindowsDriveLetter = function (string) { - var third; - return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && ( - string.length == 2 || - ((third = string.charAt(2)) === '/' || third === '\\' || third === '?' || third === '#') - ); - }; - - var shortenURLsPath = function (url) { - var path = url.path; - var pathSize = path.length; - if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) { - path.pop(); - } - }; - - var isSingleDot = function (segment) { - return segment === '.' || segment.toLowerCase() === '%2e'; - }; - - var isDoubleDot = function (segment) { - segment = segment.toLowerCase(); - return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e'; - }; - - // States: - var SCHEME_START = {}; - var SCHEME = {}; - var NO_SCHEME = {}; - var SPECIAL_RELATIVE_OR_AUTHORITY = {}; - var PATH_OR_AUTHORITY = {}; - var RELATIVE = {}; - var RELATIVE_SLASH = {}; - var SPECIAL_AUTHORITY_SLASHES = {}; - var SPECIAL_AUTHORITY_IGNORE_SLASHES = {}; - var AUTHORITY = {}; - var HOST = {}; - var HOSTNAME = {}; - var PORT = {}; - var FILE = {}; - var FILE_SLASH = {}; - var FILE_HOST = {}; - var PATH_START = {}; - var PATH = {}; - var CANNOT_BE_A_BASE_URL_PATH = {}; - var QUERY = {}; - var FRAGMENT = {}; - - // eslint-disable-next-line max-statements - var parseURL = function (url, input, stateOverride, base) { - var state = stateOverride || SCHEME_START; - var pointer = 0; - var buffer = ''; - var seenAt = false; - var seenBracket = false; - var seenPasswordToken = false; - var codePoints, char, bufferCodePoints, failure; - - if (!stateOverride) { - url.scheme = ''; - url.username = ''; - url.password = ''; - url.host = null; - url.port = null; - url.path = []; - url.query = null; - url.fragment = null; - url.cannotBeABaseURL = false; - input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, ''); - } - - input = input.replace(TAB_AND_NEW_LINE, ''); - - codePoints = arrayFrom(input); - - while (pointer <= codePoints.length) { - char = codePoints[pointer]; - switch (state) { - case SCHEME_START: - if (char && ALPHA.test(char)) { - buffer += char.toLowerCase(); - state = SCHEME; - } else if (!stateOverride) { - state = NO_SCHEME; - continue; - } else return INVALID_SCHEME; - break; - - case SCHEME: - if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) { - buffer += char.toLowerCase(); - } else if (char == ':') { - if (stateOverride && ( - (isSpecial(url) != has(specialSchemes, buffer)) || - (buffer == 'file' && (includesCredentials(url) || url.port !== null)) || - (url.scheme == 'file' && !url.host) - )) return; - url.scheme = buffer; - if (stateOverride) { - if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null; - return; - } - buffer = ''; - if (url.scheme == 'file') { - state = FILE; - } else if (isSpecial(url) && base && base.scheme == url.scheme) { - state = SPECIAL_RELATIVE_OR_AUTHORITY; - } else if (isSpecial(url)) { - state = SPECIAL_AUTHORITY_SLASHES; - } else if (codePoints[pointer + 1] == '/') { - state = PATH_OR_AUTHORITY; - pointer++; - } else { - url.cannotBeABaseURL = true; - url.path.push(''); - state = CANNOT_BE_A_BASE_URL_PATH; - } - } else if (!stateOverride) { - buffer = ''; - state = NO_SCHEME; - pointer = 0; - continue; - } else return INVALID_SCHEME; - break; - - case NO_SCHEME: - if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME; - if (base.cannotBeABaseURL && char == '#') { - url.scheme = base.scheme; - url.path = base.path.slice(); - url.query = base.query; - url.fragment = ''; - url.cannotBeABaseURL = true; - state = FRAGMENT; - break; - } - state = base.scheme == 'file' ? FILE : RELATIVE; - continue; - - case SPECIAL_RELATIVE_OR_AUTHORITY: - if (char == '/' && codePoints[pointer + 1] == '/') { - state = SPECIAL_AUTHORITY_IGNORE_SLASHES; - pointer++; - } else { - state = RELATIVE; - continue; - } break; - - case PATH_OR_AUTHORITY: - if (char == '/') { - state = AUTHORITY; - break; - } else { - state = PATH; - continue; - } - - case RELATIVE: - url.scheme = base.scheme; - if (char == EOF) { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - url.path = base.path.slice(); - url.query = base.query; - } else if (char == '/' || (char == '\\' && isSpecial(url))) { - state = RELATIVE_SLASH; - } else if (char == '?') { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - url.path = base.path.slice(); - url.query = ''; - state = QUERY; - } else if (char == '#') { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - url.path = base.path.slice(); - url.query = base.query; - url.fragment = ''; - state = FRAGMENT; - } else { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - url.path = base.path.slice(); - url.path.pop(); - state = PATH; - continue; - } break; - - case RELATIVE_SLASH: - if (isSpecial(url) && (char == '/' || char == '\\')) { - state = SPECIAL_AUTHORITY_IGNORE_SLASHES; - } else if (char == '/') { - state = AUTHORITY; - } else { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - state = PATH; - continue; - } break; - - case SPECIAL_AUTHORITY_SLASHES: - state = SPECIAL_AUTHORITY_IGNORE_SLASHES; - if (char != '/' || buffer.charAt(pointer + 1) != '/') continue; - pointer++; - break; - - case SPECIAL_AUTHORITY_IGNORE_SLASHES: - if (char != '/' && char != '\\') { - state = AUTHORITY; - continue; - } break; - - case AUTHORITY: - if (char == '@') { - if (seenAt) buffer = '%40' + buffer; - seenAt = true; - bufferCodePoints = arrayFrom(buffer); - for (var i = 0; i < bufferCodePoints.length; i++) { - var codePoint = bufferCodePoints[i]; - if (codePoint == ':' && !seenPasswordToken) { - seenPasswordToken = true; - continue; - } - var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet); - if (seenPasswordToken) url.password += encodedCodePoints; - else url.username += encodedCodePoints; - } - buffer = ''; - } else if ( - char == EOF || char == '/' || char == '?' || char == '#' || - (char == '\\' && isSpecial(url)) - ) { - if (seenAt && buffer == '') return INVALID_AUTHORITY; - pointer -= arrayFrom(buffer).length + 1; - buffer = ''; - state = HOST; - } else buffer += char; - break; - - case HOST: - case HOSTNAME: - if (stateOverride && url.scheme == 'file') { - state = FILE_HOST; - continue; - } else if (char == ':' && !seenBracket) { - if (buffer == '') return INVALID_HOST; - failure = parseHost(url, buffer); - if (failure) return failure; - buffer = ''; - state = PORT; - if (stateOverride == HOSTNAME) return; - } else if ( - char == EOF || char == '/' || char == '?' || char == '#' || - (char == '\\' && isSpecial(url)) - ) { - if (isSpecial(url) && buffer == '') return INVALID_HOST; - if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return; - failure = parseHost(url, buffer); - if (failure) return failure; - buffer = ''; - state = PATH_START; - if (stateOverride) return; - continue; - } else { - if (char == '[') seenBracket = true; - else if (char == ']') seenBracket = false; - buffer += char; - } break; - - case PORT: - if (DIGIT.test(char)) { - buffer += char; - } else if ( - char == EOF || char == '/' || char == '?' || char == '#' || - (char == '\\' && isSpecial(url)) || - stateOverride - ) { - if (buffer != '') { - var port = parseInt(buffer, 10); - if (port > 0xFFFF) return INVALID_PORT; - url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port; - buffer = ''; - } - if (stateOverride) return; - state = PATH_START; - continue; - } else return INVALID_PORT; - break; - - case FILE: - url.scheme = 'file'; - if (char == '/' || char == '\\') state = FILE_SLASH; - else if (base && base.scheme == 'file') { - if (char == EOF) { - url.host = base.host; - url.path = base.path.slice(); - url.query = base.query; - } else if (char == '?') { - url.host = base.host; - url.path = base.path.slice(); - url.query = ''; - state = QUERY; - } else if (char == '#') { - url.host = base.host; - url.path = base.path.slice(); - url.query = base.query; - url.fragment = ''; - state = FRAGMENT; - } else { - if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) { - url.host = base.host; - url.path = base.path.slice(); - shortenURLsPath(url); - } - state = PATH; - continue; - } - } else { - state = PATH; - continue; - } break; - - case FILE_SLASH: - if (char == '/' || char == '\\') { - state = FILE_HOST; - break; - } - if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) { - if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]); - else url.host = base.host; - } - state = PATH; - continue; - - case FILE_HOST: - if (char == EOF || char == '/' || char == '\\' || char == '?' || char == '#') { - if (!stateOverride && isWindowsDriveLetter(buffer)) { - state = PATH; - } else if (buffer == '') { - url.host = ''; - if (stateOverride) return; - state = PATH_START; - } else { - failure = parseHost(url, buffer); - if (failure) return failure; - if (url.host == 'localhost') url.host = ''; - if (stateOverride) return; - buffer = ''; - state = PATH_START; - } continue; - } else buffer += char; - break; - - case PATH_START: - if (isSpecial(url)) { - state = PATH; - if (char != '/' && char != '\\') continue; - } else if (!stateOverride && char == '?') { - url.query = ''; - state = QUERY; - } else if (!stateOverride && char == '#') { - url.fragment = ''; - state = FRAGMENT; - } else if (char != EOF) { - state = PATH; - if (char != '/') continue; - } break; - - case PATH: - if ( - char == EOF || char == '/' || - (char == '\\' && isSpecial(url)) || - (!stateOverride && (char == '?' || char == '#')) - ) { - if (isDoubleDot(buffer)) { - shortenURLsPath(url); - if (char != '/' && !(char == '\\' && isSpecial(url))) { - url.path.push(''); - } - } else if (isSingleDot(buffer)) { - if (char != '/' && !(char == '\\' && isSpecial(url))) { - url.path.push(''); - } - } else { - if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) { - if (url.host) url.host = ''; - buffer = buffer.charAt(0) + ':'; // normalize windows drive letter - } - url.path.push(buffer); - } - buffer = ''; - if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) { - while (url.path.length > 1 && url.path[0] === '') { - url.path.shift(); - } - } - if (char == '?') { - url.query = ''; - state = QUERY; - } else if (char == '#') { - url.fragment = ''; - state = FRAGMENT; - } - } else { - buffer += percentEncode(char, pathPercentEncodeSet); - } break; - - case CANNOT_BE_A_BASE_URL_PATH: - if (char == '?') { - url.query = ''; - state = QUERY; - } else if (char == '#') { - url.fragment = ''; - state = FRAGMENT; - } else if (char != EOF) { - url.path[0] += percentEncode(char, C0ControlPercentEncodeSet); - } break; - - case QUERY: - if (!stateOverride && char == '#') { - url.fragment = ''; - state = FRAGMENT; - } else if (char != EOF) { - if (char == "'" && isSpecial(url)) url.query += '%27'; - else if (char == '#') url.query += '%23'; - else url.query += percentEncode(char, C0ControlPercentEncodeSet); - } break; - - case FRAGMENT: - if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet); - break; - } - - pointer++; - } - }; - - // `URL` constructor - // https://url.spec.whatwg.org/#url-class - var URLConstructor = function URL(url /* , base */) { - var that = anInstance(this, URLConstructor, 'URL'); - var base = arguments.length > 1 ? arguments[1] : undefined; - var urlString = String(url); - var state = setInternalState$5(that, { type: 'URL' }); - var baseState, failure; - if (base !== undefined) { - if (base instanceof URLConstructor) baseState = getInternalURLState(base); - else { - failure = parseURL(baseState = {}, String(base)); - if (failure) throw TypeError(failure); - } - } - failure = parseURL(state, urlString, null, baseState); - if (failure) throw TypeError(failure); - var searchParams = state.searchParams = new URLSearchParams$1(); - var searchParamsState = getInternalSearchParamsState(searchParams); - searchParamsState.updateSearchParams(state.query); - searchParamsState.updateURL = function () { - state.query = String(searchParams) || null; - }; - if (!descriptors) { - that.href = serializeURL.call(that); - that.origin = getOrigin.call(that); - that.protocol = getProtocol.call(that); - that.username = getUsername.call(that); - that.password = getPassword.call(that); - that.host = getHost.call(that); - that.hostname = getHostname.call(that); - that.port = getPort.call(that); - that.pathname = getPathname.call(that); - that.search = getSearch.call(that); - that.searchParams = getSearchParams.call(that); - that.hash = getHash.call(that); - } - }; - - var URLPrototype = URLConstructor.prototype; - - var serializeURL = function () { - var url = getInternalURLState(this); - var scheme = url.scheme; - var username = url.username; - var password = url.password; - var host = url.host; - var port = url.port; - var path = url.path; - var query = url.query; - var fragment = url.fragment; - var output = scheme + ':'; - if (host !== null) { - output += '//'; - if (includesCredentials(url)) { - output += username + (password ? ':' + password : '') + '@'; - } - output += serializeHost(host); - if (port !== null) output += ':' + port; - } else if (scheme == 'file') output += '//'; - output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : ''; - if (query !== null) output += '?' + query; - if (fragment !== null) output += '#' + fragment; - return output; - }; - - var getOrigin = function () { - var url = getInternalURLState(this); - var scheme = url.scheme; - var port = url.port; - if (scheme == 'blob') try { - return new URL(scheme.path[0]).origin; - } catch (error) { - return 'null'; - } - if (scheme == 'file' || !isSpecial(url)) return 'null'; - return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : ''); - }; - - var getProtocol = function () { - return getInternalURLState(this).scheme + ':'; - }; - - var getUsername = function () { - return getInternalURLState(this).username; - }; - - var getPassword = function () { - return getInternalURLState(this).password; - }; - - var getHost = function () { - var url = getInternalURLState(this); - var host = url.host; - var port = url.port; - return host === null ? '' - : port === null ? serializeHost(host) - : serializeHost(host) + ':' + port; - }; - - var getHostname = function () { - var host = getInternalURLState(this).host; - return host === null ? '' : serializeHost(host); - }; - - var getPort = function () { - var port = getInternalURLState(this).port; - return port === null ? '' : String(port); - }; - - var getPathname = function () { - var url = getInternalURLState(this); - var path = url.path; - return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : ''; - }; - - var getSearch = function () { - var query = getInternalURLState(this).query; - return query ? '?' + query : ''; - }; - - var getSearchParams = function () { - return getInternalURLState(this).searchParams; - }; - - var getHash = function () { - var fragment = getInternalURLState(this).fragment; - return fragment ? '#' + fragment : ''; - }; - - var accessorDescriptor = function (getter, setter) { - return { get: getter, set: setter, configurable: true, enumerable: true }; - }; - - if (descriptors) { - objectDefineProperties(URLPrototype, { - // `URL.prototype.href` accessors pair - // https://url.spec.whatwg.org/#dom-url-href - href: accessorDescriptor(serializeURL, function (href) { - var url = getInternalURLState(this); - var urlString = String(href); - var failure = parseURL(url, urlString); - if (failure) throw TypeError(failure); - getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query); - }), - // `URL.prototype.origin` getter - // https://url.spec.whatwg.org/#dom-url-origin - origin: accessorDescriptor(getOrigin), - // `URL.prototype.protocol` accessors pair - // https://url.spec.whatwg.org/#dom-url-protocol - protocol: accessorDescriptor(getProtocol, function (protocol) { - var url = getInternalURLState(this); - parseURL(url, String(protocol) + ':', SCHEME_START); - }), - // `URL.prototype.username` accessors pair - // https://url.spec.whatwg.org/#dom-url-username - username: accessorDescriptor(getUsername, function (username) { - var url = getInternalURLState(this); - var codePoints = arrayFrom(String(username)); - if (cannotHaveUsernamePasswordPort(url)) return; - url.username = ''; - for (var i = 0; i < codePoints.length; i++) { - url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet); - } - }), - // `URL.prototype.password` accessors pair - // https://url.spec.whatwg.org/#dom-url-password - password: accessorDescriptor(getPassword, function (password) { - var url = getInternalURLState(this); - var codePoints = arrayFrom(String(password)); - if (cannotHaveUsernamePasswordPort(url)) return; - url.password = ''; - for (var i = 0; i < codePoints.length; i++) { - url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet); - } - }), - // `URL.prototype.host` accessors pair - // https://url.spec.whatwg.org/#dom-url-host - host: accessorDescriptor(getHost, function (host) { - var url = getInternalURLState(this); - if (url.cannotBeABaseURL) return; - parseURL(url, String(host), HOST); - }), - // `URL.prototype.hostname` accessors pair - // https://url.spec.whatwg.org/#dom-url-hostname - hostname: accessorDescriptor(getHostname, function (hostname) { - var url = getInternalURLState(this); - if (url.cannotBeABaseURL) return; - parseURL(url, String(hostname), HOSTNAME); - }), - // `URL.prototype.port` accessors pair - // https://url.spec.whatwg.org/#dom-url-port - port: accessorDescriptor(getPort, function (port) { - var url = getInternalURLState(this); - if (cannotHaveUsernamePasswordPort(url)) return; - port = String(port); - if (port == '') url.port = null; - else parseURL(url, port, PORT); - }), - // `URL.prototype.pathname` accessors pair - // https://url.spec.whatwg.org/#dom-url-pathname - pathname: accessorDescriptor(getPathname, function (pathname) { - var url = getInternalURLState(this); - if (url.cannotBeABaseURL) return; - url.path = []; - parseURL(url, pathname + '', PATH_START); - }), - // `URL.prototype.search` accessors pair - // https://url.spec.whatwg.org/#dom-url-search - search: accessorDescriptor(getSearch, function (search) { - var url = getInternalURLState(this); - search = String(search); - if (search == '') { - url.query = null; - } else { - if ('?' == search.charAt(0)) search = search.slice(1); - url.query = ''; - parseURL(url, search, QUERY); - } - getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query); - }), - // `URL.prototype.searchParams` getter - // https://url.spec.whatwg.org/#dom-url-searchparams - searchParams: accessorDescriptor(getSearchParams), - // `URL.prototype.hash` accessors pair - // https://url.spec.whatwg.org/#dom-url-hash - hash: accessorDescriptor(getHash, function (hash) { - var url = getInternalURLState(this); - hash = String(hash); - if (hash == '') { - url.fragment = null; - return; - } - if ('#' == hash.charAt(0)) hash = hash.slice(1); - url.fragment = ''; - parseURL(url, hash, FRAGMENT); - }) - }); - } - - // `URL.prototype.toJSON` method - // https://url.spec.whatwg.org/#dom-url-tojson - redefine(URLPrototype, 'toJSON', function toJSON() { - return serializeURL.call(this); - }, { enumerable: true }); - - // `URL.prototype.toString` method - // https://url.spec.whatwg.org/#URL-stringification-behavior - redefine(URLPrototype, 'toString', function toString() { - return serializeURL.call(this); - }, { enumerable: true }); - - if (NativeURL) { - var nativeCreateObjectURL = NativeURL.createObjectURL; - var nativeRevokeObjectURL = NativeURL.revokeObjectURL; - // `URL.createObjectURL` method - // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL - // eslint-disable-next-line no-unused-vars - if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) { - return nativeCreateObjectURL.apply(NativeURL, arguments); - }); - // `URL.revokeObjectURL` method - // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL - // eslint-disable-next-line no-unused-vars - if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) { - return nativeRevokeObjectURL.apply(NativeURL, arguments); - }); - } - - setToStringTag(URLConstructor, 'URL'); - - _export({ global: true, forced: !nativeUrl, sham: !descriptors }, { - URL: URLConstructor - }); - - function _typeof(obj) { - "@babel/helpers - typeof"; - - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof = function (obj) { - return typeof obj; - }; - } else { - _typeof = function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }; - } - - return _typeof(obj); - } - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - - function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - return Constructor; - } - - 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 ownKeys$1(object, enumerableOnly) { - var keys = Object.keys(object); - - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - keys.push.apply(keys, symbols); - } - - return keys; - } - - function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - - if (i % 2) { - ownKeys$1(Object(source), true).forEach(function (key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys$1(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - - return target; - } - - function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - - return target; - } - - function _objectWithoutProperties(source, excluded) { - if (source == null) return {}; - - var target = _objectWithoutPropertiesLoose(source, excluded); - - var key, i; - - if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - - for (i = 0; i < sourceSymbolKeys.length; i++) { - key = sourceSymbolKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; - } - } - - return target; - } - - function _slicedToArray(arr, i) { - return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); - } - - function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); - } - - function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) return _arrayLikeToArray(arr); - } - - function _arrayWithHoles(arr) { - if (Array.isArray(arr)) return arr; - } - - function _iterableToArray(iter) { - if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); - } - - function _iterableToArrayLimit(arr, i) { - if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; - var _arr = []; - var _n = true; - var _d = false; - var _e = undefined; - - try { - for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - - if (i && _arr.length === i) break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"] != null) _i["return"](); - } finally { - if (_d) throw _e; - } - } - - return _arr; - } - - function _unsupportedIterableToArray(o, minLen) { - if (!o) return; - if (typeof o === "string") return _arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); - } - - function _arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) len = arr.length; - - for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; - - return arr2; - } - - function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - - function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - - (function (global) { - /** - * Polyfill URLSearchParams - * - * Inspired from : https://github.com/WebReflection/url-search-params/blob/master/src/url-search-params.js - */ - var checkIfIteratorIsSupported = function checkIfIteratorIsSupported() { - try { - return !!Symbol.iterator; - } catch (error) { - return false; - } - }; - - var iteratorSupported = checkIfIteratorIsSupported(); - - var createIterator = function createIterator(items) { - var iterator = { - next: function next() { - var value = items.shift(); - return { - done: value === void 0, - value: value - }; - } - }; - - if (iteratorSupported) { - iterator[Symbol.iterator] = function () { - return iterator; - }; - } - - return iterator; - }; - /** - * Search param name and values should be encoded according to https://url.spec.whatwg.org/#urlencoded-serializing - * encodeURIComponent() produces the same result except encoding spaces as `%20` instead of `+`. - */ - - - var serializeParam = function serializeParam(value) { - return encodeURIComponent(value).replace(/%20/g, '+'); - }; - - var deserializeParam = function deserializeParam(value) { - return decodeURIComponent(String(value).replace(/\+/g, ' ')); - }; - - var polyfillURLSearchParams = function polyfillURLSearchParams() { - var URLSearchParams = function URLSearchParams(searchString) { - Object.defineProperty(this, '_entries', { - writable: true, - value: {} - }); - - var typeofSearchString = _typeof(searchString); - - if (typeofSearchString === 'undefined') ; else if (typeofSearchString === 'string') { - if (searchString !== '') { - this._fromString(searchString); - } - } else if (searchString instanceof URLSearchParams) { - var _this = this; - - searchString.forEach(function (value, name) { - _this.append(name, value); - }); - } else if (searchString !== null && typeofSearchString === 'object') { - if (Object.prototype.toString.call(searchString) === '[object Array]') { - for (var i = 0; i < searchString.length; i++) { - var entry = searchString[i]; - - if (Object.prototype.toString.call(entry) === '[object Array]' || entry.length !== 2) { - this.append(entry[0], entry[1]); - } else { - throw new TypeError('Expected [string, any] as entry at index ' + i + ' of URLSearchParams\'s input'); - } - } - } else { - for (var key in searchString) { - if (searchString.hasOwnProperty(key)) { - this.append(key, searchString[key]); - } - } - } - } else { - throw new TypeError('Unsupported input\'s type for URLSearchParams'); - } - }; - - var proto = URLSearchParams.prototype; - - proto.append = function (name, value) { - if (name in this._entries) { - this._entries[name].push(String(value)); - } else { - this._entries[name] = [String(value)]; - } - }; - - proto.delete = function (name) { - delete this._entries[name]; - }; - - proto.get = function (name) { - return name in this._entries ? this._entries[name][0] : null; - }; - - proto.getAll = function (name) { - return name in this._entries ? this._entries[name].slice(0) : []; - }; - - proto.has = function (name) { - return name in this._entries; - }; - - proto.set = function (name, value) { - this._entries[name] = [String(value)]; - }; - - proto.forEach = function (callback, thisArg) { - var entries; - - for (var name in this._entries) { - if (this._entries.hasOwnProperty(name)) { - entries = this._entries[name]; - - for (var i = 0; i < entries.length; i++) { - callback.call(thisArg, entries[i], name, this); - } - } - } - }; - - proto.keys = function () { - var items = []; - this.forEach(function (value, name) { - items.push(name); - }); - return createIterator(items); - }; - - proto.values = function () { - var items = []; - this.forEach(function (value) { - items.push(value); - }); - return createIterator(items); - }; - - proto.entries = function () { - var items = []; - this.forEach(function (value, name) { - items.push([name, value]); - }); - return createIterator(items); - }; - - if (iteratorSupported) { - proto[Symbol.iterator] = proto.entries; - } - - proto.toString = function () { - var searchArray = []; - this.forEach(function (value, name) { - searchArray.push(serializeParam(name) + '=' + serializeParam(value)); - }); - return searchArray.join('&'); - }; - - global.URLSearchParams = URLSearchParams; - }; - - var checkIfURLSearchParamsSupported = function checkIfURLSearchParamsSupported() { - try { - var URLSearchParams = global.URLSearchParams; - return new URLSearchParams('?a=1').toString() === 'a=1' && typeof URLSearchParams.prototype.set === 'function' && typeof URLSearchParams.prototype.entries === 'function'; - } catch (e) { - return false; - } - }; - - if (!checkIfURLSearchParamsSupported()) { - polyfillURLSearchParams(); - } - - var proto = global.URLSearchParams.prototype; - - if (typeof proto.sort !== 'function') { - proto.sort = function () { - var _this = this; - - var items = []; - this.forEach(function (value, name) { - items.push([name, value]); - - if (!_this._entries) { - _this.delete(name); - } - }); - items.sort(function (a, b) { - if (a[0] < b[0]) { - return -1; - } else if (a[0] > b[0]) { - return +1; - } else { - return 0; - } - }); - - if (_this._entries) { - // force reset because IE keeps keys index - _this._entries = {}; - } - - for (var i = 0; i < items.length; i++) { - this.append(items[i][0], items[i][1]); - } - }; - } - - if (typeof proto._fromString !== 'function') { - Object.defineProperty(proto, '_fromString', { - enumerable: false, - configurable: false, - writable: false, - value: function value(searchString) { - if (this._entries) { - this._entries = {}; - } else { - var keys = []; - this.forEach(function (value, name) { - keys.push(name); - }); - - for (var i = 0; i < keys.length; i++) { - this.delete(keys[i]); - } - } - - searchString = searchString.replace(/^\?/, ''); - var attributes = searchString.split('&'); - var attribute; - - for (var i = 0; i < attributes.length; i++) { - attribute = attributes[i].split('='); - this.append(deserializeParam(attribute[0]), attribute.length > 1 ? deserializeParam(attribute[1]) : ''); - } - } - }); - } // HTMLAnchorElement - - })(typeof commonjsGlobal !== 'undefined' ? commonjsGlobal : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : commonjsGlobal); - - (function (global) { - /** - * Polyfill URL - * - * Inspired from : https://github.com/arv/DOM-URL-Polyfill/blob/master/src/url.js - */ - var checkIfURLIsSupported = function checkIfURLIsSupported() { - try { - var u = new global.URL('b', 'http://a'); - u.pathname = 'c d'; - return u.href === 'http://a/c%20d' && u.searchParams; - } catch (e) { - return false; - } - }; - - var polyfillURL = function polyfillURL() { - var _URL = global.URL; - - var URL = function URL(url, base) { - if (typeof url !== 'string') url = String(url); // Only create another document if the base is different from current location. - - var doc = document, - baseElement; - - if (base && (global.location === void 0 || base !== global.location.href)) { - doc = document.implementation.createHTMLDocument(''); - baseElement = doc.createElement('base'); - baseElement.href = base; - doc.head.appendChild(baseElement); - - try { - if (baseElement.href.indexOf(base) !== 0) throw new Error(baseElement.href); - } catch (err) { - throw new Error('URL unable to set base ' + base + ' due to ' + err); - } - } - - var anchorElement = doc.createElement('a'); - anchorElement.href = url; - - if (baseElement) { - doc.body.appendChild(anchorElement); - anchorElement.href = anchorElement.href; // force href to refresh - } - - var inputElement = doc.createElement('input'); - inputElement.type = 'url'; - inputElement.value = url; - - if (anchorElement.protocol === ':' || !/:/.test(anchorElement.href) || !inputElement.checkValidity() && !base) { - throw new TypeError('Invalid URL'); - } - - Object.defineProperty(this, '_anchorElement', { - value: anchorElement - }); // create a linked searchParams which reflect its changes on URL - - var searchParams = new global.URLSearchParams(this.search); - var enableSearchUpdate = true; - var enableSearchParamsUpdate = true; - - var _this = this; - - ['append', 'delete', 'set'].forEach(function (methodName) { - var method = searchParams[methodName]; - - searchParams[methodName] = function () { - method.apply(searchParams, arguments); - - if (enableSearchUpdate) { - enableSearchParamsUpdate = false; - _this.search = searchParams.toString(); - enableSearchParamsUpdate = true; - } - }; - }); - Object.defineProperty(this, 'searchParams', { - value: searchParams, - enumerable: true - }); - var search = void 0; - Object.defineProperty(this, '_updateSearchParams', { - enumerable: false, - configurable: false, - writable: false, - value: function value() { - if (this.search !== search) { - search = this.search; - - if (enableSearchParamsUpdate) { - enableSearchUpdate = false; - - this.searchParams._fromString(this.search); - - enableSearchUpdate = true; - } - } - } - }); - }; - - var proto = URL.prototype; - - var linkURLWithAnchorAttribute = function linkURLWithAnchorAttribute(attributeName) { - Object.defineProperty(proto, attributeName, { - get: function get() { - return this._anchorElement[attributeName]; - }, - set: function set(value) { - this._anchorElement[attributeName] = value; - }, - enumerable: true - }); - }; - - ['hash', 'host', 'hostname', 'port', 'protocol'].forEach(function (attributeName) { - linkURLWithAnchorAttribute(attributeName); - }); - Object.defineProperty(proto, 'search', { - get: function get() { - return this._anchorElement['search']; - }, - set: function set(value) { - this._anchorElement['search'] = value; - - this._updateSearchParams(); - }, - enumerable: true - }); - Object.defineProperties(proto, { - 'toString': { - get: function get() { - var _this = this; - - return function () { - return _this.href; - }; - } - }, - 'href': { - get: function get() { - return this._anchorElement.href.replace(/\?$/, ''); - }, - set: function set(value) { - this._anchorElement.href = value; - - this._updateSearchParams(); - }, - enumerable: true - }, - 'pathname': { - get: function get() { - return this._anchorElement.pathname.replace(/(^\/?)/, '/'); - }, - set: function set(value) { - this._anchorElement.pathname = value; - }, - enumerable: true - }, - 'origin': { - get: function get() { - // get expected port from protocol - var expectedPort = { - 'http:': 80, - 'https:': 443, - 'ftp:': 21 - }[this._anchorElement.protocol]; // add port to origin if, expected port is different than actual port - // and it is not empty f.e http://foo:8080 - // 8080 != 80 && 8080 != '' - - var addPortToOrigin = this._anchorElement.port != expectedPort && this._anchorElement.port !== ''; - return this._anchorElement.protocol + '//' + this._anchorElement.hostname + (addPortToOrigin ? ':' + this._anchorElement.port : ''); - }, - enumerable: true - }, - 'password': { - // TODO - get: function get() { - return ''; - }, - set: function set(value) {}, - enumerable: true - }, - 'username': { - // TODO - get: function get() { - return ''; - }, - set: function set(value) {}, - enumerable: true - } - }); - - URL.createObjectURL = function (blob) { - return _URL.createObjectURL.apply(_URL, arguments); - }; - - URL.revokeObjectURL = function (url) { - return _URL.revokeObjectURL.apply(_URL, arguments); - }; - - global.URL = URL; - }; - - if (!checkIfURLIsSupported()) { - polyfillURL(); - } - - if (global.location !== void 0 && !('origin' in global.location)) { - var getOrigin = function getOrigin() { - return global.location.protocol + '//' + global.location.hostname + (global.location.port ? ':' + global.location.port : ''); - }; - - try { - Object.defineProperty(global.location, 'origin', { - get: getOrigin, - enumerable: true - }); - } catch (e) { - setInterval(function () { - global.location.origin = getOrigin(); - }, 100); - } - } - })(typeof commonjsGlobal !== 'undefined' ? commonjsGlobal : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : commonjsGlobal); - - // `Symbol.asyncIterator` well-known symbol - // https://tc39.github.io/ecma262/#sec-symbol.asynciterator - defineWellKnownSymbol('asyncIterator'); - - var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); - var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; - var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded'; - - // We can't use this feature detection in V8 since it causes - // deoptimization and serious performance degradation - // https://github.com/zloirock/core-js/issues/679 - var IS_CONCAT_SPREADABLE_SUPPORT = engineV8Version >= 51 || !fails(function () { - var array = []; - array[IS_CONCAT_SPREADABLE] = false; - return array.concat()[0] !== array; - }); - - var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat'); - - var isConcatSpreadable = function (O) { - if (!isObject(O)) return false; - var spreadable = O[IS_CONCAT_SPREADABLE]; - return spreadable !== undefined ? !!spreadable : isArray(O); - }; - - var FORCED$1 = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT; - - // `Array.prototype.concat` method - // https://tc39.github.io/ecma262/#sec-array.prototype.concat - // with adding support of @@isConcatSpreadable and @@species - _export({ target: 'Array', proto: true, forced: FORCED$1 }, { - concat: function concat(arg) { // eslint-disable-line no-unused-vars - var O = toObject(this); - var A = arraySpeciesCreate(O, 0); - var n = 0; - var i, k, length, len, E; - for (i = -1, length = arguments.length; i < length; i++) { - E = i === -1 ? O : arguments[i]; - if (isConcatSpreadable(E)) { - len = toLength(E.length); - if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); - for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]); - } else { - if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); - createProperty(A, n++, E); - } - } - A.length = n; - return A; - } - }); - - // `Object.assign` method - // https://tc39.github.io/ecma262/#sec-object.assign - _export({ target: 'Object', stat: true, forced: Object.assign !== objectAssign }, { - assign: objectAssign - }); - - var nativeGetOwnPropertyDescriptor$2 = objectGetOwnPropertyDescriptor.f; - - - var FAILS_ON_PRIMITIVES$1 = fails(function () { nativeGetOwnPropertyDescriptor$2(1); }); - var FORCED$2 = !descriptors || FAILS_ON_PRIMITIVES$1; - - // `Object.getOwnPropertyDescriptor` method - // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor - _export({ target: 'Object', stat: true, forced: FORCED$2, sham: !descriptors }, { - getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) { - return nativeGetOwnPropertyDescriptor$2(toIndexedObject(it), key); - } - }); - - var nativePromiseConstructor = global_1.Promise; - - var iterate_1 = createCommonjsModule(function (module) { - var Result = function (stopped, result) { - this.stopped = stopped; - this.result = result; - }; - - var iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) { - var boundFunction = functionBindContext(fn, that, AS_ENTRIES ? 2 : 1); - var iterator, iterFn, index, length, result, next, step; - - if (IS_ITERATOR) { - iterator = iterable; - } else { - iterFn = getIteratorMethod(iterable); - if (typeof iterFn != 'function') throw TypeError('Target is not iterable'); - // optimisation for array iterators - if (isArrayIteratorMethod(iterFn)) { - for (index = 0, length = toLength(iterable.length); length > index; index++) { - result = AS_ENTRIES - ? boundFunction(anObject(step = iterable[index])[0], step[1]) - : boundFunction(iterable[index]); - if (result && result instanceof Result) return result; - } return new Result(false); - } - iterator = iterFn.call(iterable); - } - - next = iterator.next; - while (!(step = next.call(iterator)).done) { - result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES); - if (typeof result == 'object' && result && result instanceof Result) return result; - } return new Result(false); - }; - - iterate.stop = function (result) { - return new Result(true, result); - }; - }); - - var engineIsIos = /(iphone|ipod|ipad).*applewebkit/i.test(engineUserAgent); - - var location = global_1.location; - var set$1 = global_1.setImmediate; - var clear = global_1.clearImmediate; - var process$2 = global_1.process; - var MessageChannel = global_1.MessageChannel; - var Dispatch = global_1.Dispatch; - var counter = 0; - var queue = {}; - var ONREADYSTATECHANGE = 'onreadystatechange'; - var defer, channel, port; - - var run = function (id) { - // eslint-disable-next-line no-prototype-builtins - if (queue.hasOwnProperty(id)) { - var fn = queue[id]; - delete queue[id]; - fn(); - } - }; - - var runner = function (id) { - return function () { - run(id); - }; - }; - - var listener = function (event) { - run(event.data); - }; - - var post = function (id) { - // old engines have not location.origin - global_1.postMessage(id + '', location.protocol + '//' + location.host); - }; - - // Node.js 0.9+ & IE10+ has setImmediate, otherwise: - if (!set$1 || !clear) { - set$1 = function setImmediate(fn) { - var args = []; - var i = 1; - while (arguments.length > i) args.push(arguments[i++]); - queue[++counter] = function () { - // eslint-disable-next-line no-new-func - (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args); - }; - defer(counter); - return counter; - }; - clear = function clearImmediate(id) { - delete queue[id]; - }; - // Node.js 0.8- - if (classofRaw(process$2) == 'process') { - defer = function (id) { - process$2.nextTick(runner(id)); - }; - // Sphere (JS game engine) Dispatch API - } else if (Dispatch && Dispatch.now) { - defer = function (id) { - Dispatch.now(runner(id)); - }; - // Browsers with MessageChannel, includes WebWorkers - // except iOS - https://github.com/zloirock/core-js/issues/624 - } else if (MessageChannel && !engineIsIos) { - channel = new MessageChannel(); - port = channel.port2; - channel.port1.onmessage = listener; - defer = functionBindContext(port.postMessage, port, 1); - // Browsers with postMessage, skip WebWorkers - // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' - } else if ( - global_1.addEventListener && - typeof postMessage == 'function' && - !global_1.importScripts && - !fails(post) && - location.protocol !== 'file:' - ) { - defer = post; - global_1.addEventListener('message', listener, false); - // IE8- - } else if (ONREADYSTATECHANGE in documentCreateElement('script')) { - defer = function (id) { - html.appendChild(documentCreateElement('script'))[ONREADYSTATECHANGE] = function () { - html.removeChild(this); - run(id); - }; - }; - // Rest old browsers - } else { - defer = function (id) { - setTimeout(runner(id), 0); - }; - } - } - - var task = { - set: set$1, - clear: clear - }; - - var getOwnPropertyDescriptor$2 = objectGetOwnPropertyDescriptor.f; - - var macrotask = task.set; - - - var MutationObserver$1 = global_1.MutationObserver || global_1.WebKitMutationObserver; - var process$3 = global_1.process; - var Promise$1 = global_1.Promise; - var IS_NODE = classofRaw(process$3) == 'process'; - // Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` - var queueMicrotaskDescriptor = getOwnPropertyDescriptor$2(global_1, 'queueMicrotask'); - var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; - - var flush, head, last, notify, toggle, node, promise, then; - - // modern engines have queueMicrotask method - if (!queueMicrotask) { - flush = function () { - var parent, fn; - if (IS_NODE && (parent = process$3.domain)) parent.exit(); - while (head) { - fn = head.fn; - head = head.next; - try { - fn(); - } catch (error) { - if (head) notify(); - else last = undefined; - throw error; - } - } last = undefined; - if (parent) parent.enter(); - }; - - // Node.js - if (IS_NODE) { - notify = function () { - process$3.nextTick(flush); - }; - // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 - } else if (MutationObserver$1 && !engineIsIos) { - toggle = true; - node = document.createTextNode(''); - new MutationObserver$1(flush).observe(node, { characterData: true }); - notify = function () { - node.data = toggle = !toggle; - }; - // environments with maybe non-completely correct, but existent Promise - } else if (Promise$1 && Promise$1.resolve) { - // Promise.resolve without an argument throws an error in LG WebOS 2 - promise = Promise$1.resolve(undefined); - then = promise.then; - notify = function () { - then.call(promise, flush); - }; - // for other environments - macrotask based on: - // - setImmediate - // - MessageChannel - // - window.postMessag - // - onreadystatechange - // - setTimeout - } else { - notify = function () { - // strange IE + webpack dev server bug - use .call(global) - macrotask.call(global_1, flush); - }; - } - } - - var microtask = queueMicrotask || function (fn) { - var task = { fn: fn, next: undefined }; - if (last) last.next = task; - if (!head) { - head = task; - notify(); - } last = task; - }; - - var PromiseCapability = function (C) { - var resolve, reject; - this.promise = new C(function ($$resolve, $$reject) { - if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); - resolve = $$resolve; - reject = $$reject; - }); - this.resolve = aFunction$1(resolve); - this.reject = aFunction$1(reject); - }; - - // 25.4.1.5 NewPromiseCapability(C) - var f$7 = function (C) { - return new PromiseCapability(C); - }; - - var newPromiseCapability = { - f: f$7 - }; - - var promiseResolve = function (C, x) { - anObject(C); - if (isObject(x) && x.constructor === C) return x; - var promiseCapability = newPromiseCapability.f(C); - var resolve = promiseCapability.resolve; - resolve(x); - return promiseCapability.promise; - }; - - var hostReportErrors = function (a, b) { - var console = global_1.console; - if (console && console.error) { - arguments.length === 1 ? console.error(a) : console.error(a, b); - } - }; - - var perform = function (exec) { - try { - return { error: false, value: exec() }; - } catch (error) { - return { error: true, value: error }; - } - }; - - var task$1 = task.set; - - - - - - - - - - - var SPECIES$6 = wellKnownSymbol('species'); - var PROMISE = 'Promise'; - var getInternalState$3 = internalState.get; - var setInternalState$6 = internalState.set; - var getInternalPromiseState = internalState.getterFor(PROMISE); - var PromiseConstructor = nativePromiseConstructor; - var TypeError$1 = global_1.TypeError; - var document$2 = global_1.document; - var process$4 = global_1.process; - var $fetch$1 = getBuiltIn('fetch'); - var newPromiseCapability$1 = newPromiseCapability.f; - var newGenericPromiseCapability = newPromiseCapability$1; - var IS_NODE$1 = classofRaw(process$4) == 'process'; - var DISPATCH_EVENT = !!(document$2 && document$2.createEvent && global_1.dispatchEvent); - var UNHANDLED_REJECTION = 'unhandledrejection'; - var REJECTION_HANDLED = 'rejectionhandled'; - var PENDING = 0; - var FULFILLED = 1; - var REJECTED = 2; - var HANDLED = 1; - var UNHANDLED = 2; - var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; - - var FORCED$3 = isForced_1(PROMISE, function () { - var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor); - if (!GLOBAL_CORE_JS_PROMISE) { - // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables - // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 - // We can't detect it synchronously, so just check versions - if (engineV8Version === 66) return true; - // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test - if (!IS_NODE$1 && typeof PromiseRejectionEvent != 'function') return true; - } - // We can't use @@species feature detection in V8 since it causes - // deoptimization and performance degradation - // https://github.com/zloirock/core-js/issues/679 - if (engineV8Version >= 51 && /native code/.test(PromiseConstructor)) return false; - // Detect correctness of subclassing with @@species support - var promise = PromiseConstructor.resolve(1); - var FakePromise = function (exec) { - exec(function () { /* empty */ }, function () { /* empty */ }); - }; - var constructor = promise.constructor = {}; - constructor[SPECIES$6] = FakePromise; - return !(promise.then(function () { /* empty */ }) instanceof FakePromise); - }); - - var INCORRECT_ITERATION$1 = FORCED$3 || !checkCorrectnessOfIteration(function (iterable) { - PromiseConstructor.all(iterable)['catch'](function () { /* empty */ }); - }); - - // helpers - var isThenable = function (it) { - var then; - return isObject(it) && typeof (then = it.then) == 'function' ? then : false; - }; - - var notify$1 = function (promise, state, isReject) { - if (state.notified) return; - state.notified = true; - var chain = state.reactions; - microtask(function () { - var value = state.value; - var ok = state.state == FULFILLED; - var index = 0; - // variable length - can't use forEach - while (chain.length > index) { - var reaction = chain[index++]; - var handler = ok ? reaction.ok : reaction.fail; - var resolve = reaction.resolve; - var reject = reaction.reject; - var domain = reaction.domain; - var result, then, exited; - try { - if (handler) { - if (!ok) { - if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state); - state.rejection = HANDLED; - } - if (handler === true) result = value; - else { - if (domain) domain.enter(); - result = handler(value); // can throw - if (domain) { - domain.exit(); - exited = true; - } - } - if (result === reaction.promise) { - reject(TypeError$1('Promise-chain cycle')); - } else if (then = isThenable(result)) { - then.call(result, resolve, reject); - } else resolve(result); - } else reject(value); - } catch (error) { - if (domain && !exited) domain.exit(); - reject(error); - } - } - state.reactions = []; - state.notified = false; - if (isReject && !state.rejection) onUnhandled(promise, state); - }); - }; - - var dispatchEvent = function (name, promise, reason) { - var event, handler; - if (DISPATCH_EVENT) { - event = document$2.createEvent('Event'); - event.promise = promise; - event.reason = reason; - event.initEvent(name, false, true); - global_1.dispatchEvent(event); - } else event = { promise: promise, reason: reason }; - if (handler = global_1['on' + name]) handler(event); - else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); - }; - - var onUnhandled = function (promise, state) { - task$1.call(global_1, function () { - var value = state.value; - var IS_UNHANDLED = isUnhandled(state); - var result; - if (IS_UNHANDLED) { - result = perform(function () { - if (IS_NODE$1) { - process$4.emit('unhandledRejection', value, promise); - } else dispatchEvent(UNHANDLED_REJECTION, promise, value); - }); - // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should - state.rejection = IS_NODE$1 || isUnhandled(state) ? UNHANDLED : HANDLED; - if (result.error) throw result.value; - } - }); - }; - - var isUnhandled = function (state) { - return state.rejection !== HANDLED && !state.parent; - }; - - var onHandleUnhandled = function (promise, state) { - task$1.call(global_1, function () { - if (IS_NODE$1) { - process$4.emit('rejectionHandled', promise); - } else dispatchEvent(REJECTION_HANDLED, promise, state.value); - }); - }; - - var bind = function (fn, promise, state, unwrap) { - return function (value) { - fn(promise, state, value, unwrap); - }; - }; - - var internalReject = function (promise, state, value, unwrap) { - if (state.done) return; - state.done = true; - if (unwrap) state = unwrap; - state.value = value; - state.state = REJECTED; - notify$1(promise, state, true); - }; - - var internalResolve = function (promise, state, value, unwrap) { - if (state.done) return; - state.done = true; - if (unwrap) state = unwrap; - try { - if (promise === value) throw TypeError$1("Promise can't be resolved itself"); - var then = isThenable(value); - if (then) { - microtask(function () { - var wrapper = { done: false }; - try { - then.call(value, - bind(internalResolve, promise, wrapper, state), - bind(internalReject, promise, wrapper, state) - ); - } catch (error) { - internalReject(promise, wrapper, error, state); - } - }); - } else { - state.value = value; - state.state = FULFILLED; - notify$1(promise, state, false); - } - } catch (error) { - internalReject(promise, { done: false }, error, state); - } - }; - - // constructor polyfill - if (FORCED$3) { - // 25.4.3.1 Promise(executor) - PromiseConstructor = function Promise(executor) { - anInstance(this, PromiseConstructor, PROMISE); - aFunction$1(executor); - Internal.call(this); - var state = getInternalState$3(this); - try { - executor(bind(internalResolve, this, state), bind(internalReject, this, state)); - } catch (error) { - internalReject(this, state, error); - } - }; - // eslint-disable-next-line no-unused-vars - Internal = function Promise(executor) { - setInternalState$6(this, { - type: PROMISE, - done: false, - notified: false, - parent: false, - reactions: [], - rejection: false, - state: PENDING, - value: undefined - }); - }; - Internal.prototype = redefineAll(PromiseConstructor.prototype, { - // `Promise.prototype.then` method - // https://tc39.github.io/ecma262/#sec-promise.prototype.then - then: function then(onFulfilled, onRejected) { - var state = getInternalPromiseState(this); - var reaction = newPromiseCapability$1(speciesConstructor(this, PromiseConstructor)); - reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; - reaction.fail = typeof onRejected == 'function' && onRejected; - reaction.domain = IS_NODE$1 ? process$4.domain : undefined; - state.parent = true; - state.reactions.push(reaction); - if (state.state != PENDING) notify$1(this, state, false); - return reaction.promise; - }, - // `Promise.prototype.catch` method - // https://tc39.github.io/ecma262/#sec-promise.prototype.catch - 'catch': function (onRejected) { - return this.then(undefined, onRejected); - } - }); - OwnPromiseCapability = function () { - var promise = new Internal(); - var state = getInternalState$3(promise); - this.promise = promise; - this.resolve = bind(internalResolve, promise, state); - this.reject = bind(internalReject, promise, state); - }; - newPromiseCapability.f = newPromiseCapability$1 = function (C) { - return C === PromiseConstructor || C === PromiseWrapper - ? new OwnPromiseCapability(C) - : newGenericPromiseCapability(C); - }; - - if ( typeof nativePromiseConstructor == 'function') { - nativeThen = nativePromiseConstructor.prototype.then; - - // wrap native Promise#then for native async functions - redefine(nativePromiseConstructor.prototype, 'then', function then(onFulfilled, onRejected) { - var that = this; - return new PromiseConstructor(function (resolve, reject) { - nativeThen.call(that, resolve, reject); - }).then(onFulfilled, onRejected); - // https://github.com/zloirock/core-js/issues/640 - }, { unsafe: true }); - - // wrap fetch result - if (typeof $fetch$1 == 'function') _export({ global: true, enumerable: true, forced: true }, { - // eslint-disable-next-line no-unused-vars - fetch: function fetch(input /* , init */) { - return promiseResolve(PromiseConstructor, $fetch$1.apply(global_1, arguments)); - } - }); - } - } - - _export({ global: true, wrap: true, forced: FORCED$3 }, { - Promise: PromiseConstructor - }); - - setToStringTag(PromiseConstructor, PROMISE, false); - setSpecies(PROMISE); - - PromiseWrapper = getBuiltIn(PROMISE); - - // statics - _export({ target: PROMISE, stat: true, forced: FORCED$3 }, { - // `Promise.reject` method - // https://tc39.github.io/ecma262/#sec-promise.reject - reject: function reject(r) { - var capability = newPromiseCapability$1(this); - capability.reject.call(undefined, r); - return capability.promise; - } - }); - - _export({ target: PROMISE, stat: true, forced: FORCED$3 }, { - // `Promise.resolve` method - // https://tc39.github.io/ecma262/#sec-promise.resolve - resolve: function resolve(x) { - return promiseResolve( this, x); - } - }); - - _export({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION$1 }, { - // `Promise.all` method - // https://tc39.github.io/ecma262/#sec-promise.all - all: function all(iterable) { - var C = this; - var capability = newPromiseCapability$1(C); - var resolve = capability.resolve; - var reject = capability.reject; - var result = perform(function () { - var $promiseResolve = aFunction$1(C.resolve); - var values = []; - var counter = 0; - var remaining = 1; - iterate_1(iterable, function (promise) { - var index = counter++; - var alreadyCalled = false; - values.push(undefined); - remaining++; - $promiseResolve.call(C, promise).then(function (value) { - if (alreadyCalled) return; - alreadyCalled = true; - values[index] = value; - --remaining || resolve(values); - }, reject); - }); - --remaining || resolve(values); - }); - if (result.error) reject(result.value); - return capability.promise; - }, - // `Promise.race` method - // https://tc39.github.io/ecma262/#sec-promise.race - race: function race(iterable) { - var C = this; - var capability = newPromiseCapability$1(C); - var reject = capability.reject; - var result = perform(function () { - var $promiseResolve = aFunction$1(C.resolve); - iterate_1(iterable, function (promise) { - $promiseResolve.call(C, promise).then(capability.resolve, reject); - }); - }); - if (result.error) reject(result.value); - return capability.promise; - } - }); - - /*! ***************************************************************************** - 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 Reflect, Promise */ - var _extendStatics = function extendStatics(d, b) { - _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]; - } - }; - - return _extendStatics(d, b); - }; - - function __extends(d, b) { - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - } - - var _assign = function __assign() { - _assign = Object.assign || function __assign(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; - }; - - return _assign.apply(this, arguments); - }; - function __values(o) { - var s = typeof Symbol === "function" && Symbol.iterator, - m = s && o[s], - i = 0; - if (m) return m.call(o); - if (o && typeof o.length === "number") return { - next: function next() { - if (o && i >= o.length) o = void 0; - return { - value: o && o[i++], - done: !o - }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); - } - function __read(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; - } - function __spread() { - for (var ar = [], i = 0; i < arguments.length; i++) { - ar = ar.concat(__read(arguments[i])); - } - - return ar; - } - - /** JSDoc */ - // eslint-disable-next-line import/export - 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 || (Severity = {})); // eslint-disable-next-line @typescript-eslint/no-namespace, import/export - - - (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 || (Severity = {})); - - /** The status of an event. */ - // eslint-disable-next-line import/export - 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 || (Status = {})); // eslint-disable-next-line @typescript-eslint/no-namespace, import/export - - - (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 || (Status = {})); - - var defineProperty$6 = objectDefineProperty.f; - - var FunctionPrototype = Function.prototype; - var FunctionPrototypeToString = FunctionPrototype.toString; - var nameRE = /^\s*function ([^ (]*)/; - var NAME = 'name'; - - // Function instances `.name` property - // https://tc39.github.io/ecma262/#sec-function-instances-name - if (descriptors && !(NAME in FunctionPrototype)) { - defineProperty$6(FunctionPrototype, NAME, { - configurable: true, - get: function () { - try { - return FunctionPrototypeToString.call(this).match(nameRE)[1]; - } catch (error) { - return ''; - } - } - }); - } - - var setPrototypeOf = Object.setPrototypeOf || ({ - __proto__: [] - } instanceof Array ? setProtoOf : mixinProperties); - /** - * setPrototypeOf polyfill using __proto__ - */ - // eslint-disable-next-line @typescript-eslint/ban-types - - function setProtoOf(obj, proto) { - // @ts-ignore __proto__ does not exist on obj - obj.__proto__ = proto; - return obj; - } - /** - * setPrototypeOf polyfill using mixin - */ - // eslint-disable-next-line @typescript-eslint/ban-types - - - function mixinProperties(obj, proto) { - for (var prop in proto) { - // eslint-disable-next-line no-prototype-builtins - if (!obj.hasOwnProperty(prop)) { - // @ts-ignore typescript complains about indexing so we remove - obj[prop] = proto[prop]; - } - } - - return obj; - } - - /** An error emitted by Sentry SDKs and related utilities. */ - - var SentryError = - /** @class */ - function (_super) { - __extends(SentryError, _super); - - function SentryError(message) { - var _newTarget = this.constructor; - - var _this = _super.call(this, message) || this; - - _this.message = message; - _this.name = _newTarget.prototype.constructor.name; - setPrototypeOf(_this, _newTarget.prototype); - return _this; - } - - return SentryError; - }(Error); - - /* eslint-disable @typescript-eslint/no-explicit-any */ - - /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ - - /** - * 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 isInstanceOf(wat, Error); - } - } - /** - * 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]'; - } - /** - * 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]'; - } - /** - * 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]'; - } - /** - * 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]'; - } - /** - * Checks whether given value's is a primitive (undefined, null, number, boolean, string) - * {@link isPrimitive}. - * - * @param wat A value to be checked. - * @returns A boolean representing the result. - */ - - function isPrimitive(wat) { - return wat === null || _typeof(wat) !== 'object' && typeof wat !== 'function'; - } - /** - * 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]'; - } - /** - * Checks whether given value's type is an Event instance - * {@link isEvent}. - * - * @param wat A value to be checked. - * @returns A boolean representing the result. - */ - - function isEvent(wat) { - return typeof Event !== 'undefined' && isInstanceOf(wat, Event); - } - /** - * Checks whether given value's type is an Element instance - * {@link isElement}. - * - * @param wat A value to be checked. - * @returns A boolean representing the result. - */ - - function isElement(wat) { - return typeof Element !== 'undefined' && isInstanceOf(wat, Element); - } - /** - * 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]'; - } - /** - * Checks whether given value has a then function. - * @param wat A value to be checked. - */ - - function isThenable$1(wat) { - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - return Boolean(wat && wat.then && typeof wat.then === 'function'); - } - /** - * Checks whether given value's type is a SyntheticEvent - * {@link isSyntheticEvent}. - * - * @param wat A value to be checked. - * @returns A boolean representing the result. - */ - - function isSyntheticEvent(wat) { - return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat; - } - /** - * Checks whether given value's type is an instance of provided constructor. - * {@link isInstanceOf}. - * - * @param wat A value to be checked. - * @param base A constructor to be used in a check. - * @returns A boolean representing the result. - */ - - function isInstanceOf(wat, base) { - try { - return wat instanceof base; - } catch (_e) { - return false; - } - } - - // @@match logic - fixRegexpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) { - return [ - // `String.prototype.match` method - // https://tc39.github.io/ecma262/#sec-string.prototype.match - function match(regexp) { - var O = requireObjectCoercible(this); - var matcher = regexp == undefined ? undefined : regexp[MATCH]; - return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O)); - }, - // `RegExp.prototype[@@match]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match - function (regexp) { - var res = maybeCallNative(nativeMatch, regexp, this); - if (res.done) return res.value; - - var rx = anObject(regexp); - var S = String(this); - - if (!rx.global) return regexpExecAbstract(rx, S); - - var fullUnicode = rx.unicode; - rx.lastIndex = 0; - var A = []; - var n = 0; - var result; - while ((result = regexpExecAbstract(rx, S)) !== null) { - var matchStr = String(result[0]); - A[n] = matchStr; - if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); - n++; - } - return n === 0 ? null : A; - } - ]; - }); - - var arrayBufferNative = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined'; - - var defineProperty$7 = objectDefineProperty.f; - - - - - - var Int8Array$1 = global_1.Int8Array; - var Int8ArrayPrototype = Int8Array$1 && Int8Array$1.prototype; - var Uint8ClampedArray = global_1.Uint8ClampedArray; - var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype; - var TypedArray = Int8Array$1 && objectGetPrototypeOf(Int8Array$1); - var TypedArrayPrototype = Int8ArrayPrototype && objectGetPrototypeOf(Int8ArrayPrototype); - var ObjectPrototype$2 = Object.prototype; - var isPrototypeOf = ObjectPrototype$2.isPrototypeOf; - - var TO_STRING_TAG$4 = wellKnownSymbol('toStringTag'); - var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG'); - // Fixing native typed arrays in Opera Presto crashes the browser, see #595 - var NATIVE_ARRAY_BUFFER_VIEWS = arrayBufferNative && !!objectSetPrototypeOf && classof(global_1.opera) !== 'Opera'; - var TYPED_ARRAY_TAG_REQIRED = false; - var NAME$1; - - var TypedArrayConstructorsList = { - Int8Array: 1, - Uint8Array: 1, - Uint8ClampedArray: 1, - Int16Array: 2, - Uint16Array: 2, - Int32Array: 4, - Uint32Array: 4, - Float32Array: 4, - Float64Array: 8 - }; - - var isView = function isView(it) { - var klass = classof(it); - return klass === 'DataView' || has(TypedArrayConstructorsList, klass); - }; - - var isTypedArray = function (it) { - return isObject(it) && has(TypedArrayConstructorsList, classof(it)); - }; - - var aTypedArray = function (it) { - if (isTypedArray(it)) return it; - throw TypeError('Target is not a typed array'); - }; - - var aTypedArrayConstructor = function (C) { - if (objectSetPrototypeOf) { - if (isPrototypeOf.call(TypedArray, C)) return C; - } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME$1)) { - var TypedArrayConstructor = global_1[ARRAY]; - if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) { - return C; - } - } throw TypeError('Target is not a typed array constructor'); - }; - - var exportTypedArrayMethod = function (KEY, property, forced) { - if (!descriptors) return; - if (forced) for (var ARRAY in TypedArrayConstructorsList) { - var TypedArrayConstructor = global_1[ARRAY]; - if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) { - delete TypedArrayConstructor.prototype[KEY]; - } - } - if (!TypedArrayPrototype[KEY] || forced) { - redefine(TypedArrayPrototype, KEY, forced ? property - : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property); - } - }; - - var exportTypedArrayStaticMethod = function (KEY, property, forced) { - var ARRAY, TypedArrayConstructor; - if (!descriptors) return; - if (objectSetPrototypeOf) { - if (forced) for (ARRAY in TypedArrayConstructorsList) { - TypedArrayConstructor = global_1[ARRAY]; - if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) { - delete TypedArrayConstructor[KEY]; - } - } - if (!TypedArray[KEY] || forced) { - // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable - try { - return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array$1[KEY] || property); - } catch (error) { /* empty */ } - } else return; - } - for (ARRAY in TypedArrayConstructorsList) { - TypedArrayConstructor = global_1[ARRAY]; - if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) { - redefine(TypedArrayConstructor, KEY, property); - } - } - }; - - for (NAME$1 in TypedArrayConstructorsList) { - if (!global_1[NAME$1]) NATIVE_ARRAY_BUFFER_VIEWS = false; - } - - // WebKit bug - typed arrays constructors prototype is Object.prototype - if (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) { - // eslint-disable-next-line no-shadow - TypedArray = function TypedArray() { - throw TypeError('Incorrect invocation'); - }; - if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME$1 in TypedArrayConstructorsList) { - if (global_1[NAME$1]) objectSetPrototypeOf(global_1[NAME$1], TypedArray); - } - } - - if (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype$2) { - TypedArrayPrototype = TypedArray.prototype; - if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME$1 in TypedArrayConstructorsList) { - if (global_1[NAME$1]) objectSetPrototypeOf(global_1[NAME$1].prototype, TypedArrayPrototype); - } - } - - // WebKit bug - one more object in Uint8ClampedArray prototype chain - if (NATIVE_ARRAY_BUFFER_VIEWS && objectGetPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) { - objectSetPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype); - } - - if (descriptors && !has(TypedArrayPrototype, TO_STRING_TAG$4)) { - TYPED_ARRAY_TAG_REQIRED = true; - defineProperty$7(TypedArrayPrototype, TO_STRING_TAG$4, { get: function () { - return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined; - } }); - for (NAME$1 in TypedArrayConstructorsList) if (global_1[NAME$1]) { - createNonEnumerableProperty(global_1[NAME$1], TYPED_ARRAY_TAG, NAME$1); - } - } - - var arrayBufferViewCore = { - NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS, - TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG, - aTypedArray: aTypedArray, - aTypedArrayConstructor: aTypedArrayConstructor, - exportTypedArrayMethod: exportTypedArrayMethod, - exportTypedArrayStaticMethod: exportTypedArrayStaticMethod, - isView: isView, - isTypedArray: isTypedArray, - TypedArray: TypedArray, - TypedArrayPrototype: TypedArrayPrototype - }; - - /* eslint-disable no-new */ - - - - var NATIVE_ARRAY_BUFFER_VIEWS$1 = arrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; - - var ArrayBuffer$1 = global_1.ArrayBuffer; - var Int8Array$2 = global_1.Int8Array; - - var typedArrayConstructorsRequireWrappers = !NATIVE_ARRAY_BUFFER_VIEWS$1 || !fails(function () { - Int8Array$2(1); - }) || !fails(function () { - new Int8Array$2(-1); - }) || !checkCorrectnessOfIteration(function (iterable) { - new Int8Array$2(); - new Int8Array$2(null); - new Int8Array$2(1.5); - new Int8Array$2(iterable); - }, true) || fails(function () { - // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill - return new Int8Array$2(new ArrayBuffer$1(2), 1, undefined).length !== 1; - }); - - // `ToIndex` abstract operation - // https://tc39.github.io/ecma262/#sec-toindex - var toIndex = function (it) { - if (it === undefined) return 0; - var number = toInteger(it); - var length = toLength(number); - if (number !== length) throw RangeError('Wrong length or index'); - return length; - }; - - // IEEE754 conversions based on https://github.com/feross/ieee754 - // eslint-disable-next-line no-shadow-restricted-names - var Infinity$1 = 1 / 0; - var abs = Math.abs; - var pow$1 = Math.pow; - var floor$4 = Math.floor; - var log = Math.log; - var LN2 = Math.LN2; - - var pack = function (number, mantissaLength, bytes) { - var buffer = new Array(bytes); - var exponentLength = bytes * 8 - mantissaLength - 1; - var eMax = (1 << exponentLength) - 1; - var eBias = eMax >> 1; - var rt = mantissaLength === 23 ? pow$1(2, -24) - pow$1(2, -77) : 0; - var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0; - var index = 0; - var exponent, mantissa, c; - number = abs(number); - // eslint-disable-next-line no-self-compare - if (number != number || number === Infinity$1) { - // eslint-disable-next-line no-self-compare - mantissa = number != number ? 1 : 0; - exponent = eMax; - } else { - exponent = floor$4(log(number) / LN2); - if (number * (c = pow$1(2, -exponent)) < 1) { - exponent--; - c *= 2; - } - if (exponent + eBias >= 1) { - number += rt / c; - } else { - number += rt * pow$1(2, 1 - eBias); - } - if (number * c >= 2) { - exponent++; - c /= 2; - } - if (exponent + eBias >= eMax) { - mantissa = 0; - exponent = eMax; - } else if (exponent + eBias >= 1) { - mantissa = (number * c - 1) * pow$1(2, mantissaLength); - exponent = exponent + eBias; - } else { - mantissa = number * pow$1(2, eBias - 1) * pow$1(2, mantissaLength); - exponent = 0; - } - } - for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8); - exponent = exponent << mantissaLength | mantissa; - exponentLength += mantissaLength; - for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8); - buffer[--index] |= sign * 128; - return buffer; - }; - - var unpack = function (buffer, mantissaLength) { - var bytes = buffer.length; - var exponentLength = bytes * 8 - mantissaLength - 1; - var eMax = (1 << exponentLength) - 1; - var eBias = eMax >> 1; - var nBits = exponentLength - 7; - var index = bytes - 1; - var sign = buffer[index--]; - var exponent = sign & 127; - var mantissa; - sign >>= 7; - for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8); - mantissa = exponent & (1 << -nBits) - 1; - exponent >>= -nBits; - nBits += mantissaLength; - for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8); - if (exponent === 0) { - exponent = 1 - eBias; - } else if (exponent === eMax) { - return mantissa ? NaN : sign ? -Infinity$1 : Infinity$1; - } else { - mantissa = mantissa + pow$1(2, mantissaLength); - exponent = exponent - eBias; - } return (sign ? -1 : 1) * mantissa * pow$1(2, exponent - mantissaLength); - }; - - var ieee754 = { - pack: pack, - unpack: unpack - }; - - // `Array.prototype.fill` method implementation - // https://tc39.github.io/ecma262/#sec-array.prototype.fill - var arrayFill = function fill(value /* , start = 0, end = @length */) { - var O = toObject(this); - var length = toLength(O.length); - var argumentsLength = arguments.length; - var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length); - var end = argumentsLength > 2 ? arguments[2] : undefined; - var endPos = end === undefined ? length : toAbsoluteIndex(end, length); - while (endPos > index) O[index++] = value; - return O; - }; - - var getOwnPropertyNames$1 = objectGetOwnPropertyNames.f; - var defineProperty$8 = objectDefineProperty.f; - - - - - var getInternalState$4 = internalState.get; - var setInternalState$7 = internalState.set; - var ARRAY_BUFFER = 'ArrayBuffer'; - var DATA_VIEW = 'DataView'; - var PROTOTYPE$2 = 'prototype'; - var WRONG_LENGTH = 'Wrong length'; - var WRONG_INDEX = 'Wrong index'; - var NativeArrayBuffer = global_1[ARRAY_BUFFER]; - var $ArrayBuffer = NativeArrayBuffer; - var $DataView = global_1[DATA_VIEW]; - var $DataViewPrototype = $DataView && $DataView[PROTOTYPE$2]; - var ObjectPrototype$3 = Object.prototype; - var RangeError$1 = global_1.RangeError; - - var packIEEE754 = ieee754.pack; - var unpackIEEE754 = ieee754.unpack; - - var packInt8 = function (number) { - return [number & 0xFF]; - }; - - var packInt16 = function (number) { - return [number & 0xFF, number >> 8 & 0xFF]; - }; - - var packInt32 = function (number) { - return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF]; - }; - - var unpackInt32 = function (buffer) { - return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0]; - }; - - var packFloat32 = function (number) { - return packIEEE754(number, 23, 4); - }; - - var packFloat64 = function (number) { - return packIEEE754(number, 52, 8); - }; - - var addGetter = function (Constructor, key) { - defineProperty$8(Constructor[PROTOTYPE$2], key, { get: function () { return getInternalState$4(this)[key]; } }); - }; - - var get$1 = function (view, count, index, isLittleEndian) { - var intIndex = toIndex(index); - var store = getInternalState$4(view); - if (intIndex + count > store.byteLength) throw RangeError$1(WRONG_INDEX); - var bytes = getInternalState$4(store.buffer).bytes; - var start = intIndex + store.byteOffset; - var pack = bytes.slice(start, start + count); - return isLittleEndian ? pack : pack.reverse(); - }; - - var set$2 = function (view, count, index, conversion, value, isLittleEndian) { - var intIndex = toIndex(index); - var store = getInternalState$4(view); - if (intIndex + count > store.byteLength) throw RangeError$1(WRONG_INDEX); - var bytes = getInternalState$4(store.buffer).bytes; - var start = intIndex + store.byteOffset; - var pack = conversion(+value); - for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1]; - }; - - if (!arrayBufferNative) { - $ArrayBuffer = function ArrayBuffer(length) { - anInstance(this, $ArrayBuffer, ARRAY_BUFFER); - var byteLength = toIndex(length); - setInternalState$7(this, { - bytes: arrayFill.call(new Array(byteLength), 0), - byteLength: byteLength - }); - if (!descriptors) this.byteLength = byteLength; - }; - - $DataView = function DataView(buffer, byteOffset, byteLength) { - anInstance(this, $DataView, DATA_VIEW); - anInstance(buffer, $ArrayBuffer, DATA_VIEW); - var bufferLength = getInternalState$4(buffer).byteLength; - var offset = toInteger(byteOffset); - if (offset < 0 || offset > bufferLength) throw RangeError$1('Wrong offset'); - byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength); - if (offset + byteLength > bufferLength) throw RangeError$1(WRONG_LENGTH); - setInternalState$7(this, { - buffer: buffer, - byteLength: byteLength, - byteOffset: offset - }); - if (!descriptors) { - this.buffer = buffer; - this.byteLength = byteLength; - this.byteOffset = offset; - } - }; - - if (descriptors) { - addGetter($ArrayBuffer, 'byteLength'); - addGetter($DataView, 'buffer'); - addGetter($DataView, 'byteLength'); - addGetter($DataView, 'byteOffset'); - } - - redefineAll($DataView[PROTOTYPE$2], { - getInt8: function getInt8(byteOffset) { - return get$1(this, 1, byteOffset)[0] << 24 >> 24; - }, - getUint8: function getUint8(byteOffset) { - return get$1(this, 1, byteOffset)[0]; - }, - getInt16: function getInt16(byteOffset /* , littleEndian */) { - var bytes = get$1(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined); - return (bytes[1] << 8 | bytes[0]) << 16 >> 16; - }, - getUint16: function getUint16(byteOffset /* , littleEndian */) { - var bytes = get$1(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined); - return bytes[1] << 8 | bytes[0]; - }, - getInt32: function getInt32(byteOffset /* , littleEndian */) { - return unpackInt32(get$1(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)); - }, - getUint32: function getUint32(byteOffset /* , littleEndian */) { - return unpackInt32(get$1(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0; - }, - getFloat32: function getFloat32(byteOffset /* , littleEndian */) { - return unpackIEEE754(get$1(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23); - }, - getFloat64: function getFloat64(byteOffset /* , littleEndian */) { - return unpackIEEE754(get$1(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52); - }, - setInt8: function setInt8(byteOffset, value) { - set$2(this, 1, byteOffset, packInt8, value); - }, - setUint8: function setUint8(byteOffset, value) { - set$2(this, 1, byteOffset, packInt8, value); - }, - setInt16: function setInt16(byteOffset, value /* , littleEndian */) { - set$2(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined); - }, - setUint16: function setUint16(byteOffset, value /* , littleEndian */) { - set$2(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined); - }, - setInt32: function setInt32(byteOffset, value /* , littleEndian */) { - set$2(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined); - }, - setUint32: function setUint32(byteOffset, value /* , littleEndian */) { - set$2(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined); - }, - setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) { - set$2(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined); - }, - setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) { - set$2(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined); - } - }); - } else { - if (!fails(function () { - NativeArrayBuffer(1); - }) || !fails(function () { - new NativeArrayBuffer(-1); // eslint-disable-line no-new - }) || fails(function () { - new NativeArrayBuffer(); // eslint-disable-line no-new - new NativeArrayBuffer(1.5); // eslint-disable-line no-new - new NativeArrayBuffer(NaN); // eslint-disable-line no-new - return NativeArrayBuffer.name != ARRAY_BUFFER; - })) { - $ArrayBuffer = function ArrayBuffer(length) { - anInstance(this, $ArrayBuffer); - return new NativeArrayBuffer(toIndex(length)); - }; - var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE$2] = NativeArrayBuffer[PROTOTYPE$2]; - for (var keys$2 = getOwnPropertyNames$1(NativeArrayBuffer), j = 0, key; keys$2.length > j;) { - if (!((key = keys$2[j++]) in $ArrayBuffer)) { - createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]); - } - } - ArrayBufferPrototype.constructor = $ArrayBuffer; - } - - // WebKit bug - the same parent prototype for typed arrays and data view - if (objectSetPrototypeOf && objectGetPrototypeOf($DataViewPrototype) !== ObjectPrototype$3) { - objectSetPrototypeOf($DataViewPrototype, ObjectPrototype$3); - } - - // iOS Safari 7.x bug - var testView = new $DataView(new $ArrayBuffer(2)); - var nativeSetInt8 = $DataViewPrototype.setInt8; - testView.setInt8(0, 2147483648); - testView.setInt8(1, 2147483649); - if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, { - setInt8: function setInt8(byteOffset, value) { - nativeSetInt8.call(this, byteOffset, value << 24 >> 24); - }, - setUint8: function setUint8(byteOffset, value) { - nativeSetInt8.call(this, byteOffset, value << 24 >> 24); - } - }, { unsafe: true }); - } - - setToStringTag($ArrayBuffer, ARRAY_BUFFER); - setToStringTag($DataView, DATA_VIEW); - - var arrayBuffer = { - ArrayBuffer: $ArrayBuffer, - DataView: $DataView - }; - - var toPositiveInteger = function (it) { - var result = toInteger(it); - if (result < 0) throw RangeError("The argument can't be less than 0"); - return result; - }; - - var toOffset = function (it, BYTES) { - var offset = toPositiveInteger(it); - if (offset % BYTES) throw RangeError('Wrong offset'); - return offset; - }; - - var aTypedArrayConstructor$1 = arrayBufferViewCore.aTypedArrayConstructor; - - var typedArrayFrom = function from(source /* , mapfn, thisArg */) { - var O = toObject(source); - var argumentsLength = arguments.length; - var mapfn = argumentsLength > 1 ? arguments[1] : undefined; - var mapping = mapfn !== undefined; - var iteratorMethod = getIteratorMethod(O); - var i, length, result, step, iterator, next; - if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) { - iterator = iteratorMethod.call(O); - next = iterator.next; - O = []; - while (!(step = next.call(iterator)).done) { - O.push(step.value); - } - } - if (mapping && argumentsLength > 2) { - mapfn = functionBindContext(mapfn, arguments[2], 2); - } - length = toLength(O.length); - result = new (aTypedArrayConstructor$1(this))(length); - for (i = 0; length > i; i++) { - result[i] = mapping ? mapfn(O[i], i) : O[i]; - } - return result; - }; - - var typedArrayConstructor = createCommonjsModule(function (module) { - - - - - - - - - - - - - - - - - - - var getOwnPropertyNames = objectGetOwnPropertyNames.f; - - var forEach = arrayIteration.forEach; - - - - - - - var getInternalState = internalState.get; - var setInternalState = internalState.set; - var nativeDefineProperty = objectDefineProperty.f; - var nativeGetOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; - var round = Math.round; - var RangeError = global_1.RangeError; - var ArrayBuffer = arrayBuffer.ArrayBuffer; - var DataView = arrayBuffer.DataView; - var NATIVE_ARRAY_BUFFER_VIEWS = arrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; - var TYPED_ARRAY_TAG = arrayBufferViewCore.TYPED_ARRAY_TAG; - var TypedArray = arrayBufferViewCore.TypedArray; - var TypedArrayPrototype = arrayBufferViewCore.TypedArrayPrototype; - var aTypedArrayConstructor = arrayBufferViewCore.aTypedArrayConstructor; - var isTypedArray = arrayBufferViewCore.isTypedArray; - var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'; - var WRONG_LENGTH = 'Wrong length'; - - var fromList = function (C, list) { - var index = 0; - var length = list.length; - var result = new (aTypedArrayConstructor(C))(length); - while (length > index) result[index] = list[index++]; - return result; - }; - - var addGetter = function (it, key) { - nativeDefineProperty(it, key, { get: function () { - return getInternalState(this)[key]; - } }); - }; - - var isArrayBuffer = function (it) { - var klass; - return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer'; - }; - - var isTypedArrayIndex = function (target, key) { - return isTypedArray(target) - && typeof key != 'symbol' - && key in target - && String(+key) == String(key); - }; - - var wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) { - return isTypedArrayIndex(target, key = toPrimitive(key, true)) - ? createPropertyDescriptor(2, target[key]) - : nativeGetOwnPropertyDescriptor(target, key); - }; - - var wrappedDefineProperty = function defineProperty(target, key, descriptor) { - if (isTypedArrayIndex(target, key = toPrimitive(key, true)) - && isObject(descriptor) - && has(descriptor, 'value') - && !has(descriptor, 'get') - && !has(descriptor, 'set') - // TODO: add validation descriptor w/o calling accessors - && !descriptor.configurable - && (!has(descriptor, 'writable') || descriptor.writable) - && (!has(descriptor, 'enumerable') || descriptor.enumerable) - ) { - target[key] = descriptor.value; - return target; - } return nativeDefineProperty(target, key, descriptor); - }; - - if (descriptors) { - if (!NATIVE_ARRAY_BUFFER_VIEWS) { - objectGetOwnPropertyDescriptor.f = wrappedGetOwnPropertyDescriptor; - objectDefineProperty.f = wrappedDefineProperty; - addGetter(TypedArrayPrototype, 'buffer'); - addGetter(TypedArrayPrototype, 'byteOffset'); - addGetter(TypedArrayPrototype, 'byteLength'); - addGetter(TypedArrayPrototype, 'length'); - } - - _export({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { - getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor, - defineProperty: wrappedDefineProperty - }); - - module.exports = function (TYPE, wrapper, CLAMPED) { - var BYTES = TYPE.match(/\d+$/)[0] / 8; - var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array'; - var GETTER = 'get' + TYPE; - var SETTER = 'set' + TYPE; - var NativeTypedArrayConstructor = global_1[CONSTRUCTOR_NAME]; - var TypedArrayConstructor = NativeTypedArrayConstructor; - var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype; - var exported = {}; - - var getter = function (that, index) { - var data = getInternalState(that); - return data.view[GETTER](index * BYTES + data.byteOffset, true); - }; - - var setter = function (that, index, value) { - var data = getInternalState(that); - if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF; - data.view[SETTER](index * BYTES + data.byteOffset, value, true); - }; - - var addElement = function (that, index) { - nativeDefineProperty(that, index, { - get: function () { - return getter(this, index); - }, - set: function (value) { - return setter(this, index, value); - }, - enumerable: true - }); - }; - - if (!NATIVE_ARRAY_BUFFER_VIEWS) { - TypedArrayConstructor = wrapper(function (that, data, offset, $length) { - anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME); - var index = 0; - var byteOffset = 0; - var buffer, byteLength, length; - if (!isObject(data)) { - length = toIndex(data); - byteLength = length * BYTES; - buffer = new ArrayBuffer(byteLength); - } else if (isArrayBuffer(data)) { - buffer = data; - byteOffset = toOffset(offset, BYTES); - var $len = data.byteLength; - if ($length === undefined) { - if ($len % BYTES) throw RangeError(WRONG_LENGTH); - byteLength = $len - byteOffset; - if (byteLength < 0) throw RangeError(WRONG_LENGTH); - } else { - byteLength = toLength($length) * BYTES; - if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH); - } - length = byteLength / BYTES; - } else if (isTypedArray(data)) { - return fromList(TypedArrayConstructor, data); - } else { - return typedArrayFrom.call(TypedArrayConstructor, data); - } - setInternalState(that, { - buffer: buffer, - byteOffset: byteOffset, - byteLength: byteLength, - length: length, - view: new DataView(buffer) - }); - while (index < length) addElement(that, index++); - }); - - if (objectSetPrototypeOf) objectSetPrototypeOf(TypedArrayConstructor, TypedArray); - TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = objectCreate(TypedArrayPrototype); - } else if (typedArrayConstructorsRequireWrappers) { - TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) { - anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME); - return inheritIfRequired(function () { - if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data)); - if (isArrayBuffer(data)) return $length !== undefined - ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length) - : typedArrayOffset !== undefined - ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES)) - : new NativeTypedArrayConstructor(data); - if (isTypedArray(data)) return fromList(TypedArrayConstructor, data); - return typedArrayFrom.call(TypedArrayConstructor, data); - }(), dummy, TypedArrayConstructor); - }); - - if (objectSetPrototypeOf) objectSetPrototypeOf(TypedArrayConstructor, TypedArray); - forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) { - if (!(key in TypedArrayConstructor)) { - createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]); - } - }); - TypedArrayConstructor.prototype = TypedArrayConstructorPrototype; - } - - if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) { - createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor); - } - - if (TYPED_ARRAY_TAG) { - createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME); - } - - exported[CONSTRUCTOR_NAME] = TypedArrayConstructor; - - _export({ - global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS - }, exported); - - if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) { - createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES); - } - - if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) { - createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES); - } - - setSpecies(CONSTRUCTOR_NAME); - }; - } else module.exports = function () { /* empty */ }; - }); - - // `Uint16Array` constructor - // https://tc39.github.io/ecma262/#sec-typedarray-objects - typedArrayConstructor('Uint16', function (init) { - return function Uint16Array(data, byteOffset, length) { - return init(this, data, byteOffset, length); - }; - }); - - var min$4 = Math.min; - - // `Array.prototype.copyWithin` method implementation - // https://tc39.github.io/ecma262/#sec-array.prototype.copywithin - var arrayCopyWithin = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) { - var O = toObject(this); - var len = toLength(O.length); - var to = toAbsoluteIndex(target, len); - var from = toAbsoluteIndex(start, len); - var end = arguments.length > 2 ? arguments[2] : undefined; - var count = min$4((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); - var inc = 1; - if (from < to && to < from + count) { - inc = -1; - from += count - 1; - to += count - 1; - } - while (count-- > 0) { - if (from in O) O[to] = O[from]; - else delete O[to]; - to += inc; - from += inc; - } return O; - }; - - var aTypedArray$1 = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$1 = arrayBufferViewCore.exportTypedArrayMethod; - - // `%TypedArray%.prototype.copyWithin` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.copywithin - exportTypedArrayMethod$1('copyWithin', function copyWithin(target, start /* , end */) { - return arrayCopyWithin.call(aTypedArray$1(this), target, start, arguments.length > 2 ? arguments[2] : undefined); - }); - - var $every = arrayIteration.every; - - var aTypedArray$2 = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$2 = arrayBufferViewCore.exportTypedArrayMethod; - - // `%TypedArray%.prototype.every` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.every - exportTypedArrayMethod$2('every', function every(callbackfn /* , thisArg */) { - return $every(aTypedArray$2(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); - }); - - var aTypedArray$3 = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$3 = arrayBufferViewCore.exportTypedArrayMethod; - - // `%TypedArray%.prototype.fill` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.fill - // eslint-disable-next-line no-unused-vars - exportTypedArrayMethod$3('fill', function fill(value /* , start, end */) { - return arrayFill.apply(aTypedArray$3(this), arguments); - }); - - var $filter = arrayIteration.filter; - - - var aTypedArray$4 = arrayBufferViewCore.aTypedArray; - var aTypedArrayConstructor$2 = arrayBufferViewCore.aTypedArrayConstructor; - var exportTypedArrayMethod$4 = arrayBufferViewCore.exportTypedArrayMethod; - - // `%TypedArray%.prototype.filter` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.filter - exportTypedArrayMethod$4('filter', function filter(callbackfn /* , thisArg */) { - var list = $filter(aTypedArray$4(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); - var C = speciesConstructor(this, this.constructor); - var index = 0; - var length = list.length; - var result = new (aTypedArrayConstructor$2(C))(length); - while (length > index) result[index] = list[index++]; - return result; - }); - - var $find = arrayIteration.find; - - var aTypedArray$5 = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$5 = arrayBufferViewCore.exportTypedArrayMethod; - - // `%TypedArray%.prototype.find` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.find - exportTypedArrayMethod$5('find', function find(predicate /* , thisArg */) { - return $find(aTypedArray$5(this), predicate, arguments.length > 1 ? arguments[1] : undefined); - }); - - var $findIndex = arrayIteration.findIndex; - - var aTypedArray$6 = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$6 = arrayBufferViewCore.exportTypedArrayMethod; - - // `%TypedArray%.prototype.findIndex` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.findindex - exportTypedArrayMethod$6('findIndex', function findIndex(predicate /* , thisArg */) { - return $findIndex(aTypedArray$6(this), predicate, arguments.length > 1 ? arguments[1] : undefined); - }); - - var $forEach$2 = arrayIteration.forEach; - - var aTypedArray$7 = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$7 = arrayBufferViewCore.exportTypedArrayMethod; - - // `%TypedArray%.prototype.forEach` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.foreach - exportTypedArrayMethod$7('forEach', function forEach(callbackfn /* , thisArg */) { - $forEach$2(aTypedArray$7(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); - }); - - var $includes$1 = arrayIncludes.includes; - - var aTypedArray$8 = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$8 = arrayBufferViewCore.exportTypedArrayMethod; - - // `%TypedArray%.prototype.includes` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.includes - exportTypedArrayMethod$8('includes', function includes(searchElement /* , fromIndex */) { - return $includes$1(aTypedArray$8(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); - }); - - var $indexOf$1 = arrayIncludes.indexOf; - - var aTypedArray$9 = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$9 = arrayBufferViewCore.exportTypedArrayMethod; - - // `%TypedArray%.prototype.indexOf` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.indexof - exportTypedArrayMethod$9('indexOf', function indexOf(searchElement /* , fromIndex */) { - return $indexOf$1(aTypedArray$9(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); - }); - - var ITERATOR$8 = wellKnownSymbol('iterator'); - var Uint8Array = global_1.Uint8Array; - var arrayValues = es_array_iterator.values; - var arrayKeys = es_array_iterator.keys; - var arrayEntries = es_array_iterator.entries; - var aTypedArray$a = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$a = arrayBufferViewCore.exportTypedArrayMethod; - var nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR$8]; - - var CORRECT_ITER_NAME = !!nativeTypedArrayIterator - && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined); - - var typedArrayValues = function values() { - return arrayValues.call(aTypedArray$a(this)); - }; - - // `%TypedArray%.prototype.entries` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.entries - exportTypedArrayMethod$a('entries', function entries() { - return arrayEntries.call(aTypedArray$a(this)); - }); - // `%TypedArray%.prototype.keys` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.keys - exportTypedArrayMethod$a('keys', function keys() { - return arrayKeys.call(aTypedArray$a(this)); - }); - // `%TypedArray%.prototype.values` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.values - exportTypedArrayMethod$a('values', typedArrayValues, !CORRECT_ITER_NAME); - // `%TypedArray%.prototype[@@iterator]` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype-@@iterator - exportTypedArrayMethod$a(ITERATOR$8, typedArrayValues, !CORRECT_ITER_NAME); - - var aTypedArray$b = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$b = arrayBufferViewCore.exportTypedArrayMethod; - var $join = [].join; - - // `%TypedArray%.prototype.join` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.join - // eslint-disable-next-line no-unused-vars - exportTypedArrayMethod$b('join', function join(separator) { - return $join.apply(aTypedArray$b(this), arguments); - }); - - var min$5 = Math.min; - var nativeLastIndexOf = [].lastIndexOf; - var NEGATIVE_ZERO$1 = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0; - var STRICT_METHOD$3 = arrayMethodIsStrict('lastIndexOf'); - // For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method - var USES_TO_LENGTH$5 = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 }); - var FORCED$4 = NEGATIVE_ZERO$1 || !STRICT_METHOD$3 || !USES_TO_LENGTH$5; - - // `Array.prototype.lastIndexOf` method implementation - // https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof - var arrayLastIndexOf = FORCED$4 ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { - // convert -0 to +0 - if (NEGATIVE_ZERO$1) return nativeLastIndexOf.apply(this, arguments) || 0; - var O = toIndexedObject(this); - var length = toLength(O.length); - var index = length - 1; - if (arguments.length > 1) index = min$5(index, toInteger(arguments[1])); - if (index < 0) index = length + index; - for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0; - return -1; - } : nativeLastIndexOf; - - var aTypedArray$c = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$c = arrayBufferViewCore.exportTypedArrayMethod; - - // `%TypedArray%.prototype.lastIndexOf` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.lastindexof - // eslint-disable-next-line no-unused-vars - exportTypedArrayMethod$c('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) { - return arrayLastIndexOf.apply(aTypedArray$c(this), arguments); - }); - - var $map$1 = arrayIteration.map; - - - var aTypedArray$d = arrayBufferViewCore.aTypedArray; - var aTypedArrayConstructor$3 = arrayBufferViewCore.aTypedArrayConstructor; - var exportTypedArrayMethod$d = arrayBufferViewCore.exportTypedArrayMethod; - - // `%TypedArray%.prototype.map` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.map - exportTypedArrayMethod$d('map', function map(mapfn /* , thisArg */) { - return $map$1(aTypedArray$d(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) { - return new (aTypedArrayConstructor$3(speciesConstructor(O, O.constructor)))(length); - }); - }); - - // `Array.prototype.{ reduce, reduceRight }` methods implementation - var createMethod$3 = function (IS_RIGHT) { - return function (that, callbackfn, argumentsLength, memo) { - aFunction$1(callbackfn); - var O = toObject(that); - var self = indexedObject(O); - var length = toLength(O.length); - var index = IS_RIGHT ? length - 1 : 0; - var i = IS_RIGHT ? -1 : 1; - if (argumentsLength < 2) while (true) { - if (index in self) { - memo = self[index]; - index += i; - break; - } - index += i; - if (IS_RIGHT ? index < 0 : length <= index) { - throw TypeError('Reduce of empty array with no initial value'); - } - } - for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) { - memo = callbackfn(memo, self[index], index, O); - } - return memo; - }; - }; - - var arrayReduce = { - // `Array.prototype.reduce` method - // https://tc39.github.io/ecma262/#sec-array.prototype.reduce - left: createMethod$3(false), - // `Array.prototype.reduceRight` method - // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright - right: createMethod$3(true) - }; - - var $reduce = arrayReduce.left; - - var aTypedArray$e = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$e = arrayBufferViewCore.exportTypedArrayMethod; - - // `%TypedArray%.prototype.reduce` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduce - exportTypedArrayMethod$e('reduce', function reduce(callbackfn /* , initialValue */) { - return $reduce(aTypedArray$e(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); - }); - - var $reduceRight = arrayReduce.right; - - var aTypedArray$f = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$f = arrayBufferViewCore.exportTypedArrayMethod; - - // `%TypedArray%.prototype.reduceRicht` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduceright - exportTypedArrayMethod$f('reduceRight', function reduceRight(callbackfn /* , initialValue */) { - return $reduceRight(aTypedArray$f(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); - }); - - var aTypedArray$g = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$g = arrayBufferViewCore.exportTypedArrayMethod; - var floor$5 = Math.floor; - - // `%TypedArray%.prototype.reverse` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reverse - exportTypedArrayMethod$g('reverse', function reverse() { - var that = this; - var length = aTypedArray$g(that).length; - var middle = floor$5(length / 2); - var index = 0; - var value; - while (index < middle) { - value = that[index]; - that[index++] = that[--length]; - that[length] = value; - } return that; - }); - - var aTypedArray$h = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$h = arrayBufferViewCore.exportTypedArrayMethod; - - var FORCED$5 = fails(function () { - // eslint-disable-next-line no-undef - new Int8Array(1).set({}); - }); - - // `%TypedArray%.prototype.set` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.set - exportTypedArrayMethod$h('set', function set(arrayLike /* , offset */) { - aTypedArray$h(this); - var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1); - var length = this.length; - var src = toObject(arrayLike); - var len = toLength(src.length); - var index = 0; - if (len + offset > length) throw RangeError('Wrong length'); - while (index < len) this[offset + index] = src[index++]; - }, FORCED$5); - - var aTypedArray$i = arrayBufferViewCore.aTypedArray; - var aTypedArrayConstructor$4 = arrayBufferViewCore.aTypedArrayConstructor; - var exportTypedArrayMethod$i = arrayBufferViewCore.exportTypedArrayMethod; - var $slice = [].slice; - - var FORCED$6 = fails(function () { - // eslint-disable-next-line no-undef - new Int8Array(1).slice(); - }); - - // `%TypedArray%.prototype.slice` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.slice - exportTypedArrayMethod$i('slice', function slice(start, end) { - var list = $slice.call(aTypedArray$i(this), start, end); - var C = speciesConstructor(this, this.constructor); - var index = 0; - var length = list.length; - var result = new (aTypedArrayConstructor$4(C))(length); - while (length > index) result[index] = list[index++]; - return result; - }, FORCED$6); - - var $some = arrayIteration.some; - - var aTypedArray$j = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$j = arrayBufferViewCore.exportTypedArrayMethod; - - // `%TypedArray%.prototype.some` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.some - exportTypedArrayMethod$j('some', function some(callbackfn /* , thisArg */) { - return $some(aTypedArray$j(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); - }); - - var aTypedArray$k = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$k = arrayBufferViewCore.exportTypedArrayMethod; - var $sort = [].sort; - - // `%TypedArray%.prototype.sort` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.sort - exportTypedArrayMethod$k('sort', function sort(comparefn) { - return $sort.call(aTypedArray$k(this), comparefn); - }); - - var aTypedArray$l = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$l = arrayBufferViewCore.exportTypedArrayMethod; - - // `%TypedArray%.prototype.subarray` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.subarray - exportTypedArrayMethod$l('subarray', function subarray(begin, end) { - var O = aTypedArray$l(this); - var length = O.length; - var beginIndex = toAbsoluteIndex(begin, length); - return new (speciesConstructor(O, O.constructor))( - O.buffer, - O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT, - toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex) - ); - }); - - var Int8Array$3 = global_1.Int8Array; - var aTypedArray$m = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$m = arrayBufferViewCore.exportTypedArrayMethod; - var $toLocaleString = [].toLocaleString; - var $slice$1 = [].slice; - - // iOS Safari 6.x fails here - var TO_LOCALE_STRING_BUG = !!Int8Array$3 && fails(function () { - $toLocaleString.call(new Int8Array$3(1)); - }); - - var FORCED$7 = fails(function () { - return [1, 2].toLocaleString() != new Int8Array$3([1, 2]).toLocaleString(); - }) || !fails(function () { - Int8Array$3.prototype.toLocaleString.call([1, 2]); - }); - - // `%TypedArray%.prototype.toLocaleString` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tolocalestring - exportTypedArrayMethod$m('toLocaleString', function toLocaleString() { - return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice$1.call(aTypedArray$m(this)) : aTypedArray$m(this), arguments); - }, FORCED$7); - - var exportTypedArrayMethod$n = arrayBufferViewCore.exportTypedArrayMethod; - - - - var Uint8Array$1 = global_1.Uint8Array; - var Uint8ArrayPrototype = Uint8Array$1 && Uint8Array$1.prototype || {}; - var arrayToString = [].toString; - var arrayJoin = [].join; - - if (fails(function () { arrayToString.call({}); })) { - arrayToString = function toString() { - return arrayJoin.call(this); - }; - } - - var IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString; - - // `%TypedArray%.prototype.toString` method - // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tostring - exportTypedArrayMethod$n('toString', arrayToString, IS_NOT_ARRAY_METHOD); - - /** - * Truncates given string to the maximum characters count - * - * @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 (typeof str !== 'string' || max === 0) { - return str; - } - - return str.length <= max ? str : str.substr(0, max) + "..."; - } - /** - * 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 - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - - function safeJoin(input, delimiter) { - if (!Array.isArray(input)) { - return ''; - } - - var output = []; // eslint-disable-next-line @typescript-eslint/prefer-for-of - - 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); - } - /** - * Checks if the value matches a regex or includes the string - * @param value The string value to be checked against - * @param pattern Either a regex or a string that must be contained in value - */ - - function isMatchingPattern(value, pattern) { - if (!isString(value)) { - return false; - } - - if (isRegExp(pattern)) { - return pattern.test(value); - } - - if (typeof pattern === 'string') { - return value.indexOf(pattern) !== -1; - } - - return false; - } - - /** - * Requires a module which is protected against bundler minification. - * - * @param request The module path to resolve - */ - // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types - - function dynamicRequire(mod, request) { - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - return mod.require(request); - } - /** - * Checks whether we're in the Node.js or Browser environment - * - * @returns Answer to given question - */ - - function isNodeEnv() { - return Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'; - } - var fallbackGlobalObject = {}; - /** - * Safely get global scope object - * - * @returns Global scope object - */ - - function getGlobalObject() { - return isNodeEnv() ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : fallbackGlobalObject; - } - /** - * 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 - // eslint-disable-next-line no-bitwise - - arr[3] = arr[3] & 0xfff | 0x4000; // set 2 most significant bits of byte 9 to '10' - // eslint-disable-next-line no-bitwise - - arr[4] = arr[4] & 0x3fff | 0x8000; - - var pad = function pad(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]); - } // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523 - - - return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) { - // eslint-disable-next-line no-bitwise - var r = Math.random() * 16 | 0; // eslint-disable-next-line no-bitwise - - var v = c === 'x' ? r : r & 0x3 | 0x8; - return v.toString(16); - }); - } - /** - * 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 - }; - } - /** - * 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; - } - - 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; - } - - return exception.type || exception.value || event.event_id || ''; - } - - return event.event_id || ''; - } - /** JSDoc */ - - function consoleSandbox(callback) { - var global = getGlobalObject(); - var levels = ['debug', 'info', 'warn', 'error', 'log', 'assert']; - - 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_original__) { - wrappedLevels[level] = originalConsole[level]; - 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; - } - /** - * Adds exception values, type and value to an synthetic Exception. - * @param event The event to modify. - * @param value Value of the exception. - * @param type Type of the exception. - * @hidden - */ - - function addExceptionTypeValue(event, value, type) { - event.exception = event.exception || {}; - event.exception.values = event.exception.values || []; - event.exception.values[0] = event.exception.values[0] || {}; - event.exception.values[0].value = event.exception.values[0].value || value || ''; - event.exception.values[0].type = event.exception.values[0].type || type || 'Error'; - } - /** - * Adds exception mechanism to a given event. - * @param event The event to modify. - * @param mechanism Mechanism of the mechanism. - * @hidden - */ - - function addExceptionMechanism(event, mechanism) { - if (mechanism === void 0) { - mechanism = {}; - } // TODO: Use real type with `keyof Mechanism` thingy and maybe make it better? - - - try { - // @ts-ignore Type 'Mechanism | {}' is not assignable to type 'Mechanism | undefined' - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - event.exception.values[0].mechanism = event.exception.values[0].mechanism || {}; - Object.keys(mechanism).forEach(function (key) { - // @ts-ignore Mechanism has no index signature - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - event.exception.values[0].mechanism[key] = mechanism[key]; - }); - } catch (_oO) {// no-empty - } - } - /** - * A safe form of location.href - */ - - function getLocationHref() { - try { - return document.location.href; - } catch (oO) { - return ''; - } - } - /** - * 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) { - // try/catch both: - // - accessing event.target (see getsentry/raven-js#838, #768) - // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly - // - can throw an exception in some circumstances. - try { - 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 = void 0; // eslint-disable-next-line no-plusplus - - 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); - } catch (_oO) { - return ''; - } - } - /** - * Returns a simple, query-selector representation of a DOM element - * e.g. [HTMLElement] => input#foo.btn[name=baz] - * @returns generated DOM path - */ - - function _htmlElementAsString(el) { - var elem = el; - 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); - } // eslint-disable-next-line prefer-const - - - className = elem.className; - - if (className && isString(className)) { - classes = className.split(/\s+/); - - for (i = 0; i < classes.length; i++) { - out.push("." + classes[i]); - } - } - - var allowedAttrs = ['type', 'name', 'title', 'alt']; - - for (i = 0; i < allowedAttrs.length; i++) { - key = allowedAttrs[i]; - attr = elem.getAttribute(key); - - if (attr) { - out.push("[" + key + "=\"" + attr + "\"]"); - } - } - - return out.join(''); - } - - var INITIAL_TIME = Date.now(); - var prevNow = 0; - var performanceFallback = { - now: function now() { - var now = Date.now() - INITIAL_TIME; - - if (now < prevNow) { - now = prevNow; - } - - prevNow = now; - return now; - }, - timeOrigin: INITIAL_TIME - }; - var crossPlatformPerformance = function () { - if (isNodeEnv()) { - try { - var perfHooks = dynamicRequire(module, 'perf_hooks'); - return perfHooks.performance; - } catch (_) { - return performanceFallback; - } - } - - var performance = getGlobalObject().performance; - - if (!performance || !performance.now) { - return performanceFallback; - } // Polyfill for performance.timeOrigin. - // - // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin - // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing. - - - if (performance.timeOrigin === undefined) { - // As of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always a - // valid fallback. In the absence of a initial time provided by the browser, fallback to INITIAL_TIME. - // @ts-ignore ignored because timeOrigin is a readonly property but we want to override - // eslint-disable-next-line deprecation/deprecation - performance.timeOrigin = performance.timing && performance.timing.navigationStart || INITIAL_TIME; - } - - return performance; - }(); - /** - * Returns a timestamp in seconds with milliseconds precision since the UNIX epoch calculated with the monotonic clock. - */ - - function timestampWithMs() { - return (crossPlatformPerformance.timeOrigin + crossPlatformPerformance.now()) / 1000; - } // https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string - var defaultRetryAfter = 60 * 1000; // 60 seconds - - /** - * Extracts Retry-After value from the request header or returns default value - * @param now current unix timestamp - * @param header string representation of 'Retry-After' header - */ - - function parseRetryAfterHeader(now, header) { - if (!header) { - return defaultRetryAfter; - } - - var headerDelay = parseInt("" + header, 10); - - if (!isNaN(headerDelay)) { - return headerDelay * 1000; - } - - var headerDate = Date.parse("" + header); - - if (!isNaN(headerDate)) { - return headerDate - now; - } - - return defaultRetryAfter; - } - var defaultFunctionName = ''; - /** - * Safely extract function name from itself - */ - - function getFunctionName(fn) { - try { - if (!fn || typeof fn !== 'function') { - return defaultFunctionName; - } - - return fn.name || defaultFunctionName; - } catch (e) { - // Just accessing custom props in some Selenium environments - // can cause a "Permission denied" exception (see raven-js#495). - return defaultFunctionName; - } - } - - var global$1 = getGlobalObject(); - /** Prefix for logging strings */ - - var PREFIX = 'Sentry Logger '; - /** 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; - } - - consoleSandbox(function () { - global$1.console.log(PREFIX + "[Log]: " + args.join(' ')); - }); - }; - /** JSDoc */ - - - Logger.prototype.warn = function () { - var args = []; - - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - - if (!this._enabled) { - return; - } - - consoleSandbox(function () { - global$1.console.warn(PREFIX + "[Warn]: " + args.join(' ')); - }); - }; - /** JSDoc */ - - - Logger.prototype.error = function () { - var args = []; - - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - - if (!this._enabled) { - return; - } - - consoleSandbox(function () { - global$1.console.error(PREFIX + "[Error]: " + args.join(' ')); - }); - }; - - return Logger; - }(); // Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used - - - global$1.__SENTRY__ = global$1.__SENTRY__ || {}; - var logger = global$1.__SENTRY__.logger || (global$1.__SENTRY__.logger = new Logger()); - - var HAS_SPECIES_SUPPORT$2 = arrayMethodHasSpeciesSupport('splice'); - var USES_TO_LENGTH$6 = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 }); - - var max$3 = Math.max; - var min$6 = Math.min; - var MAX_SAFE_INTEGER$1 = 0x1FFFFFFFFFFFFF; - var MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded'; - - // `Array.prototype.splice` method - // https://tc39.github.io/ecma262/#sec-array.prototype.splice - // with adding support of @@species - _export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$2 || !USES_TO_LENGTH$6 }, { - splice: function splice(start, deleteCount /* , ...items */) { - var O = toObject(this); - var len = toLength(O.length); - var actualStart = toAbsoluteIndex(start, len); - var argumentsLength = arguments.length; - var insertCount, actualDeleteCount, A, k, from, to; - if (argumentsLength === 0) { - insertCount = actualDeleteCount = 0; - } else if (argumentsLength === 1) { - insertCount = 0; - actualDeleteCount = len - actualStart; - } else { - insertCount = argumentsLength - 2; - actualDeleteCount = min$6(max$3(toInteger(deleteCount), 0), len - actualStart); - } - if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER$1) { - throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED); - } - A = arraySpeciesCreate(O, actualDeleteCount); - for (k = 0; k < actualDeleteCount; k++) { - from = actualStart + k; - if (from in O) createProperty(A, k, O[from]); - } - A.length = actualDeleteCount; - if (insertCount < actualDeleteCount) { - for (k = actualStart; k < len - actualDeleteCount; k++) { - from = k + actualDeleteCount; - to = k + insertCount; - if (from in O) O[to] = O[from]; - else delete O[to]; - } - for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1]; - } else if (insertCount > actualDeleteCount) { - for (k = len - actualDeleteCount; k > actualStart; k--) { - from = k + actualDeleteCount - 1; - to = k + insertCount - 1; - if (from in O) O[to] = O[from]; - else delete O[to]; - } - } - for (k = 0; k < insertCount; k++) { - O[k + actualStart] = arguments[k + 2]; - } - O.length = len - actualDeleteCount + insertCount; - return A; - } - }); - - var freezing = !fails(function () { - return Object.isExtensible(Object.preventExtensions({})); - }); - - var internalMetadata = createCommonjsModule(function (module) { - var defineProperty = objectDefineProperty.f; - - - - var METADATA = uid('meta'); - var id = 0; - - var isExtensible = Object.isExtensible || function () { - return true; - }; - - var setMetadata = function (it) { - defineProperty(it, METADATA, { value: { - objectID: 'O' + ++id, // object ID - weakData: {} // weak collections IDs - } }); - }; - - var fastKey = function (it, create) { - // return a primitive with prefix - if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if (!has(it, METADATA)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return 'F'; - // not necessary to add metadata - if (!create) return 'E'; - // add missing metadata - setMetadata(it); - // return object ID - } return it[METADATA].objectID; - }; - - var getWeakData = function (it, create) { - if (!has(it, METADATA)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return true; - // not necessary to add metadata - if (!create) return false; - // add missing metadata - setMetadata(it); - // return the store of weak collections IDs - } return it[METADATA].weakData; - }; - - // add metadata on freeze-family methods calling - var onFreeze = function (it) { - if (freezing && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it); - return it; - }; - - var meta = module.exports = { - REQUIRED: false, - fastKey: fastKey, - getWeakData: getWeakData, - onFreeze: onFreeze - }; - - hiddenKeys[METADATA] = true; - }); - var internalMetadata_1 = internalMetadata.REQUIRED; - var internalMetadata_2 = internalMetadata.fastKey; - var internalMetadata_3 = internalMetadata.getWeakData; - var internalMetadata_4 = internalMetadata.onFreeze; - - var collection = function (CONSTRUCTOR_NAME, wrapper, common) { - var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; - var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; - var ADDER = IS_MAP ? 'set' : 'add'; - var NativeConstructor = global_1[CONSTRUCTOR_NAME]; - var NativePrototype = NativeConstructor && NativeConstructor.prototype; - var Constructor = NativeConstructor; - var exported = {}; - - var fixMethod = function (KEY) { - var nativeMethod = NativePrototype[KEY]; - redefine(NativePrototype, KEY, - KEY == 'add' ? function add(value) { - nativeMethod.call(this, value === 0 ? 0 : value); - return this; - } : KEY == 'delete' ? function (key) { - return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key); - } : KEY == 'get' ? function get(key) { - return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key); - } : KEY == 'has' ? function has(key) { - return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key); - } : function set(key, value) { - nativeMethod.call(this, key === 0 ? 0 : key, value); - return this; - } - ); - }; - - // eslint-disable-next-line max-len - if (isForced_1(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () { - new NativeConstructor().entries().next(); - })))) { - // create collection constructor - Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); - internalMetadata.REQUIRED = true; - } else if (isForced_1(CONSTRUCTOR_NAME, true)) { - var instance = new Constructor(); - // early implementations not supports chaining - var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; - // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false - var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); - // most early implementations doesn't supports iterables, most modern - not close it correctly - // eslint-disable-next-line no-new - var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); }); - // for early implementations -0 and +0 not the same - var BUGGY_ZERO = !IS_WEAK && fails(function () { - // V8 ~ Chromium 42- fails only with 5+ elements - var $instance = new NativeConstructor(); - var index = 5; - while (index--) $instance[ADDER](index, index); - return !$instance.has(-0); - }); - - if (!ACCEPT_ITERABLES) { - Constructor = wrapper(function (dummy, iterable) { - anInstance(dummy, Constructor, CONSTRUCTOR_NAME); - var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); - if (iterable != undefined) iterate_1(iterable, that[ADDER], that, IS_MAP); - return that; - }); - Constructor.prototype = NativePrototype; - NativePrototype.constructor = Constructor; - } - - if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { - fixMethod('delete'); - fixMethod('has'); - IS_MAP && fixMethod('get'); - } - - if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); - - // weak collections should not contains .clear method - if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear; - } - - exported[CONSTRUCTOR_NAME] = Constructor; - _export({ global: true, forced: Constructor != NativeConstructor }, exported); - - setToStringTag(Constructor, CONSTRUCTOR_NAME); - - if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); - - return Constructor; - }; - - var getWeakData = internalMetadata.getWeakData; - - - - - - - - - var setInternalState$8 = internalState.set; - var internalStateGetterFor = internalState.getterFor; - var find$1 = arrayIteration.find; - var findIndex = arrayIteration.findIndex; - var id$1 = 0; - - // fallback for uncaught frozen keys - var uncaughtFrozenStore = function (store) { - return store.frozen || (store.frozen = new UncaughtFrozenStore()); - }; - - var UncaughtFrozenStore = function () { - this.entries = []; - }; - - var findUncaughtFrozen = function (store, key) { - return find$1(store.entries, function (it) { - return it[0] === key; - }); - }; - - UncaughtFrozenStore.prototype = { - get: function (key) { - var entry = findUncaughtFrozen(this, key); - if (entry) return entry[1]; - }, - has: function (key) { - return !!findUncaughtFrozen(this, key); - }, - set: function (key, value) { - var entry = findUncaughtFrozen(this, key); - if (entry) entry[1] = value; - else this.entries.push([key, value]); - }, - 'delete': function (key) { - var index = findIndex(this.entries, function (it) { - return it[0] === key; - }); - if (~index) this.entries.splice(index, 1); - return !!~index; - } - }; - - var collectionWeak = { - getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance(that, C, CONSTRUCTOR_NAME); - setInternalState$8(that, { - type: CONSTRUCTOR_NAME, - id: id$1++, - frozen: undefined - }); - if (iterable != undefined) iterate_1(iterable, that[ADDER], that, IS_MAP); - }); - - var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); - - var define = function (that, key, value) { - var state = getInternalState(that); - var data = getWeakData(anObject(key), true); - if (data === true) uncaughtFrozenStore(state).set(key, value); - else data[state.id] = value; - return that; - }; - - redefineAll(C.prototype, { - // 23.3.3.2 WeakMap.prototype.delete(key) - // 23.4.3.3 WeakSet.prototype.delete(value) - 'delete': function (key) { - var state = getInternalState(this); - if (!isObject(key)) return false; - var data = getWeakData(key); - if (data === true) return uncaughtFrozenStore(state)['delete'](key); - return data && has(data, state.id) && delete data[state.id]; - }, - // 23.3.3.4 WeakMap.prototype.has(key) - // 23.4.3.4 WeakSet.prototype.has(value) - has: function has$1(key) { - var state = getInternalState(this); - if (!isObject(key)) return false; - var data = getWeakData(key); - if (data === true) return uncaughtFrozenStore(state).has(key); - return data && has(data, state.id); - } - }); - - redefineAll(C.prototype, IS_MAP ? { - // 23.3.3.3 WeakMap.prototype.get(key) - get: function get(key) { - var state = getInternalState(this); - if (isObject(key)) { - var data = getWeakData(key); - if (data === true) return uncaughtFrozenStore(state).get(key); - return data ? data[state.id] : undefined; - } - }, - // 23.3.3.5 WeakMap.prototype.set(key, value) - set: function set(key, value) { - return define(this, key, value); - } - } : { - // 23.4.3.1 WeakSet.prototype.add(value) - add: function add(value) { - return define(this, value, true); - } - }); - - return C; - } - }; - - // `WeakSet` constructor - // https://tc39.github.io/ecma262/#sec-weakset-constructor - collection('WeakSet', function (init) { - return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); }; - }, collectionWeak); - - /* eslint-disable @typescript-eslint/no-unsafe-member-access */ - - /* eslint-disable @typescript-eslint/no-explicit-any */ - - /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ - - /** - * Memo class used for decycle json objects. Uses WeakSet if available otherwise array. - */ - var Memo = - /** @class */ - function () { - function Memo() { - this._hasWeakSet = typeof WeakSet === 'function'; - this._inner = this._hasWeakSet ? new WeakSet() : []; - } - /** - * Sets obj to remember. - * @param obj Object to remember - */ - - - Memo.prototype.memoize = function (obj) { - if (this._hasWeakSet) { - if (this._inner.has(obj)) { - return true; - } - - this._inner.add(obj); - - return false; - } // eslint-disable-next-line @typescript-eslint/prefer-for-of - - - for (var i = 0; i < this._inner.length; i++) { - var value = this._inner[i]; - - if (value === obj) { - return true; - } - } - - this._inner.push(obj); - - return false; - }; - /** - * Removes object from internal storage. - * @param obj Object to forget - */ - - - Memo.prototype.unmemoize = function (obj) { - if (this._hasWeakSet) { - this._inner.delete(obj); - } else { - for (var i = 0; i < this._inner.length; i++) { - if (this._inner[i] === obj) { - this._inner.splice(i, 1); - - break; - } - } - } - }; - - return Memo; - }(); - - // `URL.prototype.toJSON` method - // https://url.spec.whatwg.org/#dom-url-tojson - _export({ target: 'URL', proto: true, enumerable: true }, { - toJSON: function toJSON() { - return URL.prototype.toString.call(this); - } - }); - - /** - * 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)) { - return; - } - - var original = source[name]; - var wrapped = replacement(original); // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work - // otherwise it'll throw "TypeError: Object.defineProperties called on non-object" - - if (typeof wrapped === 'function') { - try { - wrapped.prototype = wrapped.prototype || {}; - Object.defineProperties(wrapped, { - __sentry_original__: { - enumerable: false, - value: original - } - }); - } catch (_Oo) {// This can throw if multiple fill happens on a global object like XMLHttpRequest - // Fixes https://github.com/getsentry/sentry-javascript/issues/2043 - } - } - - source[name] = wrapped; - } - /** - * 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(function (key) { - return encodeURIComponent(key) + "=" + encodeURIComponent(object[key]); - }).join('&'); - } - /** - * Transforms any object into an object literal with all it's attributes - * attached to it. - * - * @param value Initial source that we have to transform in order to be usable by the serializer - */ - - function getWalkSource(value) { - if (isError(value)) { - var error = value; - 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; - } - - if (isEvent(value)) { - var event_1 = value; - var source = {}; - source.type = event_1.type; // Accessing event.target can throw (see getsentry/raven-js#838, #768) - - try { - source.target = isElement(event_1.target) ? htmlTreeAsString(event_1.target) : Object.prototype.toString.call(event_1.target); - } catch (_oO) { - source.target = ''; - } - - try { - source.currentTarget = isElement(event_1.currentTarget) ? htmlTreeAsString(event_1.currentTarget) : Object.prototype.toString.call(event_1.currentTarget); - } catch (_oO) { - source.currentTarget = ''; - } - - if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) { - source.detail = event_1.detail; - } - - for (var i in event_1) { - if (Object.prototype.hasOwnProperty.call(event_1, i)) { - source[i] = event_1; - } - } - - return source; - } - - return value; - } - /** Calculates bytes size of input string */ - - - function utf8Length(value) { - // eslint-disable-next-line no-bitwise - return ~-encodeURI(value).split(/%..|./).length; - } - /** Calculates bytes size of input object */ - - - function jsonSize(value) { - return utf8Length(JSON.stringify(value)); - } - /** JSDoc */ - - - function normalizeToSize(object, // Default Node.js REPL depth - depth, // 100kB, as 200kB is max payload size, so half sounds reasonable - maxSize) { - if (depth === void 0) { - depth = 3; - } - - if (maxSize === void 0) { - maxSize = 100 * 1024; - } - - var serialized = normalize$1(object, depth); - - if (jsonSize(serialized) > maxSize) { - return normalizeToSize(object, depth - 1, maxSize); - } - - return serialized; - } - /** Transforms any input value into a string form, either primitive value or a type of the input */ - - function serializeValue(value) { - var type = Object.prototype.toString.call(value); // Node.js REPL notation - - if (typeof value === 'string') { - return value; - } - - if (type === '[object Object]') { - return '[Object]'; - } - - if (type === '[object Array]') { - return '[Array]'; - } - - var normalized = normalizeValue(value); - return isPrimitive(normalized) ? normalized : type; - } - /** - * normalizeValue() - * - * Takes unserializable input and make it serializable friendly - * - * - translates undefined/NaN values to "[undefined]"/"[NaN]" respectively, - * - serializes Error objects - * - filter global objects - */ - - - function normalizeValue(value, key) { - if (key === 'domain' && value && _typeof(value) === 'object' && value._events) { - return '[Domain]'; - } - - if (key === 'domainEmitter') { - return '[DomainEmitter]'; - } - - if (typeof global !== 'undefined' && value === global) { - return '[Global]'; - } - - if (typeof window !== 'undefined' && value === window) { - return '[Window]'; - } - - if (typeof document !== 'undefined' && value === document) { - return '[Document]'; - } // React's SyntheticEvent thingy - - - if (isSyntheticEvent(value)) { - return '[SyntheticEvent]'; - } - - if (typeof value === 'number' && value !== value) { - return '[NaN]'; - } - - if (value === void 0) { - return '[undefined]'; - } - - if (typeof value === 'function') { - return "[Function: " + getFunctionName(value) + "]"; - } - - return value; - } - /** - * Walks an object to perform a normalization on it - * - * @param key of object that's walked in current iteration - * @param value object to be walked - * @param depth Optional number indicating how deep should walking be performed - * @param memo Optional Memo class handling decycling - */ - // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types - - - function walk(key, value, depth, memo) { - if (depth === void 0) { - depth = +Infinity; - } - - if (memo === void 0) { - memo = new Memo(); - } // If we reach the maximum depth, serialize whatever has left - - - if (depth === 0) { - return serializeValue(value); - } - /* eslint-disable @typescript-eslint/no-unsafe-member-access */ - // If value implements `toJSON` method, call it and return early - - - if (value !== null && value !== undefined && typeof value.toJSON === 'function') { - return value.toJSON(); - } - /* eslint-enable @typescript-eslint/no-unsafe-member-access */ - // If normalized value is a primitive, there are no branches left to walk, so we can just bail out, as theres no point in going down that branch any further - - - var normalized = normalizeValue(value, key); - - if (isPrimitive(normalized)) { - return normalized; - } // Create source that we will use for next itterations, either objectified error object (Error type with extracted keys:value pairs) or the input itself - - - var source = getWalkSource(value); // Create an accumulator that will act as a parent for all future itterations of that branch - - var acc = Array.isArray(value) ? [] : {}; // If we already walked that branch, bail out, as it's circular reference - - if (memo.memoize(value)) { - return '[Circular ~]'; - } // Walk all keys of the source - - - for (var innerKey in source) { - // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration. - if (!Object.prototype.hasOwnProperty.call(source, innerKey)) { - continue; - } // Recursively walk through all the child nodes - - - acc[innerKey] = walk(innerKey, source[innerKey], depth - 1, memo); - } // Once walked through all the branches, remove the parent from memo storage - - - memo.unmemoize(value); // Return accumulated values - - return acc; - } - /** - * normalize() - * - * - Creates a copy to prevent original input mutation - * - Skip non-enumerablers - * - Calls `toJSON` if implemented - * - Removes circular references - * - Translates non-serializeable values (undefined/NaN/Functions) to serializable format - * - Translates known global objects/Classes to a string representations - * - Takes care of Error objects serialization - * - Optionally limit depth of final output - */ - // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types - - function normalize$1(input, depth) { - try { - return JSON.parse(JSON.stringify(input, function (key, value) { - return walk(key, value, depth); - })); - } catch (_oO) { - return '**non-serializable**'; - } - } - /** - * Given any captured exception, extract its keys and create a sorted - * and truncated list that will be used inside the event message. - * eg. `Non-error exception captured with keys: foo, bar, baz` - */ - // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types - - function extractExceptionKeysForMessage(exception, maxLength) { - if (maxLength === void 0) { - maxLength = 40; - } - - var keys = Object.keys(getWalkSource(exception)); - keys.sort(); - - if (!keys.length) { - return '[object has no keys]'; - } - - if (keys[0].length >= maxLength) { - return truncate(keys[0], maxLength); - } - - 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 truncate(serialized, maxLength); - } - - return ''; - } - - var $filter$1 = arrayIteration.filter; - - - - var HAS_SPECIES_SUPPORT$3 = arrayMethodHasSpeciesSupport('filter'); - // Edge 14- issue - var USES_TO_LENGTH$7 = arrayMethodUsesToLength('filter'); - - // `Array.prototype.filter` method - // https://tc39.github.io/ecma262/#sec-array.prototype.filter - // with adding support of @@species - _export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$3 || !USES_TO_LENGTH$7 }, { - filter: function filter(callbackfn /* , thisArg */) { - return $filter$1(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } - }); - - // Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829 - var NON_GENERIC = !!nativePromiseConstructor && fails(function () { - nativePromiseConstructor.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ }); - }); - - // `Promise.prototype.finally` method - // https://tc39.github.io/ecma262/#sec-promise.prototype.finally - _export({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, { - 'finally': function (onFinally) { - var C = speciesConstructor(this, getBuiltIn('Promise')); - var isFunction = typeof onFinally == 'function'; - return this.then( - isFunction ? function (x) { - return promiseResolve(C, onFinally()).then(function () { return x; }); - } : onFinally, - isFunction ? function (e) { - return promiseResolve(C, onFinally()).then(function () { throw e; }); - } : onFinally - ); - } - }); - - // patch native Promise.prototype for native async functions - if ( typeof nativePromiseConstructor == 'function' && !nativePromiseConstructor.prototype['finally']) { - redefine(nativePromiseConstructor.prototype, 'finally', getBuiltIn('Promise').prototype['finally']); - } - - /** SyncPromise internal states */ - - var States; - - (function (States) { - /** Pending */ - States["PENDING"] = "PENDING"; - /** Resolved / OK */ - - States["RESOLVED"] = "RESOLVED"; - /** Rejected / Error */ - - States["REJECTED"] = "REJECTED"; - })(States || (States = {})); - /** - * Thenable class that behaves like a Promise and follows it's interface - * but is not async internally - */ - - - var SyncPromise = - /** @class */ - function () { - function SyncPromise(executor) { - var _this = this; - - this._state = States.PENDING; - this._handlers = []; - /** JSDoc */ - - this._resolve = function (value) { - _this._setResult(States.RESOLVED, value); - }; - /** JSDoc */ - - - this._reject = function (reason) { - _this._setResult(States.REJECTED, reason); - }; - /** JSDoc */ - - - this._setResult = function (state, value) { - if (_this._state !== States.PENDING) { - return; - } - - if (isThenable$1(value)) { - value.then(_this._resolve, _this._reject); - return; - } - - _this._state = state; - _this._value = value; - - _this._executeHandlers(); - }; // TODO: FIXME - - /** JSDoc */ - - - this._attachHandler = function (handler) { - _this._handlers = _this._handlers.concat(handler); - - _this._executeHandlers(); - }; - /** JSDoc */ - - - this._executeHandlers = function () { - if (_this._state === States.PENDING) { - return; - } - - var cachedHandlers = _this._handlers.slice(); - - _this._handlers = []; - cachedHandlers.forEach(function (handler) { - if (handler.done) { - return; - } - - if (_this._state === States.RESOLVED) { - if (handler.onfulfilled) { - // eslint-disable-next-line @typescript-eslint/no-floating-promises - handler.onfulfilled(_this._value); - } - } - - if (_this._state === States.REJECTED) { - if (handler.onrejected) { - handler.onrejected(_this._value); - } - } - - handler.done = true; - }); - }; - - try { - executor(this._resolve, this._reject); - } catch (e) { - this._reject(e); - } - } - /** JSDoc */ - - - SyncPromise.resolve = function (value) { - return new SyncPromise(function (resolve) { - resolve(value); - }); - }; - /** JSDoc */ - - - SyncPromise.reject = function (reason) { - return new SyncPromise(function (_, reject) { - reject(reason); - }); - }; - /** JSDoc */ - - - SyncPromise.all = function (collection) { - return new SyncPromise(function (resolve, reject) { - if (!Array.isArray(collection)) { - reject(new TypeError("Promise.all requires an array as input.")); - return; - } - - if (collection.length === 0) { - resolve([]); - return; - } - - var counter = collection.length; - var resolvedCollection = []; - collection.forEach(function (item, index) { - SyncPromise.resolve(item).then(function (value) { - resolvedCollection[index] = value; - counter -= 1; - - if (counter !== 0) { - return; - } - - resolve(resolvedCollection); - }).then(null, reject); - }); - }); - }; - /** JSDoc */ - - - SyncPromise.prototype.then = function (_onfulfilled, _onrejected) { - var _this = this; - - return new SyncPromise(function (resolve, reject) { - _this._attachHandler({ - done: false, - onfulfilled: function onfulfilled(result) { - if (!_onfulfilled) { - // TODO: ¯\_(ツ)_/¯ - // TODO: FIXME - resolve(result); - return; - } - - try { - resolve(_onfulfilled(result)); - return; - } catch (e) { - reject(e); - return; - } - }, - onrejected: function onrejected(reason) { - if (!_onrejected) { - reject(reason); - return; - } - - try { - resolve(_onrejected(reason)); - return; - } catch (e) { - reject(e); - return; - } - } - }); - }); - }; - /** JSDoc */ - - - SyncPromise.prototype.catch = function (onrejected) { - return this.then(function (val) { - return val; - }, onrejected); - }; - /** JSDoc */ - - - SyncPromise.prototype.finally = function (onfinally) { - var _this = this; - - return new SyncPromise(function (resolve, reject) { - var val; - var isRejected; - return _this.then(function (value) { - isRejected = false; - val = value; - - if (onfinally) { - onfinally(); - } - }, function (reason) { - isRejected = true; - val = reason; - - if (onfinally) { - onfinally(); - } - }).then(function () { - if (isRejected) { - reject(val); - return; - } - - resolve(val); - }); - }); - }; - /** JSDoc */ - - - SyncPromise.prototype.toString = function () { - return '[object SyncPromise]'; - }; - - return SyncPromise; - }(); - - /** A simple queue that holds promises. */ - - var PromiseBuffer = - /** @class */ - function () { - function PromiseBuffer(_limit) { - this._limit = _limit; - /** Internal set of queued Promises */ - - this._buffer = []; - } - /** - * Says if the buffer is ready to take more requests - */ - - - PromiseBuffer.prototype.isReady = function () { - return this._limit === undefined || this.length() < this._limit; - }; - /** - * Add a promise to the queue. - * - * @param task Can be any PromiseLike - * @returns The original promise. - */ - - - PromiseBuffer.prototype.add = function (task) { - var _this = this; - - if (!this.isReady()) { - return SyncPromise.reject(new SentryError('Not adding Promise due to buffer limit reached.')); - } - - if (this._buffer.indexOf(task) === -1) { - this._buffer.push(task); - } - - task.then(function () { - return _this.remove(task); - }).then(null, function () { - return _this.remove(task).then(null, function () {// We have to add this catch here otherwise we have an unhandledPromiseRejection - // because it's a new Promise chain. - }); - }); - return task; - }; - /** - * Remove a promise to the queue. - * - * @param task Can be any PromiseLike - * @returns Removed promise. - */ - - - PromiseBuffer.prototype.remove = function (task) { - var removedTask = this._buffer.splice(this._buffer.indexOf(task), 1)[0]; - - return removedTask; - }; - /** - * This function returns the number of unresolved promises in the queue. - */ - - - PromiseBuffer.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. - */ - - - PromiseBuffer.prototype.drain = function (timeout) { - var _this = this; - - return new SyncPromise(function (resolve) { - var capturedSetTimeout = setTimeout(function () { - if (timeout && timeout > 0) { - resolve(false); - } - }, timeout); - SyncPromise.all(_this._buffer).then(function () { - clearTimeout(capturedSetTimeout); - resolve(true); - }).then(null, function () { - resolve(true); - }); - }); - }; - - return PromiseBuffer; - }(); - - /** - * Tells whether current environment supports Fetch API - * {@link supportsFetch}. - * - * @returns Answer to the given question. - */ - - function supportsFetch() { - if (!('fetch' in getGlobalObject())) { - return false; - } - - try { - new Headers(); - new Request(''); - new Response(); - return true; - } catch (e) { - return false; - } - } - /** - * isNativeFetch checks if the given function is a native implementation of fetch() - */ - // eslint-disable-next-line @typescript-eslint/ban-types - - function isNativeFetch(func) { - return func && /^function fetch\(\)\s+\{\s+\[native code\]\s+\}$/.test(func.toString()); - } - /** - * Tells whether current environment supports Fetch API natively - * {@link supportsNativeFetch}. - * - * @returns true if `window.fetch` is natively implemented, false otherwise - */ - - - function supportsNativeFetch() { - if (!supportsFetch()) { - return false; - } - - var global = getGlobalObject(); // Fast path to avoid DOM I/O - // eslint-disable-next-line @typescript-eslint/unbound-method - - if (isNativeFetch(global.fetch)) { - return true; - } // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension) - // so create a "pure" iframe to see if that has native fetch - - - var result = false; - var doc = global.document; // eslint-disable-next-line deprecation/deprecation - - if (doc && typeof doc.createElement === "function") { - try { - var sandbox = doc.createElement('iframe'); - sandbox.hidden = true; - doc.head.appendChild(sandbox); - - if (sandbox.contentWindow && sandbox.contentWindow.fetch) { - // eslint-disable-next-line @typescript-eslint/unbound-method - result = isNativeFetch(sandbox.contentWindow.fetch); - } - - doc.head.removeChild(sandbox); - } catch (err) { - logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err); - } - } - - return result; - } - /** - * Tells whether current environment supports Referrer Policy API - * {@link supportsReferrerPolicy}. - * - * @returns Answer to the given question. - */ - - function supportsReferrerPolicy() { - // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default - // https://caniuse.com/#feat=referrer-policy - // It doesn't. And it throw exception instead of ignoring this parameter... - // REF: https://github.com/getsentry/raven-js/issues/1233 - if (!supportsFetch()) { - return false; - } - - try { - new Request('_', { - referrerPolicy: 'origin' - }); - return true; - } catch (e) { - return false; - } - } - /** - * Tells whether current environment supports History API - * {@link supportsHistory}. - * - * @returns Answer to the given question. - */ - - function supportsHistory() { - // NOTE: in Chrome App environment, touching history.pushState, *even inside - // a try/catch block*, will cause Chrome to output an error to console.error - // borrowed from: https://github.com/angular/angular.js/pull/13945/files - var global = getGlobalObject(); - /* eslint-disable @typescript-eslint/no-unsafe-member-access */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - - var chrome = global.chrome; - var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime; - /* eslint-enable @typescript-eslint/no-unsafe-member-access */ - - var hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState; - return !isChromePackagedApp && hasHistoryApi; - } - - var global$2 = getGlobalObject(); - /** - * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc. - * - Console API - * - Fetch API - * - XHR API - * - History API - * - DOM API (click/typing) - * - Error API - * - UnhandledRejection API - */ - - var handlers = {}; - var instrumented = {}; - /** Instruments given API */ - - function instrument(type) { - if (instrumented[type]) { - return; - } - - instrumented[type] = true; - - switch (type) { - case 'console': - instrumentConsole(); - break; - - case 'dom': - instrumentDOM(); - break; - - case 'xhr': - instrumentXHR(); - break; - - case 'fetch': - instrumentFetch(); - break; - - case 'history': - instrumentHistory(); - break; - - case 'error': - instrumentError(); - break; - - case 'unhandledrejection': - instrumentUnhandledRejection(); - break; - - default: - logger.warn('unknown instrumentation type:', type); - } - } - /** - * Add handler that will be called when given type of instrumentation triggers. - * Use at your own risk, this might break without changelog notice, only used internally. - * @hidden - */ - - - function addInstrumentationHandler(handler) { - if (!handler || typeof handler.type !== 'string' || typeof handler.callback !== 'function') { - return; - } - - handlers[handler.type] = handlers[handler.type] || []; - handlers[handler.type].push(handler.callback); - instrument(handler.type); - } - /** JSDoc */ - - function triggerHandlers(type, data) { - var e_1, _a; - - if (!type || !handlers[type]) { - return; - } - - try { - for (var _b = __values(handlers[type] || []), _c = _b.next(); !_c.done; _c = _b.next()) { - var handler = _c.value; - - try { - handler(data); - } catch (e) { - logger.error("Error while triggering instrumentation handler.\nType: " + type + "\nName: " + getFunctionName(handler) + "\nError: " + e); - } - } - } 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; - } - } - } - /** JSDoc */ - - - function instrumentConsole() { - if (!('console' in global$2)) { - return; - } - - ['debug', 'info', 'warn', 'error', 'log', 'assert'].forEach(function (level) { - if (!(level in global$2.console)) { - return; - } - - fill(global$2.console, level, function (originalConsoleLevel) { - return function () { - var args = []; - - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - - triggerHandlers('console', { - args: args, - level: level - }); // this fails for some browsers. :( - - if (originalConsoleLevel) { - Function.prototype.apply.call(originalConsoleLevel, global$2.console, args); - } - }; - }); - }); - } - /** JSDoc */ - - - function instrumentFetch() { - if (!supportsNativeFetch()) { - return; - } - - fill(global$2, 'fetch', function (originalFetch) { - return function () { - var args = []; - - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - - var commonHandlerData = { - args: args, - fetchData: { - method: getFetchMethod(args), - url: getFetchUrl(args) - }, - startTimestamp: Date.now() - }; - triggerHandlers('fetch', _assign({}, commonHandlerData)); // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - - return originalFetch.apply(global$2, args).then(function (response) { - triggerHandlers('fetch', _assign(_assign({}, commonHandlerData), { - endTimestamp: Date.now(), - response: response - })); - return response; - }, function (error) { - triggerHandlers('fetch', _assign(_assign({}, commonHandlerData), { - endTimestamp: Date.now(), - error: error - })); // NOTE: If you are a Sentry user, and you are seeing this stack frame, - // it means the sentry.javascript SDK caught an error invoking your application code. - // This is expected behavior and NOT indicative of a bug with sentry.javascript. - - throw error; - }); - }; - }); - } - /* eslint-disable @typescript-eslint/no-unsafe-member-access */ - - /** Extract `method` from fetch call arguments */ - - - function getFetchMethod(fetchArgs) { - if (fetchArgs === void 0) { - fetchArgs = []; - } - - if ('Request' in global$2 && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) { - return String(fetchArgs[0].method).toUpperCase(); - } - - if (fetchArgs[1] && fetchArgs[1].method) { - return String(fetchArgs[1].method).toUpperCase(); - } - - return 'GET'; - } - /** Extract `url` from fetch call arguments */ - - - function getFetchUrl(fetchArgs) { - if (fetchArgs === void 0) { - fetchArgs = []; - } - - if (typeof fetchArgs[0] === 'string') { - return fetchArgs[0]; - } - - if ('Request' in global$2 && isInstanceOf(fetchArgs[0], Request)) { - return fetchArgs[0].url; - } - - return String(fetchArgs[0]); - } - /* eslint-enable @typescript-eslint/no-unsafe-member-access */ - - /** JSDoc */ - - - function instrumentXHR() { - if (!('XMLHttpRequest' in global$2)) { - return; - } - - var xhrproto = XMLHttpRequest.prototype; - fill(xhrproto, 'open', function (originalOpen) { - return function () { - var args = []; - - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } // eslint-disable-next-line @typescript-eslint/no-this-alias - - - var xhr = this; - var url = args[1]; - xhr.__sentry_xhr__ = { - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - method: isString(args[0]) ? args[0].toUpperCase() : args[0], - url: args[1] - }; // if Sentry key appears in URL, don't capture it as a request - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - - if (isString(url) && xhr.__sentry_xhr__.method === 'POST' && url.match(/sentry_key/)) { - xhr.__sentry_own_request__ = true; - } - - var onreadystatechangeHandler = function onreadystatechangeHandler() { - if (xhr.readyState === 4) { - try { - // touching statusCode in some platforms throws - // an exception - if (xhr.__sentry_xhr__) { - xhr.__sentry_xhr__.status_code = xhr.status; - } - } catch (e) { - /* do nothing */ - } - - triggerHandlers('xhr', { - args: args, - endTimestamp: Date.now(), - startTimestamp: Date.now(), - xhr: xhr - }); - } - }; - - if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') { - fill(xhr, 'onreadystatechange', function (original) { - return function () { - var readyStateArgs = []; - - for (var _i = 0; _i < arguments.length; _i++) { - readyStateArgs[_i] = arguments[_i]; - } - - onreadystatechangeHandler(); - return original.apply(xhr, readyStateArgs); - }; - }); - } else { - xhr.addEventListener('readystatechange', onreadystatechangeHandler); - } - - return originalOpen.apply(xhr, args); - }; - }); - fill(xhrproto, 'send', function (originalSend) { - return function () { - var args = []; - - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - - triggerHandlers('xhr', { - args: args, - startTimestamp: Date.now(), - xhr: this - }); - return originalSend.apply(this, args); - }; - }); - } - - var lastHref; - /** JSDoc */ - - function instrumentHistory() { - if (!supportsHistory()) { - return; - } - - var oldOnPopState = global$2.onpopstate; - - global$2.onpopstate = function () { - var args = []; - - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - - var to = global$2.location.href; // keep track of the current URL state, as we always receive only the updated state - - var from = lastHref; - lastHref = to; - triggerHandlers('history', { - from: from, - to: to - }); - - if (oldOnPopState) { - return oldOnPopState.apply(this, args); - } - }; - /** @hidden */ - - - function historyReplacementFunction(originalHistoryFunction) { - return function () { - var args = []; - - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - - var url = args.length > 2 ? args[2] : undefined; - - if (url) { - // coerce to string (this is what pushState does) - var from = lastHref; - var to = String(url); // keep track of the current URL state, as we always receive only the updated state - - lastHref = to; - triggerHandlers('history', { - from: from, - to: to - }); - } - - return originalHistoryFunction.apply(this, args); - }; - } - - fill(global$2.history, 'pushState', historyReplacementFunction); - fill(global$2.history, 'replaceState', historyReplacementFunction); - } - /** JSDoc */ - - - function instrumentDOM() { - if (!('document' in global$2)) { - return; - } // Capture breadcrumbs from any click that is unhandled / bubbled up all the way - // to the document. Do this before we instrument addEventListener. - - - global$2.document.addEventListener('click', domEventHandler('click', triggerHandlers.bind(null, 'dom')), false); - global$2.document.addEventListener('keypress', keypressEventHandler(triggerHandlers.bind(null, 'dom')), false); // After hooking into document bubbled up click and keypresses events, we also hook into user handled click & keypresses. - - ['EventTarget', 'Node'].forEach(function (target) { - /* eslint-disable @typescript-eslint/no-unsafe-member-access */ - var proto = global$2[target] && global$2[target].prototype; // eslint-disable-next-line no-prototype-builtins - - if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) { - return; - } - /* eslint-enable @typescript-eslint/no-unsafe-member-access */ - - - fill(proto, 'addEventListener', function (original) { - return function (eventName, fn, options) { - if (fn && fn.handleEvent) { - if (eventName === 'click') { - fill(fn, 'handleEvent', function (innerOriginal) { - return function (event) { - domEventHandler('click', triggerHandlers.bind(null, 'dom'))(event); - return innerOriginal.call(this, event); - }; - }); - } - - if (eventName === 'keypress') { - fill(fn, 'handleEvent', function (innerOriginal) { - return function (event) { - keypressEventHandler(triggerHandlers.bind(null, 'dom'))(event); - return innerOriginal.call(this, event); - }; - }); - } - } else { - if (eventName === 'click') { - domEventHandler('click', triggerHandlers.bind(null, 'dom'), true)(this); - } - - if (eventName === 'keypress') { - keypressEventHandler(triggerHandlers.bind(null, 'dom'))(this); - } - } - - return original.call(this, eventName, fn, options); - }; - }); - fill(proto, 'removeEventListener', function (original) { - return function (eventName, fn, options) { - try { - original.call(this, eventName, fn.__sentry_wrapped__, options); - } catch (e) {// ignore, accessing __sentry_wrapped__ will throw in some Selenium environments - } - - return original.call(this, eventName, fn, options); - }; - }); - }); - } - - var debounceDuration = 1000; - var debounceTimer = 0; - var keypressTimeout; - var lastCapturedEvent; - /** - * Wraps addEventListener to capture UI breadcrumbs - * @param name the event name (e.g. "click") - * @param handler function that will be triggered - * @param debounce decides whether it should wait till another event loop - * @returns wrapped breadcrumb events handler - * @hidden - */ - - function domEventHandler(name, handler, debounce) { - if (debounce === void 0) { - debounce = false; - } - - return function (event) { - // reset keypress timeout; e.g. triggering a 'click' after - // a 'keypress' will reset the keypress debounce so that a new - // set of keypresses can be recorded - keypressTimeout = undefined; // It's possible this handler might trigger multiple times for the same - // event (e.g. event propagation through node ancestors). Ignore if we've - // already captured the event. - - if (!event || lastCapturedEvent === event) { - return; - } - - lastCapturedEvent = event; - - if (debounceTimer) { - clearTimeout(debounceTimer); - } - - if (debounce) { - debounceTimer = setTimeout(function () { - handler({ - event: event, - name: name - }); - }); - } else { - handler({ - event: event, - name: name - }); - } - }; - } - /** - * Wraps addEventListener to capture keypress UI events - * @param handler function that will be triggered - * @returns wrapped keypress events handler - * @hidden - */ - - - function keypressEventHandler(handler) { - // TODO: if somehow user switches keypress target before - // debounce timeout is triggered, we will only capture - // a single breadcrumb from the FIRST target (acceptable?) - return function (event) { - var target; - - try { - target = event.target; - } catch (e) { - // just accessing event properties can throw an exception in some rare circumstances - // see: https://github.com/getsentry/raven-js/issues/838 - return; - } - - var tagName = target && target.tagName; // only consider keypress events on actual input elements - // this will disregard keypresses targeting body (e.g. tabbing - // through elements, hotkeys, etc) - - if (!tagName || tagName !== 'INPUT' && tagName !== 'TEXTAREA' && !target.isContentEditable) { - return; - } // record first keypress in a series, but ignore subsequent - // keypresses until debounce clears - - - if (!keypressTimeout) { - domEventHandler('input', handler)(event); - } - - clearTimeout(keypressTimeout); - keypressTimeout = setTimeout(function () { - keypressTimeout = undefined; - }, debounceDuration); - }; - } - - var _oldOnErrorHandler = null; - /** JSDoc */ - - function instrumentError() { - _oldOnErrorHandler = global$2.onerror; - - global$2.onerror = function (msg, url, line, column, error) { - triggerHandlers('error', { - column: column, - error: error, - line: line, - msg: msg, - url: url - }); - - if (_oldOnErrorHandler) { - // eslint-disable-next-line prefer-rest-params - return _oldOnErrorHandler.apply(this, arguments); - } - - return false; - }; - } - - var _oldOnUnhandledRejectionHandler = null; - /** JSDoc */ - - function instrumentUnhandledRejection() { - _oldOnUnhandledRejectionHandler = global$2.onunhandledrejection; - - global$2.onunhandledrejection = function (e) { - triggerHandlers('unhandledrejection', e); - - if (_oldOnUnhandledRejectionHandler) { - // eslint-disable-next-line prefer-rest-params - return _oldOnUnhandledRejectionHandler.apply(this, arguments); - } - - return true; - }; - } - - /** Regular expression used to parse a Dsn. */ - - var DSN_REGEX = /^(?:(\w+):)\/\/(?:(\w+)(?::(\w+))?@)([\w.-]+)(?::(\d+))?\/(.+)/; - /** Error message */ - - var ERROR_MESSAGE = 'Invalid Dsn'; - /** 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; - } - - 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 SentryError(ERROR_MESSAGE); - } - - var _a = __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(); - } - - if (projectId) { - var projectMatch = projectId.match(/^\d+/); - - if (projectMatch) { - projectId = projectMatch[0]; - } - } - - this._fromComponents({ - 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 _this = this; - - ['protocol', 'user', 'host', 'projectId'].forEach(function (component) { - if (!_this[component]) { - throw new SentryError(ERROR_MESSAGE + ": " + component + " missing"); - } - }); - - if (!this.projectId.match(/^\d+$/)) { - throw new SentryError(ERROR_MESSAGE + ": Invalid projectId " + this.projectId); - } - - if (this.protocol !== 'http' && this.protocol !== 'https') { - throw new SentryError(ERROR_MESSAGE + ": Invalid protocol " + this.protocol); - } - - if (this.port && isNaN(parseInt(this.port, 10))) { - throw new SentryError(ERROR_MESSAGE + ": Invalid port " + this.port); - } - }; - - return Dsn; - }(); - - /** - * 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 */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - - this._extra = {}; - /** Contexts */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - - this._contexts = {}; - } - /** - * Inherit values from the parent scope. - * @param scope to clone. - */ - - - Scope.clone = function (scope) { - var newScope = new Scope(); - - if (scope) { - newScope._breadcrumbs = __spread(scope._breadcrumbs); - newScope._tags = _assign({}, scope._tags); - newScope._extra = _assign({}, scope._extra); - newScope._contexts = _assign({}, scope._contexts); - newScope._user = scope._user; - newScope._level = scope._level; - newScope._span = scope._span; - newScope._transactionName = scope._transactionName; - newScope._fingerprint = scope._fingerprint; - newScope._eventProcessors = __spread(scope._eventProcessors); - } - - return newScope; - }; - /** - * Add internal on change listener. Used for sub SDKs that need to store the scope. - * @hidden - */ - - - Scope.prototype.addScopeListener = function (callback) { - this._scopeListeners.push(callback); - }; - /** - * @inheritDoc - */ - - - Scope.prototype.addEventProcessor = function (callback) { - this._eventProcessors.push(callback); - - return this; - }; - /** - * @inheritDoc - */ - - - Scope.prototype.setUser = function (user) { - this._user = user || {}; - - this._notifyScopeListeners(); - - return this; - }; - /** - * @inheritDoc - */ - - - Scope.prototype.setTags = function (tags) { - this._tags = _assign(_assign({}, this._tags), tags); - - this._notifyScopeListeners(); - - return this; - }; - /** - * @inheritDoc - */ - - - Scope.prototype.setTag = function (key, value) { - var _a; - - this._tags = _assign(_assign({}, this._tags), (_a = {}, _a[key] = value, _a)); - - this._notifyScopeListeners(); - - return this; - }; - /** - * @inheritDoc - */ - - - Scope.prototype.setExtras = function (extras) { - this._extra = _assign(_assign({}, this._extra), extras); - - this._notifyScopeListeners(); - - return this; - }; - /** - * @inheritDoc - */ - - - Scope.prototype.setExtra = function (key, extra) { - var _a; - - this._extra = _assign(_assign({}, this._extra), (_a = {}, _a[key] = extra, _a)); - - this._notifyScopeListeners(); - - return this; - }; - /** - * @inheritDoc - */ - - - Scope.prototype.setFingerprint = function (fingerprint) { - this._fingerprint = fingerprint; - - this._notifyScopeListeners(); - - return this; - }; - /** - * @inheritDoc - */ - - - Scope.prototype.setLevel = function (level) { - this._level = level; - - this._notifyScopeListeners(); - - return this; - }; - /** - * @inheritDoc - */ - - - Scope.prototype.setTransactionName = function (name) { - this._transactionName = name; - - this._notifyScopeListeners(); - - return this; - }; - /** - * Can be removed in major version. - * @deprecated in favor of {@link this.setTransactionName} - */ - - - Scope.prototype.setTransaction = function (name) { - return this.setTransactionName(name); - }; - /** - * @inheritDoc - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - - - Scope.prototype.setContext = function (key, context) { - var _a; - - this._contexts = _assign(_assign({}, this._contexts), (_a = {}, _a[key] = context, _a)); - - this._notifyScopeListeners(); - - return this; - }; - /** - * @inheritDoc - */ - - - Scope.prototype.setSpan = function (span) { - this._span = span; - - this._notifyScopeListeners(); - - return this; - }; - /** - * @inheritDoc - */ - - - Scope.prototype.getSpan = function () { - return this._span; - }; - /** - * @inheritDoc - */ - - - Scope.prototype.getTransaction = function () { - var span = this.getSpan(); - - if (span && span.spanRecorder && span.spanRecorder.spans[0]) { - return span.spanRecorder.spans[0]; - } - - return undefined; - }; - /** - * @inheritDoc - */ - - - Scope.prototype.update = function (captureContext) { - if (!captureContext) { - return this; - } - - if (typeof captureContext === 'function') { - var updatedScope = captureContext(this); - return updatedScope instanceof Scope ? updatedScope : this; - } - - if (captureContext instanceof Scope) { - this._tags = _assign(_assign({}, this._tags), captureContext._tags); - this._extra = _assign(_assign({}, this._extra), captureContext._extra); - this._contexts = _assign(_assign({}, this._contexts), captureContext._contexts); - - if (captureContext._user) { - this._user = captureContext._user; - } - - if (captureContext._level) { - this._level = captureContext._level; - } - - if (captureContext._fingerprint) { - this._fingerprint = captureContext._fingerprint; - } - } else if (isPlainObject(captureContext)) { - // eslint-disable-next-line no-param-reassign - captureContext = captureContext; - this._tags = _assign(_assign({}, this._tags), captureContext.tags); - this._extra = _assign(_assign({}, this._extra), captureContext.extra); - this._contexts = _assign(_assign({}, this._contexts), captureContext.contexts); - - if (captureContext.user) { - this._user = captureContext.user; - } - - if (captureContext.level) { - this._level = captureContext.level; - } - - if (captureContext.fingerprint) { - this._fingerprint = captureContext.fingerprint; - } - } - - return this; - }; - /** - * @inheritDoc - */ - - - Scope.prototype.clear = function () { - this._breadcrumbs = []; - this._tags = {}; - this._extra = {}; - this._user = {}; - this._contexts = {}; - this._level = undefined; - this._transactionName = undefined; - this._fingerprint = undefined; - this._span = undefined; - - this._notifyScopeListeners(); - - return this; - }; - /** - * @inheritDoc - */ - - - Scope.prototype.addBreadcrumb = function (breadcrumb, maxBreadcrumbs) { - var mergedBreadcrumb = _assign({ - timestamp: timestampWithMs() - }, breadcrumb); - - this._breadcrumbs = maxBreadcrumbs !== undefined && maxBreadcrumbs >= 0 ? __spread(this._breadcrumbs, [mergedBreadcrumb]).slice(-maxBreadcrumbs) : __spread(this._breadcrumbs, [mergedBreadcrumb]); - - this._notifyScopeListeners(); - - return this; - }; - /** - * @inheritDoc - */ - - - Scope.prototype.clearBreadcrumbs = function () { - this._breadcrumbs = []; - - this._notifyScopeListeners(); - - return this; - }; - /** - * 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 Event - * @param hint May contain additional informartion about the original exception. - * @hidden - */ - - - Scope.prototype.applyToEvent = function (event, hint) { - if (this._extra && Object.keys(this._extra).length) { - event.extra = _assign(_assign({}, this._extra), event.extra); - } - - if (this._tags && Object.keys(this._tags).length) { - event.tags = _assign(_assign({}, this._tags), event.tags); - } - - if (this._user && Object.keys(this._user).length) { - event.user = _assign(_assign({}, this._user), event.user); - } - - if (this._contexts && Object.keys(this._contexts).length) { - event.contexts = _assign(_assign({}, this._contexts), event.contexts); - } - - if (this._level) { - event.level = this._level; - } - - if (this._transactionName) { - event.transaction = this._transactionName; - } // We want to set the trace context for normal events only if there isn't already - // a trace context on the event. There is a product feature in place where we link - // errors with transaction and it relys on that. - - - if (this._span) { - event.contexts = _assign({ - trace: this._span.getTraceContext() - }, event.contexts); - } - - this._applyFingerprint(event); - - event.breadcrumbs = __spread(event.breadcrumbs || [], this._breadcrumbs); - event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined; - return this._notifyEventProcessors(__spread(getGlobalEventProcessors(), this._eventProcessors), event, hint); - }; - /** - * This will be called after {@link applyToEvent} is finished. - */ - - - Scope.prototype._notifyEventProcessors = function (processors, event, hint, index) { - var _this = this; - - if (index === void 0) { - index = 0; - } - - return new SyncPromise(function (resolve, reject) { - var processor = processors[index]; - - if (event === null || typeof processor !== 'function') { - resolve(event); - } else { - var result = processor(_assign({}, event), hint); - - if (isThenable$1(result)) { - result.then(function (final) { - return _this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve); - }).then(null, reject); - } else { - _this._notifyEventProcessors(processors, result, hint, index + 1).then(resolve).then(null, reject); - } - } - }); - }; - /** - * 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; - }); - } - }; - /** - * 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); - } // If we have no data at all, remove empty array default - - - if (event.fingerprint && !event.fingerprint.length) { - delete event.fingerprint; - } - }; - - return Scope; - }(); - /** - * Retruns the global event processors. - */ - - function getGlobalEventProcessors() { - var global = 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); - } - - /** - * API compatibility version of this hub. - * - * WARNING: This number should only be increased when the global interface - * changes and new methods are introduced. - * - * @hidden - */ - - var API_VERSION = 3; - /** - * Default maximum number of breadcrumbs added to an event. Can be overwritten - * with {@link Options.maxBreadcrumbs}. - */ - - var DEFAULT_BREADCRUMBS = 100; - /** - * Absolute maximum number of breadcrumbs added to an event. The - * `maxBreadcrumbs` option cannot be higher than this value. - */ - - var MAX_BREADCRUMBS = 100; - /** - * @inheritDoc - */ - - 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(); - } - - if (_version === void 0) { - _version = API_VERSION; - } - - this._version = _version; - /** Is a {@link Layer}[] containing the client and scope */ - - this._stack = []; - - this._stack.push({ - client: client, - scope: scope - }); - - this.bindClient(client); - } - /** - * @inheritDoc - */ - - - Hub.prototype.isOlderThan = function (version) { - return this._version < version; - }; - /** - * @inheritDoc - */ - - - Hub.prototype.bindClient = function (client) { - var top = this.getStackTop(); - top.client = client; - - if (client && client.setupIntegrations) { - client.setupIntegrations(); - } - }; - /** - * @inheritDoc - */ - - - 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.clone(parentScope); - this.getStack().push({ - client: this.getClient(), - scope: scope - }); - return scope; - }; - /** - * @inheritDoc - */ - - - Hub.prototype.popScope = function () { - return this.getStack().pop() !== undefined; - }; - /** - * @inheritDoc - */ - - - Hub.prototype.withScope = function (callback) { - var scope = this.pushScope(); - - try { - callback(scope); - } finally { - this.popScope(); - } - }; - /** - * @inheritDoc - */ - - - 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]; - }; - /** - * @inheritDoc - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types - - - Hub.prototype.captureException = function (exception, hint) { - var eventId = this._lastEventId = uuid4(); - var finalHint = hint; // If there's no explicit hint provided, mimick the same thing that would happen - // in the minimal itself to create a consistent behavior. - // We don't do this in the client, as it's the lowest level API, and doing this, - // would prevent user from having full control over direct calls. - - if (!hint) { - var syntheticException = void 0; - - try { - throw new Error('Sentry syntheticException'); - } catch (exception) { - syntheticException = exception; - } - - finalHint = { - originalException: exception, - syntheticException: syntheticException - }; - } - - this._invokeClient('captureException', exception, _assign(_assign({}, finalHint), { - event_id: eventId - })); - - return eventId; - }; - /** - * @inheritDoc - */ - - - Hub.prototype.captureMessage = function (message, level, hint) { - var eventId = this._lastEventId = uuid4(); - var finalHint = hint; // If there's no explicit hint provided, mimick the same thing that would happen - // in the minimal itself to create a consistent behavior. - // We don't do this in the client, as it's the lowest level API, and doing this, - // would prevent user from having full control over direct calls. - - if (!hint) { - var syntheticException = void 0; - - try { - throw new Error(message); - } catch (exception) { - syntheticException = exception; - } - - finalHint = { - originalException: message, - syntheticException: syntheticException - }; - } - - this._invokeClient('captureMessage', message, level, _assign(_assign({}, finalHint), { - event_id: eventId - })); - - return eventId; - }; - /** - * @inheritDoc - */ - - - Hub.prototype.captureEvent = function (event, hint) { - var eventId = this._lastEventId = uuid4(); - - this._invokeClient('captureEvent', event, _assign(_assign({}, hint), { - event_id: eventId - })); - - return eventId; - }; - /** - * @inheritDoc - */ - - - Hub.prototype.lastEventId = function () { - return this._lastEventId; - }; - /** - * @inheritDoc - */ - - - Hub.prototype.addBreadcrumb = function (breadcrumb, hint) { - var top = this.getStackTop(); - - if (!top.scope || !top.client) { - return; - } // eslint-disable-next-line @typescript-eslint/unbound-method - - - var _a = top.client.getOptions && top.client.getOptions() || {}, - _b = _a.beforeBreadcrumb, - beforeBreadcrumb = _b === void 0 ? null : _b, - _c = _a.maxBreadcrumbs, - maxBreadcrumbs = _c === void 0 ? DEFAULT_BREADCRUMBS : _c; - - if (maxBreadcrumbs <= 0) { - return; - } - - var timestamp = timestampWithMs(); - - var mergedBreadcrumb = _assign({ - timestamp: timestamp - }, breadcrumb); - - var finalBreadcrumb = beforeBreadcrumb ? consoleSandbox(function () { - return beforeBreadcrumb(mergedBreadcrumb, hint); - }) : mergedBreadcrumb; - - if (finalBreadcrumb === null) { - return; - } - - top.scope.addBreadcrumb(finalBreadcrumb, Math.min(maxBreadcrumbs, MAX_BREADCRUMBS)); - }; - /** - * @inheritDoc - */ - - - Hub.prototype.setUser = function (user) { - var top = this.getStackTop(); - - if (!top.scope) { - return; - } - - top.scope.setUser(user); - }; - /** - * @inheritDoc - */ - - - Hub.prototype.setTags = function (tags) { - var top = this.getStackTop(); - - if (!top.scope) { - return; - } - - top.scope.setTags(tags); - }; - /** - * @inheritDoc - */ - - - Hub.prototype.setExtras = function (extras) { - var top = this.getStackTop(); - - if (!top.scope) { - return; - } - - top.scope.setExtras(extras); - }; - /** - * @inheritDoc - */ - - - Hub.prototype.setTag = function (key, value) { - var top = this.getStackTop(); - - if (!top.scope) { - return; - } - - top.scope.setTag(key, value); - }; - /** - * @inheritDoc - */ - - - Hub.prototype.setExtra = function (key, extra) { - var top = this.getStackTop(); - - if (!top.scope) { - return; - } - - top.scope.setExtra(key, extra); - }; - /** - * @inheritDoc - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - - - Hub.prototype.setContext = function (name, context) { - var top = this.getStackTop(); - - if (!top.scope) { - return; - } - - top.scope.setContext(name, context); - }; - /** - * @inheritDoc - */ - - - Hub.prototype.configureScope = function (callback) { - var top = this.getStackTop(); - - if (top.scope && top.client) { - callback(top.scope); - } - }; - /** - * @inheritDoc - */ - - - Hub.prototype.run = function (callback) { - var oldHub = makeMain(this); - - try { - callback(this); - } finally { - makeMain(oldHub); - } - }; - /** - * @inheritDoc - */ - - - Hub.prototype.getIntegration = function (integration) { - var client = this.getClient(); - - if (!client) { - return null; - } - - try { - return client.getIntegration(integration); - } catch (_oO) { - logger.warn("Cannot retrieve integration " + integration.id + " from the current Hub"); - return null; - } - }; - /** - * @inheritDoc - */ - - - Hub.prototype.startSpan = function (context) { - return this._callExtensionMethod('startSpan', context); - }; - /** - * @inheritDoc - */ - - - Hub.prototype.startTransaction = function (context) { - return this._callExtensionMethod('startTransaction', context); - }; - /** - * @inheritDoc - */ - - - Hub.prototype.traceHeaders = function () { - return this._callExtensionMethod('traceHeaders'); - }; - /** - * Internal helper function to call a method on the top client if it exists. - * - * @param method The method to call on the client. - * @param args Arguments to pass to the client function. - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - - - Hub.prototype._invokeClient = function (method) { - var _a; - - var args = []; - - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - - var top = this.getStackTop(); - - if (top && top.client && top.client[method]) { - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any - (_a = top.client)[method].apply(_a, __spread(args, [top.scope])); - } - }; - /** - * Calls global extension method and binding current instance to the function call - */ - // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366) - // eslint-disable-next-line @typescript-eslint/no-explicit-any - - - Hub.prototype._callExtensionMethod = function (method) { - var args = []; - - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - - var carrier = getMainCarrier(); - var sentry = carrier.__SENTRY__; - - if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') { - return sentry.extensions[method].apply(this, args); - } - - logger.warn("Extension method " + method + " couldn't be found, doing nothing."); - }; - - return Hub; - }(); - /** Returns the global shim registry. */ - - function getMainCarrier() { - var carrier = getGlobalObject(); - carrier.__SENTRY__ = carrier.__SENTRY__ || { - extensions: {}, - hub: undefined - }; - return carrier; - } - /** - * 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; - } - /** - * 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(API_VERSION)) { - setHubOnCarrier(registry, new Hub()); - } // Prefer domains over global if they are there (applicable only to Node environment) - - - if (isNodeEnv()) { - return getHubFromActiveDomain(registry); - } // Return hub that lives on a global object - - - return getHubFromCarrier(registry); - } - /** - * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist - * @returns discovered hub - */ - - function getHubFromActiveDomain(registry) { - try { - var property = 'domain'; - var carrier = getMainCarrier(); - var sentry = carrier.__SENTRY__; - - if (!sentry || !sentry.extensions || !sentry.extensions[property]) { - return getHubFromCarrier(registry); - } // eslint-disable-next-line @typescript-eslint/no-explicit-any - - - var domain = sentry.extensions[property]; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - - var activeDomain = domain.active; // If there's no active domain, just return global hub - - if (!activeDomain) { - return getHubFromCarrier(registry); - } // If there's no hub on current domain, or it's an old API, assign a new one - - - if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) { - var registryHubTopStack = getHubFromCarrier(registry).getStackTop(); - setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, 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); - } - } - /** - * 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; - } - - return false; - } - /** - * This will create a new {@link Hub} and add to the passed object on - * __SENTRY__.hub. - * @param carrier object - * @hidden - */ - - - function getHubFromCarrier(carrier) { - if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub) { - return carrier.__SENTRY__.hub; - } - - carrier.__SENTRY__ = carrier.__SENTRY__ || {}; - carrier.__SENTRY__.hub = new Hub(); - return carrier.__SENTRY__.hub; - } - /** - * 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; - } - - /** - * This calls a function on the current hub. - * @param method function to call on hub. - * @param args to pass to function. - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - - function callOnHub(method) { - var args = []; - - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - - var hub = getCurrentHub(); - - if (hub && hub[method]) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - return hub[method].apply(hub, __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. - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types - - - function captureException(exception, captureContext) { - var syntheticException; - - try { - throw new Error('Sentry syntheticException'); - } catch (exception) { - syntheticException = exception; - } - - return callOnHub('captureException', exception, { - captureContext: captureContext, - originalException: exception, - syntheticException: syntheticException - }); - } - /** - * 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); - } - - 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(dsn); - } - /** Returns the Dsn object. */ - - - API.prototype.getDsn = function () { - return this._dsnObject; - }; - /** Returns the prefix to construct Sentry ingestion API endpoints. */ - - - API.prototype.getBaseApiEndpoint = function () { - var dsn = this._dsnObject; - var protocol = dsn.protocol ? dsn.protocol + ":" : ''; - var port = dsn.port ? ":" + dsn.port : ''; - return protocol + "//" + dsn.host + port + (dsn.path ? "/" + dsn.path : '') + "/api/"; - }; - /** Returns the store endpoint URL. */ - - - API.prototype.getStoreEndpoint = function () { - return this._getIngestEndpoint('store'); - }; - /** - * Returns the store endpoint URL with auth in the query string. - * - * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests. - */ - - - API.prototype.getStoreEndpointWithUrlEncodedAuth = function () { - return this.getStoreEndpoint() + "?" + this._encodedAuth(); - }; - /** - * Returns the envelope endpoint URL with auth in the query string. - * - * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests. - */ - - - API.prototype.getEnvelopeEndpointWithUrlEncodedAuth = function () { - return this._getEnvelopeEndpoint() + "?" + this._encodedAuth(); - }; - /** 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. - * This is needed for node and the old /store endpoint in sentry - */ - - - API.prototype.getRequestHeaders = function (clientName, clientVersion) { - var dsn = this._dsnObject; - var header = ["Sentry sentry_version=" + SENTRY_API_VERSION]; - 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.getBaseApiEndpoint() + "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; - }; - /** Returns the envelope endpoint URL. */ - - - API.prototype._getEnvelopeEndpoint = function () { - return this._getIngestEndpoint('envelope'); - }; - /** Returns the ingest API endpoint for target. */ - - - API.prototype._getIngestEndpoint = function (target) { - var base = this.getBaseApiEndpoint(); - var dsn = this._dsnObject; - return "" + base + dsn.projectId + "/" + target + "/"; - }; - /** Returns a URL-encoded string with auth config suitable for a query string. */ - - - API.prototype._encodedAuth = function () { - var dsn = this._dsnObject; - var auth = { - // We send only the minimum set of required information. See - // https://github.com/getsentry/sentry-javascript/issues/2572. - sentry_key: dsn.user, - sentry_version: SENTRY_API_VERSION - }; - return urlEncode(auth); - }; - - return API; - }(); - - var installedIntegrations = []; - /** Gets integration to install */ - - function getIntegrationsToSetup(options) { - var defaultIntegrations = options.defaultIntegrations && __spread(options.defaultIntegrations) || []; - var userIntegrations = options.integrations; - var integrations = []; - - if (Array.isArray(userIntegrations)) { - var userIntegrationsNames_1 = userIntegrations.map(function (i) { - return i.name; - }); - var pickedIntegrationsNames_1 = []; // Leave only unique default integrations, that were not overridden with provided user integrations - - defaultIntegrations.forEach(function (defaultIntegration) { - if (userIntegrationsNames_1.indexOf(defaultIntegration.name) === -1 && pickedIntegrationsNames_1.indexOf(defaultIntegration.name) === -1) { - integrations.push(defaultIntegration); - pickedIntegrationsNames_1.push(defaultIntegration.name); - } - }); // Don't add same user integration twice - - userIntegrations.forEach(function (userIntegration) { - if (pickedIntegrationsNames_1.indexOf(userIntegration.name) === -1) { - integrations.push(userIntegration); - pickedIntegrationsNames_1.push(userIntegration.name); - } - }); - } else if (typeof userIntegrations === 'function') { - integrations = userIntegrations(defaultIntegrations); - integrations = Array.isArray(integrations) ? integrations : [integrations]; - } else { - integrations = __spread(defaultIntegrations); - } // Make sure that if present, `Debug` integration will always run last - - - var integrationsNames = integrations.map(function (i) { - return i.name; - }); - var alwaysLastToRun = 'Debug'; - - if (integrationsNames.indexOf(alwaysLastToRun) !== -1) { - integrations.push.apply(integrations, __spread(integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1))); - } - - return integrations; - } - /** Setup given integration */ - - function setupIntegration(integration) { - if (installedIntegrations.indexOf(integration.name) !== -1) { - return; - } - - integration.setupOnce(addGlobalEventProcessor, getCurrentHub); - installedIntegrations.push(integration.name); - logger.log("Integration installed: " + integration.name); - } - /** - * 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[integration.name] = integration; - setupIntegration(integration); - }); - return integrations; - } - - /** - * 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) { - /** Array of used integrations. */ - this._integrations = {}; - /** Is the client still processing a call? */ - - this._processing = false; - this._backend = new backendClass(options); - this._options = options; - - if (options.dsn) { - this._dsn = new Dsn(options.dsn); - } - } - /** - * @inheritDoc - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types - - - BaseClient.prototype.captureException = function (exception, hint, scope) { - var _this = this; - - var eventId = hint && hint.event_id; - this._processing = true; // eslint-disable-next-line @typescript-eslint/no-floating-promises - - this._getBackend().eventFromException(exception, hint).then(function (event) { - eventId = _this.captureEvent(event, hint, scope); - }); - - return eventId; - }; - /** - * @inheritDoc - */ - - - BaseClient.prototype.captureMessage = function (message, level, hint, scope) { - var _this = this; - - var eventId = hint && hint.event_id; - this._processing = true; - var promisedEvent = isPrimitive(message) ? this._getBackend().eventFromMessage("" + message, level, hint) : this._getBackend().eventFromException(message, hint); // eslint-disable-next-line @typescript-eslint/no-floating-promises - - promisedEvent.then(function (event) { - eventId = _this.captureEvent(event, hint, scope); - }); - return eventId; - }; - /** - * @inheritDoc - */ - - - BaseClient.prototype.captureEvent = function (event, hint, scope) { - var _this = this; - - var eventId = hint && hint.event_id; - this._processing = true; - - this._processEvent(event, hint, scope).then(function (finalEvent) { - // We need to check for finalEvent in case beforeSend returned null - eventId = finalEvent && finalEvent.event_id; - _this._processing = false; - }).then(null, function (reason) { - logger.error(reason); - _this._processing = false; - }); - - return eventId; - }; - /** - * @inheritDoc - */ - - - BaseClient.prototype.getDsn = function () { - return this._dsn; - }; - /** - * @inheritDoc - */ - - - BaseClient.prototype.getOptions = function () { - return this._options; - }; - /** - * @inheritDoc - */ - - - BaseClient.prototype.flush = function (timeout) { - var _this = this; - - return this._isClientProcessing(timeout).then(function (status) { - clearInterval(status.interval); - return _this._getBackend().getTransport().close(timeout).then(function (transportFlushed) { - return status.ready && transportFlushed; - }); - }); - }; - /** - * @inheritDoc - */ - - - BaseClient.prototype.close = function (timeout) { - var _this = this; - - return this.flush(timeout).then(function (result) { - _this.getOptions().enabled = false; - return result; - }); - }; - /** - * Sets up the integrations - */ - - - BaseClient.prototype.setupIntegrations = function () { - if (this._isEnabled()) { - this._integrations = setupIntegrations(this._options); - } - }; - /** - * @inheritDoc - */ - - - BaseClient.prototype.getIntegration = function (integration) { - try { - return this._integrations[integration.id] || null; - } catch (_oO) { - logger.warn("Cannot retrieve integration " + integration.id + " from the current Client"); - return null; - } - }; - /** Waits for the client to be done with processing. */ - - - BaseClient.prototype._isClientProcessing = function (timeout) { - var _this = this; - - return new SyncPromise(function (resolve) { - var ticked = 0; - var tick = 1; - var interval = 0; - clearInterval(interval); - interval = setInterval(function () { - if (!_this._processing) { - resolve({ - interval: interval, - ready: true - }); - } else { - ticked += tick; - - if (timeout && ticked >= timeout) { - resolve({ - interval: interval, - ready: false - }); - } - } - }, tick); - }); - }; - /** 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 information 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) { - var _this = this; - - var _a = this.getOptions().normalizeDepth, - normalizeDepth = _a === void 0 ? 3 : _a; - - var prepared = _assign(_assign({}, event), { - event_id: event.event_id || (hint && hint.event_id ? hint.event_id : uuid4()), - timestamp: event.timestamp || timestampWithMs() - }); - - this._applyClientOptions(prepared); - - this._applyIntegrationsMetadata(prepared); // If we have scope given to us, use it as the base for further modifications. - // This allows us to prevent unnecessary copying of data if `captureContext` is not provided. - - - var finalScope = scope; - - if (hint && hint.captureContext) { - finalScope = Scope.clone(finalScope).update(hint.captureContext); - } // We prepare the result here with a resolved Event. - - - var result = SyncPromise.resolve(prepared); // This should be the last thing called, since we want that - // {@link Hub.addEventProcessor} gets the finished prepared event. - - if (finalScope) { - // In case we have a hub we reassign it. - result = finalScope.applyToEvent(prepared, hint); - } - - return result.then(function (evt) { - if (typeof normalizeDepth === 'number' && normalizeDepth > 0) { - return _this._normalizeEvent(evt, normalizeDepth); - } - - return evt; - }); - }; - /** - * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization. - * Normalized keys: - * - `breadcrumbs.data` - * - `user` - * - `contexts` - * - `extra` - * @param event Event - * @returns Normalized event - */ - - - BaseClient.prototype._normalizeEvent = function (event, depth) { - if (!event) { - return null; - } - - var normalized = _assign(_assign(_assign(_assign(_assign({}, event), event.breadcrumbs && { - breadcrumbs: event.breadcrumbs.map(function (b) { - return _assign(_assign({}, b), b.data && { - data: normalize$1(b.data, depth) - }); - }) - }), event.user && { - user: normalize$1(event.user, depth) - }), event.contexts && { - contexts: normalize$1(event.contexts, depth) - }), event.extra && { - extra: normalize$1(event.extra, depth) - }); // event.contexts.trace stores information about a Transaction. Similarly, - // event.spans[] stores information about child Spans. Given that a - // Transaction is conceptually a Span, normalization should apply to both - // Transactions and Spans consistently. - // For now the decision is to skip normalization of Transactions and Spans, - // so this block overwrites the normalized event to add back the original - // Transaction information prior to normalization. - - - if (event.contexts && event.contexts.trace) { - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - normalized.contexts.trace = event.contexts.trace; - } - - return normalized; - }; - /** - * Enhances event using the client configuration. - * It takes care of all "static" values like environment, release and `dist`, - * as well as truncating overly long values. - * @param event event instance to be enhanced - */ - - - BaseClient.prototype._applyClientOptions = function (event) { - var _a = this.getOptions(), - environment = _a.environment, - release = _a.release, - dist = _a.dist, - _b = _a.maxValueLength, - maxValueLength = _b === void 0 ? 250 : _b; - - if (event.environment === undefined && environment !== undefined) { - event.environment = environment; - } - - if (event.release === undefined && release !== undefined) { - event.release = release; - } - - if (event.dist === undefined && dist !== undefined) { - event.dist = dist; - } - - if (event.message) { - event.message = truncate(event.message, maxValueLength); - } - - var exception = event.exception && event.exception.values && event.exception.values[0]; - - if (exception && exception.value) { - exception.value = truncate(exception.value, maxValueLength); - } - - var request = event.request; - - if (request && request.url) { - request.url = truncate(request.url, maxValueLength); - } - }; - /** - * This function adds all used integrations to the SDK info in the event. - * @param sdkInfo The sdkInfo of the event that will be filled with all integrations. - */ - - - BaseClient.prototype._applyIntegrationsMetadata = function (event) { - var sdkInfo = event.sdk; - var integrationsArray = Object.keys(this._integrations); - - if (sdkInfo && integrationsArray.length > 0) { - sdkInfo.integrations = integrationsArray; - } - }; - /** - * Tells the backend to send this event - * @param event The Sentry event to send - */ - - - BaseClient.prototype._sendEvent = function (event) { - this._getBackend().sendEvent(event); - }; - /** - * 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. - * - * - * @param event The event to send to Sentry. - * @param hint May contain additional information about the original exception. - * @param scope A scope containing event metadata. - * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send. - */ - - - BaseClient.prototype._processEvent = function (event, hint, scope) { - var _this = this; // eslint-disable-next-line @typescript-eslint/unbound-method - - - var _a = this.getOptions(), - beforeSend = _a.beforeSend, - sampleRate = _a.sampleRate; - - if (!this._isEnabled()) { - return SyncPromise.reject('SDK not enabled, will not send event.'); - } - - var isTransaction = event.type === 'transaction'; // 1.0 === 100% events are sent - // 0.0 === 0% events are sent - // Sampling for transaction happens somewhere else - - if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) { - return SyncPromise.reject('This event has been sampled, will not send event.'); - } - - return new SyncPromise(function (resolve, reject) { - _this._prepareEvent(event, scope, hint).then(function (prepared) { - if (prepared === null) { - reject('An event processor returned null, will not send event.'); - return; - } - - var finalEvent = prepared; - var isInternalException = hint && hint.data && hint.data.__sentry__ === true; // We skip beforeSend in case of transactions - - if (isInternalException || !beforeSend || isTransaction) { - _this._sendEvent(finalEvent); - - resolve(finalEvent); - return; - } - - var beforeSendResult = beforeSend(prepared, hint); - - if (typeof beforeSendResult === 'undefined') { - logger.error('`beforeSend` method has to return `null` or a valid event.'); - } else if (isThenable$1(beforeSendResult)) { - _this._handleAsyncBeforeSend(beforeSendResult, resolve, reject); - } else { - finalEvent = beforeSendResult; - - if (finalEvent === null) { - logger.log('`beforeSend` returned `null`, will not send event.'); - resolve(null); - return; - } // From here on we are really async - - - _this._sendEvent(finalEvent); - - resolve(finalEvent); - } - }).then(null, function (reason) { - _this.captureException(reason, { - data: { - __sentry__: true - }, - originalException: reason - }); - - reject("Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\nReason: " + reason); - }); - }); - }; - /** - * Resolves before send Promise and calls resolve/reject on parent SyncPromise. - */ - - - BaseClient.prototype._handleAsyncBeforeSend = function (beforeSend, resolve, reject) { - var _this = this; - - beforeSend.then(function (processedEvent) { - if (processedEvent === null) { - reject('`beforeSend` returned `null`, will not send event.'); - return; - } // From here on we are really async - - - _this._sendEvent(processedEvent); - - resolve(processedEvent); - }).then(null, function (e) { - reject("beforeSend rejected with " + e); - }); - }; - - return BaseClient; - }(); - - /** Noop transport */ - - var NoopTransport = - /** @class */ - function () { - function NoopTransport() {} - /** - * @inheritDoc - */ - - - NoopTransport.prototype.sendEvent = function (_) { - return SyncPromise.resolve({ - reason: "NoopTransport: Event has been skipped because no Dsn is configured.", - status: Status.Skipped - }); - }; - /** - * @inheritDoc - */ - - - NoopTransport.prototype.close = function (_) { - return SyncPromise.resolve(true); - }; - - return NoopTransport; - }(); - - /** - * This is the base implemention of a Backend. - * @hidden - */ - - var BaseBackend = - /** @class */ - function () { - /** Creates a new backend instance. */ - function BaseBackend(options) { - this._options = options; - - if (!this._options.dsn) { - logger.warn('No DSN provided, backend will not do anything.'); - } - - this._transport = this._setupTransport(); - } - /** - * @inheritDoc - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types - - - BaseBackend.prototype.eventFromException = function (_exception, _hint) { - throw new SentryError('Backend has to implement `eventFromException` method'); - }; - /** - * @inheritDoc - */ - - - BaseBackend.prototype.eventFromMessage = function (_message, _level, _hint) { - throw new SentryError('Backend has to implement `eventFromMessage` method'); - }; - /** - * @inheritDoc - */ - - - BaseBackend.prototype.sendEvent = function (event) { - this._transport.sendEvent(event).then(null, function (reason) { - logger.error("Error while sending event: " + reason); - }); - }; - /** - * @inheritDoc - */ - - - BaseBackend.prototype.getTransport = function () { - return this._transport; - }; - /** - * Sets up the transport so it can be used later to send requests. - */ - - - BaseBackend.prototype._setupTransport = function () { - return new NoopTransport(); - }; - - return BaseBackend; - }(); - - /** Creates a SentryRequest from an event. */ - - function eventToSentryRequest(event, api) { - var useEnvelope = event.type === 'transaction'; - var req = { - body: JSON.stringify(event), - url: useEnvelope ? api.getEnvelopeEndpointWithUrlEncodedAuth() : api.getStoreEndpointWithUrlEncodedAuth() - }; // https://develop.sentry.dev/sdk/envelopes/ - // Since we don't need to manipulate envelopes nor store them, there is no - // exported concept of an Envelope with operations including serialization and - // deserialization. Instead, we only implement a minimal subset of the spec to - // serialize events inline here. - - if (useEnvelope) { - var envelopeHeaders = JSON.stringify({ - event_id: event.event_id, - // We need to add * 1000 since we divide it by 1000 by default but JS works with ms precision - // The reason we use timestampWithMs here is that all clocks across the SDK use the same clock - sent_at: new Date(timestampWithMs() * 1000).toISOString() - }); - var itemHeaders = JSON.stringify({ - type: event.type - }); // The trailing newline is optional. We intentionally don't send it to avoid - // sending unnecessary bytes. - // - // const envelope = `${envelopeHeaders}\n${itemHeaders}\n${req.body}\n`; - - var envelope = envelopeHeaders + "\n" + itemHeaders + "\n" + req.body; - req.body = envelope; - } - - return req; - } - - /** - * 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. - */ - - function initAndBind(clientClass, options) { - if (options.debug === true) { - logger.enable(); - } - - var hub = getCurrentHub(); - var client = new clientClass(options); - hub.bindClient(client); - } - - 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 () { - // eslint-disable-next-line @typescript-eslint/unbound-method - originalFunctionToString = Function.prototype.toString; // eslint-disable-next-line @typescript-eslint/no-explicit-any - - Function.prototype.toString = function () { - var args = []; - - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - - var context = this.__sentry_original__ || this; - return originalFunctionToString.apply(context, args); - }; - }; - /** - * @inheritDoc - */ - - - FunctionToString.id = 'FunctionToString'; - return FunctionToString; - }(); - - var $some$1 = arrayIteration.some; - - - - var STRICT_METHOD$4 = arrayMethodIsStrict('some'); - var USES_TO_LENGTH$8 = arrayMethodUsesToLength('some'); - - // `Array.prototype.some` method - // https://tc39.github.io/ecma262/#sec-array.prototype.some - _export({ target: 'Array', proto: true, forced: !STRICT_METHOD$4 || !USES_TO_LENGTH$8 }, { - some: function some(callbackfn /* , thisArg */) { - return $some$1(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } - }); - - // 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 () { - addGlobalEventProcessor(function (event) { - var hub = getCurrentHub(); - - if (!hub) { - return event; - } - - var self = hub.getIntegration(InboundFilters); - - if (self) { - var client = hub.getClient(); - var clientOptions = client ? client.getOptions() : {}; - - var options = self._mergeOptions(clientOptions); - - if (self._shouldDropEvent(event, options)) { - return null; - } - } - - return event; - }); - }; - /** JSDoc */ - - - InboundFilters.prototype._shouldDropEvent = function (event, options) { - if (this._isSentryError(event, options)) { - logger.warn("Event dropped due to being internal Sentry Error.\nEvent: " + getEventDescription(event)); - return true; - } - - if (this._isIgnoredError(event, options)) { - logger.warn("Event dropped due to being matched by `ignoreErrors` option.\nEvent: " + getEventDescription(event)); - return true; - } - - if (this._isDeniedUrl(event, options)) { - logger.warn("Event dropped due to being matched by `denyUrls` option.\nEvent: " + getEventDescription(event) + ".\nUrl: " + this._getEventFilterUrl(event)); - return true; - } - - if (!this._isAllowedUrl(event, options)) { - logger.warn("Event dropped due to not being matched by `allowUrls` option.\nEvent: " + getEventDescription(event) + ".\nUrl: " + this._getEventFilterUrl(event)); - return true; - } - - return false; - }; - /** JSDoc */ - - - InboundFilters.prototype._isSentryError = function (event, options) { - if (!options.ignoreInternal) { - return false; - } - - try { - return event && event.exception && event.exception.values && event.exception.values[0] && event.exception.values[0].type === 'SentryError' || false; - } catch (_oO) { - return false; - } - }; - /** JSDoc */ - - - InboundFilters.prototype._isIgnoredError = function (event, 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 isMatchingPattern(message, pattern); - }); - }); - }; - /** JSDoc */ - - - InboundFilters.prototype._isDeniedUrl = function (event, options) { - // TODO: Use Glob instead? - if (!options.denyUrls || !options.denyUrls.length) { - return false; - } - - var url = this._getEventFilterUrl(event); - - return !url ? false : options.denyUrls.some(function (pattern) { - return isMatchingPattern(url, pattern); - }); - }; - /** JSDoc */ - - - InboundFilters.prototype._isAllowedUrl = function (event, options) { - // TODO: Use Glob instead? - if (!options.allowUrls || !options.allowUrls.length) { - return true; - } - - var url = this._getEventFilterUrl(event); - - return !url ? true : options.allowUrls.some(function (pattern) { - return isMatchingPattern(url, pattern); - }); - }; - /** JSDoc */ - - - InboundFilters.prototype._mergeOptions = function (clientOptions) { - if (clientOptions === void 0) { - clientOptions = {}; - } - - return { - allowUrls: __spread(this._options.whitelistUrls || [], this._options.allowUrls || [], clientOptions.whitelistUrls || [], clientOptions.allowUrls || []), - denyUrls: __spread(this._options.blacklistUrls || [], this._options.denyUrls || [], clientOptions.blacklistUrls || [], clientOptions.denyUrls || []), - ignoreErrors: __spread(this._options.ignoreErrors || [], clientOptions.ignoreErrors || [], DEFAULT_IGNORE_ERRORS), - ignoreInternal: typeof this._options.ignoreInternal !== 'undefined' ? this._options.ignoreInternal : true - }; - }; - /** JSDoc */ - - - InboundFilters.prototype._getPossibleEventMessages = function (event) { - if (event.message) { - return [event.message]; - } - - if (event.exception) { - try { - var _a = event.exception.values && event.exception.values[0] || {}, - _b = _a.type, - type = _b === void 0 ? '' : _b, - _c = _a.value, - value = _c === void 0 ? '' : _c; - - return ["" + value, type + ": " + value]; - } catch (oO) { - logger.error("Cannot extract message for event " + getEventDescription(event)); - return []; - } - } - - return []; - }; - /** JSDoc */ - - - InboundFilters.prototype._getEventFilterUrl = function (event) { - try { - if (event.stacktrace) { - var frames_1 = event.stacktrace.frames; - return frames_1 && frames_1[frames_1.length - 1].filename || null; - } - - if (event.exception) { - var frames_2 = event.exception.values && event.exception.values[0].stacktrace && event.exception.values[0].stacktrace.frames; - return frames_2 && frames_2[frames_2.length - 1].filename || null; - } - - return null; - } catch (oO) { - logger.error("Cannot extract url for event " + getEventDescription(event)); - return null; - } - }; - /** - * @inheritDoc - */ - - - InboundFilters.id = 'InboundFilters'; - return InboundFilters; - }(); - - var UNKNOWN_FUNCTION = '?'; // Chromium based browsers: Chrome, Brave, new Opera, new Edge - - var chrome = /^\s*at (?:(.*?) ?\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack||[-a-z]+:|.*bundle|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i; // gecko regex: `(?:bundle|\d+\.js)`: `bundle` is for react native, `\d+\.js` also but specifically for ram bundles because it - // generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js - // We need this specific case for now because we want no other regex to match. - - var gecko = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js))(?::(\d+))?(?::(\d+))?\s*$/i; - var winjs = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i; - var geckoEval = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i; - var chromeEval = /\((\S*)(?::(\d+))(?::(\d+))\)/; // Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108 - - var reactMinifiedRegexp = /Minified React error #\d+;/i; - /** JSDoc */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types - - function computeStackTrace(ex) { - var stack = null; - var popSize = 0; - - if (ex) { - if (typeof ex.framesToPop === 'number') { - popSize = ex.framesToPop; - } else if (reactMinifiedRegexp.test(ex.message)) { - popSize = 1; - } - } - - try { - // This must be tried first because Opera 10 *destroys* - // its stacktrace property if you try to access the stack - // property first!! - stack = computeStackTraceFromStacktraceProp(ex); - - if (stack) { - return popFrames(stack, popSize); - } - } catch (e) {// no-empty - } - - try { - stack = computeStackTraceFromStackProp(ex); - - if (stack) { - return popFrames(stack, popSize); - } - } catch (e) {// no-empty - } - - return { - message: extractMessage(ex), - name: ex && ex.name, - stack: [], - failed: true - }; - } - /** JSDoc */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any, complexity - - function computeStackTraceFromStackProp(ex) { - if (!ex || !ex.stack) { - return null; - } - - var stack = []; - var lines = ex.stack.split('\n'); - var isEval; - var submatch; - var parts; - var element; - - for (var i = 0; i < lines.length; ++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 - - parts[3] = submatch[2]; // line - - parts[4] = submatch[3]; // column - } - - element = { - // working with the regexp above is super painful. it is quite a hack, but just stripping the `address at ` - // prefix here seems like the quickest solution for now. - url: parts[2] && parts[2].indexOf('address at ') === 0 ? parts[2].substr('address at '.length) : parts[2], - 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[1] = parts[1] || "eval"; - parts[3] = submatch[1]; - parts[4] = submatch[2]; - parts[5] = ''; // no column when eval - } else if (i === 0 && !parts[5] && ex.columnNumber !== void 0) { - // 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 = UNKNOWN_FUNCTION; - } - - stack.push(element); - } - - if (!stack.length) { - return null; - } - - return { - message: extractMessage(ex), - name: ex.name, - stack: stack - }; - } - /** JSDoc */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - - - function computeStackTraceFromStacktraceProp(ex) { - if (!ex || !ex.stacktrace) { - return null; - } // 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; - var opera10Regex = / line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i; - var opera11Regex = / line (\d+), column (\d+)\s*(?:in (?:]+)>|([^)]+))\((.*)\))? in (.*):\s*$/i; - var lines = stacktrace.split('\n'); - var stack = []; - var parts; - - for (var line = 0; line < lines.length; line += 2) { - var element = null; - - if (parts = opera10Regex.exec(lines[line])) { - element = { - url: parts[2], - func: parts[3], - args: [], - line: +parts[1], - column: null - }; - } else if (parts = opera11Regex.exec(lines[line])) { - element = { - url: parts[6], - func: parts[3] || parts[4], - args: parts[5] ? parts[5].split(',') : [], - line: +parts[1], - column: +parts[2] - }; - } - - if (element) { - if (!element.func && element.line) { - element.func = UNKNOWN_FUNCTION; - } - - stack.push(element); - } - } - - if (!stack.length) { - return null; - } - - return { - message: extractMessage(ex), - name: ex.name, - stack: stack - }; - } - /** Remove N number of frames from the stack */ - - - function popFrames(stacktrace, popSize) { - try { - return _assign(_assign({}, stacktrace), { - stack: stacktrace.stack.slice(popSize) - }); - } catch (e) { - return stacktrace; - } - } - /** - * There are cases where stacktrace.message is an Event object - * https://github.com/getsentry/sentry-javascript/issues/1949 - * In this specific case we try to extract stacktrace.message.error.message - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - - - function extractMessage(ex) { - var message = ex && ex.message; - - if (!message) { - return 'No error message'; - } - - if (message.error && typeof message.error.message === 'string') { - return message.error.message; - } - - return message; - } - - var STACKTRACE_LIMIT = 50; - /** - * This function creates an exception from an TraceKitStackTrace - * @param stacktrace TraceKitStackTrace that will be converted to an exception - * @hidden - */ - - function exceptionFromStacktrace(stacktrace) { - var frames = prepareFramesForEvent(stacktrace.stack); - var exception = { - type: stacktrace.name, - value: stacktrace.message - }; - - if (frames && frames.length) { - exception.stacktrace = { - frames: frames - }; - } - - if (exception.type === undefined && exception.value === '') { - exception.value = 'Unrecoverable error caught'; - } - - return exception; - } - /** - * @hidden - */ - - function eventFromPlainObject(exception, syntheticException, rejection) { - var event = { - exception: { - values: [{ - type: isEvent(exception) ? exception.constructor.name : rejection ? 'UnhandledRejection' : 'Error', - value: "Non-Error " + (rejection ? 'promise rejection' : 'exception') + " captured with keys: " + extractExceptionKeysForMessage(exception) - }] - }, - extra: { - __serialized__: normalizeToSize(exception) - } - }; - - if (syntheticException) { - var stacktrace = computeStackTrace(syntheticException); - var frames_1 = prepareFramesForEvent(stacktrace.stack); - event.stacktrace = { - frames: frames_1 - }; - } - - return event; - } - /** - * @hidden - */ - - function eventFromStacktrace(stacktrace) { - var exception = exceptionFromStacktrace(stacktrace); - return { - exception: { - values: [exception] - } - }; - } - /** - * @hidden - */ - - function prepareFramesForEvent(stack) { - if (!stack || !stack.length) { - return []; - } - - var localStack = stack; - var firstFrameFunction = localStack[0].func || ''; - var 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 (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) { - 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 (lastFrameFunction.indexOf('sentryWrapped') !== -1) { - localStack = localStack.slice(0, -1); - } // The frame where the crash happened, should be the last entry in the array - - - return localStack.slice(0, STACKTRACE_LIMIT).map(function (frame) { - return { - colno: frame.column === null ? undefined : frame.column, - filename: frame.url || localStack[0].url, - function: frame.func || '?', - in_app: true, - lineno: frame.line === null ? undefined : frame.line - }; - }).reverse(); - } - - /** - * Builds and Event from a Exception - * @hidden - */ - - function eventFromException(options, exception, hint) { - var syntheticException = hint && hint.syntheticException || undefined; - var event = eventFromUnknownInput(exception, syntheticException, { - attachStacktrace: options.attachStacktrace - }); - addExceptionMechanism(event, { - handled: true, - type: 'generic' - }); - event.level = Severity.Error; - - if (hint && hint.event_id) { - event.event_id = hint.event_id; - } - - return SyncPromise.resolve(event); - } - /** - * Builds and Event from a Message - * @hidden - */ - - function eventFromMessage(options, message, level, hint) { - if (level === void 0) { - level = Severity.Info; - } - - var syntheticException = hint && hint.syntheticException || undefined; - var event = eventFromString(message, syntheticException, { - attachStacktrace: options.attachStacktrace - }); - event.level = level; - - if (hint && hint.event_id) { - event.event_id = hint.event_id; - } - - return SyncPromise.resolve(event); - } - /** - * @hidden - */ - - function eventFromUnknownInput(exception, syntheticException, options) { - if (options === void 0) { - options = {}; - } - - var event; - - if (isErrorEvent(exception) && exception.error) { - // If it is an ErrorEvent with `error` property, extract it to get actual Error - var errorEvent = exception; // eslint-disable-next-line no-param-reassign - - exception = errorEvent.error; - event = eventFromStacktrace(computeStackTrace(exception)); - return event; - } - - if (isDOMError(exception) || isDOMException(exception)) { - // If it is a DOMError or DOMException (which are legacy APIs, but still supported in some browsers) - // then we just extract the name and message, as they don't provide anything else - // https://developer.mozilla.org/en-US/docs/Web/API/DOMError - // https://developer.mozilla.org/en-US/docs/Web/API/DOMException - var domException = exception; - var name_1 = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException'); - var message = domException.message ? name_1 + ": " + domException.message : name_1; - event = eventFromString(message, syntheticException, options); - addExceptionTypeValue(event, message); - return event; - } - - if (isError(exception)) { - // we have a real Error object, do nothing - event = eventFromStacktrace(computeStackTrace(exception)); - return event; - } - - if (isPlainObject(exception) || isEvent(exception)) { - // If it is plain Object or Event, serialize it manually and extract options - // This will allow us to group events based on top-level keys - // which is much better than creating new group when any key/value change - var objectException = exception; - event = eventFromPlainObject(objectException, syntheticException, options.rejection); - addExceptionMechanism(event, { - synthetic: true - }); - return event; - } // If none of previous checks were valid, then it means that it's not: - // - an instance of DOMError - // - an instance of DOMException - // - an instance of Event - // - an instance of Error - // - a valid ErrorEvent (one with an error property) - // - a plain Object - // - // So bail out and capture it as a simple message: - - - event = eventFromString(exception, syntheticException, options); - addExceptionTypeValue(event, "" + exception, undefined); - addExceptionMechanism(event, { - synthetic: true - }); - return event; - } - /** - * @hidden - */ - - function eventFromString(input, syntheticException, options) { - if (options === void 0) { - options = {}; - } - - var event = { - message: input - }; - - if (options.attachStacktrace && syntheticException) { - var stacktrace = computeStackTrace(syntheticException); - var frames_1 = prepareFramesForEvent(stacktrace.stack); - event.stacktrace = { - frames: frames_1 - }; - } - - return event; - } - - /** Base Transport class implementation */ - - var BaseTransport = - /** @class */ - function () { - function BaseTransport(options) { - this.options = options; - /** A simple buffer holding all requests. */ - - this._buffer = new PromiseBuffer(30); - this._api = new API(this.options.dsn); // eslint-disable-next-line deprecation/deprecation - - this.url = this._api.getStoreEndpointWithUrlEncodedAuth(); - } - /** - * @inheritDoc - */ - - - BaseTransport.prototype.sendEvent = function (_) { - throw new SentryError('Transport Class has to implement `sendEvent` method'); - }; - /** - * @inheritDoc - */ - - - BaseTransport.prototype.close = function (timeout) { - return this._buffer.drain(timeout); - }; - - return BaseTransport; - }(); - - var global$3 = getGlobalObject(); - /** `fetch` based transport */ - - var FetchTransport = - /** @class */ - function (_super) { - __extends(FetchTransport, _super); - - function FetchTransport() { - var _this = _super !== null && _super.apply(this, arguments) || this; - /** Locks transport after receiving 429 response */ - - - _this._disabledUntil = new Date(Date.now()); - return _this; - } - /** - * @inheritDoc - */ - - - FetchTransport.prototype.sendEvent = function (event) { - var _this = this; - - if (new Date(Date.now()) < this._disabledUntil) { - return Promise.reject({ - event: event, - reason: "Transport locked till " + this._disabledUntil + " due to too many requests.", - status: 429 - }); - } - - var sentryReq = eventToSentryRequest(event, this._api); - var options = { - body: sentryReq.body, - method: 'POST', - // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default - // https://caniuse.com/#feat=referrer-policy - // It doesn't. And it throw exception instead of ignoring this parameter... - // REF: https://github.com/getsentry/raven-js/issues/1233 - referrerPolicy: supportsReferrerPolicy() ? 'origin' : '' - }; - - if (this.options.fetchParameters !== undefined) { - Object.assign(options, this.options.fetchParameters); - } - - if (this.options.headers !== undefined) { - options.headers = this.options.headers; - } - - return this._buffer.add(new SyncPromise(function (resolve, reject) { - global$3.fetch(sentryReq.url, options).then(function (response) { - var status = Status.fromHttpCode(response.status); - - if (status === Status.Success) { - resolve({ - status: status - }); - return; - } - - if (status === Status.RateLimit) { - var now = Date.now(); - /** - * "The name is case-insensitive." - * https://developer.mozilla.org/en-US/docs/Web/API/Headers/get - */ - - var retryAfterHeader = response.headers.get('Retry-After'); - _this._disabledUntil = new Date(now + parseRetryAfterHeader(now, retryAfterHeader)); - logger.warn("Too many requests, backing off till: " + _this._disabledUntil); - } - - reject(response); - }).catch(reject); - })); - }; - - return FetchTransport; - }(BaseTransport); - - /** `XHR` based transport */ - - var XHRTransport = - /** @class */ - function (_super) { - __extends(XHRTransport, _super); - - function XHRTransport() { - var _this = _super !== null && _super.apply(this, arguments) || this; - /** Locks transport after receiving 429 response */ - - - _this._disabledUntil = new Date(Date.now()); - return _this; - } - /** - * @inheritDoc - */ - - - XHRTransport.prototype.sendEvent = function (event) { - var _this = this; - - if (new Date(Date.now()) < this._disabledUntil) { - return Promise.reject({ - event: event, - reason: "Transport locked till " + this._disabledUntil + " due to too many requests.", - status: 429 - }); - } - - var sentryReq = eventToSentryRequest(event, this._api); - return this._buffer.add(new SyncPromise(function (resolve, reject) { - var request = new XMLHttpRequest(); - - request.onreadystatechange = function () { - if (request.readyState !== 4) { - return; - } - - var status = Status.fromHttpCode(request.status); - - if (status === Status.Success) { - resolve({ - status: status - }); - return; - } - - if (status === Status.RateLimit) { - var now = Date.now(); - /** - * "The search for the header name is case-insensitive." - * https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getResponseHeader - */ - - var retryAfterHeader = request.getResponseHeader('Retry-After'); - _this._disabledUntil = new Date(now + parseRetryAfterHeader(now, retryAfterHeader)); - logger.warn("Too many requests, backing off till: " + _this._disabledUntil); - } - - reject(request); - }; - - request.open('POST', sentryReq.url); - - for (var header in _this.options.headers) { - if (_this.options.headers.hasOwnProperty(header)) { - request.setRequestHeader(header, _this.options.headers[header]); - } - } - - request.send(sentryReq.body); - })); - }; - - return XHRTransport; - }(BaseTransport); - - /** - * The Sentry Browser SDK Backend. - * @hidden - */ - - var BrowserBackend = - /** @class */ - function (_super) { - __extends(BrowserBackend, _super); - - function BrowserBackend() { - return _super !== null && _super.apply(this, arguments) || this; - } - /** - * @inheritDoc - */ - - - BrowserBackend.prototype.eventFromException = function (exception, hint) { - return eventFromException(this._options, exception, hint); - }; - /** - * @inheritDoc - */ - - - BrowserBackend.prototype.eventFromMessage = function (message, level, hint) { - if (level === void 0) { - level = Severity.Info; - } - - return eventFromMessage(this._options, message, level, hint); - }; - /** - * @inheritDoc - */ - - - BrowserBackend.prototype._setupTransport = function () { - if (!this._options.dsn) { - // We return the noop transport here in case there is no Dsn. - return _super.prototype._setupTransport.call(this); - } - - var transportOptions = _assign(_assign({}, this._options.transportOptions), { - dsn: this._options.dsn - }); - - if (this._options.transport) { - return new this._options.transport(transportOptions); - } - - if (supportsFetch()) { - return new FetchTransport(transportOptions); - } - - return new XHRTransport(transportOptions); - }; - - return BrowserBackend; - }(BaseBackend); - - var ignoreOnError = 0; - /** - * @hidden - */ - - function shouldIgnoreOnError() { - return ignoreOnError > 0; - } - /** - * @hidden - */ - - function ignoreNextOnError() { - // onerror should trigger before setTimeout - ignoreOnError += 1; - setTimeout(function () { - ignoreOnError -= 1; - }); - } - /** - * Instruments the given function and sends an event to Sentry every time the - * function throws an exception. - * - * @param fn A function to wrap. - * @returns The wrapped function. - * @hidden - */ - - function wrap$1(fn, options, before) { - if (options === void 0) { - options = {}; - } - - if (typeof fn !== 'function') { - return fn; - } - - try { - // We don't wanna wrap it twice - if (fn.__sentry__) { - return fn; - } // If this has already been wrapped in the past, return that wrapped function - - - if (fn.__sentry_wrapped__) { - return fn.__sentry_wrapped__; - } - } catch (e) { - // Just accessing custom props in some Selenium environments - // can cause a "Permission denied" exception (see raven-js#495). - // Bail on wrapping and return the function as-is (defers to window.onerror). - return fn; - } - /* eslint-disable prefer-rest-params */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - - - var sentryWrapped = function sentryWrapped() { - var args = Array.prototype.slice.call(arguments); - - try { - if (before && typeof before === 'function') { - before.apply(this, arguments); - } // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access - - - var wrappedArguments = args.map(function (arg) { - return wrap$1(arg, options); - }); - - if (fn.handleEvent) { - // Attempt to invoke user-land function - // NOTE: If you are a Sentry user, and you are seeing this stack frame, it - // means the sentry.javascript SDK caught an error invoking your application code. This - // is expected behavior and NOT indicative of a bug with sentry.javascript. - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - return fn.handleEvent.apply(this, wrappedArguments); - } // Attempt to invoke user-land function - // NOTE: If you are a Sentry user, and you are seeing this stack frame, it - // means the sentry.javascript SDK caught an error invoking your application code. This - // is expected behavior and NOT indicative of a bug with sentry.javascript. - - - return fn.apply(this, wrappedArguments); - } catch (ex) { - ignoreNextOnError(); - withScope(function (scope) { - scope.addEventProcessor(function (event) { - var processedEvent = _assign({}, event); - - if (options.mechanism) { - addExceptionTypeValue(processedEvent, undefined, undefined); - addExceptionMechanism(processedEvent, options.mechanism); - } - - processedEvent.extra = _assign(_assign({}, processedEvent.extra), { - arguments: args - }); - return processedEvent; - }); - captureException(ex); - }); - throw ex; - } - }; - /* eslint-enable prefer-rest-params */ - // Accessing some objects may throw - // ref: https://github.com/getsentry/sentry-javascript/issues/1168 - - - try { - for (var property in fn) { - if (Object.prototype.hasOwnProperty.call(fn, property)) { - sentryWrapped[property] = fn[property]; - } - } - } catch (_oO) {} // eslint-disable-line no-empty - - - fn.prototype = fn.prototype || {}; - sentryWrapped.prototype = fn.prototype; - Object.defineProperty(fn, '__sentry_wrapped__', { - enumerable: false, - value: sentryWrapped - }); // Signal that this function has been wrapped/filled already - // for both debugging and to prevent it to being wrapped/filled twice - - Object.defineProperties(sentryWrapped, { - __sentry__: { - enumerable: false, - value: true - }, - __sentry_original__: { - enumerable: false, - value: fn - } - }); // Restore original function name (not all browsers allow that) - - try { - var descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name'); - - if (descriptor.configurable) { - Object.defineProperty(sentryWrapped, 'name', { - get: function get() { - return fn.name; - } - }); - } // eslint-disable-next-line no-empty - - } catch (_oO) {} - - return sentryWrapped; - } - /** - * Injects the Report Dialog script - * @hidden - */ - - function injectReportDialog(options) { - if (options === void 0) { - options = {}; - } - - if (!options.eventId) { - logger.error("Missing eventId option in showReportDialog call"); - return; - } - - if (!options.dsn) { - logger.error("Missing dsn option in showReportDialog call"); - return; - } - - var script = document.createElement('script'); - script.async = true; - script.src = new API(options.dsn).getReportDialogEndpoint(options); - - if (options.onLoad) { - // eslint-disable-next-line @typescript-eslint/unbound-method - script.onload = options.onLoad; - } - - (document.head || document.body).appendChild(script); - } - - /** Global handlers */ - - var GlobalHandlers = - /** @class */ - function () { - /** JSDoc */ - function GlobalHandlers(options) { - /** - * @inheritDoc - */ - this.name = GlobalHandlers.id; - /** JSDoc */ - - this._onErrorHandlerInstalled = false; - /** JSDoc */ - - this._onUnhandledRejectionHandlerInstalled = false; - this._options = _assign({ - onerror: true, - onunhandledrejection: true - }, options); - } - /** - * @inheritDoc - */ - - - GlobalHandlers.prototype.setupOnce = function () { - Error.stackTraceLimit = 50; - - if (this._options.onerror) { - logger.log('Global Handler attached: onerror'); - - this._installGlobalOnErrorHandler(); - } - - if (this._options.onunhandledrejection) { - logger.log('Global Handler attached: onunhandledrejection'); - - this._installGlobalOnUnhandledRejectionHandler(); - } - }; - /** JSDoc */ - - - GlobalHandlers.prototype._installGlobalOnErrorHandler = function () { - var _this = this; - - if (this._onErrorHandlerInstalled) { - return; - } - - addInstrumentationHandler({ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - callback: function callback(data) { - var error = data.error; - var currentHub = getCurrentHub(); - var hasIntegration = currentHub.getIntegration(GlobalHandlers); - var isFailedOwnDelivery = error && error.__sentry_own_request__ === true; - - if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) { - return; - } - - var client = currentHub.getClient(); - var event = isPrimitive(error) ? _this._eventFromIncompleteOnError(data.msg, data.url, data.line, data.column) : _this._enhanceEventWithInitialFrame(eventFromUnknownInput(error, undefined, { - attachStacktrace: client && client.getOptions().attachStacktrace, - rejection: false - }), data.url, data.line, data.column); - addExceptionMechanism(event, { - handled: false, - type: 'onerror' - }); - currentHub.captureEvent(event, { - originalException: error - }); - }, - type: 'error' - }); - this._onErrorHandlerInstalled = true; - }; - /** JSDoc */ - - - GlobalHandlers.prototype._installGlobalOnUnhandledRejectionHandler = function () { - var _this = this; - - if (this._onUnhandledRejectionHandlerInstalled) { - return; - } - - addInstrumentationHandler({ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - callback: function callback(e) { - var error = e; // dig the object of the rejection out of known event types - - try { - // PromiseRejectionEvents store the object of the rejection under 'reason' - // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent - if ('reason' in e) { - error = e.reason; - } // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents - // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into - // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec - // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and - // https://github.com/getsentry/sentry-javascript/issues/2380 - else if ('detail' in e && 'reason' in e.detail) { - error = e.detail.reason; - } - } catch (_oO) {// no-empty - } - - var currentHub = getCurrentHub(); - var hasIntegration = currentHub.getIntegration(GlobalHandlers); - var isFailedOwnDelivery = error && error.__sentry_own_request__ === true; - - if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) { - return true; - } - - var client = currentHub.getClient(); - var event = isPrimitive(error) ? _this._eventFromIncompleteRejection(error) : eventFromUnknownInput(error, undefined, { - attachStacktrace: client && client.getOptions().attachStacktrace, - rejection: true - }); - event.level = Severity.Error; - addExceptionMechanism(event, { - handled: false, - type: 'onunhandledrejection' - }); - currentHub.captureEvent(event, { - originalException: error - }); - return; - }, - type: 'unhandledrejection' - }); - this._onUnhandledRejectionHandlerInstalled = true; - }; - /** - * This function creates a stack from an old, error-less onerror handler. - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - - - GlobalHandlers.prototype._eventFromIncompleteOnError = function (msg, url, line, column) { - var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i; // If 'message' is ErrorEvent, get real message from inside - - var message = isErrorEvent(msg) ? msg.message : msg; - var name; - - if (isString(message)) { - var groups = message.match(ERROR_TYPES_RE); - - if (groups) { - name = groups[1]; - message = groups[2]; - } - } - - var event = { - exception: { - values: [{ - type: name || 'Error', - value: message - }] - } - }; - return this._enhanceEventWithInitialFrame(event, url, line, column); - }; - /** - * This function creates an Event from an TraceKitStackTrace that has part of it missing. - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - - - GlobalHandlers.prototype._eventFromIncompleteRejection = function (error) { - return { - exception: { - values: [{ - type: 'UnhandledRejection', - value: "Non-Error promise rejection captured with value: " + error - }] - } - }; - }; - /** JSDoc */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - - - GlobalHandlers.prototype._enhanceEventWithInitialFrame = function (event, url, line, column) { - event.exception = event.exception || {}; - event.exception.values = event.exception.values || []; - event.exception.values[0] = event.exception.values[0] || {}; - event.exception.values[0].stacktrace = event.exception.values[0].stacktrace || {}; - event.exception.values[0].stacktrace.frames = event.exception.values[0].stacktrace.frames || []; - var colno = isNaN(parseInt(column, 10)) ? undefined : column; - var lineno = isNaN(parseInt(line, 10)) ? undefined : line; - var filename = isString(url) && url.length > 0 ? url : getLocationHref(); - - if (event.exception.values[0].stacktrace.frames.length === 0) { - event.exception.values[0].stacktrace.frames.push({ - colno: colno, - filename: filename, - function: '?', - in_app: true, - lineno: lineno - }); - } - - return event; - }; - /** - * @inheritDoc - */ - - - GlobalHandlers.id = 'GlobalHandlers'; - return GlobalHandlers; - }(); - - var DEFAULT_EVENT_TARGET = ['EventTarget', 'Window', 'Node', 'ApplicationCache', 'AudioTrackList', 'ChannelMergerNode', 'CryptoOperation', 'EventSource', 'FileReader', 'HTMLUnknownElement', 'IDBDatabase', 'IDBRequest', 'IDBTransaction', 'KeyOperation', 'MediaController', 'MessagePort', 'ModalWindow', 'Notification', 'SVGElementInstance', 'Screen', 'TextTrack', 'TextTrackCue', 'TextTrackList', 'WebSocket', 'WebSocketWorker', 'Worker', 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'XMLHttpRequestUpload']; - /** Wrap timer functions and event targets to catch errors and provide better meta data */ - - var TryCatch = - /** @class */ - function () { - /** - * @inheritDoc - */ - function TryCatch(options) { - /** - * @inheritDoc - */ - this.name = TryCatch.id; - this._options = _assign({ - XMLHttpRequest: true, - eventTarget: true, - requestAnimationFrame: true, - setInterval: true, - setTimeout: true - }, options); - } - /** - * Wrap timer functions and event targets to catch errors - * and provide better metadata. - */ - - - TryCatch.prototype.setupOnce = function () { - var global = getGlobalObject(); - - if (this._options.setTimeout) { - fill(global, 'setTimeout', this._wrapTimeFunction.bind(this)); - } - - if (this._options.setInterval) { - fill(global, 'setInterval', this._wrapTimeFunction.bind(this)); - } - - if (this._options.requestAnimationFrame) { - fill(global, 'requestAnimationFrame', this._wrapRAF.bind(this)); - } - - if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) { - fill(XMLHttpRequest.prototype, 'send', this._wrapXHR.bind(this)); - } - - if (this._options.eventTarget) { - var eventTarget = Array.isArray(this._options.eventTarget) ? this._options.eventTarget : DEFAULT_EVENT_TARGET; - eventTarget.forEach(this._wrapEventTarget.bind(this)); - } - }; - /** JSDoc */ - - - TryCatch.prototype._wrapTimeFunction = function (original) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - return function () { - var args = []; - - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - - var originalCallback = args[0]; - args[0] = wrap$1(originalCallback, { - mechanism: { - data: { - function: getFunctionName(original) - }, - handled: true, - type: 'instrument' - } - }); - return original.apply(this, args); - }; - }; - /** JSDoc */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - - - TryCatch.prototype._wrapRAF = function (original) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - return function (callback) { - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - return original.call(this, wrap$1(callback, { - mechanism: { - data: { - function: 'requestAnimationFrame', - handler: getFunctionName(original) - }, - handled: true, - type: 'instrument' - } - })); - }; - }; - /** JSDoc */ - - - TryCatch.prototype._wrapEventTarget = function (target) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - var global = getGlobalObject(); // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - - var proto = global[target] && global[target].prototype; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - - if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) { - return; - } - - fill(proto, 'addEventListener', function (original) { - return function (eventName, fn, options) { - try { - if (typeof fn.handleEvent === 'function') { - fn.handleEvent = wrap$1(fn.handleEvent.bind(fn), { - mechanism: { - data: { - function: 'handleEvent', - handler: getFunctionName(fn), - target: target - }, - handled: true, - type: 'instrument' - } - }); - } - } catch (err) {// can sometimes get 'Permission denied to access property "handle Event' - } - - return original.call(this, eventName, // eslint-disable-next-line @typescript-eslint/no-explicit-any - wrap$1(fn, { - mechanism: { - data: { - function: 'addEventListener', - handler: getFunctionName(fn), - target: target - }, - handled: true, - type: 'instrument' - } - }), options); - }; - }); - fill(proto, 'removeEventListener', function (original) { - return function (eventName, fn, options) { - /** - * There are 2 possible scenarios here: - * - * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified - * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function - * as a pass-through, and call original `removeEventListener` with it. - * - * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using - * our wrapped version of `addEventListener`, which internally calls `wrap` helper. - * This helper "wraps" whole callback inside a try/catch statement, and attached appropriate metadata to it, - * in order for us to make a distinction between wrapped/non-wrapped functions possible. - * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler. - * - * When someone adds a handler prior to initialization, and then do it again, but after, - * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible - * to get rid of the initial handler and it'd stick there forever. - */ - try { - original.call(this, eventName, fn.__sentry_wrapped__, options); - } catch (e) {// ignore, accessing __sentry_wrapped__ will throw in some Selenium environments - } - - return original.call(this, eventName, fn, options); - }; - }); - }; - /** JSDoc */ - - - TryCatch.prototype._wrapXHR = function (originalSend) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - return function () { - var args = []; - - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } // eslint-disable-next-line @typescript-eslint/no-this-alias - - - var xhr = this; - var xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange']; - xmlHttpRequestProps.forEach(function (prop) { - if (prop in xhr && typeof xhr[prop] === 'function') { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - fill(xhr, prop, function (original) { - var wrapOptions = { - mechanism: { - data: { - function: prop, - handler: getFunctionName(original) - }, - handled: true, - type: 'instrument' - } - }; // If Instrument integration has been called before TryCatch, get the name of original function - - if (original.__sentry_original__) { - wrapOptions.mechanism.data.handler = getFunctionName(original.__sentry_original__); - } // Otherwise wrap directly - - - return wrap$1(original, wrapOptions); - }); - } - }); - return originalSend.apply(this, args); - }; - }; - /** - * @inheritDoc - */ - - - TryCatch.id = 'TryCatch'; - return TryCatch; - }(); - - /** - * Default Breadcrumbs instrumentations - * TODO: Deprecated - with v6, this will be renamed to `Instrument` - */ - - var Breadcrumbs = - /** @class */ - function () { - /** - * @inheritDoc - */ - function Breadcrumbs(options) { - /** - * @inheritDoc - */ - this.name = Breadcrumbs.id; - this._options = _assign({ - console: true, - dom: true, - fetch: true, - history: true, - sentry: true, - xhr: true - }, options); - } - /** - * Create a breadcrumb of `sentry` from the events themselves - */ - - - Breadcrumbs.prototype.addSentryBreadcrumb = function (event) { - if (!this._options.sentry) { - return; - } - - getCurrentHub().addBreadcrumb({ - category: "sentry." + (event.type === 'transaction' ? 'transaction' : 'event'), - event_id: event.event_id, - level: event.level, - message: getEventDescription(event) - }, { - event: event - }); - }; - /** - * Instrument browser built-ins w/ breadcrumb capturing - * - Console API - * - DOM API (click/typing) - * - XMLHttpRequest API - * - Fetch API - * - History API - */ - - - Breadcrumbs.prototype.setupOnce = function () { - var _this = this; - - if (this._options.console) { - addInstrumentationHandler({ - callback: function callback() { - var args = []; - - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - - _this._consoleBreadcrumb.apply(_this, __spread(args)); - }, - type: 'console' - }); - } - - if (this._options.dom) { - addInstrumentationHandler({ - callback: function callback() { - var args = []; - - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - - _this._domBreadcrumb.apply(_this, __spread(args)); - }, - type: 'dom' - }); - } - - if (this._options.xhr) { - addInstrumentationHandler({ - callback: function callback() { - var args = []; - - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - - _this._xhrBreadcrumb.apply(_this, __spread(args)); - }, - type: 'xhr' - }); - } - - if (this._options.fetch) { - addInstrumentationHandler({ - callback: function callback() { - var args = []; - - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - - _this._fetchBreadcrumb.apply(_this, __spread(args)); - }, - type: 'fetch' - }); - } - - if (this._options.history) { - addInstrumentationHandler({ - callback: function callback() { - var args = []; - - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - - _this._historyBreadcrumb.apply(_this, __spread(args)); - }, - type: 'history' - }); - } - }; - /** - * Creates breadcrumbs from console API calls - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - - - Breadcrumbs.prototype._consoleBreadcrumb = function (handlerData) { - var breadcrumb = { - category: 'console', - data: { - arguments: handlerData.args, - logger: 'console' - }, - level: Severity.fromString(handlerData.level), - message: safeJoin(handlerData.args, ' ') - }; - - if (handlerData.level === 'assert') { - if (handlerData.args[0] === false) { - breadcrumb.message = "Assertion failed: " + (safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'); - breadcrumb.data.arguments = handlerData.args.slice(1); - } else { - // Don't capture a breadcrumb for passed assertions - return; - } - } - - getCurrentHub().addBreadcrumb(breadcrumb, { - input: handlerData.args, - level: handlerData.level - }); - }; - /** - * Creates breadcrumbs from DOM API calls - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - - - Breadcrumbs.prototype._domBreadcrumb = function (handlerData) { - var target; // Accessing event.target can throw (see getsentry/raven-js#838, #768) - - try { - target = handlerData.event.target ? htmlTreeAsString(handlerData.event.target) : htmlTreeAsString(handlerData.event); - } catch (e) { - target = ''; - } - - if (target.length === 0) { - return; - } - - getCurrentHub().addBreadcrumb({ - category: "ui." + handlerData.name, - message: target - }, { - event: handlerData.event, - name: handlerData.name - }); - }; - /** - * Creates breadcrumbs from XHR API calls - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - - - Breadcrumbs.prototype._xhrBreadcrumb = function (handlerData) { - if (handlerData.endTimestamp) { - // We only capture complete, non-sentry requests - if (handlerData.xhr.__sentry_own_request__) { - return; - } - - getCurrentHub().addBreadcrumb({ - category: 'xhr', - data: handlerData.xhr.__sentry_xhr__, - type: 'http' - }, { - xhr: handlerData.xhr - }); - return; - } - }; - /** - * Creates breadcrumbs from fetch API calls - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - - - Breadcrumbs.prototype._fetchBreadcrumb = function (handlerData) { - // We only capture complete fetch requests - if (!handlerData.endTimestamp) { - return; - } - - if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') { - // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests) - return; - } - - if (handlerData.error) { - getCurrentHub().addBreadcrumb({ - category: 'fetch', - data: handlerData.fetchData, - level: Severity.Error, - type: 'http' - }, { - data: handlerData.error, - input: handlerData.args - }); - } else { - getCurrentHub().addBreadcrumb({ - category: 'fetch', - data: _assign(_assign({}, handlerData.fetchData), { - status_code: handlerData.response.status - }), - type: 'http' - }, { - input: handlerData.args, - response: handlerData.response - }); - } - }; - /** - * Creates breadcrumbs from history API calls - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - - - Breadcrumbs.prototype._historyBreadcrumb = function (handlerData) { - var global = getGlobalObject(); - var from = handlerData.from; - var to = handlerData.to; - var parsedLoc = parseUrl(global.location.href); - var parsedFrom = parseUrl(from); - var parsedTo = parseUrl(to); // Initial pushState doesn't provide `from` information - - if (!parsedFrom.path) { - parsedFrom = parsedLoc; - } // Use only the path component of the URL if the URL matches the current - // document (almost all the time when using pushState) - - - if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) { - to = parsedTo.relative; - } - - if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) { - from = parsedFrom.relative; - } - - getCurrentHub().addBreadcrumb({ - category: 'navigation', - data: { - from: from, - to: to - } - }); - }; - /** - * @inheritDoc - */ - - - Breadcrumbs.id = 'Breadcrumbs'; - return Breadcrumbs; - }(); - - var DEFAULT_KEY = 'cause'; - var DEFAULT_LIMIT = 5; - /** Adds SDK info to an event. */ - - var LinkedErrors = - /** @class */ - function () { - /** - * @inheritDoc - */ - function LinkedErrors(options) { - if (options === void 0) { - options = {}; - } - /** - * @inheritDoc - */ - - - this.name = LinkedErrors.id; - this._key = options.key || DEFAULT_KEY; - this._limit = options.limit || DEFAULT_LIMIT; - } - /** - * @inheritDoc - */ - - - LinkedErrors.prototype.setupOnce = function () { - addGlobalEventProcessor(function (event, hint) { - var self = getCurrentHub().getIntegration(LinkedErrors); - - if (self) { - return self._handler(event, hint); - } - - return event; - }); - }; - /** - * @inheritDoc - */ - - - LinkedErrors.prototype._handler = function (event, hint) { - if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) { - return event; - } - - var linkedErrors = this._walkErrorTree(hint.originalException, this._key); - - event.exception.values = __spread(linkedErrors, event.exception.values); - return event; - }; - /** - * @inheritDoc - */ - - - LinkedErrors.prototype._walkErrorTree = function (error, key, stack) { - if (stack === void 0) { - stack = []; - } - - if (!isInstanceOf(error[key], Error) || stack.length + 1 >= this._limit) { - return stack; - } - - var stacktrace = computeStackTrace(error[key]); - var exception = exceptionFromStacktrace(stacktrace); - return this._walkErrorTree(error[key], key, __spread([exception], stack)); - }; - /** - * @inheritDoc - */ - - - LinkedErrors.id = 'LinkedErrors'; - return LinkedErrors; - }(); - - var global$4 = getGlobalObject(); - /** UserAgent */ - - var UserAgent = - /** @class */ - function () { - function UserAgent() { - /** - * @inheritDoc - */ - this.name = UserAgent.id; - } - /** - * @inheritDoc - */ - - - UserAgent.prototype.setupOnce = function () { - addGlobalEventProcessor(function (event) { - if (getCurrentHub().getIntegration(UserAgent)) { - if (!global$4.navigator || !global$4.location) { - return event; - } - - var request = event.request || {}; - request.url = request.url || global$4.location.href; - request.headers = request.headers || {}; - request.headers['User-Agent'] = global$4.navigator.userAgent; - return _assign(_assign({}, event), { - request: request - }); - } - - return event; - }); - }; - /** - * @inheritDoc - */ - - - UserAgent.id = 'UserAgent'; - return UserAgent; - }(); - - var SDK_NAME = 'sentry.javascript.browser'; - var SDK_VERSION = '5.22.3'; - - /** - * The Sentry Browser SDK Client. - * - * @see BrowserOptions for documentation on configuration options. - * @see SentryClient for usage documentation. - */ - - var BrowserClient = - /** @class */ - function (_super) { - __extends(BrowserClient, _super); - /** - * Creates a new Browser SDK instance. - * - * @param options Configuration options for this SDK. - */ - - - function BrowserClient(options) { - if (options === void 0) { - options = {}; - } - - return _super.call(this, BrowserBackend, options) || this; - } - /** - * Show a report dialog to the user to send feedback to a specific event. - * - * @param options Set individual options for the dialog - */ - - - BrowserClient.prototype.showReportDialog = function (options) { - if (options === void 0) { - options = {}; - } // doesn't work without a document (React Native) - - - var document = getGlobalObject().document; - - if (!document) { - return; - } - - if (!this._isEnabled()) { - logger.error('Trying to call showReportDialog with Sentry Client disabled'); - return; - } - - injectReportDialog(_assign(_assign({}, options), { - dsn: options.dsn || this.getDsn() - })); - }; - /** - * @inheritDoc - */ - - - BrowserClient.prototype._prepareEvent = function (event, scope, hint) { - event.platform = event.platform || 'javascript'; - event.sdk = _assign(_assign({}, event.sdk), { - name: SDK_NAME, - packages: __spread(event.sdk && event.sdk.packages || [], [{ - name: 'npm:@sentry/browser', - version: SDK_VERSION - }]), - version: SDK_VERSION - }); - return _super.prototype._prepareEvent.call(this, event, scope, hint); - }; - /** - * @inheritDoc - */ - - - BrowserClient.prototype._sendEvent = function (event) { - var integration = this.getIntegration(Breadcrumbs); - - if (integration) { - integration.addSentryBreadcrumb(event); - } - - _super.prototype._sendEvent.call(this, event); - }; - - return BrowserClient; - }(BaseClient); - - var defaultIntegrations = [new InboundFilters(), new FunctionToString(), new TryCatch(), new Breadcrumbs(), new GlobalHandlers(), new LinkedErrors(), new UserAgent()]; - /** - * The Sentry Browser SDK Client. - * - * To use this SDK, call the {@link init} function as early as possible when - * loading the web page. To set context information or send manual events, use - * the provided methods. - * - * @example - * - * ``` - * - * import { init } from '@sentry/browser'; - * - * init({ - * dsn: '__DSN__', - * // ... - * }); - * ``` - * - * @example - * ``` - * - * import { configureScope } from '@sentry/browser'; - * configureScope((scope: Scope) => { - * scope.setExtra({ battery: 0.7 }); - * scope.setTag({ user_mode: 'admin' }); - * scope.setUser({ id: '4711' }); - * }); - * ``` - * - * @example - * ``` - * - * import { addBreadcrumb } from '@sentry/browser'; - * addBreadcrumb({ - * message: 'My Breadcrumb', - * // ... - * }); - * ``` - * - * @example - * - * ``` - * - * import * as Sentry from '@sentry/browser'; - * Sentry.captureMessage('Hello, world!'); - * Sentry.captureException(new Error('Good bye')); - * Sentry.captureEvent({ - * message: 'Manual', - * stacktrace: [ - * // ... - * ], - * }); - * ``` - * - * @see {@link BrowserOptions} for documentation on configuration options. - */ - - function init(options) { - if (options === void 0) { - options = {}; - } - - if (options.defaultIntegrations === undefined) { - options.defaultIntegrations = defaultIntegrations; - } - - if (options.release === undefined) { - var window_1 = getGlobalObject(); // This supports the variable that sentry-webpack-plugin injects - - if (window_1.SENTRY_RELEASE && window_1.SENTRY_RELEASE.id) { - options.release = window_1.SENTRY_RELEASE.id; - } - } - - initAndBind(BrowserClient, options); - } - - var $find$1 = arrayIteration.find; - - - - var FIND = 'find'; - var SKIPS_HOLES = true; - - var USES_TO_LENGTH$9 = arrayMethodUsesToLength(FIND); - - // Shouldn't skip holes - if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; }); - - // `Array.prototype.find` method - // https://tc39.github.io/ecma262/#sec-array.prototype.find - _export({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH$9 }, { - find: function find(callbackfn /* , that = undefined */) { - return $find$1(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } - }); - - // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables - addToUnscopables(FIND); - - // a string of all valid unicode whitespaces - // eslint-disable-next-line max-len - var whitespaces = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; - - var whitespace = '[' + whitespaces + ']'; - var ltrim = RegExp('^' + whitespace + whitespace + '*'); - var rtrim = RegExp(whitespace + whitespace + '*$'); - - // `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation - var createMethod$4 = function (TYPE) { - return function ($this) { - var string = String(requireObjectCoercible($this)); - if (TYPE & 1) string = string.replace(ltrim, ''); - if (TYPE & 2) string = string.replace(rtrim, ''); - return string; - }; - }; - - var stringTrim = { - // `String.prototype.{ trimLeft, trimStart }` methods - // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart - start: createMethod$4(1), - // `String.prototype.{ trimRight, trimEnd }` methods - // https://tc39.github.io/ecma262/#sec-string.prototype.trimend - end: createMethod$4(2), - // `String.prototype.trim` method - // https://tc39.github.io/ecma262/#sec-string.prototype.trim - trim: createMethod$4(3) - }; - - var getOwnPropertyNames$2 = objectGetOwnPropertyNames.f; - var getOwnPropertyDescriptor$3 = objectGetOwnPropertyDescriptor.f; - var defineProperty$9 = objectDefineProperty.f; - var trim = stringTrim.trim; - - var NUMBER = 'Number'; - var NativeNumber = global_1[NUMBER]; - var NumberPrototype = NativeNumber.prototype; - - // Opera ~12 has broken Object#toString - var BROKEN_CLASSOF = classofRaw(objectCreate(NumberPrototype)) == NUMBER; - - // `ToNumber` abstract operation - // https://tc39.github.io/ecma262/#sec-tonumber - var toNumber = function (argument) { - var it = toPrimitive(argument, false); - var first, third, radix, maxCode, digits, length, index, code; - if (typeof it == 'string' && it.length > 2) { - it = trim(it); - first = it.charCodeAt(0); - if (first === 43 || first === 45) { - third = it.charCodeAt(2); - if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix - } else if (first === 48) { - switch (it.charCodeAt(1)) { - case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i - case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i - default: return +it; - } - digits = it.slice(2); - length = digits.length; - for (index = 0; index < length; index++) { - code = digits.charCodeAt(index); - // parseInt parses a string to a first unavailable symbol - // but ToNumber should return NaN if a string contains unavailable symbols - if (code < 48 || code > maxCode) return NaN; - } return parseInt(digits, radix); - } - } return +it; - }; - - // `Number` constructor - // https://tc39.github.io/ecma262/#sec-number-constructor - if (isForced_1(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) { - var NumberWrapper = function Number(value) { - var it = arguments.length < 1 ? 0 : value; - var dummy = this; - return dummy instanceof NumberWrapper - // check on 1..constructor(foo) case - && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classofRaw(dummy) != NUMBER) - ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it); - }; - for (var keys$3 = descriptors ? getOwnPropertyNames$2(NativeNumber) : ( - // ES3: - 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + - // ES2015 (in case, if modules with ES2015 Number statics required before): - 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' + - 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger' - ).split(','), j$1 = 0, key$1; keys$3.length > j$1; j$1++) { - if (has(NativeNumber, key$1 = keys$3[j$1]) && !has(NumberWrapper, key$1)) { - defineProperty$9(NumberWrapper, key$1, getOwnPropertyDescriptor$3(NativeNumber, key$1)); - } - } - NumberWrapper.prototype = NumberPrototype; - NumberPrototype.constructor = NumberWrapper; - redefine(global_1, NUMBER, NumberWrapper); - } - - // `Number.isNaN` method - // https://tc39.github.io/ecma262/#sec-number.isnan - _export({ target: 'Number', stat: true }, { - isNaN: function isNaN(number) { - // eslint-disable-next-line no-self-compare - return number != number; - } - }); - - var propertyIsEnumerable = objectPropertyIsEnumerable.f; - - // `Object.{ entries, values }` methods implementation - var createMethod$5 = function (TO_ENTRIES) { - return function (it) { - var O = toIndexedObject(it); - var keys = objectKeys(O); - var length = keys.length; - var i = 0; - var result = []; - var key; - while (length > i) { - key = keys[i++]; - if (!descriptors || propertyIsEnumerable.call(O, key)) { - result.push(TO_ENTRIES ? [key, O[key]] : O[key]); - } - } - return result; - }; - }; - - var objectToArray = { - // `Object.entries` method - // https://tc39.github.io/ecma262/#sec-object.entries - entries: createMethod$5(true), - // `Object.values` method - // https://tc39.github.io/ecma262/#sec-object.values - values: createMethod$5(false) - }; - - var $entries = objectToArray.entries; - - // `Object.entries` method - // https://tc39.github.io/ecma262/#sec-object.entries - _export({ target: 'Object', stat: true }, { - entries: function entries(O) { - return $entries(O); - } - }); - - function _classCallCheck$1(e, t) { - if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); - } - - function _defineProperties$1(e, t) { - for (var n = 0; n < t.length; n++) { - var r = t[n]; - r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r); - } - } - - function _createClass$1(e, t, n) { - return t && _defineProperties$1(e.prototype, t), n && _defineProperties$1(e, n), e; - } - - function _defineProperty$1(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e; - } - - function _slicedToArray$1(e, t) { - return _arrayWithHoles$1(e) || _iterableToArrayLimit$1(e, t) || _nonIterableRest$1(); - } - - function _arrayWithHoles$1(e) { - if (Array.isArray(e)) return e; - } - - function _iterableToArrayLimit$1(e, t) { - var n = [], - r = !0, - o = !1, - i = void 0; - - try { - for (var s, a = e[Symbol.iterator](); !(r = (s = a.next()).done) && (n.push(s.value), !t || n.length !== t); r = !0) { - ; - } - } catch (e) { - o = !0, i = e; - } finally { - try { - r || null == a.return || a.return(); - } finally { - if (o) throw i; - } - } - - return n; - } - - function _nonIterableRest$1() { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); - } - - var getConstructor = function getConstructor(e) { - return null != e ? e.constructor : null; - }, - instanceOf = function instanceOf(e, t) { - return !!(e && t && e instanceof t); - }, - isNullOrUndefined = function isNullOrUndefined(e) { - return null == e; - }, - isObject$1 = function isObject(e) { - return getConstructor(e) === Object; - }, - isNumber = function isNumber(e) { - return getConstructor(e) === Number && !Number.isNaN(e); - }, - isString$1 = function isString(e) { - return getConstructor(e) === String; - }, - isBoolean = function isBoolean(e) { - return getConstructor(e) === Boolean; - }, - isFunction = function isFunction(e) { - return getConstructor(e) === Function; - }, - isArray$1 = function isArray(e) { - return Array.isArray(e); - }, - isNodeList = function isNodeList(e) { - return instanceOf(e, NodeList); - }, - isElement$1 = function isElement(e) { - return instanceOf(e, Element); - }, - isEvent$1 = function isEvent(e) { - return instanceOf(e, Event); - }, - isEmpty = function isEmpty(e) { - return isNullOrUndefined(e) || (isString$1(e) || isArray$1(e) || isNodeList(e)) && !e.length || isObject$1(e) && !Object.keys(e).length; - }, - is = { - nullOrUndefined: isNullOrUndefined, - object: isObject$1, - number: isNumber, - string: isString$1, - boolean: isBoolean, - function: isFunction, - array: isArray$1, - nodeList: isNodeList, - element: isElement$1, - event: isEvent$1, - empty: isEmpty - }, - constants = { - facebook: { - domain: "facebook.com", - url: function url(e) { - return "https://graph.facebook.com/?id=".concat(e, "&fields=og_object{engagement}"); - }, - shareCount: function shareCount(e) { - return e.og_object.engagement.count; - }, - popup: { - width: 640, - height: 360 - } - }, - twitter: { - domain: "twitter.com", - url: function url() { - return null; - }, - shareCount: function shareCount() { - return null; - }, - popup: { - width: 640, - height: 240 - } - }, - pinterest: { - domain: "pinterest.com", - url: function url(e) { - return "https://widgets.pinterest.com/v1/urls/count.json?url=".concat(e); - }, - shareCount: function shareCount(e) { - return e.count; - }, - popup: { - width: 830, - height: 700 - } - }, - github: { - domain: "github.com", - url: function url(e, t) { - return "https://api.github.com/repos/".concat(e).concat(is.string(t) ? "?access_token=".concat(t) : ""); - }, - shareCount: function shareCount(e) { - return e.data.stargazers_count; - } - }, - youtube: { - domain: "youtube.com", - url: function url(e, t) { - return "https://www.googleapis.com/youtube/v3/channels?part=statistics&id=".concat(e, "&key=").concat(t); - }, - shareCount: function shareCount(e) { - if (!is.empty(e.error)) return null; - - var t = _slicedToArray$1(e.items, 1)[0]; - - return is.empty(t) ? null : t.statistics.subscriberCount; - } - } - }, - defaults = { - debug: !1, - wrapper: { - className: "shr" - }, - count: { - className: "shr__count", - displayZero: !1, - format: !0, - position: "after", - increment: !0 - }, - tokens: { - github: "", - youtube: "" - }, - storage: { - enabled: !0, - key: "shr", - ttl: 3e5 - } - }; - - function getJSONP(e) { - return new Promise(function (t, n) { - var r = "jsonp_callback_".concat(Math.round(1e5 * Math.random())), - o = document.createElement("script"); - o.addEventListener("error", function (e) { - return n(e); - }), window[r] = function (e) { - delete window[r], document.body.removeChild(o), t(e); - }; - var i = new URL(e); - i.searchParams.set("callback", r), o.setAttribute("src", i.toString()), document.body.appendChild(o); - }); - } - - var noop = function noop() {}, - Console = function () { - function e() { - var t = !!(0 < arguments.length && void 0 !== arguments[0]) && arguments[0]; - _classCallCheck$1(this, e), this.enabled = window.console && t, this.enabled && this.log("Debugging enabled"); - } - - return _createClass$1(e, [{ - key: "log", - get: function get() { - return this.enabled ? Function.prototype.bind.call(console.log, console) : noop; - } - }, { - key: "warn", - get: function get() { - return this.enabled ? Function.prototype.bind.call(console.warn, console) : noop; - } - }, { - key: "error", - get: function get() { - return this.enabled ? Function.prototype.bind.call(console.error, console) : noop; - } - }]), e; - }(); - - function matches(e, t) { - return function () { - return Array.from(document.querySelectorAll(t)).includes(this); - }.call(e, t); - } - - function wrap$2(e, t) { - var n = e.length ? e : [e]; - Array.from(n).reverse().forEach(function (e, n) { - var r = 0 < n ? t.cloneNode(!0) : t, - o = e.parentNode, - i = e.nextSibling; - r.appendChild(e), i ? o.insertBefore(r, i) : o.appendChild(r); - }); - } - - function setAttributes(e, t) { - !is.element(e) || is.empty(t) || Object.entries(t).filter(function (e) { - var t = _slicedToArray$1(e, 2)[1]; - - return !is.nullOrUndefined(t); - }).forEach(function (t) { - var n = _slicedToArray$1(t, 2), - r = n[0], - o = n[1]; - - return e.setAttribute(r, o); - }); - } - - function createElement(e, t, n) { - var r = document.createElement(e); - return is.object(t) && setAttributes(r, t), is.string(n) && (r.innerText = n), r; - } - - function formatNumber(e) { - var t = /\./.test(1.1.toLocaleString()) ? "." : ",", - n = new RegExp("\\".concat(t, "\\d+$")); - return Math.round(e).toLocaleString().replace(n, ""); - } - - function extend() { - for (var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}, t = arguments.length, n = Array(1 < t ? t - 1 : 0), r = 1; r < t; r++) { - n[r - 1] = arguments[r]; - } - - if (!n.length) return e; - var o = n.shift(); - return is.object(o) ? (Object.keys(o).forEach(function (t) { - is.object(o[t]) ? (!Object.keys(e).includes(t) && Object.assign(e, _defineProperty$1({}, t, {})), extend(e[t], o[t])) : Object.assign(e, _defineProperty$1({}, t, o[t])); - }), extend.apply(void 0, [e].concat(n))) : e; - } - - var Storage = function () { - function e(t, n) { - var r = !(2 < arguments.length && void 0 !== arguments[2]) || arguments[2]; - _classCallCheck$1(this, e), this.enabled = r && e.supported, this.key = t, this.ttl = n; - } - - return _createClass$1(e, [{ - key: "get", - value: function value(t) { - if (!e.supported || !this.enabled) return null; - var n = window.localStorage.getItem(this.key); - if (is.empty(n)) return null; - var r = window.localStorage.getItem("".concat(this.key, "_ttl")); - if (is.empty(r) || r < Date.now()) return null; - var o = JSON.parse(n); - return is.string(t) && t.length ? o[t] : o; - } - }, { - key: "set", - value: function value(t) { - if (e.supported && this.enabled && is.object(t)) { - var n = this.get(); - is.empty(n) && (n = {}), extend(n, t), window.localStorage.setItem(this.key, JSON.stringify(n)), window.localStorage.setItem("".concat(this.key, "_ttl"), Date.now() + this.ttl); - } - } - }], [{ - key: "supported", - get: function get() { - try { - return "localStorage" in window && (window.localStorage.setItem("___test", "___test"), window.localStorage.removeItem("___test"), !0); - } catch (e) { - return !1; - } - } - }]), e; - }(); - - function getDomain(e) { - var t = new URL(e).hostname, - n = t.split("."), - r = n.length; - return 2 < r && (t = "".concat(n[r - 2], ".").concat(n[r - 1]), 2 === n[r - 2].length && 2 === n[r - 1].length && (t = "".concat(n[r - 3], ".").concat(t))), t; - } - - var Shr = function () { - function e(t, n) { - var r = this; - _classCallCheck$1(this, e), this.elements = { - count: null, - trigger: null, - popup: null - }, is.element(t) ? this.elements.trigger = t : is.string(t) && (this.elements.trigger = document.querySelector(t)), is.element(this.elements.trigger) && is.empty(this.elements.trigger.shr) && (this.config = extend({}, defaults, n, { - networks: constants - }), this.console = new Console(this.config.debug), this.storage = new Storage(this.config.storage.key, this.config.storage.ttl, this.config.storage.enabled), this.getCount().then(function (e) { - return r.updateDisplay(e); - }).catch(function () {}), this.listeners(!0), this.elements.trigger.shr = this); - } - - return _createClass$1(e, [{ - key: "destroy", - value: function value() { - this.listeners(!1); - } - }, { - key: "listeners", - value: function value() { - var e = this, - t = !!(0 < arguments.length && void 0 !== arguments[0]) && arguments[0] ? "addEventListener" : "removeEventListener"; - this.elements.trigger[t]("click", function (t) { - return e.share(t); - }, !1); - } - }, { - key: "share", - value: function value(e) { - var t = this; - this.openPopup(e); - var n = this.config.count.increment; - this.getCount().then(function (e) { - return t.updateDisplay(e, n); - }).catch(function () {}); - } - }, { - key: "openPopup", - value: function value(e) { - if (!is.empty(this.network) && this.networkConfig.popup) { - is.event(e) && e.preventDefault(); - var t = this.networkConfig.popup, - n = t.width, - r = t.height, - o = "shr-popup--".concat(this.network); - if (this.popup && !this.popup.closed) this.popup.focus(), this.console.log("Popup re-focused.");else { - var i = void 0 === window.screenLeft ? window.screen.left : window.screenLeft, - s = void 0 === window.screenTop ? window.screen.top : window.screenTop, - a = window.screen.width / 2 - n / 2 + i, - c = window.screen.height / 2 - r / 2 + s; - this.popup = window.open(this.href, o, "top=".concat(c, ",left=").concat(a, ",width=").concat(n, ",height=").concat(r)), !this.popup || this.popup.closed || !is.boolean(this.popup.closed) ? this.console.error("Popup blocked.") : (this.popup.focus(), this.console.log("Popup opened.")); - } - } - } - }, { - key: "getCount", - value: function value() { - var e = this, - t = !(0 < arguments.length && void 0 !== arguments[0]) || arguments[0]; - return new Promise(function (n, r) { - var o = e.apiUrl; - if (is.empty(o)) r(new Error("No URL available for ".concat(e.network, ".")));else { - if (t) { - var i = e.storage.get(e.target); - - if (!is.empty(i) && Object.keys(i).includes(e.network)) { - var s = i[e.network]; - return n(is.number(s) ? s : 0), void e.console.log("getCount for '".concat(e.target, "' for '").concat(e.network, "' resolved from cache.")); - } - } - - getJSONP(o).then(function (t) { - var r = 0, - o = e.elements.trigger.getAttribute("data-shr-display"); - r = is.empty(o) ? e.networkConfig.shareCount(t) : t[o], is.empty(r) ? r = 0 : (r = parseInt(r, 10), !is.number(r) && (r = 0)), e.storage.set(_defineProperty$1({}, e.target, _defineProperty$1({}, e.network, r))), n(r); - }).catch(r); - } - }); - } - }, { - key: "updateDisplay", - value: function value(e) { - var t = !!(1 < arguments.length && void 0 !== arguments[1]) && arguments[1], - n = this.config, - r = n.count, - o = n.wrapper, - i = t ? e + 1 : e, - s = r.position.toLowerCase(); - - if (0 < i || r.displayZero) { - var a = function a(e) { - return Math.round(i / e * 10) / 10; - }, - c = formatNumber(i); - - r.format && (1e6 < i ? c = "".concat(a(1e6), "M") : 1e3 < i && (c = "".concat(a(1e3), "K"))), is.element(this.elements.count) ? this.elements.count.textContent = c : (wrap$2(this.elements.trigger, createElement("span", { - class: o.className - })), this.elements.count = createElement("span", { - class: "".concat(r.className, " ").concat(r.className, "--").concat(s) - }, c), this.elements.trigger.insertAdjacentElement("after" === s ? "afterend" : "beforebegin", this.elements.count)); - } - } - }, { - key: "href", - get: function get() { - return is.element(this.elements.trigger) ? this.elements.trigger.href : null; - } - }, { - key: "network", - get: function get() { - var e = this; - if (!is.element(this.elements.trigger)) return null; - var t = this.config.networks; - return Object.keys(t).find(function (n) { - return getDomain(e.href) === t[n].domain; - }); - } - }, { - key: "networkConfig", - get: function get() { - return is.empty(this.network) ? null : this.config.networks[this.network]; - } - }, { - key: "target", - get: function get() { - if (is.empty(this.network)) return null; - var e = new URL(this.href); - - switch (this.network) { - case "facebook": - return e.searchParams.get("u"); - - case "github": - return e.pathname.substring(1); - - case "youtube": - return e.pathname.split("/").pop(); - - default: - return e.searchParams.get("url"); - } - } - }, { - key: "apiUrl", - get: function get() { - if (is.empty(this.network)) return null; - var e = this.config.tokens; - - switch (this.network) { - case "github": - return this.networkConfig.url(this.target, e.github); - - case "youtube": - return this.networkConfig.url(this.target, e.youtube); - - default: - return this.networkConfig.url(encodeURIComponent(this.target)); - } - } - }], [{ - key: "setup", - value: function value(t) { - var n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}, - r = null; - if (is.string(t) ? r = Array.from(document.querySelectorAll(t)) : is.element(t) ? r = [t] : is.nodeList(t) ? r = Array.from(t) : is.array(t) && (r = t.filter(is.element)), is.empty(r)) return null; - var o = Object.assign({}, defaults, n); - is.string(t) && o.watch && new MutationObserver(function (n) { - Array.from(n).forEach(function (n) { - Array.from(n.addedNodes).forEach(function (n) { - is.element(n) && matches(n, t) && new e(n, o); - }); - }); - }).observe(document.body, { - childList: !0, - subtree: !0 - }); - return r.map(function (t) { - return new e(t, n); - }); - } - }]), e; - }(); - - var check$1 = function (it) { - return it && it.Math == Math && it; - }; - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global_1$1 = - // eslint-disable-next-line no-undef - check$1(typeof globalThis == 'object' && globalThis) || - check$1(typeof window == 'object' && window) || - check$1(typeof self == 'object' && self) || - check$1(typeof commonjsGlobal == 'object' && commonjsGlobal) || - // eslint-disable-next-line no-new-func - (function () { return this; })() || Function('return this')(); - - var fails$1 = function (exec) { - try { - return !!exec(); - } catch (error) { - return true; - } - }; - - // Thank's IE8 for his funny defineProperty - var descriptors$1 = !fails$1(function () { - return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; - }); - - var nativePropertyIsEnumerable$2 = {}.propertyIsEnumerable; - var getOwnPropertyDescriptor$4 = Object.getOwnPropertyDescriptor; - - // Nashorn ~ JDK8 bug - var NASHORN_BUG$1 = getOwnPropertyDescriptor$4 && !nativePropertyIsEnumerable$2.call({ 1: 2 }, 1); - - // `Object.prototype.propertyIsEnumerable` method implementation - // https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable - var f$8 = NASHORN_BUG$1 ? function propertyIsEnumerable(V) { - var descriptor = getOwnPropertyDescriptor$4(this, V); - return !!descriptor && descriptor.enumerable; - } : nativePropertyIsEnumerable$2; - - var objectPropertyIsEnumerable$1 = { - f: f$8 - }; - - var createPropertyDescriptor$1 = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; - }; - - var toString$2 = {}.toString; - - var classofRaw$1 = function (it) { - return toString$2.call(it).slice(8, -1); - }; - - var split$1 = ''.split; - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var indexedObject$1 = fails$1(function () { - // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 - // eslint-disable-next-line no-prototype-builtins - return !Object('z').propertyIsEnumerable(0); - }) ? function (it) { - return classofRaw$1(it) == 'String' ? split$1.call(it, '') : Object(it); - } : Object; - - // `RequireObjectCoercible` abstract operation - // https://tc39.github.io/ecma262/#sec-requireobjectcoercible - var requireObjectCoercible$1 = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; - }; - - // toObject with fallback for non-array-like ES3 strings - - - - var toIndexedObject$1 = function (it) { - return indexedObject$1(requireObjectCoercible$1(it)); - }; - - var isObject$2 = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - - // `ToPrimitive` abstract operation - // https://tc39.github.io/ecma262/#sec-toprimitive - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - var toPrimitive$1 = function (input, PREFERRED_STRING) { - if (!isObject$2(input)) return input; - var fn, val; - if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject$2(val = fn.call(input))) return val; - if (typeof (fn = input.valueOf) == 'function' && !isObject$2(val = fn.call(input))) return val; - if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject$2(val = fn.call(input))) return val; - throw TypeError("Can't convert object to primitive value"); - }; - - var hasOwnProperty$1 = {}.hasOwnProperty; - - var has$2 = function (it, key) { - return hasOwnProperty$1.call(it, key); - }; - - var document$3 = global_1$1.document; - // typeof document.createElement is 'object' in old IE - var EXISTS$1 = isObject$2(document$3) && isObject$2(document$3.createElement); - - var documentCreateElement$1 = function (it) { - return EXISTS$1 ? document$3.createElement(it) : {}; - }; - - // Thank's IE8 for his funny defineProperty - var ie8DomDefine$1 = !descriptors$1 && !fails$1(function () { - return Object.defineProperty(documentCreateElement$1('div'), 'a', { - get: function () { return 7; } - }).a != 7; - }); - - var nativeGetOwnPropertyDescriptor$3 = Object.getOwnPropertyDescriptor; - - // `Object.getOwnPropertyDescriptor` method - // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor - var f$9 = descriptors$1 ? nativeGetOwnPropertyDescriptor$3 : function getOwnPropertyDescriptor(O, P) { - O = toIndexedObject$1(O); - P = toPrimitive$1(P, true); - if (ie8DomDefine$1) try { - return nativeGetOwnPropertyDescriptor$3(O, P); - } catch (error) { /* empty */ } - if (has$2(O, P)) return createPropertyDescriptor$1(!objectPropertyIsEnumerable$1.f.call(O, P), O[P]); - }; - - var objectGetOwnPropertyDescriptor$1 = { - f: f$9 - }; - - var anObject$1 = function (it) { - if (!isObject$2(it)) { - throw TypeError(String(it) + ' is not an object'); - } return it; - }; - - var nativeDefineProperty$2 = Object.defineProperty; - - // `Object.defineProperty` method - // https://tc39.github.io/ecma262/#sec-object.defineproperty - var f$a = descriptors$1 ? nativeDefineProperty$2 : function defineProperty(O, P, Attributes) { - anObject$1(O); - P = toPrimitive$1(P, true); - anObject$1(Attributes); - if (ie8DomDefine$1) try { - return nativeDefineProperty$2(O, P, Attributes); - } catch (error) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; - }; - - var objectDefineProperty$1 = { - f: f$a - }; - - var createNonEnumerableProperty$1 = descriptors$1 ? function (object, key, value) { - return objectDefineProperty$1.f(object, key, createPropertyDescriptor$1(1, value)); - } : function (object, key, value) { - object[key] = value; - return object; - }; - - var setGlobal$1 = function (key, value) { - try { - createNonEnumerableProperty$1(global_1$1, key, value); - } catch (error) { - global_1$1[key] = value; - } return value; - }; - - var SHARED$1 = '__core-js_shared__'; - var store$2 = global_1$1[SHARED$1] || setGlobal$1(SHARED$1, {}); - - var sharedStore$1 = store$2; - - var functionToString$1 = Function.toString; - - // this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper - if (typeof sharedStore$1.inspectSource != 'function') { - sharedStore$1.inspectSource = function (it) { - return functionToString$1.call(it); - }; - } - - var inspectSource$1 = sharedStore$1.inspectSource; - - var WeakMap$3 = global_1$1.WeakMap; - - var nativeWeakMap$1 = typeof WeakMap$3 === 'function' && /native code/.test(inspectSource$1(WeakMap$3)); - - var isPure$1 = false; - - var shared$1 = createCommonjsModule(function (module) { - (module.exports = function (key, value) { - return sharedStore$1[key] || (sharedStore$1[key] = value !== undefined ? value : {}); - })('versions', []).push({ - version: '3.7.0', - mode: 'global', - copyright: '© 2020 Denis Pushkarev (zloirock.ru)' - }); - }); - - var id$2 = 0; - var postfix$1 = Math.random(); - - var uid$1 = function (key) { - return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id$2 + postfix$1).toString(36); - }; - - var keys$4 = shared$1('keys'); - - var sharedKey$1 = function (key) { - return keys$4[key] || (keys$4[key] = uid$1(key)); - }; - - var hiddenKeys$2 = {}; - - var WeakMap$4 = global_1$1.WeakMap; - var set$3, get$2, has$3; - - var enforce$1 = function (it) { - return has$3(it) ? get$2(it) : set$3(it, {}); - }; - - var getterFor$1 = function (TYPE) { - return function (it) { - var state; - if (!isObject$2(it) || (state = get$2(it)).type !== TYPE) { - throw TypeError('Incompatible receiver, ' + TYPE + ' required'); - } return state; - }; - }; - - if (nativeWeakMap$1) { - var store$3 = sharedStore$1.state || (sharedStore$1.state = new WeakMap$4()); - var wmget$1 = store$3.get; - var wmhas$1 = store$3.has; - var wmset$1 = store$3.set; - set$3 = function (it, metadata) { - metadata.facade = it; - wmset$1.call(store$3, it, metadata); - return metadata; - }; - get$2 = function (it) { - return wmget$1.call(store$3, it) || {}; - }; - has$3 = function (it) { - return wmhas$1.call(store$3, it); - }; - } else { - var STATE$1 = sharedKey$1('state'); - hiddenKeys$2[STATE$1] = true; - set$3 = function (it, metadata) { - metadata.facade = it; - createNonEnumerableProperty$1(it, STATE$1, metadata); - return metadata; - }; - get$2 = function (it) { - return has$2(it, STATE$1) ? it[STATE$1] : {}; - }; - has$3 = function (it) { - return has$2(it, STATE$1); - }; - } - - var internalState$1 = { - set: set$3, - get: get$2, - has: has$3, - enforce: enforce$1, - getterFor: getterFor$1 - }; - - var redefine$1 = createCommonjsModule(function (module) { - var getInternalState = internalState$1.get; - var enforceInternalState = internalState$1.enforce; - var TEMPLATE = String(String).split('String'); - - (module.exports = function (O, key, value, options) { - var unsafe = options ? !!options.unsafe : false; - var simple = options ? !!options.enumerable : false; - var noTargetGet = options ? !!options.noTargetGet : false; - var state; - if (typeof value == 'function') { - if (typeof key == 'string' && !has$2(value, 'name')) { - createNonEnumerableProperty$1(value, 'name', key); - } - state = enforceInternalState(value); - if (!state.source) { - state.source = TEMPLATE.join(typeof key == 'string' ? key : ''); - } - } - if (O === global_1$1) { - if (simple) O[key] = value; - else setGlobal$1(key, value); - return; - } else if (!unsafe) { - delete O[key]; - } else if (!noTargetGet && O[key]) { - simple = true; - } - if (simple) O[key] = value; - else createNonEnumerableProperty$1(O, key, value); - // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative - })(Function.prototype, 'toString', function toString() { - return typeof this == 'function' && getInternalState(this).source || inspectSource$1(this); - }); - }); - - var path$1 = global_1$1; - - var aFunction$2 = function (variable) { - return typeof variable == 'function' ? variable : undefined; - }; - - var getBuiltIn$1 = function (namespace, method) { - return arguments.length < 2 ? aFunction$2(path$1[namespace]) || aFunction$2(global_1$1[namespace]) - : path$1[namespace] && path$1[namespace][method] || global_1$1[namespace] && global_1$1[namespace][method]; - }; - - var ceil$1 = Math.ceil; - var floor$6 = Math.floor; - - // `ToInteger` abstract operation - // https://tc39.github.io/ecma262/#sec-tointeger - var toInteger$1 = function (argument) { - return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor$6 : ceil$1)(argument); - }; - - var min$7 = Math.min; - - // `ToLength` abstract operation - // https://tc39.github.io/ecma262/#sec-tolength - var toLength$1 = function (argument) { - return argument > 0 ? min$7(toInteger$1(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 - }; - - var max$4 = Math.max; - var min$8 = Math.min; - - // Helper for a popular repeating case of the spec: - // Let integer be ? ToInteger(index). - // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). - var toAbsoluteIndex$1 = function (index, length) { - var integer = toInteger$1(index); - return integer < 0 ? max$4(integer + length, 0) : min$8(integer, length); - }; - - // `Array.prototype.{ indexOf, includes }` methods implementation - var createMethod$6 = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIndexedObject$1($this); - var length = toLength$1(O.length); - var index = toAbsoluteIndex$1(fromIndex, length); - var value; - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - // eslint-disable-next-line no-self-compare - if (value != value) return true; - // Array#indexOf ignores holes, Array#includes - not - } else for (;length > index; index++) { - if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - - var arrayIncludes$1 = { - // `Array.prototype.includes` method - // https://tc39.github.io/ecma262/#sec-array.prototype.includes - includes: createMethod$6(true), - // `Array.prototype.indexOf` method - // https://tc39.github.io/ecma262/#sec-array.prototype.indexof - indexOf: createMethod$6(false) - }; - - var indexOf$1 = arrayIncludes$1.indexOf; - - - var objectKeysInternal$1 = function (object, names) { - var O = toIndexedObject$1(object); - var i = 0; - var result = []; - var key; - for (key in O) !has$2(hiddenKeys$2, key) && has$2(O, key) && result.push(key); - // Don't enum bug & hidden keys - while (names.length > i) if (has$2(O, key = names[i++])) { - ~indexOf$1(result, key) || result.push(key); - } - return result; - }; - - // IE8- don't enum bug keys - var enumBugKeys$1 = [ - 'constructor', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'toLocaleString', - 'toString', - 'valueOf' - ]; - - var hiddenKeys$3 = enumBugKeys$1.concat('length', 'prototype'); - - // `Object.getOwnPropertyNames` method - // https://tc39.github.io/ecma262/#sec-object.getownpropertynames - var f$b = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return objectKeysInternal$1(O, hiddenKeys$3); - }; - - var objectGetOwnPropertyNames$1 = { - f: f$b - }; - - var f$c = Object.getOwnPropertySymbols; - - var objectGetOwnPropertySymbols$1 = { - f: f$c - }; - - // all object keys, includes non-enumerable and symbols - var ownKeys$2 = getBuiltIn$1('Reflect', 'ownKeys') || function ownKeys(it) { - var keys = objectGetOwnPropertyNames$1.f(anObject$1(it)); - var getOwnPropertySymbols = objectGetOwnPropertySymbols$1.f; - return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; - }; - - var copyConstructorProperties$1 = function (target, source) { - var keys = ownKeys$2(source); - var defineProperty = objectDefineProperty$1.f; - var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor$1.f; - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (!has$2(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); - } - }; - - var replacement$1 = /#|\.prototype\./; - - var isForced$1 = function (feature, detection) { - var value = data$1[normalize$2(feature)]; - return value == POLYFILL$1 ? true - : value == NATIVE$1 ? false - : typeof detection == 'function' ? fails$1(detection) - : !!detection; - }; - - var normalize$2 = isForced$1.normalize = function (string) { - return String(string).replace(replacement$1, '.').toLowerCase(); - }; - - var data$1 = isForced$1.data = {}; - var NATIVE$1 = isForced$1.NATIVE = 'N'; - var POLYFILL$1 = isForced$1.POLYFILL = 'P'; - - var isForced_1$1 = isForced$1; - - var getOwnPropertyDescriptor$5 = objectGetOwnPropertyDescriptor$1.f; - - - - - - - /* - options.target - name of the target object - options.global - target is the global object - options.stat - export as static methods of target - options.proto - export as prototype methods of target - options.real - real prototype method for the `pure` version - options.forced - export even if the native feature is available - options.bind - bind methods to the target, required for the `pure` version - options.wrap - wrap constructors to preventing global pollution, required for the `pure` version - options.unsafe - use the simple assignment of property instead of delete + defineProperty - options.sham - add a flag to not completely full polyfills - options.enumerable - export as enumerable property - options.noTargetGet - prevent calling a getter on target - */ - var _export$1 = function (options, source) { - var TARGET = options.target; - var GLOBAL = options.global; - var STATIC = options.stat; - var FORCED, target, key, targetProperty, sourceProperty, descriptor; - if (GLOBAL) { - target = global_1$1; - } else if (STATIC) { - target = global_1$1[TARGET] || setGlobal$1(TARGET, {}); - } else { - target = (global_1$1[TARGET] || {}).prototype; - } - if (target) for (key in source) { - sourceProperty = source[key]; - if (options.noTargetGet) { - descriptor = getOwnPropertyDescriptor$5(target, key); - targetProperty = descriptor && descriptor.value; - } else targetProperty = target[key]; - FORCED = isForced_1$1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); - // contained in target - if (!FORCED && targetProperty !== undefined) { - if (typeof sourceProperty === typeof targetProperty) continue; - copyConstructorProperties$1(sourceProperty, targetProperty); - } - // add a flag to not completely full polyfills - if (options.sham || (targetProperty && targetProperty.sham)) { - createNonEnumerableProperty$1(sourceProperty, 'sham', true); - } - // extend global - redefine$1(target, key, sourceProperty, options); - } - }; - - // `IsArray` abstract operation - // https://tc39.github.io/ecma262/#sec-isarray - var isArray$2 = Array.isArray || function isArray(arg) { - return classofRaw$1(arg) == 'Array'; - }; - - // `ToObject` abstract operation - // https://tc39.github.io/ecma262/#sec-toobject - var toObject$1 = function (argument) { - return Object(requireObjectCoercible$1(argument)); - }; - - var createProperty$1 = function (object, key, value) { - var propertyKey = toPrimitive$1(key); - if (propertyKey in object) objectDefineProperty$1.f(object, propertyKey, createPropertyDescriptor$1(0, value)); - else object[propertyKey] = value; - }; - - var nativeSymbol$1 = !!Object.getOwnPropertySymbols && !fails$1(function () { - // Chrome 38 Symbol has incorrect toString conversion - // eslint-disable-next-line no-undef - return !String(Symbol()); - }); - - var useSymbolAsUid$1 = nativeSymbol$1 - // eslint-disable-next-line no-undef - && !Symbol.sham - // eslint-disable-next-line no-undef - && typeof Symbol.iterator == 'symbol'; - - var WellKnownSymbolsStore$2 = shared$1('wks'); - var Symbol$2 = global_1$1.Symbol; - var createWellKnownSymbol$1 = useSymbolAsUid$1 ? Symbol$2 : Symbol$2 && Symbol$2.withoutSetter || uid$1; - - var wellKnownSymbol$1 = function (name) { - if (!has$2(WellKnownSymbolsStore$2, name)) { - if (nativeSymbol$1 && has$2(Symbol$2, name)) WellKnownSymbolsStore$2[name] = Symbol$2[name]; - else WellKnownSymbolsStore$2[name] = createWellKnownSymbol$1('Symbol.' + name); - } return WellKnownSymbolsStore$2[name]; - }; - - var SPECIES$7 = wellKnownSymbol$1('species'); - - // `ArraySpeciesCreate` abstract operation - // https://tc39.github.io/ecma262/#sec-arrayspeciescreate - var arraySpeciesCreate$1 = function (originalArray, length) { - var C; - if (isArray$2(originalArray)) { - C = originalArray.constructor; - // cross-realm fallback - if (typeof C == 'function' && (C === Array || isArray$2(C.prototype))) C = undefined; - else if (isObject$2(C)) { - C = C[SPECIES$7]; - if (C === null) C = undefined; - } - } return new (C === undefined ? Array : C)(length === 0 ? 0 : length); - }; - - var engineUserAgent$1 = getBuiltIn$1('navigator', 'userAgent') || ''; - - var process$5 = global_1$1.process; - var versions$1 = process$5 && process$5.versions; - var v8$1 = versions$1 && versions$1.v8; - var match$1, version$1; - - if (v8$1) { - match$1 = v8$1.split('.'); - version$1 = match$1[0] + match$1[1]; - } else if (engineUserAgent$1) { - match$1 = engineUserAgent$1.match(/Edge\/(\d+)/); - if (!match$1 || match$1[1] >= 74) { - match$1 = engineUserAgent$1.match(/Chrome\/(\d+)/); - if (match$1) version$1 = match$1[1]; - } - } - - var engineV8Version$1 = version$1 && +version$1; - - var SPECIES$8 = wellKnownSymbol$1('species'); - - var arrayMethodHasSpeciesSupport$1 = function (METHOD_NAME) { - // We can't use this feature detection in V8 since it causes - // deoptimization and serious performance degradation - // https://github.com/zloirock/core-js/issues/677 - return engineV8Version$1 >= 51 || !fails$1(function () { - var array = []; - var constructor = array.constructor = {}; - constructor[SPECIES$8] = function () { - return { foo: 1 }; - }; - return array[METHOD_NAME](Boolean).foo !== 1; - }); - }; - - var IS_CONCAT_SPREADABLE$1 = wellKnownSymbol$1('isConcatSpreadable'); - var MAX_SAFE_INTEGER$2 = 0x1FFFFFFFFFFFFF; - var MAXIMUM_ALLOWED_INDEX_EXCEEDED$1 = 'Maximum allowed index exceeded'; - - // We can't use this feature detection in V8 since it causes - // deoptimization and serious performance degradation - // https://github.com/zloirock/core-js/issues/679 - var IS_CONCAT_SPREADABLE_SUPPORT$1 = engineV8Version$1 >= 51 || !fails$1(function () { - var array = []; - array[IS_CONCAT_SPREADABLE$1] = false; - return array.concat()[0] !== array; - }); - - var SPECIES_SUPPORT$1 = arrayMethodHasSpeciesSupport$1('concat'); - - var isConcatSpreadable$1 = function (O) { - if (!isObject$2(O)) return false; - var spreadable = O[IS_CONCAT_SPREADABLE$1]; - return spreadable !== undefined ? !!spreadable : isArray$2(O); - }; - - var FORCED$8 = !IS_CONCAT_SPREADABLE_SUPPORT$1 || !SPECIES_SUPPORT$1; - - // `Array.prototype.concat` method - // https://tc39.github.io/ecma262/#sec-array.prototype.concat - // with adding support of @@isConcatSpreadable and @@species - _export$1({ target: 'Array', proto: true, forced: FORCED$8 }, { - concat: function concat(arg) { // eslint-disable-line no-unused-vars - var O = toObject$1(this); - var A = arraySpeciesCreate$1(O, 0); - var n = 0; - var i, k, length, len, E; - for (i = -1, length = arguments.length; i < length; i++) { - E = i === -1 ? O : arguments[i]; - if (isConcatSpreadable$1(E)) { - len = toLength$1(E.length); - if (n + len > MAX_SAFE_INTEGER$2) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED$1); - for (k = 0; k < len; k++, n++) if (k in E) createProperty$1(A, n, E[k]); - } else { - if (n >= MAX_SAFE_INTEGER$2) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED$1); - createProperty$1(A, n++, E); - } - } - A.length = n; - return A; - } - }); - - var aFunction$3 = function (it) { - if (typeof it != 'function') { - throw TypeError(String(it) + ' is not a function'); - } return it; - }; - - // optional / simple context binding - var functionBindContext$1 = function (fn, that, length) { - aFunction$3(fn); - if (that === undefined) return fn; - switch (length) { - case 0: return function () { - return fn.call(that); - }; - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { - return fn.apply(that, arguments); - }; - }; - - var push$1 = [].push; - - // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation - var createMethod$7 = function (TYPE) { - var IS_MAP = TYPE == 1; - var IS_FILTER = TYPE == 2; - var IS_SOME = TYPE == 3; - var IS_EVERY = TYPE == 4; - var IS_FIND_INDEX = TYPE == 6; - var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; - return function ($this, callbackfn, that, specificCreate) { - var O = toObject$1($this); - var self = indexedObject$1(O); - var boundFunction = functionBindContext$1(callbackfn, that, 3); - var length = toLength$1(self.length); - var index = 0; - var create = specificCreate || arraySpeciesCreate$1; - var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; - var value, result; - for (;length > index; index++) if (NO_HOLES || index in self) { - value = self[index]; - result = boundFunction(value, index, O); - if (TYPE) { - if (IS_MAP) target[index] = result; // map - else if (result) switch (TYPE) { - case 3: return true; // some - case 5: return value; // find - case 6: return index; // findIndex - case 2: push$1.call(target, value); // filter - } else if (IS_EVERY) return false; // every - } - } - return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; - }; - }; - - var arrayIteration$1 = { - // `Array.prototype.forEach` method - // https://tc39.github.io/ecma262/#sec-array.prototype.foreach - forEach: createMethod$7(0), - // `Array.prototype.map` method - // https://tc39.github.io/ecma262/#sec-array.prototype.map - map: createMethod$7(1), - // `Array.prototype.filter` method - // https://tc39.github.io/ecma262/#sec-array.prototype.filter - filter: createMethod$7(2), - // `Array.prototype.some` method - // https://tc39.github.io/ecma262/#sec-array.prototype.some - some: createMethod$7(3), - // `Array.prototype.every` method - // https://tc39.github.io/ecma262/#sec-array.prototype.every - every: createMethod$7(4), - // `Array.prototype.find` method - // https://tc39.github.io/ecma262/#sec-array.prototype.find - find: createMethod$7(5), - // `Array.prototype.findIndex` method - // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex - findIndex: createMethod$7(6) - }; - - var defineProperty$a = Object.defineProperty; - var cache$1 = {}; - - var thrower$1 = function (it) { throw it; }; - - var arrayMethodUsesToLength$1 = function (METHOD_NAME, options) { - if (has$2(cache$1, METHOD_NAME)) return cache$1[METHOD_NAME]; - if (!options) options = {}; - var method = [][METHOD_NAME]; - var ACCESSORS = has$2(options, 'ACCESSORS') ? options.ACCESSORS : false; - var argument0 = has$2(options, 0) ? options[0] : thrower$1; - var argument1 = has$2(options, 1) ? options[1] : undefined; - - return cache$1[METHOD_NAME] = !!method && !fails$1(function () { - if (ACCESSORS && !descriptors$1) return true; - var O = { length: -1 }; - - if (ACCESSORS) defineProperty$a(O, 1, { enumerable: true, get: thrower$1 }); - else O[1] = 1; - - method.call(O, argument0, argument1); - }); - }; - - var $filter$2 = arrayIteration$1.filter; - - - - var HAS_SPECIES_SUPPORT$4 = arrayMethodHasSpeciesSupport$1('filter'); - // Edge 14- issue - var USES_TO_LENGTH$a = arrayMethodUsesToLength$1('filter'); - - // `Array.prototype.filter` method - // https://tc39.github.io/ecma262/#sec-array.prototype.filter - // with adding support of @@species - _export$1({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$4 || !USES_TO_LENGTH$a }, { - filter: function filter(callbackfn /* , thisArg */) { - return $filter$2(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } - }); - - // `Object.keys` method - // https://tc39.github.io/ecma262/#sec-object.keys - var objectKeys$1 = Object.keys || function keys(O) { - return objectKeysInternal$1(O, enumBugKeys$1); - }; - - // `Object.defineProperties` method - // https://tc39.github.io/ecma262/#sec-object.defineproperties - var objectDefineProperties$1 = descriptors$1 ? Object.defineProperties : function defineProperties(O, Properties) { - anObject$1(O); - var keys = objectKeys$1(Properties); - var length = keys.length; - var index = 0; - var key; - while (length > index) objectDefineProperty$1.f(O, key = keys[index++], Properties[key]); - return O; - }; - - var html$1 = getBuiltIn$1('document', 'documentElement'); - - var GT$1 = '>'; - var LT$1 = '<'; - var PROTOTYPE$3 = 'prototype'; - var SCRIPT$1 = 'script'; - var IE_PROTO$2 = sharedKey$1('IE_PROTO'); - - var EmptyConstructor$1 = function () { /* empty */ }; - - var scriptTag$1 = function (content) { - return LT$1 + SCRIPT$1 + GT$1 + content + LT$1 + '/' + SCRIPT$1 + GT$1; - }; - - // Create object with fake `null` prototype: use ActiveX Object with cleared prototype - var NullProtoObjectViaActiveX$1 = function (activeXDocument) { - activeXDocument.write(scriptTag$1('')); - activeXDocument.close(); - var temp = activeXDocument.parentWindow.Object; - activeXDocument = null; // avoid memory leak - return temp; - }; - - // Create object with fake `null` prototype: use iframe Object with cleared prototype - var NullProtoObjectViaIFrame$1 = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = documentCreateElement$1('iframe'); - var JS = 'java' + SCRIPT$1 + ':'; - var iframeDocument; - iframe.style.display = 'none'; - html$1.appendChild(iframe); - // https://github.com/zloirock/core-js/issues/475 - iframe.src = String(JS); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(scriptTag$1('document.F=Object')); - iframeDocument.close(); - return iframeDocument.F; - }; - - // Check for document.domain and active x support - // No need to use active x approach when document.domain is not set - // see https://github.com/es-shims/es5-shim/issues/150 - // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 - // avoid IE GC bug - var activeXDocument$1; - var NullProtoObject$1 = function () { - try { - /* global ActiveXObject */ - activeXDocument$1 = document.domain && new ActiveXObject('htmlfile'); - } catch (error) { /* ignore */ } - NullProtoObject$1 = activeXDocument$1 ? NullProtoObjectViaActiveX$1(activeXDocument$1) : NullProtoObjectViaIFrame$1(); - var length = enumBugKeys$1.length; - while (length--) delete NullProtoObject$1[PROTOTYPE$3][enumBugKeys$1[length]]; - return NullProtoObject$1(); - }; - - hiddenKeys$2[IE_PROTO$2] = true; - - // `Object.create` method - // https://tc39.github.io/ecma262/#sec-object.create - var objectCreate$1 = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - EmptyConstructor$1[PROTOTYPE$3] = anObject$1(O); - result = new EmptyConstructor$1(); - EmptyConstructor$1[PROTOTYPE$3] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO$2] = O; - } else result = NullProtoObject$1(); - return Properties === undefined ? result : objectDefineProperties$1(result, Properties); - }; - - var UNSCOPABLES$1 = wellKnownSymbol$1('unscopables'); - var ArrayPrototype$2 = Array.prototype; - - // Array.prototype[@@unscopables] - // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables - if (ArrayPrototype$2[UNSCOPABLES$1] == undefined) { - objectDefineProperty$1.f(ArrayPrototype$2, UNSCOPABLES$1, { - configurable: true, - value: objectCreate$1(null) - }); - } - - // add a key to Array.prototype[@@unscopables] - var addToUnscopables$1 = function (key) { - ArrayPrototype$2[UNSCOPABLES$1][key] = true; - }; - - var $find$2 = arrayIteration$1.find; - - - - var FIND$1 = 'find'; - var SKIPS_HOLES$1 = true; - - var USES_TO_LENGTH$b = arrayMethodUsesToLength$1(FIND$1); - - // Shouldn't skip holes - if (FIND$1 in []) Array(1)[FIND$1](function () { SKIPS_HOLES$1 = false; }); - - // `Array.prototype.find` method - // https://tc39.github.io/ecma262/#sec-array.prototype.find - _export$1({ target: 'Array', proto: true, forced: SKIPS_HOLES$1 || !USES_TO_LENGTH$b }, { - find: function find(callbackfn /* , that = undefined */) { - return $find$2(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } - }); - - // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables - addToUnscopables$1(FIND$1); - - var iteratorClose = function (iterator) { - var returnMethod = iterator['return']; - if (returnMethod !== undefined) { - return anObject$1(returnMethod.call(iterator)).value; - } - }; - - // call something on iterator step with safe closing on error - var callWithSafeIterationClosing$1 = function (iterator, fn, value, ENTRIES) { - try { - return ENTRIES ? fn(anObject$1(value)[0], value[1]) : fn(value); - // 7.4.6 IteratorClose(iterator, completion) - } catch (error) { - iteratorClose(iterator); - throw error; - } - }; - - var iterators$1 = {}; - - var ITERATOR$9 = wellKnownSymbol$1('iterator'); - var ArrayPrototype$3 = Array.prototype; - - // check on default Array iterator - var isArrayIteratorMethod$1 = function (it) { - return it !== undefined && (iterators$1.Array === it || ArrayPrototype$3[ITERATOR$9] === it); - }; - - var TO_STRING_TAG$5 = wellKnownSymbol$1('toStringTag'); - var test$1 = {}; - - test$1[TO_STRING_TAG$5] = 'z'; - - var toStringTagSupport$1 = String(test$1) === '[object z]'; - - var TO_STRING_TAG$6 = wellKnownSymbol$1('toStringTag'); - // ES3 wrong here - var CORRECT_ARGUMENTS$1 = classofRaw$1(function () { return arguments; }()) == 'Arguments'; - - // fallback for IE11 Script Access Denied error - var tryGet$1 = function (it, key) { - try { - return it[key]; - } catch (error) { /* empty */ } - }; - - // getting tag from ES6+ `Object.prototype.toString` - var classof$1 = toStringTagSupport$1 ? classofRaw$1 : function (it) { - var O, tag, result; - return it === undefined ? 'Undefined' : it === null ? 'Null' - // @@toStringTag case - : typeof (tag = tryGet$1(O = Object(it), TO_STRING_TAG$6)) == 'string' ? tag - // builtinTag case - : CORRECT_ARGUMENTS$1 ? classofRaw$1(O) - // ES3 arguments fallback - : (result = classofRaw$1(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; - }; - - var ITERATOR$a = wellKnownSymbol$1('iterator'); - - var getIteratorMethod$1 = function (it) { - if (it != undefined) return it[ITERATOR$a] - || it['@@iterator'] - || iterators$1[classof$1(it)]; - }; - - // `Array.from` method implementation - // https://tc39.github.io/ecma262/#sec-array.from - var arrayFrom$1 = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { - var O = toObject$1(arrayLike); - var C = typeof this == 'function' ? this : Array; - var argumentsLength = arguments.length; - var mapfn = argumentsLength > 1 ? arguments[1] : undefined; - var mapping = mapfn !== undefined; - var iteratorMethod = getIteratorMethod$1(O); - var index = 0; - var length, result, step, iterator, next, value; - if (mapping) mapfn = functionBindContext$1(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2); - // if the target is not iterable or it's an array with the default iterator - use a simple case - if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod$1(iteratorMethod))) { - iterator = iteratorMethod.call(O); - next = iterator.next; - result = new C(); - for (;!(step = next.call(iterator)).done; index++) { - value = mapping ? callWithSafeIterationClosing$1(iterator, mapfn, [step.value, index], true) : step.value; - createProperty$1(result, index, value); - } - } else { - length = toLength$1(O.length); - result = new C(length); - for (;length > index; index++) { - value = mapping ? mapfn(O[index], index) : O[index]; - createProperty$1(result, index, value); - } - } - result.length = index; - return result; - }; - - var ITERATOR$b = wellKnownSymbol$1('iterator'); - var SAFE_CLOSING$1 = false; - - try { - var called$1 = 0; - var iteratorWithReturn$1 = { - next: function () { - return { done: !!called$1++ }; - }, - 'return': function () { - SAFE_CLOSING$1 = true; - } - }; - iteratorWithReturn$1[ITERATOR$b] = function () { - return this; - }; - // eslint-disable-next-line no-throw-literal - Array.from(iteratorWithReturn$1, function () { throw 2; }); - } catch (error) { /* empty */ } - - var checkCorrectnessOfIteration$1 = function (exec, SKIP_CLOSING) { - if (!SKIP_CLOSING && !SAFE_CLOSING$1) return false; - var ITERATION_SUPPORT = false; - try { - var object = {}; - object[ITERATOR$b] = function () { - return { - next: function () { - return { done: ITERATION_SUPPORT = true }; - } - }; - }; - exec(object); - } catch (error) { /* empty */ } - return ITERATION_SUPPORT; - }; - - var INCORRECT_ITERATION$2 = !checkCorrectnessOfIteration$1(function (iterable) { - Array.from(iterable); - }); - - // `Array.from` method - // https://tc39.github.io/ecma262/#sec-array.from - _export$1({ target: 'Array', stat: true, forced: INCORRECT_ITERATION$2 }, { - from: arrayFrom$1 - }); - - var $includes$2 = arrayIncludes$1.includes; - - - - var USES_TO_LENGTH$c = arrayMethodUsesToLength$1('indexOf', { ACCESSORS: true, 1: 0 }); - - // `Array.prototype.includes` method - // https://tc39.github.io/ecma262/#sec-array.prototype.includes - _export$1({ target: 'Array', proto: true, forced: !USES_TO_LENGTH$c }, { - includes: function includes(el /* , fromIndex = 0 */) { - return $includes$2(this, el, arguments.length > 1 ? arguments[1] : undefined); - } - }); - - // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables - addToUnscopables$1('includes'); - - var correctPrototypeGetter$1 = !fails$1(function () { - function F() { /* empty */ } - F.prototype.constructor = null; - return Object.getPrototypeOf(new F()) !== F.prototype; - }); - - var IE_PROTO$3 = sharedKey$1('IE_PROTO'); - var ObjectPrototype$4 = Object.prototype; - - // `Object.getPrototypeOf` method - // https://tc39.github.io/ecma262/#sec-object.getprototypeof - var objectGetPrototypeOf$1 = correctPrototypeGetter$1 ? Object.getPrototypeOf : function (O) { - O = toObject$1(O); - if (has$2(O, IE_PROTO$3)) return O[IE_PROTO$3]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectPrototype$4 : null; - }; - - var ITERATOR$c = wellKnownSymbol$1('iterator'); - var BUGGY_SAFARI_ITERATORS$2 = false; - - var returnThis$3 = function () { return this; }; - - // `%IteratorPrototype%` object - // https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object - var IteratorPrototype$3, PrototypeOfArrayIteratorPrototype$1, arrayIterator$1; - - if ([].keys) { - arrayIterator$1 = [].keys(); - // Safari 8 has buggy iterators w/o `next` - if (!('next' in arrayIterator$1)) BUGGY_SAFARI_ITERATORS$2 = true; - else { - PrototypeOfArrayIteratorPrototype$1 = objectGetPrototypeOf$1(objectGetPrototypeOf$1(arrayIterator$1)); - if (PrototypeOfArrayIteratorPrototype$1 !== Object.prototype) IteratorPrototype$3 = PrototypeOfArrayIteratorPrototype$1; - } - } - - if (IteratorPrototype$3 == undefined) IteratorPrototype$3 = {}; - - // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() - if ( !has$2(IteratorPrototype$3, ITERATOR$c)) { - createNonEnumerableProperty$1(IteratorPrototype$3, ITERATOR$c, returnThis$3); - } - - var iteratorsCore$1 = { - IteratorPrototype: IteratorPrototype$3, - BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS$2 - }; - - var defineProperty$b = objectDefineProperty$1.f; - - - - var TO_STRING_TAG$7 = wellKnownSymbol$1('toStringTag'); - - var setToStringTag$1 = function (it, TAG, STATIC) { - if (it && !has$2(it = STATIC ? it : it.prototype, TO_STRING_TAG$7)) { - defineProperty$b(it, TO_STRING_TAG$7, { configurable: true, value: TAG }); - } - }; - - var IteratorPrototype$4 = iteratorsCore$1.IteratorPrototype; - - - - - - var returnThis$4 = function () { return this; }; - - var createIteratorConstructor$1 = function (IteratorConstructor, NAME, next) { - var TO_STRING_TAG = NAME + ' Iterator'; - IteratorConstructor.prototype = objectCreate$1(IteratorPrototype$4, { next: createPropertyDescriptor$1(1, next) }); - setToStringTag$1(IteratorConstructor, TO_STRING_TAG, false); - iterators$1[TO_STRING_TAG] = returnThis$4; - return IteratorConstructor; - }; - - var aPossiblePrototype$1 = function (it) { - if (!isObject$2(it) && it !== null) { - throw TypeError("Can't set " + String(it) + ' as a prototype'); - } return it; - }; - - // `Object.setPrototypeOf` method - // https://tc39.github.io/ecma262/#sec-object.setprototypeof - // Works with __proto__ only. Old v8 can't work with null proto objects. - /* eslint-disable no-proto */ - var objectSetPrototypeOf$1 = Object.setPrototypeOf || ('__proto__' in {} ? function () { - var CORRECT_SETTER = false; - var test = {}; - var setter; - try { - setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set; - setter.call(test, []); - CORRECT_SETTER = test instanceof Array; - } catch (error) { /* empty */ } - return function setPrototypeOf(O, proto) { - anObject$1(O); - aPossiblePrototype$1(proto); - if (CORRECT_SETTER) setter.call(O, proto); - else O.__proto__ = proto; - return O; - }; - }() : undefined); - - var IteratorPrototype$5 = iteratorsCore$1.IteratorPrototype; - var BUGGY_SAFARI_ITERATORS$3 = iteratorsCore$1.BUGGY_SAFARI_ITERATORS; - var ITERATOR$d = wellKnownSymbol$1('iterator'); - var KEYS$1 = 'keys'; - var VALUES$1 = 'values'; - var ENTRIES$1 = 'entries'; - - var returnThis$5 = function () { return this; }; - - var defineIterator$1 = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { - createIteratorConstructor$1(IteratorConstructor, NAME, next); - - var getIterationMethod = function (KIND) { - if (KIND === DEFAULT && defaultIterator) return defaultIterator; - if (!BUGGY_SAFARI_ITERATORS$3 && KIND in IterablePrototype) return IterablePrototype[KIND]; - switch (KIND) { - case KEYS$1: return function keys() { return new IteratorConstructor(this, KIND); }; - case VALUES$1: return function values() { return new IteratorConstructor(this, KIND); }; - case ENTRIES$1: return function entries() { return new IteratorConstructor(this, KIND); }; - } return function () { return new IteratorConstructor(this); }; - }; - - var TO_STRING_TAG = NAME + ' Iterator'; - var INCORRECT_VALUES_NAME = false; - var IterablePrototype = Iterable.prototype; - var nativeIterator = IterablePrototype[ITERATOR$d] - || IterablePrototype['@@iterator'] - || DEFAULT && IterablePrototype[DEFAULT]; - var defaultIterator = !BUGGY_SAFARI_ITERATORS$3 && nativeIterator || getIterationMethod(DEFAULT); - var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; - var CurrentIteratorPrototype, methods, KEY; - - // fix native - if (anyNativeIterator) { - CurrentIteratorPrototype = objectGetPrototypeOf$1(anyNativeIterator.call(new Iterable())); - if (IteratorPrototype$5 !== Object.prototype && CurrentIteratorPrototype.next) { - if ( objectGetPrototypeOf$1(CurrentIteratorPrototype) !== IteratorPrototype$5) { - if (objectSetPrototypeOf$1) { - objectSetPrototypeOf$1(CurrentIteratorPrototype, IteratorPrototype$5); - } else if (typeof CurrentIteratorPrototype[ITERATOR$d] != 'function') { - createNonEnumerableProperty$1(CurrentIteratorPrototype, ITERATOR$d, returnThis$5); - } - } - // Set @@toStringTag to native iterators - setToStringTag$1(CurrentIteratorPrototype, TO_STRING_TAG, true); - } - } - - // fix Array#{values, @@iterator}.name in V8 / FF - if (DEFAULT == VALUES$1 && nativeIterator && nativeIterator.name !== VALUES$1) { - INCORRECT_VALUES_NAME = true; - defaultIterator = function values() { return nativeIterator.call(this); }; - } - - // define iterator - if ( IterablePrototype[ITERATOR$d] !== defaultIterator) { - createNonEnumerableProperty$1(IterablePrototype, ITERATOR$d, defaultIterator); - } - iterators$1[NAME] = defaultIterator; - - // export additional methods - if (DEFAULT) { - methods = { - values: getIterationMethod(VALUES$1), - keys: IS_SET ? defaultIterator : getIterationMethod(KEYS$1), - entries: getIterationMethod(ENTRIES$1) - }; - if (FORCED) for (KEY in methods) { - if (BUGGY_SAFARI_ITERATORS$3 || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { - redefine$1(IterablePrototype, KEY, methods[KEY]); - } - } else _export$1({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS$3 || INCORRECT_VALUES_NAME }, methods); - } - - return methods; - }; - - var ARRAY_ITERATOR$1 = 'Array Iterator'; - var setInternalState$9 = internalState$1.set; - var getInternalState$5 = internalState$1.getterFor(ARRAY_ITERATOR$1); - - // `Array.prototype.entries` method - // https://tc39.github.io/ecma262/#sec-array.prototype.entries - // `Array.prototype.keys` method - // https://tc39.github.io/ecma262/#sec-array.prototype.keys - // `Array.prototype.values` method - // https://tc39.github.io/ecma262/#sec-array.prototype.values - // `Array.prototype[@@iterator]` method - // https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator - // `CreateArrayIterator` internal method - // https://tc39.github.io/ecma262/#sec-createarrayiterator - var es_array_iterator$1 = defineIterator$1(Array, 'Array', function (iterated, kind) { - setInternalState$9(this, { - type: ARRAY_ITERATOR$1, - target: toIndexedObject$1(iterated), // target - index: 0, // next index - kind: kind // kind - }); - // `%ArrayIteratorPrototype%.next` method - // https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next - }, function () { - var state = getInternalState$5(this); - var target = state.target; - var kind = state.kind; - var index = state.index++; - if (!target || index >= target.length) { - state.target = undefined; - return { value: undefined, done: true }; - } - if (kind == 'keys') return { value: index, done: false }; - if (kind == 'values') return { value: target[index], done: false }; - return { value: [index, target[index]], done: false }; - }, 'values'); - - // argumentsList[@@iterator] is %ArrayProto_values% - // https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject - // https://tc39.github.io/ecma262/#sec-createmappedargumentsobject - iterators$1.Arguments = iterators$1.Array; - - // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables - addToUnscopables$1('keys'); - addToUnscopables$1('values'); - addToUnscopables$1('entries'); - - var arrayMethodIsStrict$1 = function (METHOD_NAME, argument) { - var method = [][METHOD_NAME]; - return !!method && fails$1(function () { - // eslint-disable-next-line no-useless-call,no-throw-literal - method.call(null, argument || function () { throw 1; }, 1); - }); - }; - - var nativeJoin$1 = [].join; - - var ES3_STRINGS$1 = indexedObject$1 != Object; - var STRICT_METHOD$5 = arrayMethodIsStrict$1('join', ','); - - // `Array.prototype.join` method - // https://tc39.github.io/ecma262/#sec-array.prototype.join - _export$1({ target: 'Array', proto: true, forced: ES3_STRINGS$1 || !STRICT_METHOD$5 }, { - join: function join(separator) { - return nativeJoin$1.call(toIndexedObject$1(this), separator === undefined ? ',' : separator); - } - }); - - var $map$2 = arrayIteration$1.map; - - - - var HAS_SPECIES_SUPPORT$5 = arrayMethodHasSpeciesSupport$1('map'); - // FF49- issue - var USES_TO_LENGTH$d = arrayMethodUsesToLength$1('map'); - - // `Array.prototype.map` method - // https://tc39.github.io/ecma262/#sec-array.prototype.map - // with adding support of @@species - _export$1({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$5 || !USES_TO_LENGTH$d }, { - map: function map(callbackfn /* , thisArg */) { - return $map$2(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } - }); - - // makes subclassing work correct for wrapped built-ins - var inheritIfRequired$1 = function ($this, dummy, Wrapper) { - var NewTarget, NewTargetPrototype; - if ( - // it can work only with native `setPrototypeOf` - objectSetPrototypeOf$1 && - // we haven't completely correct pre-ES6 way for getting `new.target`, so use this - typeof (NewTarget = dummy.constructor) == 'function' && - NewTarget !== Wrapper && - isObject$2(NewTargetPrototype = NewTarget.prototype) && - NewTargetPrototype !== Wrapper.prototype - ) objectSetPrototypeOf$1($this, NewTargetPrototype); - return $this; - }; - - // a string of all valid unicode whitespaces - // eslint-disable-next-line max-len - var whitespaces$1 = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; - - var whitespace$1 = '[' + whitespaces$1 + ']'; - var ltrim$1 = RegExp('^' + whitespace$1 + whitespace$1 + '*'); - var rtrim$1 = RegExp(whitespace$1 + whitespace$1 + '*$'); - - // `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation - var createMethod$8 = function (TYPE) { - return function ($this) { - var string = String(requireObjectCoercible$1($this)); - if (TYPE & 1) string = string.replace(ltrim$1, ''); - if (TYPE & 2) string = string.replace(rtrim$1, ''); - return string; - }; - }; - - var stringTrim$1 = { - // `String.prototype.{ trimLeft, trimStart }` methods - // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart - start: createMethod$8(1), - // `String.prototype.{ trimRight, trimEnd }` methods - // https://tc39.github.io/ecma262/#sec-string.prototype.trimend - end: createMethod$8(2), - // `String.prototype.trim` method - // https://tc39.github.io/ecma262/#sec-string.prototype.trim - trim: createMethod$8(3) - }; - - var getOwnPropertyNames$3 = objectGetOwnPropertyNames$1.f; - var getOwnPropertyDescriptor$6 = objectGetOwnPropertyDescriptor$1.f; - var defineProperty$c = objectDefineProperty$1.f; - var trim$1 = stringTrim$1.trim; - - var NUMBER$1 = 'Number'; - var NativeNumber$1 = global_1$1[NUMBER$1]; - var NumberPrototype$1 = NativeNumber$1.prototype; - - // Opera ~12 has broken Object#toString - var BROKEN_CLASSOF$1 = classofRaw$1(objectCreate$1(NumberPrototype$1)) == NUMBER$1; - - // `ToNumber` abstract operation - // https://tc39.github.io/ecma262/#sec-tonumber - var toNumber$1 = function (argument) { - var it = toPrimitive$1(argument, false); - var first, third, radix, maxCode, digits, length, index, code; - if (typeof it == 'string' && it.length > 2) { - it = trim$1(it); - first = it.charCodeAt(0); - if (first === 43 || first === 45) { - third = it.charCodeAt(2); - if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix - } else if (first === 48) { - switch (it.charCodeAt(1)) { - case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i - case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i - default: return +it; - } - digits = it.slice(2); - length = digits.length; - for (index = 0; index < length; index++) { - code = digits.charCodeAt(index); - // parseInt parses a string to a first unavailable symbol - // but ToNumber should return NaN if a string contains unavailable symbols - if (code < 48 || code > maxCode) return NaN; - } return parseInt(digits, radix); - } - } return +it; - }; - - // `Number` constructor - // https://tc39.github.io/ecma262/#sec-number-constructor - if (isForced_1$1(NUMBER$1, !NativeNumber$1(' 0o1') || !NativeNumber$1('0b1') || NativeNumber$1('+0x1'))) { - var NumberWrapper$1 = function Number(value) { - var it = arguments.length < 1 ? 0 : value; - var dummy = this; - return dummy instanceof NumberWrapper$1 - // check on 1..constructor(foo) case - && (BROKEN_CLASSOF$1 ? fails$1(function () { NumberPrototype$1.valueOf.call(dummy); }) : classofRaw$1(dummy) != NUMBER$1) - ? inheritIfRequired$1(new NativeNumber$1(toNumber$1(it)), dummy, NumberWrapper$1) : toNumber$1(it); - }; - for (var keys$5 = descriptors$1 ? getOwnPropertyNames$3(NativeNumber$1) : ( - // ES3: - 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + - // ES2015 (in case, if modules with ES2015 Number statics required before): - 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' + - 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger' - ).split(','), j$2 = 0, key$2; keys$5.length > j$2; j$2++) { - if (has$2(NativeNumber$1, key$2 = keys$5[j$2]) && !has$2(NumberWrapper$1, key$2)) { - defineProperty$c(NumberWrapper$1, key$2, getOwnPropertyDescriptor$6(NativeNumber$1, key$2)); - } - } - NumberWrapper$1.prototype = NumberPrototype$1; - NumberPrototype$1.constructor = NumberWrapper$1; - redefine$1(global_1$1, NUMBER$1, NumberWrapper$1); - } - - var FAILS_ON_PRIMITIVES$2 = fails$1(function () { objectKeys$1(1); }); - - // `Object.keys` method - // https://tc39.github.io/ecma262/#sec-object.keys - _export$1({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES$2 }, { - keys: function keys(it) { - return objectKeys$1(toObject$1(it)); - } - }); - - // `Object.prototype.toString` method implementation - // https://tc39.github.io/ecma262/#sec-object.prototype.tostring - var objectToString$1 = toStringTagSupport$1 ? {}.toString : function toString() { - return '[object ' + classof$1(this) + ']'; - }; - - // `Object.prototype.toString` method - // https://tc39.github.io/ecma262/#sec-object.prototype.tostring - if (!toStringTagSupport$1) { - redefine$1(Object.prototype, 'toString', objectToString$1, { unsafe: true }); - } - - var propertyIsEnumerable$1 = objectPropertyIsEnumerable$1.f; - - // `Object.{ entries, values }` methods implementation - var createMethod$9 = function (TO_ENTRIES) { - return function (it) { - var O = toIndexedObject$1(it); - var keys = objectKeys$1(O); - var length = keys.length; - var i = 0; - var result = []; - var key; - while (length > i) { - key = keys[i++]; - if (!descriptors$1 || propertyIsEnumerable$1.call(O, key)) { - result.push(TO_ENTRIES ? [key, O[key]] : O[key]); - } - } - return result; - }; - }; - - var objectToArray$1 = { - // `Object.entries` method - // https://tc39.github.io/ecma262/#sec-object.entries - entries: createMethod$9(true), - // `Object.values` method - // https://tc39.github.io/ecma262/#sec-object.values - values: createMethod$9(false) - }; - - var $values = objectToArray$1.values; - - // `Object.values` method - // https://tc39.github.io/ecma262/#sec-object.values - _export$1({ target: 'Object', stat: true }, { - values: function values(O) { - return $values(O); - } - }); - - // `RegExp.prototype.flags` getter implementation - // https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags - var regexpFlags$1 = function () { - var that = anObject$1(this); - var result = ''; - if (that.global) result += 'g'; - if (that.ignoreCase) result += 'i'; - if (that.multiline) result += 'm'; - if (that.dotAll) result += 's'; - if (that.unicode) result += 'u'; - if (that.sticky) result += 'y'; - return result; - }; - - // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError, - // so we use an intermediate function. - function RE$1(s, f) { - return RegExp(s, f); - } - - var UNSUPPORTED_Y$3 = fails$1(function () { - // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError - var re = RE$1('a', 'y'); - re.lastIndex = 2; - return re.exec('abcd') != null; - }); - - var BROKEN_CARET$1 = fails$1(function () { - // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 - var re = RE$1('^r', 'gy'); - re.lastIndex = 2; - return re.exec('str') != null; - }); - - var regexpStickyHelpers$1 = { - UNSUPPORTED_Y: UNSUPPORTED_Y$3, - BROKEN_CARET: BROKEN_CARET$1 - }; - - var nativeExec$1 = RegExp.prototype.exec; - // This always refers to the native implementation, because the - // String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js, - // which loads this file before patching the method. - var nativeReplace$1 = String.prototype.replace; - - var patchedExec$1 = nativeExec$1; - - var UPDATES_LAST_INDEX_WRONG$1 = (function () { - var re1 = /a/; - var re2 = /b*/g; - nativeExec$1.call(re1, 'a'); - nativeExec$1.call(re2, 'a'); - return re1.lastIndex !== 0 || re2.lastIndex !== 0; - })(); - - var UNSUPPORTED_Y$4 = regexpStickyHelpers$1.UNSUPPORTED_Y || regexpStickyHelpers$1.BROKEN_CARET; - - // nonparticipating capturing group, copied from es5-shim's String#split patch. - var NPCG_INCLUDED$1 = /()??/.exec('')[1] !== undefined; - - var PATCH$1 = UPDATES_LAST_INDEX_WRONG$1 || NPCG_INCLUDED$1 || UNSUPPORTED_Y$4; - - if (PATCH$1) { - patchedExec$1 = function exec(str) { - var re = this; - var lastIndex, reCopy, match, i; - var sticky = UNSUPPORTED_Y$4 && re.sticky; - var flags = regexpFlags$1.call(re); - var source = re.source; - var charsAdded = 0; - var strCopy = str; - - if (sticky) { - flags = flags.replace('y', ''); - if (flags.indexOf('g') === -1) { - flags += 'g'; - } - - strCopy = String(str).slice(re.lastIndex); - // Support anchored sticky behavior. - if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) { - source = '(?: ' + source + ')'; - strCopy = ' ' + strCopy; - charsAdded++; - } - // ^(? + rx + ) is needed, in combination with some str slicing, to - // simulate the 'y' flag. - reCopy = new RegExp('^(?:' + source + ')', flags); - } - - if (NPCG_INCLUDED$1) { - reCopy = new RegExp('^' + source + '$(?!\\s)', flags); - } - if (UPDATES_LAST_INDEX_WRONG$1) lastIndex = re.lastIndex; - - match = nativeExec$1.call(sticky ? reCopy : re, strCopy); - - if (sticky) { - if (match) { - match.input = match.input.slice(charsAdded); - match[0] = match[0].slice(charsAdded); - match.index = re.lastIndex; - re.lastIndex += match[0].length; - } else re.lastIndex = 0; - } else if (UPDATES_LAST_INDEX_WRONG$1 && match) { - re.lastIndex = re.global ? match.index + match[0].length : lastIndex; - } - if (NPCG_INCLUDED$1 && match && match.length > 1) { - // Fix browsers whose `exec` methods don't consistently return `undefined` - // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ - nativeReplace$1.call(match[0], reCopy, function () { - for (i = 1; i < arguments.length - 2; i++) { - if (arguments[i] === undefined) match[i] = undefined; - } - }); - } - - return match; - }; - } - - var regexpExec$1 = patchedExec$1; - - _export$1({ target: 'RegExp', proto: true, forced: /./.exec !== regexpExec$1 }, { - exec: regexpExec$1 - }); - - var TO_STRING$1 = 'toString'; - var RegExpPrototype$2 = RegExp.prototype; - var nativeToString$1 = RegExpPrototype$2[TO_STRING$1]; - - var NOT_GENERIC$1 = fails$1(function () { return nativeToString$1.call({ source: 'a', flags: 'b' }) != '/a/b'; }); - // FF44- RegExp#toString has a wrong name - var INCORRECT_NAME$1 = nativeToString$1.name != TO_STRING$1; - - // `RegExp.prototype.toString` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring - if (NOT_GENERIC$1 || INCORRECT_NAME$1) { - redefine$1(RegExp.prototype, TO_STRING$1, function toString() { - var R = anObject$1(this); - var p = String(R.source); - var rf = R.flags; - var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype$2) ? regexpFlags$1.call(R) : rf); - return '/' + p + '/' + f; - }, { unsafe: true }); - } - - var MATCH$3 = wellKnownSymbol$1('match'); - - // `IsRegExp` abstract operation - // https://tc39.github.io/ecma262/#sec-isregexp - var isRegexp$1 = function (it) { - var isRegExp; - return isObject$2(it) && ((isRegExp = it[MATCH$3]) !== undefined ? !!isRegExp : classofRaw$1(it) == 'RegExp'); - }; - - var notARegexp$1 = function (it) { - if (isRegexp$1(it)) { - throw TypeError("The method doesn't accept regular expressions"); - } return it; - }; - - var MATCH$4 = wellKnownSymbol$1('match'); - - var correctIsRegexpLogic$1 = function (METHOD_NAME) { - var regexp = /./; - try { - '/./'[METHOD_NAME](regexp); - } catch (error1) { - try { - regexp[MATCH$4] = false; - return '/./'[METHOD_NAME](regexp); - } catch (error2) { /* empty */ } - } return false; - }; - - // `String.prototype.includes` method - // https://tc39.github.io/ecma262/#sec-string.prototype.includes - _export$1({ target: 'String', proto: true, forced: !correctIsRegexpLogic$1('includes') }, { - includes: function includes(searchString /* , position = 0 */) { - return !!~String(requireObjectCoercible$1(this)) - .indexOf(notARegexp$1(searchString), arguments.length > 1 ? arguments[1] : undefined); - } - }); - - // `String.prototype.{ codePointAt, at }` methods implementation - var createMethod$a = function (CONVERT_TO_STRING) { - return function ($this, pos) { - var S = String(requireObjectCoercible$1($this)); - var position = toInteger$1(pos); - var size = S.length; - var first, second; - if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; - first = S.charCodeAt(position); - return first < 0xD800 || first > 0xDBFF || position + 1 === size - || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF - ? CONVERT_TO_STRING ? S.charAt(position) : first - : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; - }; - }; - - var stringMultibyte$1 = { - // `String.prototype.codePointAt` method - // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat - codeAt: createMethod$a(false), - // `String.prototype.at` method - // https://github.com/mathiasbynens/String.prototype.at - charAt: createMethod$a(true) - }; - - var charAt$2 = stringMultibyte$1.charAt; - - - - var STRING_ITERATOR$1 = 'String Iterator'; - var setInternalState$a = internalState$1.set; - var getInternalState$6 = internalState$1.getterFor(STRING_ITERATOR$1); - - // `String.prototype[@@iterator]` method - // https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator - defineIterator$1(String, 'String', function (iterated) { - setInternalState$a(this, { - type: STRING_ITERATOR$1, - string: String(iterated), - index: 0 - }); - // `%StringIteratorPrototype%.next` method - // https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next - }, function next() { - var state = getInternalState$6(this); - var string = state.string; - var index = state.index; - var point; - if (index >= string.length) return { value: undefined, done: true }; - point = charAt$2(string, index); - state.index += point.length; - return { value: point, done: false }; - }); - - // TODO: Remove from `core-js@4` since it's moved to entry points - - - - - - - - var SPECIES$9 = wellKnownSymbol$1('species'); - - var REPLACE_SUPPORTS_NAMED_GROUPS$1 = !fails$1(function () { - // #replace needs built-in support for named groups. - // #match works fine because it just return the exec results, even if it has - // a "grops" property. - var re = /./; - re.exec = function () { - var result = []; - result.groups = { a: '7' }; - return result; - }; - return ''.replace(re, '$') !== '7'; - }); - - // IE <= 11 replaces $0 with the whole match, as if it was $& - // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 - var REPLACE_KEEPS_$0$1 = (function () { - return 'a'.replace(/./, '$0') === '$0'; - })(); - - var REPLACE$1 = wellKnownSymbol$1('replace'); - // Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string - var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE$1 = (function () { - if (/./[REPLACE$1]) { - return /./[REPLACE$1]('a', '$0') === ''; - } - return false; - })(); - - // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec - // Weex JS has frozen built-in prototypes, so use try / catch wrapper - var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC$1 = !fails$1(function () { - var re = /(?:)/; - var originalExec = re.exec; - re.exec = function () { return originalExec.apply(this, arguments); }; - var result = 'ab'.split(re); - return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b'; - }); - - var fixRegexpWellKnownSymbolLogic$1 = function (KEY, length, exec, sham) { - var SYMBOL = wellKnownSymbol$1(KEY); - - var DELEGATES_TO_SYMBOL = !fails$1(function () { - // String methods call symbol-named RegEp methods - var O = {}; - O[SYMBOL] = function () { return 7; }; - return ''[KEY](O) != 7; - }); - - var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails$1(function () { - // Symbol-named RegExp methods call .exec - var execCalled = false; - var re = /a/; - - if (KEY === 'split') { - // We can't use real regex here since it causes deoptimization - // and serious performance degradation in V8 - // https://github.com/zloirock/core-js/issues/306 - re = {}; - // RegExp[@@split] doesn't call the regex's exec method, but first creates - // a new one. We need to return the patched regex when creating the new one. - re.constructor = {}; - re.constructor[SPECIES$9] = function () { return re; }; - re.flags = ''; - re[SYMBOL] = /./[SYMBOL]; - } - - re.exec = function () { execCalled = true; return null; }; - - re[SYMBOL](''); - return !execCalled; - }); - - if ( - !DELEGATES_TO_SYMBOL || - !DELEGATES_TO_EXEC || - (KEY === 'replace' && !( - REPLACE_SUPPORTS_NAMED_GROUPS$1 && - REPLACE_KEEPS_$0$1 && - !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE$1 - )) || - (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC$1) - ) { - var nativeRegExpMethod = /./[SYMBOL]; - var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { - if (regexp.exec === regexpExec$1) { - if (DELEGATES_TO_SYMBOL && !forceStringMethod) { - // The native String method already delegates to @@method (this - // polyfilled function), leasing to infinite recursion. - // We avoid it by directly calling the native @@method method. - return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) }; - } - return { done: true, value: nativeMethod.call(str, regexp, arg2) }; - } - return { done: false }; - }, { - REPLACE_KEEPS_$0: REPLACE_KEEPS_$0$1, - REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE$1 - }); - var stringMethod = methods[0]; - var regexMethod = methods[1]; - - redefine$1(String.prototype, KEY, stringMethod); - redefine$1(RegExp.prototype, SYMBOL, length == 2 - // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) - // 21.2.5.11 RegExp.prototype[@@split](string, limit) - ? function (string, arg) { return regexMethod.call(string, this, arg); } - // 21.2.5.6 RegExp.prototype[@@match](string) - // 21.2.5.9 RegExp.prototype[@@search](string) - : function (string) { return regexMethod.call(string, this); } - ); - } - - if (sham) createNonEnumerableProperty$1(RegExp.prototype[SYMBOL], 'sham', true); - }; - - // `SameValue` abstract operation - // https://tc39.github.io/ecma262/#sec-samevalue - var sameValue$1 = Object.is || function is(x, y) { - // eslint-disable-next-line no-self-compare - return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y; - }; - - // `RegExpExec` abstract operation - // https://tc39.github.io/ecma262/#sec-regexpexec - var regexpExecAbstract$1 = function (R, S) { - var exec = R.exec; - if (typeof exec === 'function') { - var result = exec.call(R, S); - if (typeof result !== 'object') { - throw TypeError('RegExp exec method returned something other than an Object or null'); - } - return result; - } - - if (classofRaw$1(R) !== 'RegExp') { - throw TypeError('RegExp#exec called on incompatible receiver'); - } - - return regexpExec$1.call(R, S); - }; - - // @@search logic - fixRegexpWellKnownSymbolLogic$1('search', 1, function (SEARCH, nativeSearch, maybeCallNative) { - return [ - // `String.prototype.search` method - // https://tc39.github.io/ecma262/#sec-string.prototype.search - function search(regexp) { - var O = requireObjectCoercible$1(this); - var searcher = regexp == undefined ? undefined : regexp[SEARCH]; - return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O)); - }, - // `RegExp.prototype[@@search]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search - function (regexp) { - var res = maybeCallNative(nativeSearch, regexp, this); - if (res.done) return res.value; - - var rx = anObject$1(regexp); - var S = String(this); - - var previousLastIndex = rx.lastIndex; - if (!sameValue$1(previousLastIndex, 0)) rx.lastIndex = 0; - var result = regexpExecAbstract$1(rx, S); - if (!sameValue$1(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; - return result === null ? -1 : result.index; - } - ]; - }); - - var redefineAll$1 = function (target, src, options) { - for (var key in src) redefine$1(target, key, src[key], options); - return target; - }; - - var freezing$1 = !fails$1(function () { - return Object.isExtensible(Object.preventExtensions({})); - }); - - var internalMetadata$1 = createCommonjsModule(function (module) { - var defineProperty = objectDefineProperty$1.f; - - - - var METADATA = uid$1('meta'); - var id = 0; - - var isExtensible = Object.isExtensible || function () { - return true; - }; - - var setMetadata = function (it) { - defineProperty(it, METADATA, { value: { - objectID: 'O' + ++id, // object ID - weakData: {} // weak collections IDs - } }); - }; - - var fastKey = function (it, create) { - // return a primitive with prefix - if (!isObject$2(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if (!has$2(it, METADATA)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return 'F'; - // not necessary to add metadata - if (!create) return 'E'; - // add missing metadata - setMetadata(it); - // return object ID - } return it[METADATA].objectID; - }; - - var getWeakData = function (it, create) { - if (!has$2(it, METADATA)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return true; - // not necessary to add metadata - if (!create) return false; - // add missing metadata - setMetadata(it); - // return the store of weak collections IDs - } return it[METADATA].weakData; - }; - - // add metadata on freeze-family methods calling - var onFreeze = function (it) { - if (freezing$1 && meta.REQUIRED && isExtensible(it) && !has$2(it, METADATA)) setMetadata(it); - return it; - }; - - var meta = module.exports = { - REQUIRED: false, - fastKey: fastKey, - getWeakData: getWeakData, - onFreeze: onFreeze - }; - - hiddenKeys$2[METADATA] = true; - }); - var internalMetadata_1$1 = internalMetadata$1.REQUIRED; - var internalMetadata_2$1 = internalMetadata$1.fastKey; - var internalMetadata_3$1 = internalMetadata$1.getWeakData; - var internalMetadata_4$1 = internalMetadata$1.onFreeze; - - var Result = function (stopped, result) { - this.stopped = stopped; - this.result = result; - }; - - var iterate = function (iterable, unboundFunction, options) { - var that = options && options.that; - var AS_ENTRIES = !!(options && options.AS_ENTRIES); - var IS_ITERATOR = !!(options && options.IS_ITERATOR); - var INTERRUPTED = !!(options && options.INTERRUPTED); - var fn = functionBindContext$1(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED); - var iterator, iterFn, index, length, result, next, step; - - var stop = function (condition) { - if (iterator) iteratorClose(iterator); - return new Result(true, condition); - }; - - var callFn = function (value) { - if (AS_ENTRIES) { - anObject$1(value); - return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); - } return INTERRUPTED ? fn(value, stop) : fn(value); - }; - - if (IS_ITERATOR) { - iterator = iterable; - } else { - iterFn = getIteratorMethod$1(iterable); - if (typeof iterFn != 'function') throw TypeError('Target is not iterable'); - // optimisation for array iterators - if (isArrayIteratorMethod$1(iterFn)) { - for (index = 0, length = toLength$1(iterable.length); length > index; index++) { - result = callFn(iterable[index]); - if (result && result instanceof Result) return result; - } return new Result(false); - } - iterator = iterFn.call(iterable); - } - - next = iterator.next; - while (!(step = next.call(iterator)).done) { - try { - result = callFn(step.value); - } catch (error) { - iteratorClose(iterator); - throw error; - } - if (typeof result == 'object' && result && result instanceof Result) return result; - } return new Result(false); - }; - - var anInstance$1 = function (it, Constructor, name) { - if (!(it instanceof Constructor)) { - throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation'); - } return it; - }; - - var collection$1 = function (CONSTRUCTOR_NAME, wrapper, common) { - var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; - var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; - var ADDER = IS_MAP ? 'set' : 'add'; - var NativeConstructor = global_1$1[CONSTRUCTOR_NAME]; - var NativePrototype = NativeConstructor && NativeConstructor.prototype; - var Constructor = NativeConstructor; - var exported = {}; - - var fixMethod = function (KEY) { - var nativeMethod = NativePrototype[KEY]; - redefine$1(NativePrototype, KEY, - KEY == 'add' ? function add(value) { - nativeMethod.call(this, value === 0 ? 0 : value); - return this; - } : KEY == 'delete' ? function (key) { - return IS_WEAK && !isObject$2(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key); - } : KEY == 'get' ? function get(key) { - return IS_WEAK && !isObject$2(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key); - } : KEY == 'has' ? function has(key) { - return IS_WEAK && !isObject$2(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key); - } : function set(key, value) { - nativeMethod.call(this, key === 0 ? 0 : key, value); - return this; - } - ); - }; - - // eslint-disable-next-line max-len - if (isForced_1$1(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails$1(function () { - new NativeConstructor().entries().next(); - })))) { - // create collection constructor - Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); - internalMetadata$1.REQUIRED = true; - } else if (isForced_1$1(CONSTRUCTOR_NAME, true)) { - var instance = new Constructor(); - // early implementations not supports chaining - var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; - // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false - var THROWS_ON_PRIMITIVES = fails$1(function () { instance.has(1); }); - // most early implementations doesn't supports iterables, most modern - not close it correctly - // eslint-disable-next-line no-new - var ACCEPT_ITERABLES = checkCorrectnessOfIteration$1(function (iterable) { new NativeConstructor(iterable); }); - // for early implementations -0 and +0 not the same - var BUGGY_ZERO = !IS_WEAK && fails$1(function () { - // V8 ~ Chromium 42- fails only with 5+ elements - var $instance = new NativeConstructor(); - var index = 5; - while (index--) $instance[ADDER](index, index); - return !$instance.has(-0); - }); - - if (!ACCEPT_ITERABLES) { - Constructor = wrapper(function (dummy, iterable) { - anInstance$1(dummy, Constructor, CONSTRUCTOR_NAME); - var that = inheritIfRequired$1(new NativeConstructor(), dummy, Constructor); - if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); - return that; - }); - Constructor.prototype = NativePrototype; - NativePrototype.constructor = Constructor; - } - - if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { - fixMethod('delete'); - fixMethod('has'); - IS_MAP && fixMethod('get'); - } - - if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); - - // weak collections should not contains .clear method - if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear; - } - - exported[CONSTRUCTOR_NAME] = Constructor; - _export$1({ global: true, forced: Constructor != NativeConstructor }, exported); - - setToStringTag$1(Constructor, CONSTRUCTOR_NAME); - - if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); - - return Constructor; - }; - - var getWeakData$1 = internalMetadata$1.getWeakData; - - - - - - - - - var setInternalState$b = internalState$1.set; - var internalStateGetterFor$1 = internalState$1.getterFor; - var find$2 = arrayIteration$1.find; - var findIndex$1 = arrayIteration$1.findIndex; - var id$3 = 0; - - // fallback for uncaught frozen keys - var uncaughtFrozenStore$1 = function (store) { - return store.frozen || (store.frozen = new UncaughtFrozenStore$1()); - }; - - var UncaughtFrozenStore$1 = function () { - this.entries = []; - }; - - var findUncaughtFrozen$1 = function (store, key) { - return find$2(store.entries, function (it) { - return it[0] === key; - }); - }; - - UncaughtFrozenStore$1.prototype = { - get: function (key) { - var entry = findUncaughtFrozen$1(this, key); - if (entry) return entry[1]; - }, - has: function (key) { - return !!findUncaughtFrozen$1(this, key); - }, - set: function (key, value) { - var entry = findUncaughtFrozen$1(this, key); - if (entry) entry[1] = value; - else this.entries.push([key, value]); - }, - 'delete': function (key) { - var index = findIndex$1(this.entries, function (it) { - return it[0] === key; - }); - if (~index) this.entries.splice(index, 1); - return !!~index; - } - }; - - var collectionWeak$1 = { - getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance$1(that, C, CONSTRUCTOR_NAME); - setInternalState$b(that, { - type: CONSTRUCTOR_NAME, - id: id$3++, - frozen: undefined - }); - if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); - }); - - var getInternalState = internalStateGetterFor$1(CONSTRUCTOR_NAME); - - var define = function (that, key, value) { - var state = getInternalState(that); - var data = getWeakData$1(anObject$1(key), true); - if (data === true) uncaughtFrozenStore$1(state).set(key, value); - else data[state.id] = value; - return that; - }; - - redefineAll$1(C.prototype, { - // 23.3.3.2 WeakMap.prototype.delete(key) - // 23.4.3.3 WeakSet.prototype.delete(value) - 'delete': function (key) { - var state = getInternalState(this); - if (!isObject$2(key)) return false; - var data = getWeakData$1(key); - if (data === true) return uncaughtFrozenStore$1(state)['delete'](key); - return data && has$2(data, state.id) && delete data[state.id]; - }, - // 23.3.3.4 WeakMap.prototype.has(key) - // 23.4.3.4 WeakSet.prototype.has(value) - has: function has(key) { - var state = getInternalState(this); - if (!isObject$2(key)) return false; - var data = getWeakData$1(key); - if (data === true) return uncaughtFrozenStore$1(state).has(key); - return data && has$2(data, state.id); - } - }); - - redefineAll$1(C.prototype, IS_MAP ? { - // 23.3.3.3 WeakMap.prototype.get(key) - get: function get(key) { - var state = getInternalState(this); - if (isObject$2(key)) { - var data = getWeakData$1(key); - if (data === true) return uncaughtFrozenStore$1(state).get(key); - return data ? data[state.id] : undefined; - } - }, - // 23.3.3.5 WeakMap.prototype.set(key, value) - set: function set(key, value) { - return define(this, key, value); - } - } : { - // 23.4.3.1 WeakSet.prototype.add(value) - add: function add(value) { - return define(this, value, true); - } - }); - - return C; - } - }; - - var es_weakMap = createCommonjsModule(function (module) { - - - - - - - var enforceIternalState = internalState$1.enforce; - - - var IS_IE11 = !global_1$1.ActiveXObject && 'ActiveXObject' in global_1$1; - var isExtensible = Object.isExtensible; - var InternalWeakMap; - - var wrapper = function (init) { - return function WeakMap() { - return init(this, arguments.length ? arguments[0] : undefined); - }; - }; - - // `WeakMap` constructor - // https://tc39.github.io/ecma262/#sec-weakmap-constructor - var $WeakMap = module.exports = collection$1('WeakMap', wrapper, collectionWeak$1); - - // IE11 WeakMap frozen keys fix - // We can't use feature detection because it crash some old IE builds - // https://github.com/zloirock/core-js/issues/485 - if (nativeWeakMap$1 && IS_IE11) { - InternalWeakMap = collectionWeak$1.getConstructor(wrapper, 'WeakMap', true); - internalMetadata$1.REQUIRED = true; - var WeakMapPrototype = $WeakMap.prototype; - var nativeDelete = WeakMapPrototype['delete']; - var nativeHas = WeakMapPrototype.has; - var nativeGet = WeakMapPrototype.get; - var nativeSet = WeakMapPrototype.set; - redefineAll$1(WeakMapPrototype, { - 'delete': function (key) { - if (isObject$2(key) && !isExtensible(key)) { - var state = enforceIternalState(this); - if (!state.frozen) state.frozen = new InternalWeakMap(); - return nativeDelete.call(this, key) || state.frozen['delete'](key); - } return nativeDelete.call(this, key); - }, - has: function has(key) { - if (isObject$2(key) && !isExtensible(key)) { - var state = enforceIternalState(this); - if (!state.frozen) state.frozen = new InternalWeakMap(); - return nativeHas.call(this, key) || state.frozen.has(key); - } return nativeHas.call(this, key); - }, - get: function get(key) { - if (isObject$2(key) && !isExtensible(key)) { - var state = enforceIternalState(this); - if (!state.frozen) state.frozen = new InternalWeakMap(); - return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key); - } return nativeGet.call(this, key); - }, - set: function set(key, value) { - if (isObject$2(key) && !isExtensible(key)) { - var state = enforceIternalState(this); - if (!state.frozen) state.frozen = new InternalWeakMap(); - nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value); - } else nativeSet.call(this, key, value); - return this; - } - }); - } - }); - - // iterable DOM collections - // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods - var domIterables$1 = { - CSSRuleList: 0, - CSSStyleDeclaration: 0, - CSSValueList: 0, - ClientRectList: 0, - DOMRectList: 0, - DOMStringList: 0, - DOMTokenList: 1, - DataTransferItemList: 0, - FileList: 0, - HTMLAllCollection: 0, - HTMLCollection: 0, - HTMLFormElement: 0, - HTMLSelectElement: 0, - MediaList: 0, - MimeTypeArray: 0, - NamedNodeMap: 0, - NodeList: 1, - PaintRequestList: 0, - Plugin: 0, - PluginArray: 0, - SVGLengthList: 0, - SVGNumberList: 0, - SVGPathSegList: 0, - SVGPointList: 0, - SVGStringList: 0, - SVGTransformList: 0, - SourceBufferList: 0, - StyleSheetList: 0, - TextTrackCueList: 0, - TextTrackList: 0, - TouchList: 0 - }; - - var ITERATOR$e = wellKnownSymbol$1('iterator'); - var TO_STRING_TAG$8 = wellKnownSymbol$1('toStringTag'); - var ArrayValues$1 = es_array_iterator$1.values; - - for (var COLLECTION_NAME$2 in domIterables$1) { - var Collection$2 = global_1$1[COLLECTION_NAME$2]; - var CollectionPrototype$2 = Collection$2 && Collection$2.prototype; - if (CollectionPrototype$2) { - // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype$2[ITERATOR$e] !== ArrayValues$1) try { - createNonEnumerableProperty$1(CollectionPrototype$2, ITERATOR$e, ArrayValues$1); - } catch (error) { - CollectionPrototype$2[ITERATOR$e] = ArrayValues$1; - } - if (!CollectionPrototype$2[TO_STRING_TAG$8]) { - createNonEnumerableProperty$1(CollectionPrototype$2, TO_STRING_TAG$8, COLLECTION_NAME$2); - } - if (domIterables$1[COLLECTION_NAME$2]) for (var METHOD_NAME$1 in es_array_iterator$1) { - // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype$2[METHOD_NAME$1] !== es_array_iterator$1[METHOD_NAME$1]) try { - createNonEnumerableProperty$1(CollectionPrototype$2, METHOD_NAME$1, es_array_iterator$1[METHOD_NAME$1]); - } catch (error) { - CollectionPrototype$2[METHOD_NAME$1] = es_array_iterator$1[METHOD_NAME$1]; - } - } - } - } - - var $every$1 = arrayIteration$1.every; - - - - var STRICT_METHOD$6 = arrayMethodIsStrict$1('every'); - var USES_TO_LENGTH$e = arrayMethodUsesToLength$1('every'); - - // `Array.prototype.every` method - // https://tc39.github.io/ecma262/#sec-array.prototype.every - _export$1({ target: 'Array', proto: true, forced: !STRICT_METHOD$6 || !USES_TO_LENGTH$e }, { - every: function every(callbackfn /* , thisArg */) { - return $every$1(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } - }); - - var $forEach$3 = arrayIteration$1.forEach; - - - - var STRICT_METHOD$7 = arrayMethodIsStrict$1('forEach'); - var USES_TO_LENGTH$f = arrayMethodUsesToLength$1('forEach'); - - // `Array.prototype.forEach` method implementation - // https://tc39.github.io/ecma262/#sec-array.prototype.foreach - var arrayForEach$1 = (!STRICT_METHOD$7 || !USES_TO_LENGTH$f) ? function forEach(callbackfn /* , thisArg */) { - return $forEach$3(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } : [].forEach; - - // `Array.prototype.forEach` method - // https://tc39.github.io/ecma262/#sec-array.prototype.foreach - _export$1({ target: 'Array', proto: true, forced: [].forEach != arrayForEach$1 }, { - forEach: arrayForEach$1 - }); - - var $indexOf$2 = arrayIncludes$1.indexOf; - - - - var nativeIndexOf$1 = [].indexOf; - - var NEGATIVE_ZERO$2 = !!nativeIndexOf$1 && 1 / [1].indexOf(1, -0) < 0; - var STRICT_METHOD$8 = arrayMethodIsStrict$1('indexOf'); - var USES_TO_LENGTH$g = arrayMethodUsesToLength$1('indexOf', { ACCESSORS: true, 1: 0 }); - - // `Array.prototype.indexOf` method - // https://tc39.github.io/ecma262/#sec-array.prototype.indexof - _export$1({ target: 'Array', proto: true, forced: NEGATIVE_ZERO$2 || !STRICT_METHOD$8 || !USES_TO_LENGTH$g }, { - indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { - return NEGATIVE_ZERO$2 - // convert -0 to +0 - ? nativeIndexOf$1.apply(this, arguments) || 0 - : $indexOf$2(this, searchElement, arguments.length > 1 ? arguments[1] : undefined); - } - }); - - var nativeAssign$1 = Object.assign; - var defineProperty$d = Object.defineProperty; - - // `Object.assign` method - // https://tc39.github.io/ecma262/#sec-object.assign - var objectAssign$1 = !nativeAssign$1 || fails$1(function () { - // should have correct order of operations (Edge bug) - if (descriptors$1 && nativeAssign$1({ b: 1 }, nativeAssign$1(defineProperty$d({}, 'a', { - enumerable: true, - get: function () { - defineProperty$d(this, 'b', { - value: 3, - enumerable: false - }); - } - }), { b: 2 })).b !== 1) return true; - // should work with symbols and should have deterministic property order (V8 bug) - var A = {}; - var B = {}; - // eslint-disable-next-line no-undef - var symbol = Symbol(); - var alphabet = 'abcdefghijklmnopqrst'; - A[symbol] = 7; - alphabet.split('').forEach(function (chr) { B[chr] = chr; }); - return nativeAssign$1({}, A)[symbol] != 7 || objectKeys$1(nativeAssign$1({}, B)).join('') != alphabet; - }) ? function assign(target, source) { // eslint-disable-line no-unused-vars - var T = toObject$1(target); - var argumentsLength = arguments.length; - var index = 1; - var getOwnPropertySymbols = objectGetOwnPropertySymbols$1.f; - var propertyIsEnumerable = objectPropertyIsEnumerable$1.f; - while (argumentsLength > index) { - var S = indexedObject$1(arguments[index++]); - var keys = getOwnPropertySymbols ? objectKeys$1(S).concat(getOwnPropertySymbols(S)) : objectKeys$1(S); - var length = keys.length; - var j = 0; - var key; - while (length > j) { - key = keys[j++]; - if (!descriptors$1 || propertyIsEnumerable.call(S, key)) T[key] = S[key]; - } - } return T; - } : nativeAssign$1; - - // `Object.assign` method - // https://tc39.github.io/ecma262/#sec-object.assign - _export$1({ target: 'Object', stat: true, forced: Object.assign !== objectAssign$1 }, { - assign: objectAssign$1 - }); - - var SPECIES$a = wellKnownSymbol$1('species'); - - // `SpeciesConstructor` abstract operation - // https://tc39.github.io/ecma262/#sec-speciesconstructor - var speciesConstructor$1 = function (O, defaultConstructor) { - var C = anObject$1(O).constructor; - var S; - return C === undefined || (S = anObject$1(C)[SPECIES$a]) == undefined ? defaultConstructor : aFunction$3(S); - }; - - var charAt$3 = stringMultibyte$1.charAt; - - // `AdvanceStringIndex` abstract operation - // https://tc39.github.io/ecma262/#sec-advancestringindex - var advanceStringIndex$1 = function (S, index, unicode) { - return index + (unicode ? charAt$3(S, index).length : 1); - }; - - var arrayPush$1 = [].push; - var min$9 = Math.min; - var MAX_UINT32$1 = 0xFFFFFFFF; - - // babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError - var SUPPORTS_Y$1 = !fails$1(function () { return !RegExp(MAX_UINT32$1, 'y'); }); - - // @@split logic - fixRegexpWellKnownSymbolLogic$1('split', 2, function (SPLIT, nativeSplit, maybeCallNative) { - var internalSplit; - if ( - 'abbc'.split(/(b)*/)[1] == 'c' || - 'test'.split(/(?:)/, -1).length != 4 || - 'ab'.split(/(?:ab)*/).length != 2 || - '.'.split(/(.?)(.?)/).length != 4 || - '.'.split(/()()/).length > 1 || - ''.split(/.?/).length - ) { - // based on es5-shim implementation, need to rework it - internalSplit = function (separator, limit) { - var string = String(requireObjectCoercible$1(this)); - var lim = limit === undefined ? MAX_UINT32$1 : limit >>> 0; - if (lim === 0) return []; - if (separator === undefined) return [string]; - // If `separator` is not a regex, use native split - if (!isRegexp$1(separator)) { - return nativeSplit.call(string, separator, lim); - } - var output = []; - var flags = (separator.ignoreCase ? 'i' : '') + - (separator.multiline ? 'm' : '') + - (separator.unicode ? 'u' : '') + - (separator.sticky ? 'y' : ''); - var lastLastIndex = 0; - // Make `global` and avoid `lastIndex` issues by working with a copy - var separatorCopy = new RegExp(separator.source, flags + 'g'); - var match, lastIndex, lastLength; - while (match = regexpExec$1.call(separatorCopy, string)) { - lastIndex = separatorCopy.lastIndex; - if (lastIndex > lastLastIndex) { - output.push(string.slice(lastLastIndex, match.index)); - if (match.length > 1 && match.index < string.length) arrayPush$1.apply(output, match.slice(1)); - lastLength = match[0].length; - lastLastIndex = lastIndex; - if (output.length >= lim) break; - } - if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop - } - if (lastLastIndex === string.length) { - if (lastLength || !separatorCopy.test('')) output.push(''); - } else output.push(string.slice(lastLastIndex)); - return output.length > lim ? output.slice(0, lim) : output; - }; - // Chakra, V8 - } else if ('0'.split(undefined, 0).length) { - internalSplit = function (separator, limit) { - return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit); - }; - } else internalSplit = nativeSplit; - - return [ - // `String.prototype.split` method - // https://tc39.github.io/ecma262/#sec-string.prototype.split - function split(separator, limit) { - var O = requireObjectCoercible$1(this); - var splitter = separator == undefined ? undefined : separator[SPLIT]; - return splitter !== undefined - ? splitter.call(separator, O, limit) - : internalSplit.call(String(O), separator, limit); - }, - // `RegExp.prototype[@@split]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split - // - // NOTE: This cannot be properly polyfilled in engines that don't support - // the 'y' flag. - function (regexp, limit) { - var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit); - if (res.done) return res.value; - - var rx = anObject$1(regexp); - var S = String(this); - var C = speciesConstructor$1(rx, RegExp); - - var unicodeMatching = rx.unicode; - var flags = (rx.ignoreCase ? 'i' : '') + - (rx.multiline ? 'm' : '') + - (rx.unicode ? 'u' : '') + - (SUPPORTS_Y$1 ? 'y' : 'g'); - - // ^(? + rx + ) is needed, in combination with some S slicing, to - // simulate the 'y' flag. - var splitter = new C(SUPPORTS_Y$1 ? rx : '^(?:' + rx.source + ')', flags); - var lim = limit === undefined ? MAX_UINT32$1 : limit >>> 0; - if (lim === 0) return []; - if (S.length === 0) return regexpExecAbstract$1(splitter, S) === null ? [S] : []; - var p = 0; - var q = 0; - var A = []; - while (q < S.length) { - splitter.lastIndex = SUPPORTS_Y$1 ? q : 0; - var z = regexpExecAbstract$1(splitter, SUPPORTS_Y$1 ? S : S.slice(q)); - var e; - if ( - z === null || - (e = min$9(toLength$1(splitter.lastIndex + (SUPPORTS_Y$1 ? 0 : q)), S.length)) === p - ) { - q = advanceStringIndex$1(S, q, unicodeMatching); - } else { - A.push(S.slice(p, q)); - if (A.length === lim) return A; - for (var i = 1; i <= z.length - 1; i++) { - A.push(z[i]); - if (A.length === lim) return A; - } - q = p = e; - } - } - A.push(S.slice(p)); - return A; - } - ]; - }, !SUPPORTS_Y$1); - - var non = '\u200B\u0085\u180E'; - - // check that a method works with the correct list - // of whitespaces and has a correct name - var stringTrimForced = function (METHOD_NAME) { - return fails$1(function () { - return !!whitespaces$1[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces$1[METHOD_NAME].name !== METHOD_NAME; - }); - }; - - var $trim = stringTrim$1.trim; - - - // `String.prototype.trim` method - // https://tc39.github.io/ecma262/#sec-string.prototype.trim - _export$1({ target: 'String', proto: true, forced: stringTrimForced('trim') }, { - trim: function trim() { - return $trim(this); - } - }); - - for (var COLLECTION_NAME$3 in domIterables$1) { - var Collection$3 = global_1$1[COLLECTION_NAME$3]; - var CollectionPrototype$3 = Collection$3 && Collection$3.prototype; - // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype$3 && CollectionPrototype$3.forEach !== arrayForEach$1) try { - createNonEnumerableProperty$1(CollectionPrototype$3, 'forEach', arrayForEach$1); - } catch (error) { - CollectionPrototype$3.forEach = arrayForEach$1; - } - } - - var ITERATOR$f = wellKnownSymbol$1('iterator'); - - var nativeUrl$1 = !fails$1(function () { - var url = new URL('b?a=1&b=2&c=3', 'http://a'); - var searchParams = url.searchParams; - var result = ''; - url.pathname = 'c%20d'; - searchParams.forEach(function (value, key) { - searchParams['delete']('b'); - result += key + value; - }); - return (isPure$1 && !url.toJSON) - || !searchParams.sort - || url.href !== 'http://a/c%20d?a=1&c=3' - || searchParams.get('c') !== '3' - || String(new URLSearchParams('?a=1')) !== 'a=1' - || !searchParams[ITERATOR$f] - // throws in Edge - || new URL('https://a@b').username !== 'a' - || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b' - // not punycoded in Edge - || new URL('http://тест').host !== 'xn--e1aybc' - // not escaped in Chrome 62- - || new URL('http://a#б').hash !== '#%D0%B1' - // fails in Chrome 66- - || result !== 'a1c3' - // throws in Safari - || new URL('http://x', undefined).host !== 'x'; - }); - - // based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js - var maxInt$1 = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 - var base$1 = 36; - var tMin$1 = 1; - var tMax$1 = 26; - var skew$1 = 38; - var damp$1 = 700; - var initialBias$1 = 72; - var initialN$1 = 128; // 0x80 - var delimiter$1 = '-'; // '\x2D' - var regexNonASCII$1 = /[^\0-\u007E]/; // non-ASCII chars - var regexSeparators$1 = /[.\u3002\uFF0E\uFF61]/g; // RFC 3490 separators - var OVERFLOW_ERROR$1 = 'Overflow: input needs wider integers to process'; - var baseMinusTMin$1 = base$1 - tMin$1; - var floor$7 = Math.floor; - var stringFromCharCode$1 = String.fromCharCode; - - /** - * Creates an array containing the numeric code points of each Unicode - * character in the string. While JavaScript uses UCS-2 internally, - * this function will convert a pair of surrogate halves (each of which - * UCS-2 exposes as separate characters) into a single code point, - * matching UTF-16. - */ - var ucs2decode$1 = function (string) { - var output = []; - var counter = 0; - var length = string.length; - while (counter < length) { - var value = string.charCodeAt(counter++); - if (value >= 0xD800 && value <= 0xDBFF && counter < length) { - // It's a high surrogate, and there is a next character. - var extra = string.charCodeAt(counter++); - if ((extra & 0xFC00) == 0xDC00) { // Low surrogate. - output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); - } else { - // It's an unmatched surrogate; only append this code unit, in case the - // next code unit is the high surrogate of a surrogate pair. - output.push(value); - counter--; - } - } else { - output.push(value); - } - } - return output; - }; - - /** - * Converts a digit/integer into a basic code point. - */ - var digitToBasic$1 = function (digit) { - // 0..25 map to ASCII a..z or A..Z - // 26..35 map to ASCII 0..9 - return digit + 22 + 75 * (digit < 26); - }; - - /** - * Bias adaptation function as per section 3.4 of RFC 3492. - * https://tools.ietf.org/html/rfc3492#section-3.4 - */ - var adapt$1 = function (delta, numPoints, firstTime) { - var k = 0; - delta = firstTime ? floor$7(delta / damp$1) : delta >> 1; - delta += floor$7(delta / numPoints); - for (; delta > baseMinusTMin$1 * tMax$1 >> 1; k += base$1) { - delta = floor$7(delta / baseMinusTMin$1); - } - return floor$7(k + (baseMinusTMin$1 + 1) * delta / (delta + skew$1)); - }; - - /** - * Converts a string of Unicode symbols (e.g. a domain name label) to a - * Punycode string of ASCII-only symbols. - */ - // eslint-disable-next-line max-statements - var encode$1 = function (input) { - var output = []; - - // Convert the input in UCS-2 to an array of Unicode code points. - input = ucs2decode$1(input); - - // Cache the length. - var inputLength = input.length; - - // Initialize the state. - var n = initialN$1; - var delta = 0; - var bias = initialBias$1; - var i, currentValue; - - // Handle the basic code points. - for (i = 0; i < input.length; i++) { - currentValue = input[i]; - if (currentValue < 0x80) { - output.push(stringFromCharCode$1(currentValue)); - } - } - - var basicLength = output.length; // number of basic code points. - var handledCPCount = basicLength; // number of code points that have been handled; - - // Finish the basic string with a delimiter unless it's empty. - if (basicLength) { - output.push(delimiter$1); - } - - // Main encoding loop: - while (handledCPCount < inputLength) { - // All non-basic code points < n have been handled already. Find the next larger one: - var m = maxInt$1; - for (i = 0; i < input.length; i++) { - currentValue = input[i]; - if (currentValue >= n && currentValue < m) { - m = currentValue; - } - } - - // Increase `delta` enough to advance the decoder's state to , but guard against overflow. - var handledCPCountPlusOne = handledCPCount + 1; - if (m - n > floor$7((maxInt$1 - delta) / handledCPCountPlusOne)) { - throw RangeError(OVERFLOW_ERROR$1); - } - - delta += (m - n) * handledCPCountPlusOne; - n = m; - - for (i = 0; i < input.length; i++) { - currentValue = input[i]; - if (currentValue < n && ++delta > maxInt$1) { - throw RangeError(OVERFLOW_ERROR$1); - } - if (currentValue == n) { - // Represent delta as a generalized variable-length integer. - var q = delta; - for (var k = base$1; /* no condition */; k += base$1) { - var t = k <= bias ? tMin$1 : (k >= bias + tMax$1 ? tMax$1 : k - bias); - if (q < t) break; - var qMinusT = q - t; - var baseMinusT = base$1 - t; - output.push(stringFromCharCode$1(digitToBasic$1(t + qMinusT % baseMinusT))); - q = floor$7(qMinusT / baseMinusT); - } - - output.push(stringFromCharCode$1(digitToBasic$1(q))); - bias = adapt$1(delta, handledCPCountPlusOne, handledCPCount == basicLength); - delta = 0; - ++handledCPCount; - } - } - - ++delta; - ++n; - } - return output.join(''); - }; - - var stringPunycodeToAscii$1 = function (input) { - var encoded = []; - var labels = input.toLowerCase().replace(regexSeparators$1, '\u002E').split('.'); - var i, label; - for (i = 0; i < labels.length; i++) { - label = labels[i]; - encoded.push(regexNonASCII$1.test(label) ? 'xn--' + encode$1(label) : label); - } - return encoded.join('.'); - }; - - var getIterator$1 = function (it) { - var iteratorMethod = getIteratorMethod$1(it); - if (typeof iteratorMethod != 'function') { - throw TypeError(String(it) + ' is not iterable'); - } return anObject$1(iteratorMethod.call(it)); - }; - - // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` - - - - - - - - - - - - - - - - - - - - - - var $fetch$2 = getBuiltIn$1('fetch'); - var Headers$2 = getBuiltIn$1('Headers'); - var ITERATOR$g = wellKnownSymbol$1('iterator'); - var URL_SEARCH_PARAMS$1 = 'URLSearchParams'; - var URL_SEARCH_PARAMS_ITERATOR$1 = URL_SEARCH_PARAMS$1 + 'Iterator'; - var setInternalState$c = internalState$1.set; - var getInternalParamsState$1 = internalState$1.getterFor(URL_SEARCH_PARAMS$1); - var getInternalIteratorState$1 = internalState$1.getterFor(URL_SEARCH_PARAMS_ITERATOR$1); - - var plus$1 = /\+/g; - var sequences$1 = Array(4); - - var percentSequence$1 = function (bytes) { - return sequences$1[bytes - 1] || (sequences$1[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '})', 'gi')); - }; - - var percentDecode$1 = function (sequence) { - try { - return decodeURIComponent(sequence); - } catch (error) { - return sequence; - } - }; - - var deserialize$1 = function (it) { - var result = it.replace(plus$1, ' '); - var bytes = 4; - try { - return decodeURIComponent(result); - } catch (error) { - while (bytes) { - result = result.replace(percentSequence$1(bytes--), percentDecode$1); - } - return result; - } - }; - - var find$3 = /[!'()~]|%20/g; - - var replace$1 = { - '!': '%21', - "'": '%27', - '(': '%28', - ')': '%29', - '~': '%7E', - '%20': '+' - }; - - var replacer$1 = function (match) { - return replace$1[match]; - }; - - var serialize$1 = function (it) { - return encodeURIComponent(it).replace(find$3, replacer$1); - }; - - var parseSearchParams$1 = function (result, query) { - if (query) { - var attributes = query.split('&'); - var index = 0; - var attribute, entry; - while (index < attributes.length) { - attribute = attributes[index++]; - if (attribute.length) { - entry = attribute.split('='); - result.push({ - key: deserialize$1(entry.shift()), - value: deserialize$1(entry.join('=')) - }); - } - } - } - }; - - var updateSearchParams$1 = function (query) { - this.entries.length = 0; - parseSearchParams$1(this.entries, query); - }; - - var validateArgumentsLength$1 = function (passed, required) { - if (passed < required) throw TypeError('Not enough arguments'); - }; - - var URLSearchParamsIterator$1 = createIteratorConstructor$1(function Iterator(params, kind) { - setInternalState$c(this, { - type: URL_SEARCH_PARAMS_ITERATOR$1, - iterator: getIterator$1(getInternalParamsState$1(params).entries), - kind: kind - }); - }, 'Iterator', function next() { - var state = getInternalIteratorState$1(this); - var kind = state.kind; - var step = state.iterator.next(); - var entry = step.value; - if (!step.done) { - step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value]; - } return step; - }); - - // `URLSearchParams` constructor - // https://url.spec.whatwg.org/#interface-urlsearchparams - var URLSearchParamsConstructor$1 = function URLSearchParams(/* init */) { - anInstance$1(this, URLSearchParamsConstructor$1, URL_SEARCH_PARAMS$1); - var init = arguments.length > 0 ? arguments[0] : undefined; - var that = this; - var entries = []; - var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key; - - setInternalState$c(that, { - type: URL_SEARCH_PARAMS$1, - entries: entries, - updateURL: function () { /* empty */ }, - updateSearchParams: updateSearchParams$1 - }); - - if (init !== undefined) { - if (isObject$2(init)) { - iteratorMethod = getIteratorMethod$1(init); - if (typeof iteratorMethod === 'function') { - iterator = iteratorMethod.call(init); - next = iterator.next; - while (!(step = next.call(iterator)).done) { - entryIterator = getIterator$1(anObject$1(step.value)); - entryNext = entryIterator.next; - if ( - (first = entryNext.call(entryIterator)).done || - (second = entryNext.call(entryIterator)).done || - !entryNext.call(entryIterator).done - ) throw TypeError('Expected sequence with length 2'); - entries.push({ key: first.value + '', value: second.value + '' }); - } - } else for (key in init) if (has$2(init, key)) entries.push({ key: key, value: init[key] + '' }); - } else { - parseSearchParams$1(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + ''); - } - } - }; - - var URLSearchParamsPrototype$1 = URLSearchParamsConstructor$1.prototype; - - redefineAll$1(URLSearchParamsPrototype$1, { - // `URLSearchParams.prototype.append` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-append - append: function append(name, value) { - validateArgumentsLength$1(arguments.length, 2); - var state = getInternalParamsState$1(this); - state.entries.push({ key: name + '', value: value + '' }); - state.updateURL(); - }, - // `URLSearchParams.prototype.delete` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-delete - 'delete': function (name) { - validateArgumentsLength$1(arguments.length, 1); - var state = getInternalParamsState$1(this); - var entries = state.entries; - var key = name + ''; - var index = 0; - while (index < entries.length) { - if (entries[index].key === key) entries.splice(index, 1); - else index++; - } - state.updateURL(); - }, - // `URLSearchParams.prototype.get` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-get - get: function get(name) { - validateArgumentsLength$1(arguments.length, 1); - var entries = getInternalParamsState$1(this).entries; - var key = name + ''; - var index = 0; - for (; index < entries.length; index++) { - if (entries[index].key === key) return entries[index].value; - } - return null; - }, - // `URLSearchParams.prototype.getAll` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-getall - getAll: function getAll(name) { - validateArgumentsLength$1(arguments.length, 1); - var entries = getInternalParamsState$1(this).entries; - var key = name + ''; - var result = []; - var index = 0; - for (; index < entries.length; index++) { - if (entries[index].key === key) result.push(entries[index].value); - } - return result; - }, - // `URLSearchParams.prototype.has` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-has - has: function has(name) { - validateArgumentsLength$1(arguments.length, 1); - var entries = getInternalParamsState$1(this).entries; - var key = name + ''; - var index = 0; - while (index < entries.length) { - if (entries[index++].key === key) return true; - } - return false; - }, - // `URLSearchParams.prototype.set` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-set - set: function set(name, value) { - validateArgumentsLength$1(arguments.length, 1); - var state = getInternalParamsState$1(this); - var entries = state.entries; - var found = false; - var key = name + ''; - var val = value + ''; - var index = 0; - var entry; - for (; index < entries.length; index++) { - entry = entries[index]; - if (entry.key === key) { - if (found) entries.splice(index--, 1); - else { - found = true; - entry.value = val; - } - } - } - if (!found) entries.push({ key: key, value: val }); - state.updateURL(); - }, - // `URLSearchParams.prototype.sort` method - // https://url.spec.whatwg.org/#dom-urlsearchparams-sort - sort: function sort() { - var state = getInternalParamsState$1(this); - var entries = state.entries; - // Array#sort is not stable in some engines - var slice = entries.slice(); - var entry, entriesIndex, sliceIndex; - entries.length = 0; - for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) { - entry = slice[sliceIndex]; - for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) { - if (entries[entriesIndex].key > entry.key) { - entries.splice(entriesIndex, 0, entry); - break; - } - } - if (entriesIndex === sliceIndex) entries.push(entry); - } - state.updateURL(); - }, - // `URLSearchParams.prototype.forEach` method - forEach: function forEach(callback /* , thisArg */) { - var entries = getInternalParamsState$1(this).entries; - var boundFunction = functionBindContext$1(callback, arguments.length > 1 ? arguments[1] : undefined, 3); - var index = 0; - var entry; - while (index < entries.length) { - entry = entries[index++]; - boundFunction(entry.value, entry.key, this); - } - }, - // `URLSearchParams.prototype.keys` method - keys: function keys() { - return new URLSearchParamsIterator$1(this, 'keys'); - }, - // `URLSearchParams.prototype.values` method - values: function values() { - return new URLSearchParamsIterator$1(this, 'values'); - }, - // `URLSearchParams.prototype.entries` method - entries: function entries() { - return new URLSearchParamsIterator$1(this, 'entries'); - } - }, { enumerable: true }); - - // `URLSearchParams.prototype[@@iterator]` method - redefine$1(URLSearchParamsPrototype$1, ITERATOR$g, URLSearchParamsPrototype$1.entries); - - // `URLSearchParams.prototype.toString` method - // https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior - redefine$1(URLSearchParamsPrototype$1, 'toString', function toString() { - var entries = getInternalParamsState$1(this).entries; - var result = []; - var index = 0; - var entry; - while (index < entries.length) { - entry = entries[index++]; - result.push(serialize$1(entry.key) + '=' + serialize$1(entry.value)); - } return result.join('&'); - }, { enumerable: true }); - - setToStringTag$1(URLSearchParamsConstructor$1, URL_SEARCH_PARAMS$1); - - _export$1({ global: true, forced: !nativeUrl$1 }, { - URLSearchParams: URLSearchParamsConstructor$1 - }); - - // Wrap `fetch` for correct work with polyfilled `URLSearchParams` - // https://github.com/zloirock/core-js/issues/674 - if (!nativeUrl$1 && typeof $fetch$2 == 'function' && typeof Headers$2 == 'function') { - _export$1({ global: true, enumerable: true, forced: true }, { - fetch: function fetch(input /* , init */) { - var args = [input]; - var init, body, headers; - if (arguments.length > 1) { - init = arguments[1]; - if (isObject$2(init)) { - body = init.body; - if (classof$1(body) === URL_SEARCH_PARAMS$1) { - headers = init.headers ? new Headers$2(init.headers) : new Headers$2(); - if (!headers.has('content-type')) { - headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); - } - init = objectCreate$1(init, { - body: createPropertyDescriptor$1(0, String(body)), - headers: createPropertyDescriptor$1(0, headers) - }); - } - } - args.push(init); - } return $fetch$2.apply(this, args); - } - }); - } - - var web_urlSearchParams$1 = { - URLSearchParams: URLSearchParamsConstructor$1, - getState: getInternalParamsState$1 - }; - - // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` - - - - - - - - - - - - var codeAt$1 = stringMultibyte$1.codeAt; - - - - - - var NativeURL$1 = global_1$1.URL; - var URLSearchParams$2 = web_urlSearchParams$1.URLSearchParams; - var getInternalSearchParamsState$1 = web_urlSearchParams$1.getState; - var setInternalState$d = internalState$1.set; - var getInternalURLState$1 = internalState$1.getterFor('URL'); - var floor$8 = Math.floor; - var pow$2 = Math.pow; - - var INVALID_AUTHORITY$1 = 'Invalid authority'; - var INVALID_SCHEME$1 = 'Invalid scheme'; - var INVALID_HOST$1 = 'Invalid host'; - var INVALID_PORT$1 = 'Invalid port'; - - var ALPHA$1 = /[A-Za-z]/; - var ALPHANUMERIC$1 = /[\d+-.A-Za-z]/; - var DIGIT$1 = /\d/; - var HEX_START$1 = /^(0x|0X)/; - var OCT$1 = /^[0-7]+$/; - var DEC$1 = /^\d+$/; - var HEX$1 = /^[\dA-Fa-f]+$/; - // eslint-disable-next-line no-control-regex - var FORBIDDEN_HOST_CODE_POINT$1 = /[\u0000\u0009\u000A\u000D #%/:?@[\\]]/; - // eslint-disable-next-line no-control-regex - var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT$1 = /[\u0000\u0009\u000A\u000D #/:?@[\\]]/; - // eslint-disable-next-line no-control-regex - var LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE$1 = /^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g; - // eslint-disable-next-line no-control-regex - var TAB_AND_NEW_LINE$1 = /[\u0009\u000A\u000D]/g; - var EOF$1; - - var parseHost$1 = function (url, input) { - var result, codePoints, index; - if (input.charAt(0) == '[') { - if (input.charAt(input.length - 1) != ']') return INVALID_HOST$1; - result = parseIPv6$1(input.slice(1, -1)); - if (!result) return INVALID_HOST$1; - url.host = result; - // opaque host - } else if (!isSpecial$1(url)) { - if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT$1.test(input)) return INVALID_HOST$1; - result = ''; - codePoints = arrayFrom$1(input); - for (index = 0; index < codePoints.length; index++) { - result += percentEncode$1(codePoints[index], C0ControlPercentEncodeSet$1); - } - url.host = result; - } else { - input = stringPunycodeToAscii$1(input); - if (FORBIDDEN_HOST_CODE_POINT$1.test(input)) return INVALID_HOST$1; - result = parseIPv4$1(input); - if (result === null) return INVALID_HOST$1; - url.host = result; - } - }; - - var parseIPv4$1 = function (input) { - var parts = input.split('.'); - var partsLength, numbers, index, part, radix, number, ipv4; - if (parts.length && parts[parts.length - 1] == '') { - parts.pop(); - } - partsLength = parts.length; - if (partsLength > 4) return input; - numbers = []; - for (index = 0; index < partsLength; index++) { - part = parts[index]; - if (part == '') return input; - radix = 10; - if (part.length > 1 && part.charAt(0) == '0') { - radix = HEX_START$1.test(part) ? 16 : 8; - part = part.slice(radix == 8 ? 1 : 2); - } - if (part === '') { - number = 0; - } else { - if (!(radix == 10 ? DEC$1 : radix == 8 ? OCT$1 : HEX$1).test(part)) return input; - number = parseInt(part, radix); - } - numbers.push(number); - } - for (index = 0; index < partsLength; index++) { - number = numbers[index]; - if (index == partsLength - 1) { - if (number >= pow$2(256, 5 - partsLength)) return null; - } else if (number > 255) return null; - } - ipv4 = numbers.pop(); - for (index = 0; index < numbers.length; index++) { - ipv4 += numbers[index] * pow$2(256, 3 - index); - } - return ipv4; - }; - - // eslint-disable-next-line max-statements - var parseIPv6$1 = function (input) { - var address = [0, 0, 0, 0, 0, 0, 0, 0]; - var pieceIndex = 0; - var compress = null; - var pointer = 0; - var value, length, numbersSeen, ipv4Piece, number, swaps, swap; - - var char = function () { - return input.charAt(pointer); - }; - - if (char() == ':') { - if (input.charAt(1) != ':') return; - pointer += 2; - pieceIndex++; - compress = pieceIndex; - } - while (char()) { - if (pieceIndex == 8) return; - if (char() == ':') { - if (compress !== null) return; - pointer++; - pieceIndex++; - compress = pieceIndex; - continue; - } - value = length = 0; - while (length < 4 && HEX$1.test(char())) { - value = value * 16 + parseInt(char(), 16); - pointer++; - length++; - } - if (char() == '.') { - if (length == 0) return; - pointer -= length; - if (pieceIndex > 6) return; - numbersSeen = 0; - while (char()) { - ipv4Piece = null; - if (numbersSeen > 0) { - if (char() == '.' && numbersSeen < 4) pointer++; - else return; - } - if (!DIGIT$1.test(char())) return; - while (DIGIT$1.test(char())) { - number = parseInt(char(), 10); - if (ipv4Piece === null) ipv4Piece = number; - else if (ipv4Piece == 0) return; - else ipv4Piece = ipv4Piece * 10 + number; - if (ipv4Piece > 255) return; - pointer++; - } - address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece; - numbersSeen++; - if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++; - } - if (numbersSeen != 4) return; - break; - } else if (char() == ':') { - pointer++; - if (!char()) return; - } else if (char()) return; - address[pieceIndex++] = value; - } - if (compress !== null) { - swaps = pieceIndex - compress; - pieceIndex = 7; - while (pieceIndex != 0 && swaps > 0) { - swap = address[pieceIndex]; - address[pieceIndex--] = address[compress + swaps - 1]; - address[compress + --swaps] = swap; - } - } else if (pieceIndex != 8) return; - return address; - }; - - var findLongestZeroSequence$1 = function (ipv6) { - var maxIndex = null; - var maxLength = 1; - var currStart = null; - var currLength = 0; - var index = 0; - for (; index < 8; index++) { - if (ipv6[index] !== 0) { - if (currLength > maxLength) { - maxIndex = currStart; - maxLength = currLength; - } - currStart = null; - currLength = 0; - } else { - if (currStart === null) currStart = index; - ++currLength; - } - } - if (currLength > maxLength) { - maxIndex = currStart; - maxLength = currLength; - } - return maxIndex; - }; - - var serializeHost$1 = function (host) { - var result, index, compress, ignore0; - // ipv4 - if (typeof host == 'number') { - result = []; - for (index = 0; index < 4; index++) { - result.unshift(host % 256); - host = floor$8(host / 256); - } return result.join('.'); - // ipv6 - } else if (typeof host == 'object') { - result = ''; - compress = findLongestZeroSequence$1(host); - for (index = 0; index < 8; index++) { - if (ignore0 && host[index] === 0) continue; - if (ignore0) ignore0 = false; - if (compress === index) { - result += index ? ':' : '::'; - ignore0 = true; - } else { - result += host[index].toString(16); - if (index < 7) result += ':'; - } - } - return '[' + result + ']'; - } return host; - }; - - var C0ControlPercentEncodeSet$1 = {}; - var fragmentPercentEncodeSet$1 = objectAssign$1({}, C0ControlPercentEncodeSet$1, { - ' ': 1, '"': 1, '<': 1, '>': 1, '`': 1 - }); - var pathPercentEncodeSet$1 = objectAssign$1({}, fragmentPercentEncodeSet$1, { - '#': 1, '?': 1, '{': 1, '}': 1 - }); - var userinfoPercentEncodeSet$1 = objectAssign$1({}, pathPercentEncodeSet$1, { - '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\': 1, ']': 1, '^': 1, '|': 1 - }); - - var percentEncode$1 = function (char, set) { - var code = codeAt$1(char, 0); - return code > 0x20 && code < 0x7F && !has$2(set, char) ? char : encodeURIComponent(char); - }; - - var specialSchemes$1 = { - ftp: 21, - file: null, - http: 80, - https: 443, - ws: 80, - wss: 443 - }; - - var isSpecial$1 = function (url) { - return has$2(specialSchemes$1, url.scheme); - }; - - var includesCredentials$1 = function (url) { - return url.username != '' || url.password != ''; - }; - - var cannotHaveUsernamePasswordPort$1 = function (url) { - return !url.host || url.cannotBeABaseURL || url.scheme == 'file'; - }; - - var isWindowsDriveLetter$1 = function (string, normalized) { - var second; - return string.length == 2 && ALPHA$1.test(string.charAt(0)) - && ((second = string.charAt(1)) == ':' || (!normalized && second == '|')); - }; - - var startsWithWindowsDriveLetter$1 = function (string) { - var third; - return string.length > 1 && isWindowsDriveLetter$1(string.slice(0, 2)) && ( - string.length == 2 || - ((third = string.charAt(2)) === '/' || third === '\\' || third === '?' || third === '#') - ); - }; - - var shortenURLsPath$1 = function (url) { - var path = url.path; - var pathSize = path.length; - if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter$1(path[0], true))) { - path.pop(); - } - }; - - var isSingleDot$1 = function (segment) { - return segment === '.' || segment.toLowerCase() === '%2e'; - }; - - var isDoubleDot$1 = function (segment) { - segment = segment.toLowerCase(); - return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e'; - }; - - // States: - var SCHEME_START$1 = {}; - var SCHEME$1 = {}; - var NO_SCHEME$1 = {}; - var SPECIAL_RELATIVE_OR_AUTHORITY$1 = {}; - var PATH_OR_AUTHORITY$1 = {}; - var RELATIVE$1 = {}; - var RELATIVE_SLASH$1 = {}; - var SPECIAL_AUTHORITY_SLASHES$1 = {}; - var SPECIAL_AUTHORITY_IGNORE_SLASHES$1 = {}; - var AUTHORITY$1 = {}; - var HOST$1 = {}; - var HOSTNAME$1 = {}; - var PORT$1 = {}; - var FILE$1 = {}; - var FILE_SLASH$1 = {}; - var FILE_HOST$1 = {}; - var PATH_START$1 = {}; - var PATH$1 = {}; - var CANNOT_BE_A_BASE_URL_PATH$1 = {}; - var QUERY$1 = {}; - var FRAGMENT$1 = {}; - - // eslint-disable-next-line max-statements - var parseURL$1 = function (url, input, stateOverride, base) { - var state = stateOverride || SCHEME_START$1; - var pointer = 0; - var buffer = ''; - var seenAt = false; - var seenBracket = false; - var seenPasswordToken = false; - var codePoints, char, bufferCodePoints, failure; - - if (!stateOverride) { - url.scheme = ''; - url.username = ''; - url.password = ''; - url.host = null; - url.port = null; - url.path = []; - url.query = null; - url.fragment = null; - url.cannotBeABaseURL = false; - input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE$1, ''); - } - - input = input.replace(TAB_AND_NEW_LINE$1, ''); - - codePoints = arrayFrom$1(input); - - while (pointer <= codePoints.length) { - char = codePoints[pointer]; - switch (state) { - case SCHEME_START$1: - if (char && ALPHA$1.test(char)) { - buffer += char.toLowerCase(); - state = SCHEME$1; - } else if (!stateOverride) { - state = NO_SCHEME$1; - continue; - } else return INVALID_SCHEME$1; - break; - - case SCHEME$1: - if (char && (ALPHANUMERIC$1.test(char) || char == '+' || char == '-' || char == '.')) { - buffer += char.toLowerCase(); - } else if (char == ':') { - if (stateOverride && ( - (isSpecial$1(url) != has$2(specialSchemes$1, buffer)) || - (buffer == 'file' && (includesCredentials$1(url) || url.port !== null)) || - (url.scheme == 'file' && !url.host) - )) return; - url.scheme = buffer; - if (stateOverride) { - if (isSpecial$1(url) && specialSchemes$1[url.scheme] == url.port) url.port = null; - return; - } - buffer = ''; - if (url.scheme == 'file') { - state = FILE$1; - } else if (isSpecial$1(url) && base && base.scheme == url.scheme) { - state = SPECIAL_RELATIVE_OR_AUTHORITY$1; - } else if (isSpecial$1(url)) { - state = SPECIAL_AUTHORITY_SLASHES$1; - } else if (codePoints[pointer + 1] == '/') { - state = PATH_OR_AUTHORITY$1; - pointer++; - } else { - url.cannotBeABaseURL = true; - url.path.push(''); - state = CANNOT_BE_A_BASE_URL_PATH$1; - } - } else if (!stateOverride) { - buffer = ''; - state = NO_SCHEME$1; - pointer = 0; - continue; - } else return INVALID_SCHEME$1; - break; - - case NO_SCHEME$1: - if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME$1; - if (base.cannotBeABaseURL && char == '#') { - url.scheme = base.scheme; - url.path = base.path.slice(); - url.query = base.query; - url.fragment = ''; - url.cannotBeABaseURL = true; - state = FRAGMENT$1; - break; - } - state = base.scheme == 'file' ? FILE$1 : RELATIVE$1; - continue; - - case SPECIAL_RELATIVE_OR_AUTHORITY$1: - if (char == '/' && codePoints[pointer + 1] == '/') { - state = SPECIAL_AUTHORITY_IGNORE_SLASHES$1; - pointer++; - } else { - state = RELATIVE$1; - continue; - } break; - - case PATH_OR_AUTHORITY$1: - if (char == '/') { - state = AUTHORITY$1; - break; - } else { - state = PATH$1; - continue; - } - - case RELATIVE$1: - url.scheme = base.scheme; - if (char == EOF$1) { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - url.path = base.path.slice(); - url.query = base.query; - } else if (char == '/' || (char == '\\' && isSpecial$1(url))) { - state = RELATIVE_SLASH$1; - } else if (char == '?') { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - url.path = base.path.slice(); - url.query = ''; - state = QUERY$1; - } else if (char == '#') { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - url.path = base.path.slice(); - url.query = base.query; - url.fragment = ''; - state = FRAGMENT$1; - } else { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - url.path = base.path.slice(); - url.path.pop(); - state = PATH$1; - continue; - } break; - - case RELATIVE_SLASH$1: - if (isSpecial$1(url) && (char == '/' || char == '\\')) { - state = SPECIAL_AUTHORITY_IGNORE_SLASHES$1; - } else if (char == '/') { - state = AUTHORITY$1; - } else { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - state = PATH$1; - continue; - } break; - - case SPECIAL_AUTHORITY_SLASHES$1: - state = SPECIAL_AUTHORITY_IGNORE_SLASHES$1; - if (char != '/' || buffer.charAt(pointer + 1) != '/') continue; - pointer++; - break; - - case SPECIAL_AUTHORITY_IGNORE_SLASHES$1: - if (char != '/' && char != '\\') { - state = AUTHORITY$1; - continue; - } break; - - case AUTHORITY$1: - if (char == '@') { - if (seenAt) buffer = '%40' + buffer; - seenAt = true; - bufferCodePoints = arrayFrom$1(buffer); - for (var i = 0; i < bufferCodePoints.length; i++) { - var codePoint = bufferCodePoints[i]; - if (codePoint == ':' && !seenPasswordToken) { - seenPasswordToken = true; - continue; - } - var encodedCodePoints = percentEncode$1(codePoint, userinfoPercentEncodeSet$1); - if (seenPasswordToken) url.password += encodedCodePoints; - else url.username += encodedCodePoints; - } - buffer = ''; - } else if ( - char == EOF$1 || char == '/' || char == '?' || char == '#' || - (char == '\\' && isSpecial$1(url)) - ) { - if (seenAt && buffer == '') return INVALID_AUTHORITY$1; - pointer -= arrayFrom$1(buffer).length + 1; - buffer = ''; - state = HOST$1; - } else buffer += char; - break; - - case HOST$1: - case HOSTNAME$1: - if (stateOverride && url.scheme == 'file') { - state = FILE_HOST$1; - continue; - } else if (char == ':' && !seenBracket) { - if (buffer == '') return INVALID_HOST$1; - failure = parseHost$1(url, buffer); - if (failure) return failure; - buffer = ''; - state = PORT$1; - if (stateOverride == HOSTNAME$1) return; - } else if ( - char == EOF$1 || char == '/' || char == '?' || char == '#' || - (char == '\\' && isSpecial$1(url)) - ) { - if (isSpecial$1(url) && buffer == '') return INVALID_HOST$1; - if (stateOverride && buffer == '' && (includesCredentials$1(url) || url.port !== null)) return; - failure = parseHost$1(url, buffer); - if (failure) return failure; - buffer = ''; - state = PATH_START$1; - if (stateOverride) return; - continue; - } else { - if (char == '[') seenBracket = true; - else if (char == ']') seenBracket = false; - buffer += char; - } break; - - case PORT$1: - if (DIGIT$1.test(char)) { - buffer += char; - } else if ( - char == EOF$1 || char == '/' || char == '?' || char == '#' || - (char == '\\' && isSpecial$1(url)) || - stateOverride - ) { - if (buffer != '') { - var port = parseInt(buffer, 10); - if (port > 0xFFFF) return INVALID_PORT$1; - url.port = (isSpecial$1(url) && port === specialSchemes$1[url.scheme]) ? null : port; - buffer = ''; - } - if (stateOverride) return; - state = PATH_START$1; - continue; - } else return INVALID_PORT$1; - break; - - case FILE$1: - url.scheme = 'file'; - if (char == '/' || char == '\\') state = FILE_SLASH$1; - else if (base && base.scheme == 'file') { - if (char == EOF$1) { - url.host = base.host; - url.path = base.path.slice(); - url.query = base.query; - } else if (char == '?') { - url.host = base.host; - url.path = base.path.slice(); - url.query = ''; - state = QUERY$1; - } else if (char == '#') { - url.host = base.host; - url.path = base.path.slice(); - url.query = base.query; - url.fragment = ''; - state = FRAGMENT$1; - } else { - if (!startsWithWindowsDriveLetter$1(codePoints.slice(pointer).join(''))) { - url.host = base.host; - url.path = base.path.slice(); - shortenURLsPath$1(url); - } - state = PATH$1; - continue; - } - } else { - state = PATH$1; - continue; - } break; - - case FILE_SLASH$1: - if (char == '/' || char == '\\') { - state = FILE_HOST$1; - break; - } - if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter$1(codePoints.slice(pointer).join(''))) { - if (isWindowsDriveLetter$1(base.path[0], true)) url.path.push(base.path[0]); - else url.host = base.host; - } - state = PATH$1; - continue; - - case FILE_HOST$1: - if (char == EOF$1 || char == '/' || char == '\\' || char == '?' || char == '#') { - if (!stateOverride && isWindowsDriveLetter$1(buffer)) { - state = PATH$1; - } else if (buffer == '') { - url.host = ''; - if (stateOverride) return; - state = PATH_START$1; - } else { - failure = parseHost$1(url, buffer); - if (failure) return failure; - if (url.host == 'localhost') url.host = ''; - if (stateOverride) return; - buffer = ''; - state = PATH_START$1; - } continue; - } else buffer += char; - break; - - case PATH_START$1: - if (isSpecial$1(url)) { - state = PATH$1; - if (char != '/' && char != '\\') continue; - } else if (!stateOverride && char == '?') { - url.query = ''; - state = QUERY$1; - } else if (!stateOverride && char == '#') { - url.fragment = ''; - state = FRAGMENT$1; - } else if (char != EOF$1) { - state = PATH$1; - if (char != '/') continue; - } break; - - case PATH$1: - if ( - char == EOF$1 || char == '/' || - (char == '\\' && isSpecial$1(url)) || - (!stateOverride && (char == '?' || char == '#')) - ) { - if (isDoubleDot$1(buffer)) { - shortenURLsPath$1(url); - if (char != '/' && !(char == '\\' && isSpecial$1(url))) { - url.path.push(''); - } - } else if (isSingleDot$1(buffer)) { - if (char != '/' && !(char == '\\' && isSpecial$1(url))) { - url.path.push(''); - } - } else { - if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter$1(buffer)) { - if (url.host) url.host = ''; - buffer = buffer.charAt(0) + ':'; // normalize windows drive letter - } - url.path.push(buffer); - } - buffer = ''; - if (url.scheme == 'file' && (char == EOF$1 || char == '?' || char == '#')) { - while (url.path.length > 1 && url.path[0] === '') { - url.path.shift(); - } - } - if (char == '?') { - url.query = ''; - state = QUERY$1; - } else if (char == '#') { - url.fragment = ''; - state = FRAGMENT$1; - } - } else { - buffer += percentEncode$1(char, pathPercentEncodeSet$1); - } break; - - case CANNOT_BE_A_BASE_URL_PATH$1: - if (char == '?') { - url.query = ''; - state = QUERY$1; - } else if (char == '#') { - url.fragment = ''; - state = FRAGMENT$1; - } else if (char != EOF$1) { - url.path[0] += percentEncode$1(char, C0ControlPercentEncodeSet$1); - } break; - - case QUERY$1: - if (!stateOverride && char == '#') { - url.fragment = ''; - state = FRAGMENT$1; - } else if (char != EOF$1) { - if (char == "'" && isSpecial$1(url)) url.query += '%27'; - else if (char == '#') url.query += '%23'; - else url.query += percentEncode$1(char, C0ControlPercentEncodeSet$1); - } break; - - case FRAGMENT$1: - if (char != EOF$1) url.fragment += percentEncode$1(char, fragmentPercentEncodeSet$1); - break; - } - - pointer++; - } - }; - - // `URL` constructor - // https://url.spec.whatwg.org/#url-class - var URLConstructor$1 = function URL(url /* , base */) { - var that = anInstance$1(this, URLConstructor$1, 'URL'); - var base = arguments.length > 1 ? arguments[1] : undefined; - var urlString = String(url); - var state = setInternalState$d(that, { type: 'URL' }); - var baseState, failure; - if (base !== undefined) { - if (base instanceof URLConstructor$1) baseState = getInternalURLState$1(base); - else { - failure = parseURL$1(baseState = {}, String(base)); - if (failure) throw TypeError(failure); - } - } - failure = parseURL$1(state, urlString, null, baseState); - if (failure) throw TypeError(failure); - var searchParams = state.searchParams = new URLSearchParams$2(); - var searchParamsState = getInternalSearchParamsState$1(searchParams); - searchParamsState.updateSearchParams(state.query); - searchParamsState.updateURL = function () { - state.query = String(searchParams) || null; - }; - if (!descriptors$1) { - that.href = serializeURL$1.call(that); - that.origin = getOrigin$1.call(that); - that.protocol = getProtocol$1.call(that); - that.username = getUsername$1.call(that); - that.password = getPassword$1.call(that); - that.host = getHost$1.call(that); - that.hostname = getHostname$1.call(that); - that.port = getPort$1.call(that); - that.pathname = getPathname$1.call(that); - that.search = getSearch$1.call(that); - that.searchParams = getSearchParams$1.call(that); - that.hash = getHash$1.call(that); - } - }; - - var URLPrototype$1 = URLConstructor$1.prototype; - - var serializeURL$1 = function () { - var url = getInternalURLState$1(this); - var scheme = url.scheme; - var username = url.username; - var password = url.password; - var host = url.host; - var port = url.port; - var path = url.path; - var query = url.query; - var fragment = url.fragment; - var output = scheme + ':'; - if (host !== null) { - output += '//'; - if (includesCredentials$1(url)) { - output += username + (password ? ':' + password : '') + '@'; - } - output += serializeHost$1(host); - if (port !== null) output += ':' + port; - } else if (scheme == 'file') output += '//'; - output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : ''; - if (query !== null) output += '?' + query; - if (fragment !== null) output += '#' + fragment; - return output; - }; - - var getOrigin$1 = function () { - var url = getInternalURLState$1(this); - var scheme = url.scheme; - var port = url.port; - if (scheme == 'blob') try { - return new URL(scheme.path[0]).origin; - } catch (error) { - return 'null'; - } - if (scheme == 'file' || !isSpecial$1(url)) return 'null'; - return scheme + '://' + serializeHost$1(url.host) + (port !== null ? ':' + port : ''); - }; - - var getProtocol$1 = function () { - return getInternalURLState$1(this).scheme + ':'; - }; - - var getUsername$1 = function () { - return getInternalURLState$1(this).username; - }; - - var getPassword$1 = function () { - return getInternalURLState$1(this).password; - }; - - var getHost$1 = function () { - var url = getInternalURLState$1(this); - var host = url.host; - var port = url.port; - return host === null ? '' - : port === null ? serializeHost$1(host) - : serializeHost$1(host) + ':' + port; - }; - - var getHostname$1 = function () { - var host = getInternalURLState$1(this).host; - return host === null ? '' : serializeHost$1(host); - }; - - var getPort$1 = function () { - var port = getInternalURLState$1(this).port; - return port === null ? '' : String(port); - }; - - var getPathname$1 = function () { - var url = getInternalURLState$1(this); - var path = url.path; - return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : ''; - }; - - var getSearch$1 = function () { - var query = getInternalURLState$1(this).query; - return query ? '?' + query : ''; - }; - - var getSearchParams$1 = function () { - return getInternalURLState$1(this).searchParams; - }; - - var getHash$1 = function () { - var fragment = getInternalURLState$1(this).fragment; - return fragment ? '#' + fragment : ''; - }; - - var accessorDescriptor$1 = function (getter, setter) { - return { get: getter, set: setter, configurable: true, enumerable: true }; - }; - - if (descriptors$1) { - objectDefineProperties$1(URLPrototype$1, { - // `URL.prototype.href` accessors pair - // https://url.spec.whatwg.org/#dom-url-href - href: accessorDescriptor$1(serializeURL$1, function (href) { - var url = getInternalURLState$1(this); - var urlString = String(href); - var failure = parseURL$1(url, urlString); - if (failure) throw TypeError(failure); - getInternalSearchParamsState$1(url.searchParams).updateSearchParams(url.query); - }), - // `URL.prototype.origin` getter - // https://url.spec.whatwg.org/#dom-url-origin - origin: accessorDescriptor$1(getOrigin$1), - // `URL.prototype.protocol` accessors pair - // https://url.spec.whatwg.org/#dom-url-protocol - protocol: accessorDescriptor$1(getProtocol$1, function (protocol) { - var url = getInternalURLState$1(this); - parseURL$1(url, String(protocol) + ':', SCHEME_START$1); - }), - // `URL.prototype.username` accessors pair - // https://url.spec.whatwg.org/#dom-url-username - username: accessorDescriptor$1(getUsername$1, function (username) { - var url = getInternalURLState$1(this); - var codePoints = arrayFrom$1(String(username)); - if (cannotHaveUsernamePasswordPort$1(url)) return; - url.username = ''; - for (var i = 0; i < codePoints.length; i++) { - url.username += percentEncode$1(codePoints[i], userinfoPercentEncodeSet$1); - } - }), - // `URL.prototype.password` accessors pair - // https://url.spec.whatwg.org/#dom-url-password - password: accessorDescriptor$1(getPassword$1, function (password) { - var url = getInternalURLState$1(this); - var codePoints = arrayFrom$1(String(password)); - if (cannotHaveUsernamePasswordPort$1(url)) return; - url.password = ''; - for (var i = 0; i < codePoints.length; i++) { - url.password += percentEncode$1(codePoints[i], userinfoPercentEncodeSet$1); - } - }), - // `URL.prototype.host` accessors pair - // https://url.spec.whatwg.org/#dom-url-host - host: accessorDescriptor$1(getHost$1, function (host) { - var url = getInternalURLState$1(this); - if (url.cannotBeABaseURL) return; - parseURL$1(url, String(host), HOST$1); - }), - // `URL.prototype.hostname` accessors pair - // https://url.spec.whatwg.org/#dom-url-hostname - hostname: accessorDescriptor$1(getHostname$1, function (hostname) { - var url = getInternalURLState$1(this); - if (url.cannotBeABaseURL) return; - parseURL$1(url, String(hostname), HOSTNAME$1); - }), - // `URL.prototype.port` accessors pair - // https://url.spec.whatwg.org/#dom-url-port - port: accessorDescriptor$1(getPort$1, function (port) { - var url = getInternalURLState$1(this); - if (cannotHaveUsernamePasswordPort$1(url)) return; - port = String(port); - if (port == '') url.port = null; - else parseURL$1(url, port, PORT$1); - }), - // `URL.prototype.pathname` accessors pair - // https://url.spec.whatwg.org/#dom-url-pathname - pathname: accessorDescriptor$1(getPathname$1, function (pathname) { - var url = getInternalURLState$1(this); - if (url.cannotBeABaseURL) return; - url.path = []; - parseURL$1(url, pathname + '', PATH_START$1); - }), - // `URL.prototype.search` accessors pair - // https://url.spec.whatwg.org/#dom-url-search - search: accessorDescriptor$1(getSearch$1, function (search) { - var url = getInternalURLState$1(this); - search = String(search); - if (search == '') { - url.query = null; - } else { - if ('?' == search.charAt(0)) search = search.slice(1); - url.query = ''; - parseURL$1(url, search, QUERY$1); - } - getInternalSearchParamsState$1(url.searchParams).updateSearchParams(url.query); - }), - // `URL.prototype.searchParams` getter - // https://url.spec.whatwg.org/#dom-url-searchparams - searchParams: accessorDescriptor$1(getSearchParams$1), - // `URL.prototype.hash` accessors pair - // https://url.spec.whatwg.org/#dom-url-hash - hash: accessorDescriptor$1(getHash$1, function (hash) { - var url = getInternalURLState$1(this); - hash = String(hash); - if (hash == '') { - url.fragment = null; - return; - } - if ('#' == hash.charAt(0)) hash = hash.slice(1); - url.fragment = ''; - parseURL$1(url, hash, FRAGMENT$1); - }) - }); - } - - // `URL.prototype.toJSON` method - // https://url.spec.whatwg.org/#dom-url-tojson - redefine$1(URLPrototype$1, 'toJSON', function toJSON() { - return serializeURL$1.call(this); - }, { enumerable: true }); - - // `URL.prototype.toString` method - // https://url.spec.whatwg.org/#URL-stringification-behavior - redefine$1(URLPrototype$1, 'toString', function toString() { - return serializeURL$1.call(this); - }, { enumerable: true }); - - if (NativeURL$1) { - var nativeCreateObjectURL$1 = NativeURL$1.createObjectURL; - var nativeRevokeObjectURL$1 = NativeURL$1.revokeObjectURL; - // `URL.createObjectURL` method - // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL - // eslint-disable-next-line no-unused-vars - if (nativeCreateObjectURL$1) redefine$1(URLConstructor$1, 'createObjectURL', function createObjectURL(blob) { - return nativeCreateObjectURL$1.apply(NativeURL$1, arguments); - }); - // `URL.revokeObjectURL` method - // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL - // eslint-disable-next-line no-unused-vars - if (nativeRevokeObjectURL$1) redefine$1(URLConstructor$1, 'revokeObjectURL', function revokeObjectURL(url) { - return nativeRevokeObjectURL$1.apply(NativeURL$1, arguments); - }); - } - - setToStringTag$1(URLConstructor$1, 'URL'); - - _export$1({ global: true, forced: !nativeUrl$1, sham: !descriptors$1 }, { - URL: URLConstructor$1 - }); - - var $some$2 = arrayIteration$1.some; - - - - var STRICT_METHOD$9 = arrayMethodIsStrict$1('some'); - var USES_TO_LENGTH$h = arrayMethodUsesToLength$1('some'); - - // `Array.prototype.some` method - // https://tc39.github.io/ecma262/#sec-array.prototype.some - _export$1({ target: 'Array', proto: true, forced: !STRICT_METHOD$9 || !USES_TO_LENGTH$h }, { - some: function some(callbackfn /* , thisArg */) { - return $some$2(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } - }); - - // `thisNumberValue` abstract operation - // https://tc39.github.io/ecma262/#sec-thisnumbervalue - var thisNumberValue = function (value) { - if (typeof value != 'number' && classofRaw$1(value) != 'Number') { - throw TypeError('Incorrect invocation'); - } - return +value; - }; - - // `String.prototype.repeat` method implementation - // https://tc39.github.io/ecma262/#sec-string.prototype.repeat - var stringRepeat = ''.repeat || function repeat(count) { - var str = String(requireObjectCoercible$1(this)); - var result = ''; - var n = toInteger$1(count); - if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions'); - for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str; - return result; - }; - - var nativeToFixed = 1.0.toFixed; - var floor$9 = Math.floor; - - var pow$3 = function (x, n, acc) { - return n === 0 ? acc : n % 2 === 1 ? pow$3(x, n - 1, acc * x) : pow$3(x * x, n / 2, acc); - }; - - var log$1 = function (x) { - var n = 0; - var x2 = x; - while (x2 >= 4096) { - n += 12; - x2 /= 4096; - } - while (x2 >= 2) { - n += 1; - x2 /= 2; - } return n; - }; - - var FORCED$9 = nativeToFixed && ( - 0.00008.toFixed(3) !== '0.000' || - 0.9.toFixed(0) !== '1' || - 1.255.toFixed(2) !== '1.25' || - 1000000000000000128.0.toFixed(0) !== '1000000000000000128' - ) || !fails$1(function () { - // V8 ~ Android 4.3- - nativeToFixed.call({}); - }); - - // `Number.prototype.toFixed` method - // https://tc39.github.io/ecma262/#sec-number.prototype.tofixed - _export$1({ target: 'Number', proto: true, forced: FORCED$9 }, { - // eslint-disable-next-line max-statements - toFixed: function toFixed(fractionDigits) { - var number = thisNumberValue(this); - var fractDigits = toInteger$1(fractionDigits); - var data = [0, 0, 0, 0, 0, 0]; - var sign = ''; - var result = '0'; - var e, z, j, k; - - var multiply = function (n, c) { - var index = -1; - var c2 = c; - while (++index < 6) { - c2 += n * data[index]; - data[index] = c2 % 1e7; - c2 = floor$9(c2 / 1e7); - } - }; - - var divide = function (n) { - var index = 6; - var c = 0; - while (--index >= 0) { - c += data[index]; - data[index] = floor$9(c / n); - c = (c % n) * 1e7; - } - }; - - var dataToString = function () { - var index = 6; - var s = ''; - while (--index >= 0) { - if (s !== '' || index === 0 || data[index] !== 0) { - var t = String(data[index]); - s = s === '' ? t : s + stringRepeat.call('0', 7 - t.length) + t; - } - } return s; - }; - - if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits'); - // eslint-disable-next-line no-self-compare - if (number != number) return 'NaN'; - if (number <= -1e21 || number >= 1e21) return String(number); - if (number < 0) { - sign = '-'; - number = -number; - } - if (number > 1e-21) { - e = log$1(number * pow$3(2, 69, 1)) - 69; - z = e < 0 ? number * pow$3(2, -e, 1) : number / pow$3(2, e, 1); - z *= 0x10000000000000; - e = 52 - e; - if (e > 0) { - multiply(0, z); - j = fractDigits; - while (j >= 7) { - multiply(1e7, 0); - j -= 7; - } - multiply(pow$3(10, j, 1), 0); - j = e - 1; - while (j >= 23) { - divide(1 << 23); - j -= 23; - } - divide(1 << j); - multiply(1, 1); - divide(2); - result = dataToString(); - } else { - multiply(0, z); - multiply(1 << -e, 0); - result = dataToString() + stringRepeat.call('0', fractDigits); - } - } - if (fractDigits > 0) { - k = result.length; - result = sign + (k <= fractDigits - ? '0.' + stringRepeat.call('0', fractDigits - k) + result - : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits)); - } else { - result = sign + result; - } return result; - } - }); - - var $entries$1 = objectToArray$1.entries; - - // `Object.entries` method - // https://tc39.github.io/ecma262/#sec-object.entries - _export$1({ target: 'Object', stat: true }, { - entries: function entries(O) { - return $entries$1(O); - } - }); - - var max$5 = Math.max; - var min$a = Math.min; - var floor$a = Math.floor; - var SUBSTITUTION_SYMBOLS$1 = /\$([$&'`]|\d\d?|<[^>]*>)/g; - var SUBSTITUTION_SYMBOLS_NO_NAMED$1 = /\$([$&'`]|\d\d?)/g; - - var maybeToString$1 = function (it) { - return it === undefined ? it : String(it); - }; - - // @@replace logic - fixRegexpWellKnownSymbolLogic$1('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) { - var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE; - var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0; - var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; - - return [ - // `String.prototype.replace` method - // https://tc39.github.io/ecma262/#sec-string.prototype.replace - function replace(searchValue, replaceValue) { - var O = requireObjectCoercible$1(this); - var replacer = searchValue == undefined ? undefined : searchValue[REPLACE]; - return replacer !== undefined - ? replacer.call(searchValue, O, replaceValue) - : nativeReplace.call(String(O), searchValue, replaceValue); - }, - // `RegExp.prototype[@@replace]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace - function (regexp, replaceValue) { - if ( - (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) || - (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1) - ) { - var res = maybeCallNative(nativeReplace, regexp, this, replaceValue); - if (res.done) return res.value; - } - - var rx = anObject$1(regexp); - var S = String(this); - - var functionalReplace = typeof replaceValue === 'function'; - if (!functionalReplace) replaceValue = String(replaceValue); - - var global = rx.global; - if (global) { - var fullUnicode = rx.unicode; - rx.lastIndex = 0; - } - var results = []; - while (true) { - var result = regexpExecAbstract$1(rx, S); - if (result === null) break; - - results.push(result); - if (!global) break; - - var matchStr = String(result[0]); - if (matchStr === '') rx.lastIndex = advanceStringIndex$1(S, toLength$1(rx.lastIndex), fullUnicode); - } - - var accumulatedResult = ''; - var nextSourcePosition = 0; - for (var i = 0; i < results.length; i++) { - result = results[i]; - - var matched = String(result[0]); - var position = max$5(min$a(toInteger$1(result.index), S.length), 0); - var captures = []; - // NOTE: This is equivalent to - // captures = result.slice(1).map(maybeToString) - // but for some reason `nativeSlice.call(result, 1, result.length)` (called in - // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and - // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. - for (var j = 1; j < result.length; j++) captures.push(maybeToString$1(result[j])); - var namedCaptures = result.groups; - if (functionalReplace) { - var replacerArgs = [matched].concat(captures, position, S); - if (namedCaptures !== undefined) replacerArgs.push(namedCaptures); - var replacement = String(replaceValue.apply(undefined, replacerArgs)); - } else { - replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); - } - if (position >= nextSourcePosition) { - accumulatedResult += S.slice(nextSourcePosition, position) + replacement; - nextSourcePosition = position + matched.length; - } - } - return accumulatedResult + S.slice(nextSourcePosition); - } - ]; - - // https://tc39.github.io/ecma262/#sec-getsubstitution - function getSubstitution(matched, str, position, captures, namedCaptures, replacement) { - var tailPos = position + matched.length; - var m = captures.length; - var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED$1; - if (namedCaptures !== undefined) { - namedCaptures = toObject$1(namedCaptures); - symbols = SUBSTITUTION_SYMBOLS$1; - } - return nativeReplace.call(replacement, symbols, function (match, ch) { - var capture; - switch (ch.charAt(0)) { - case '$': return '$'; - case '&': return matched; - case '`': return str.slice(0, position); - case "'": return str.slice(tailPos); - case '<': - capture = namedCaptures[ch.slice(1, -1)]; - break; - default: // \d\d? - var n = +ch; - if (n === 0) return match; - if (n > m) { - var f = floor$a(n / 10); - if (f === 0) return match; - if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1); - return match; - } - capture = captures[n - 1]; - } - return capture === undefined ? '' : capture; - }); - } - }); - - var nativeGetOwnPropertyNames$2 = objectGetOwnPropertyNames$1.f; - - var toString$3 = {}.toString; - - var windowNames$1 = typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - - var getWindowNames$1 = function (it) { - try { - return nativeGetOwnPropertyNames$2(it); - } catch (error) { - return windowNames$1.slice(); - } - }; - - // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window - var f$d = function getOwnPropertyNames(it) { - return windowNames$1 && toString$3.call(it) == '[object Window]' - ? getWindowNames$1(it) - : nativeGetOwnPropertyNames$2(toIndexedObject$1(it)); - }; - - var objectGetOwnPropertyNamesExternal$1 = { - f: f$d - }; - - var f$e = wellKnownSymbol$1; - - var wellKnownSymbolWrapped$1 = { - f: f$e - }; - - var defineProperty$e = objectDefineProperty$1.f; - - var defineWellKnownSymbol$1 = function (NAME) { - var Symbol = path$1.Symbol || (path$1.Symbol = {}); - if (!has$2(Symbol, NAME)) defineProperty$e(Symbol, NAME, { - value: wellKnownSymbolWrapped$1.f(NAME) - }); - }; - - var $forEach$4 = arrayIteration$1.forEach; - - var HIDDEN$1 = sharedKey$1('hidden'); - var SYMBOL$1 = 'Symbol'; - var PROTOTYPE$4 = 'prototype'; - var TO_PRIMITIVE$1 = wellKnownSymbol$1('toPrimitive'); - var setInternalState$e = internalState$1.set; - var getInternalState$7 = internalState$1.getterFor(SYMBOL$1); - var ObjectPrototype$5 = Object[PROTOTYPE$4]; - var $Symbol$1 = global_1$1.Symbol; - var $stringify$1 = getBuiltIn$1('JSON', 'stringify'); - var nativeGetOwnPropertyDescriptor$4 = objectGetOwnPropertyDescriptor$1.f; - var nativeDefineProperty$3 = objectDefineProperty$1.f; - var nativeGetOwnPropertyNames$3 = objectGetOwnPropertyNamesExternal$1.f; - var nativePropertyIsEnumerable$3 = objectPropertyIsEnumerable$1.f; - var AllSymbols$1 = shared$1('symbols'); - var ObjectPrototypeSymbols$1 = shared$1('op-symbols'); - var StringToSymbolRegistry$1 = shared$1('string-to-symbol-registry'); - var SymbolToStringRegistry$1 = shared$1('symbol-to-string-registry'); - var WellKnownSymbolsStore$3 = shared$1('wks'); - var QObject$1 = global_1$1.QObject; - // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 - var USE_SETTER$1 = !QObject$1 || !QObject$1[PROTOTYPE$4] || !QObject$1[PROTOTYPE$4].findChild; - - // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 - var setSymbolDescriptor$1 = descriptors$1 && fails$1(function () { - return objectCreate$1(nativeDefineProperty$3({}, 'a', { - get: function () { return nativeDefineProperty$3(this, 'a', { value: 7 }).a; } - })).a != 7; - }) ? function (O, P, Attributes) { - var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor$4(ObjectPrototype$5, P); - if (ObjectPrototypeDescriptor) delete ObjectPrototype$5[P]; - nativeDefineProperty$3(O, P, Attributes); - if (ObjectPrototypeDescriptor && O !== ObjectPrototype$5) { - nativeDefineProperty$3(ObjectPrototype$5, P, ObjectPrototypeDescriptor); - } - } : nativeDefineProperty$3; - - var wrap$3 = function (tag, description) { - var symbol = AllSymbols$1[tag] = objectCreate$1($Symbol$1[PROTOTYPE$4]); - setInternalState$e(symbol, { - type: SYMBOL$1, - tag: tag, - description: description - }); - if (!descriptors$1) symbol.description = description; - return symbol; - }; - - var isSymbol$1 = useSymbolAsUid$1 ? function (it) { - return typeof it == 'symbol'; - } : function (it) { - return Object(it) instanceof $Symbol$1; - }; - - var $defineProperty$1 = function defineProperty(O, P, Attributes) { - if (O === ObjectPrototype$5) $defineProperty$1(ObjectPrototypeSymbols$1, P, Attributes); - anObject$1(O); - var key = toPrimitive$1(P, true); - anObject$1(Attributes); - if (has$2(AllSymbols$1, key)) { - if (!Attributes.enumerable) { - if (!has$2(O, HIDDEN$1)) nativeDefineProperty$3(O, HIDDEN$1, createPropertyDescriptor$1(1, {})); - O[HIDDEN$1][key] = true; - } else { - if (has$2(O, HIDDEN$1) && O[HIDDEN$1][key]) O[HIDDEN$1][key] = false; - Attributes = objectCreate$1(Attributes, { enumerable: createPropertyDescriptor$1(0, false) }); - } return setSymbolDescriptor$1(O, key, Attributes); - } return nativeDefineProperty$3(O, key, Attributes); - }; - - var $defineProperties$1 = function defineProperties(O, Properties) { - anObject$1(O); - var properties = toIndexedObject$1(Properties); - var keys = objectKeys$1(properties).concat($getOwnPropertySymbols$1(properties)); - $forEach$4(keys, function (key) { - if (!descriptors$1 || $propertyIsEnumerable$1.call(properties, key)) $defineProperty$1(O, key, properties[key]); - }); - return O; - }; - - var $create$1 = function create(O, Properties) { - return Properties === undefined ? objectCreate$1(O) : $defineProperties$1(objectCreate$1(O), Properties); - }; - - var $propertyIsEnumerable$1 = function propertyIsEnumerable(V) { - var P = toPrimitive$1(V, true); - var enumerable = nativePropertyIsEnumerable$3.call(this, P); - if (this === ObjectPrototype$5 && has$2(AllSymbols$1, P) && !has$2(ObjectPrototypeSymbols$1, P)) return false; - return enumerable || !has$2(this, P) || !has$2(AllSymbols$1, P) || has$2(this, HIDDEN$1) && this[HIDDEN$1][P] ? enumerable : true; - }; - - var $getOwnPropertyDescriptor$1 = function getOwnPropertyDescriptor(O, P) { - var it = toIndexedObject$1(O); - var key = toPrimitive$1(P, true); - if (it === ObjectPrototype$5 && has$2(AllSymbols$1, key) && !has$2(ObjectPrototypeSymbols$1, key)) return; - var descriptor = nativeGetOwnPropertyDescriptor$4(it, key); - if (descriptor && has$2(AllSymbols$1, key) && !(has$2(it, HIDDEN$1) && it[HIDDEN$1][key])) { - descriptor.enumerable = true; - } - return descriptor; - }; - - var $getOwnPropertyNames$1 = function getOwnPropertyNames(O) { - var names = nativeGetOwnPropertyNames$3(toIndexedObject$1(O)); - var result = []; - $forEach$4(names, function (key) { - if (!has$2(AllSymbols$1, key) && !has$2(hiddenKeys$2, key)) result.push(key); - }); - return result; - }; - - var $getOwnPropertySymbols$1 = function getOwnPropertySymbols(O) { - var IS_OBJECT_PROTOTYPE = O === ObjectPrototype$5; - var names = nativeGetOwnPropertyNames$3(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols$1 : toIndexedObject$1(O)); - var result = []; - $forEach$4(names, function (key) { - if (has$2(AllSymbols$1, key) && (!IS_OBJECT_PROTOTYPE || has$2(ObjectPrototype$5, key))) { - result.push(AllSymbols$1[key]); - } - }); - return result; - }; - - // `Symbol` constructor - // https://tc39.github.io/ecma262/#sec-symbol-constructor - if (!nativeSymbol$1) { - $Symbol$1 = function Symbol() { - if (this instanceof $Symbol$1) throw TypeError('Symbol is not a constructor'); - var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]); - var tag = uid$1(description); - var setter = function (value) { - if (this === ObjectPrototype$5) setter.call(ObjectPrototypeSymbols$1, value); - if (has$2(this, HIDDEN$1) && has$2(this[HIDDEN$1], tag)) this[HIDDEN$1][tag] = false; - setSymbolDescriptor$1(this, tag, createPropertyDescriptor$1(1, value)); - }; - if (descriptors$1 && USE_SETTER$1) setSymbolDescriptor$1(ObjectPrototype$5, tag, { configurable: true, set: setter }); - return wrap$3(tag, description); - }; - - redefine$1($Symbol$1[PROTOTYPE$4], 'toString', function toString() { - return getInternalState$7(this).tag; - }); - - redefine$1($Symbol$1, 'withoutSetter', function (description) { - return wrap$3(uid$1(description), description); - }); - - objectPropertyIsEnumerable$1.f = $propertyIsEnumerable$1; - objectDefineProperty$1.f = $defineProperty$1; - objectGetOwnPropertyDescriptor$1.f = $getOwnPropertyDescriptor$1; - objectGetOwnPropertyNames$1.f = objectGetOwnPropertyNamesExternal$1.f = $getOwnPropertyNames$1; - objectGetOwnPropertySymbols$1.f = $getOwnPropertySymbols$1; - - wellKnownSymbolWrapped$1.f = function (name) { - return wrap$3(wellKnownSymbol$1(name), name); - }; - - if (descriptors$1) { - // https://github.com/tc39/proposal-Symbol-description - nativeDefineProperty$3($Symbol$1[PROTOTYPE$4], 'description', { - configurable: true, - get: function description() { - return getInternalState$7(this).description; - } - }); - { - redefine$1(ObjectPrototype$5, 'propertyIsEnumerable', $propertyIsEnumerable$1, { unsafe: true }); - } - } - } - - _export$1({ global: true, wrap: true, forced: !nativeSymbol$1, sham: !nativeSymbol$1 }, { - Symbol: $Symbol$1 - }); - - $forEach$4(objectKeys$1(WellKnownSymbolsStore$3), function (name) { - defineWellKnownSymbol$1(name); - }); - - _export$1({ target: SYMBOL$1, stat: true, forced: !nativeSymbol$1 }, { - // `Symbol.for` method - // https://tc39.github.io/ecma262/#sec-symbol.for - 'for': function (key) { - var string = String(key); - if (has$2(StringToSymbolRegistry$1, string)) return StringToSymbolRegistry$1[string]; - var symbol = $Symbol$1(string); - StringToSymbolRegistry$1[string] = symbol; - SymbolToStringRegistry$1[symbol] = string; - return symbol; - }, - // `Symbol.keyFor` method - // https://tc39.github.io/ecma262/#sec-symbol.keyfor - keyFor: function keyFor(sym) { - if (!isSymbol$1(sym)) throw TypeError(sym + ' is not a symbol'); - if (has$2(SymbolToStringRegistry$1, sym)) return SymbolToStringRegistry$1[sym]; - }, - useSetter: function () { USE_SETTER$1 = true; }, - useSimple: function () { USE_SETTER$1 = false; } - }); - - _export$1({ target: 'Object', stat: true, forced: !nativeSymbol$1, sham: !descriptors$1 }, { - // `Object.create` method - // https://tc39.github.io/ecma262/#sec-object.create - create: $create$1, - // `Object.defineProperty` method - // https://tc39.github.io/ecma262/#sec-object.defineproperty - defineProperty: $defineProperty$1, - // `Object.defineProperties` method - // https://tc39.github.io/ecma262/#sec-object.defineproperties - defineProperties: $defineProperties$1, - // `Object.getOwnPropertyDescriptor` method - // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors - getOwnPropertyDescriptor: $getOwnPropertyDescriptor$1 - }); - - _export$1({ target: 'Object', stat: true, forced: !nativeSymbol$1 }, { - // `Object.getOwnPropertyNames` method - // https://tc39.github.io/ecma262/#sec-object.getownpropertynames - getOwnPropertyNames: $getOwnPropertyNames$1, - // `Object.getOwnPropertySymbols` method - // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols - getOwnPropertySymbols: $getOwnPropertySymbols$1 - }); - - // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives - // https://bugs.chromium.org/p/v8/issues/detail?id=3443 - _export$1({ target: 'Object', stat: true, forced: fails$1(function () { objectGetOwnPropertySymbols$1.f(1); }) }, { - getOwnPropertySymbols: function getOwnPropertySymbols(it) { - return objectGetOwnPropertySymbols$1.f(toObject$1(it)); - } - }); - - // `JSON.stringify` method behavior with symbols - // https://tc39.github.io/ecma262/#sec-json.stringify - if ($stringify$1) { - var FORCED_JSON_STRINGIFY$1 = !nativeSymbol$1 || fails$1(function () { - var symbol = $Symbol$1(); - // MS Edge converts symbol values to JSON as {} - return $stringify$1([symbol]) != '[null]' - // WebKit converts symbol values to JSON as null - || $stringify$1({ a: symbol }) != '{}' - // V8 throws on boxed symbols - || $stringify$1(Object(symbol)) != '{}'; - }); - - _export$1({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY$1 }, { - // eslint-disable-next-line no-unused-vars - stringify: function stringify(it, replacer, space) { - var args = [it]; - var index = 1; - var $replacer; - while (arguments.length > index) args.push(arguments[index++]); - $replacer = replacer; - if (!isObject$2(replacer) && it === undefined || isSymbol$1(it)) return; // IE8 returns string on undefined - if (!isArray$2(replacer)) replacer = function (key, value) { - if (typeof $replacer == 'function') value = $replacer.call(this, key, value); - if (!isSymbol$1(value)) return value; - }; - args[1] = replacer; - return $stringify$1.apply(null, args); - } - }); - } - - // `Symbol.prototype[@@toPrimitive]` method - // https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive - if (!$Symbol$1[PROTOTYPE$4][TO_PRIMITIVE$1]) { - createNonEnumerableProperty$1($Symbol$1[PROTOTYPE$4], TO_PRIMITIVE$1, $Symbol$1[PROTOTYPE$4].valueOf); - } - // `Symbol.prototype[@@toStringTag]` property - // https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag - setToStringTag$1($Symbol$1, SYMBOL$1); - - hiddenKeys$2[HIDDEN$1] = true; - - // `Number.isNaN` method - // https://tc39.github.io/ecma262/#sec-number.isnan - _export$1({ target: 'Number', stat: true }, { - isNaN: function isNaN(number) { - // eslint-disable-next-line no-self-compare - return number != number; - } - }); - - var nativeGetOwnPropertyDescriptor$5 = objectGetOwnPropertyDescriptor$1.f; - - - var FAILS_ON_PRIMITIVES$3 = fails$1(function () { nativeGetOwnPropertyDescriptor$5(1); }); - var FORCED$a = !descriptors$1 || FAILS_ON_PRIMITIVES$3; - - // `Object.getOwnPropertyDescriptor` method - // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor - _export$1({ target: 'Object', stat: true, forced: FORCED$a, sham: !descriptors$1 }, { - getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) { - return nativeGetOwnPropertyDescriptor$5(toIndexedObject$1(it), key); - } - }); - - // `Object.getOwnPropertyDescriptors` method - // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors - _export$1({ target: 'Object', stat: true, sham: !descriptors$1 }, { - getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) { - var O = toIndexedObject$1(object); - var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor$1.f; - var keys = ownKeys$2(O); - var result = {}; - var index = 0; - var key, descriptor; - while (keys.length > index) { - descriptor = getOwnPropertyDescriptor(O, key = keys[index++]); - if (descriptor !== undefined) createProperty$1(result, key, descriptor); - } - return result; - } - }); - - // @@match logic - fixRegexpWellKnownSymbolLogic$1('match', 1, function (MATCH, nativeMatch, maybeCallNative) { - return [ - // `String.prototype.match` method - // https://tc39.github.io/ecma262/#sec-string.prototype.match - function match(regexp) { - var O = requireObjectCoercible$1(this); - var matcher = regexp == undefined ? undefined : regexp[MATCH]; - return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O)); - }, - // `RegExp.prototype[@@match]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match - function (regexp) { - var res = maybeCallNative(nativeMatch, regexp, this); - if (res.done) return res.value; - - var rx = anObject$1(regexp); - var S = String(this); - - if (!rx.global) return regexpExecAbstract$1(rx, S); - - var fullUnicode = rx.unicode; - rx.lastIndex = 0; - var A = []; - var n = 0; - var result; - while ((result = regexpExecAbstract$1(rx, S)) !== null) { - var matchStr = String(result[0]); - A[n] = matchStr; - if (matchStr === '') rx.lastIndex = advanceStringIndex$1(S, toLength$1(rx.lastIndex), fullUnicode); - n++; - } - return n === 0 ? null : A; - } - ]; - }); - - function _classCallCheck$2(e, t) { - if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function"); - } - - function _defineProperties$2(e, t) { - for (var n = 0; n < t.length; n++) { - var r = t[n]; - r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r); - } - } - - function _createClass$2(e, t, n) { - return t && _defineProperties$2(e.prototype, t), n && _defineProperties$2(e, n), e; - } - - function _defineProperty$2(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e; - } - - function ownKeys$3(e, t) { - var n = Object.keys(e); - - if (Object.getOwnPropertySymbols) { - var r = Object.getOwnPropertySymbols(e); - t && (r = r.filter(function (t) { - return Object.getOwnPropertyDescriptor(e, t).enumerable; - })), n.push.apply(n, r); - } - - return n; - } - - function _objectSpread2$1(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? ownKeys$3(Object(n), !0).forEach(function (t) { - _defineProperty$2(e, t, n[t]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ownKeys$3(Object(n)).forEach(function (t) { - Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)); - }); - } - - return e; - } - - var defaults$1 = { - addCSS: !0, - thumbWidth: 15, - watch: !0 - }; - - function matches$1(e, t) { - return function () { - return Array.from(document.querySelectorAll(t)).includes(this); - }.call(e, t); - } - - function trigger(e, t) { - if (e && t) { - var n = new Event(t, { - bubbles: !0 - }); - e.dispatchEvent(n); - } - } - - var getConstructor$1 = function getConstructor(e) { - return null != e ? e.constructor : null; - }, - instanceOf$1 = function instanceOf(e, t) { - return !!(e && t && e instanceof t); - }, - isNullOrUndefined$1 = function isNullOrUndefined(e) { - return null == e; - }, - isObject$3 = function isObject(e) { - return getConstructor$1(e) === Object; - }, - isNumber$1 = function isNumber(e) { - return getConstructor$1(e) === Number && !Number.isNaN(e); - }, - isString$2 = function isString(e) { - return getConstructor$1(e) === String; - }, - isBoolean$1 = function isBoolean(e) { - return getConstructor$1(e) === Boolean; - }, - isFunction$1 = function isFunction(e) { - return getConstructor$1(e) === Function; - }, - isArray$3 = function isArray(e) { - return Array.isArray(e); - }, - isNodeList$1 = function isNodeList(e) { - return instanceOf$1(e, NodeList); - }, - isElement$2 = function isElement(e) { - return instanceOf$1(e, Element); - }, - isEvent$2 = function isEvent(e) { - return instanceOf$1(e, Event); - }, - isEmpty$1 = function isEmpty(e) { - return isNullOrUndefined$1(e) || (isString$2(e) || isArray$3(e) || isNodeList$1(e)) && !e.length || isObject$3(e) && !Object.keys(e).length; - }, - is$1 = { - nullOrUndefined: isNullOrUndefined$1, - object: isObject$3, - number: isNumber$1, - string: isString$2, - boolean: isBoolean$1, - function: isFunction$1, - array: isArray$3, - nodeList: isNodeList$1, - element: isElement$2, - event: isEvent$2, - empty: isEmpty$1 - }; - - function getDecimalPlaces(e) { - var t = "".concat(e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/); - return t ? Math.max(0, (t[1] ? t[1].length : 0) - (t[2] ? +t[2] : 0)) : 0; - } - - function round(e, t) { - if (1 > t) { - var n = getDecimalPlaces(t); - return parseFloat(e.toFixed(n)); - } - - return Math.round(e / t) * t; - } - - var RangeTouch = function () { - function e(t, n) { - _classCallCheck$2(this, e), is$1.element(t) ? this.element = t : is$1.string(t) && (this.element = document.querySelector(t)), is$1.element(this.element) && is$1.empty(this.element.rangeTouch) && (this.config = _objectSpread2$1({}, defaults$1, {}, n), this.init()); - } - - return _createClass$2(e, [{ - key: "init", - value: function value() { - e.enabled && (this.config.addCSS && (this.element.style.userSelect = "none", this.element.style.webKitUserSelect = "none", this.element.style.touchAction = "manipulation"), this.listeners(!0), this.element.rangeTouch = this); - } - }, { - key: "destroy", - value: function value() { - e.enabled && (this.config.addCSS && (this.element.style.userSelect = "", this.element.style.webKitUserSelect = "", this.element.style.touchAction = ""), this.listeners(!1), this.element.rangeTouch = null); - } - }, { - key: "listeners", - value: function value(e) { - var t = this, - n = e ? "addEventListener" : "removeEventListener"; - ["touchstart", "touchmove", "touchend"].forEach(function (e) { - t.element[n](e, function (e) { - return t.set(e); - }, !1); - }); - } - }, { - key: "get", - value: function value(t) { - if (!e.enabled || !is$1.event(t)) return null; - var n, - r = t.target, - i = t.changedTouches[0], - o = parseFloat(r.getAttribute("min")) || 0, - s = parseFloat(r.getAttribute("max")) || 100, - u = parseFloat(r.getAttribute("step")) || 1, - c = r.getBoundingClientRect(), - a = 100 / c.width * (this.config.thumbWidth / 2) / 100; - return 0 > (n = 100 / c.width * (i.clientX - c.left)) ? n = 0 : 100 < n && (n = 100), 50 > n ? n -= (100 - 2 * n) * a : 50 < n && (n += 2 * (n - 50) * a), o + round(n / 100 * (s - o), u); - } - }, { - key: "set", - value: function value(t) { - e.enabled && is$1.event(t) && !t.target.disabled && (t.preventDefault(), t.target.value = this.get(t), trigger(t.target, "touchend" === t.type ? "change" : "input")); - } - }], [{ - key: "setup", - value: function value(t) { - var n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}, - r = null; - if (is$1.empty(t) || is$1.string(t) ? r = Array.from(document.querySelectorAll(is$1.string(t) ? t : 'input[type="range"]')) : is$1.element(t) ? r = [t] : is$1.nodeList(t) ? r = Array.from(t) : is$1.array(t) && (r = t.filter(is$1.element)), is$1.empty(r)) return null; - - var i = _objectSpread2$1({}, defaults$1, {}, n); - - if (is$1.string(t) && i.watch) { - var o = new MutationObserver(function (n) { - Array.from(n).forEach(function (n) { - Array.from(n.addedNodes).forEach(function (n) { - is$1.element(n) && matches$1(n, t) && new e(n, i); - }); - }); - }); - o.observe(document.body, { - childList: !0, - subtree: !0 - }); - } - - return r.map(function (t) { - return new e(t, n); - }); - } - }, { - key: "enabled", - get: function get() { - return "ontouchstart" in document.documentElement; - } - }]), e; - }(); - - var nativePromiseConstructor$1 = global_1$1.Promise; - - var SPECIES$b = wellKnownSymbol$1('species'); - - var setSpecies$1 = function (CONSTRUCTOR_NAME) { - var Constructor = getBuiltIn$1(CONSTRUCTOR_NAME); - var defineProperty = objectDefineProperty$1.f; - - if (descriptors$1 && Constructor && !Constructor[SPECIES$b]) { - defineProperty(Constructor, SPECIES$b, { - configurable: true, - get: function () { return this; } - }); - } - }; - - var engineIsIos$1 = /(iphone|ipod|ipad).*applewebkit/i.test(engineUserAgent$1); - - var engineIsNode = classofRaw$1(global_1$1.process) == 'process'; - - var location$1 = global_1$1.location; - var set$4 = global_1$1.setImmediate; - var clear$1 = global_1$1.clearImmediate; - var process$6 = global_1$1.process; - var MessageChannel$1 = global_1$1.MessageChannel; - var Dispatch$1 = global_1$1.Dispatch; - var counter$1 = 0; - var queue$1 = {}; - var ONREADYSTATECHANGE$1 = 'onreadystatechange'; - var defer$1, channel$1, port$1; - - var run$1 = function (id) { - // eslint-disable-next-line no-prototype-builtins - if (queue$1.hasOwnProperty(id)) { - var fn = queue$1[id]; - delete queue$1[id]; - fn(); - } - }; - - var runner$1 = function (id) { - return function () { - run$1(id); - }; - }; - - var listener$1 = function (event) { - run$1(event.data); - }; - - var post$1 = function (id) { - // old engines have not location.origin - global_1$1.postMessage(id + '', location$1.protocol + '//' + location$1.host); - }; - - // Node.js 0.9+ & IE10+ has setImmediate, otherwise: - if (!set$4 || !clear$1) { - set$4 = function setImmediate(fn) { - var args = []; - var i = 1; - while (arguments.length > i) args.push(arguments[i++]); - queue$1[++counter$1] = function () { - // eslint-disable-next-line no-new-func - (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args); - }; - defer$1(counter$1); - return counter$1; - }; - clear$1 = function clearImmediate(id) { - delete queue$1[id]; - }; - // Node.js 0.8- - if (engineIsNode) { - defer$1 = function (id) { - process$6.nextTick(runner$1(id)); - }; - // Sphere (JS game engine) Dispatch API - } else if (Dispatch$1 && Dispatch$1.now) { - defer$1 = function (id) { - Dispatch$1.now(runner$1(id)); - }; - // Browsers with MessageChannel, includes WebWorkers - // except iOS - https://github.com/zloirock/core-js/issues/624 - } else if (MessageChannel$1 && !engineIsIos$1) { - channel$1 = new MessageChannel$1(); - port$1 = channel$1.port2; - channel$1.port1.onmessage = listener$1; - defer$1 = functionBindContext$1(port$1.postMessage, port$1, 1); - // Browsers with postMessage, skip WebWorkers - // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' - } else if ( - global_1$1.addEventListener && - typeof postMessage == 'function' && - !global_1$1.importScripts && - location$1 && location$1.protocol !== 'file:' && - !fails$1(post$1) - ) { - defer$1 = post$1; - global_1$1.addEventListener('message', listener$1, false); - // IE8- - } else if (ONREADYSTATECHANGE$1 in documentCreateElement$1('script')) { - defer$1 = function (id) { - html$1.appendChild(documentCreateElement$1('script'))[ONREADYSTATECHANGE$1] = function () { - html$1.removeChild(this); - run$1(id); - }; - }; - // Rest old browsers - } else { - defer$1 = function (id) { - setTimeout(runner$1(id), 0); - }; - } - } - - var task$2 = { - set: set$4, - clear: clear$1 - }; - - var getOwnPropertyDescriptor$7 = objectGetOwnPropertyDescriptor$1.f; - var macrotask$1 = task$2.set; - - - - var MutationObserver$2 = global_1$1.MutationObserver || global_1$1.WebKitMutationObserver; - var document$4 = global_1$1.document; - var process$7 = global_1$1.process; - var Promise$2 = global_1$1.Promise; - // Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` - var queueMicrotaskDescriptor$1 = getOwnPropertyDescriptor$7(global_1$1, 'queueMicrotask'); - var queueMicrotask$1 = queueMicrotaskDescriptor$1 && queueMicrotaskDescriptor$1.value; - - var flush$1, head$1, last$1, notify$2, toggle$1, node$1, promise$1, then$1; - - // modern engines have queueMicrotask method - if (!queueMicrotask$1) { - flush$1 = function () { - var parent, fn; - if (engineIsNode && (parent = process$7.domain)) parent.exit(); - while (head$1) { - fn = head$1.fn; - head$1 = head$1.next; - try { - fn(); - } catch (error) { - if (head$1) notify$2(); - else last$1 = undefined; - throw error; - } - } last$1 = undefined; - if (parent) parent.enter(); - }; - - // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 - if (!engineIsIos$1 && !engineIsNode && MutationObserver$2 && document$4) { - toggle$1 = true; - node$1 = document$4.createTextNode(''); - new MutationObserver$2(flush$1).observe(node$1, { characterData: true }); - notify$2 = function () { - node$1.data = toggle$1 = !toggle$1; - }; - // environments with maybe non-completely correct, but existent Promise - } else if (Promise$2 && Promise$2.resolve) { - // Promise.resolve without an argument throws an error in LG WebOS 2 - promise$1 = Promise$2.resolve(undefined); - then$1 = promise$1.then; - notify$2 = function () { - then$1.call(promise$1, flush$1); - }; - // Node.js without promises - } else if (engineIsNode) { - notify$2 = function () { - process$7.nextTick(flush$1); - }; - // for other environments - macrotask based on: - // - setImmediate - // - MessageChannel - // - window.postMessag - // - onreadystatechange - // - setTimeout - } else { - notify$2 = function () { - // strange IE + webpack dev server bug - use .call(global) - macrotask$1.call(global_1$1, flush$1); - }; - } - } - - var microtask$1 = queueMicrotask$1 || function (fn) { - var task = { fn: fn, next: undefined }; - if (last$1) last$1.next = task; - if (!head$1) { - head$1 = task; - notify$2(); - } last$1 = task; - }; - - var PromiseCapability$1 = function (C) { - var resolve, reject; - this.promise = new C(function ($$resolve, $$reject) { - if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); - resolve = $$resolve; - reject = $$reject; - }); - this.resolve = aFunction$3(resolve); - this.reject = aFunction$3(reject); - }; - - // 25.4.1.5 NewPromiseCapability(C) - var f$f = function (C) { - return new PromiseCapability$1(C); - }; - - var newPromiseCapability$2 = { - f: f$f - }; - - var promiseResolve$1 = function (C, x) { - anObject$1(C); - if (isObject$2(x) && x.constructor === C) return x; - var promiseCapability = newPromiseCapability$2.f(C); - var resolve = promiseCapability.resolve; - resolve(x); - return promiseCapability.promise; - }; - - var hostReportErrors$1 = function (a, b) { - var console = global_1$1.console; - if (console && console.error) { - arguments.length === 1 ? console.error(a) : console.error(a, b); - } - }; - - var perform$1 = function (exec) { - try { - return { error: false, value: exec() }; - } catch (error) { - return { error: true, value: error }; - } - }; - - var task$3 = task$2.set; - - - - - - - - - - - - var SPECIES$c = wellKnownSymbol$1('species'); - var PROMISE$1 = 'Promise'; - var getInternalState$8 = internalState$1.get; - var setInternalState$f = internalState$1.set; - var getInternalPromiseState$1 = internalState$1.getterFor(PROMISE$1); - var PromiseConstructor$1 = nativePromiseConstructor$1; - var TypeError$2 = global_1$1.TypeError; - var document$5 = global_1$1.document; - var process$8 = global_1$1.process; - var $fetch$3 = getBuiltIn$1('fetch'); - var newPromiseCapability$3 = newPromiseCapability$2.f; - var newGenericPromiseCapability$1 = newPromiseCapability$3; - var DISPATCH_EVENT$1 = !!(document$5 && document$5.createEvent && global_1$1.dispatchEvent); - var NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function'; - var UNHANDLED_REJECTION$1 = 'unhandledrejection'; - var REJECTION_HANDLED$1 = 'rejectionhandled'; - var PENDING$1 = 0; - var FULFILLED$1 = 1; - var REJECTED$1 = 2; - var HANDLED$1 = 1; - var UNHANDLED$1 = 2; - var Internal$1, OwnPromiseCapability$1, PromiseWrapper$1, nativeThen$1; - - var FORCED$b = isForced_1$1(PROMISE$1, function () { - var GLOBAL_CORE_JS_PROMISE = inspectSource$1(PromiseConstructor$1) !== String(PromiseConstructor$1); - if (!GLOBAL_CORE_JS_PROMISE) { - // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables - // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 - // We can't detect it synchronously, so just check versions - if (engineV8Version$1 === 66) return true; - // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test - if (!engineIsNode && !NATIVE_REJECTION_EVENT) return true; - } - // We can't use @@species feature detection in V8 since it causes - // deoptimization and performance degradation - // https://github.com/zloirock/core-js/issues/679 - if (engineV8Version$1 >= 51 && /native code/.test(PromiseConstructor$1)) return false; - // Detect correctness of subclassing with @@species support - var promise = PromiseConstructor$1.resolve(1); - var FakePromise = function (exec) { - exec(function () { /* empty */ }, function () { /* empty */ }); - }; - var constructor = promise.constructor = {}; - constructor[SPECIES$c] = FakePromise; - return !(promise.then(function () { /* empty */ }) instanceof FakePromise); - }); - - var INCORRECT_ITERATION$3 = FORCED$b || !checkCorrectnessOfIteration$1(function (iterable) { - PromiseConstructor$1.all(iterable)['catch'](function () { /* empty */ }); - }); - - // helpers - var isThenable$2 = function (it) { - var then; - return isObject$2(it) && typeof (then = it.then) == 'function' ? then : false; - }; - - var notify$3 = function (state, isReject) { - if (state.notified) return; - state.notified = true; - var chain = state.reactions; - microtask$1(function () { - var value = state.value; - var ok = state.state == FULFILLED$1; - var index = 0; - // variable length - can't use forEach - while (chain.length > index) { - var reaction = chain[index++]; - var handler = ok ? reaction.ok : reaction.fail; - var resolve = reaction.resolve; - var reject = reaction.reject; - var domain = reaction.domain; - var result, then, exited; - try { - if (handler) { - if (!ok) { - if (state.rejection === UNHANDLED$1) onHandleUnhandled$1(state); - state.rejection = HANDLED$1; - } - if (handler === true) result = value; - else { - if (domain) domain.enter(); - result = handler(value); // can throw - if (domain) { - domain.exit(); - exited = true; - } - } - if (result === reaction.promise) { - reject(TypeError$2('Promise-chain cycle')); - } else if (then = isThenable$2(result)) { - then.call(result, resolve, reject); - } else resolve(result); - } else reject(value); - } catch (error) { - if (domain && !exited) domain.exit(); - reject(error); - } - } - state.reactions = []; - state.notified = false; - if (isReject && !state.rejection) onUnhandled$1(state); - }); - }; - - var dispatchEvent$1 = function (name, promise, reason) { - var event, handler; - if (DISPATCH_EVENT$1) { - event = document$5.createEvent('Event'); - event.promise = promise; - event.reason = reason; - event.initEvent(name, false, true); - global_1$1.dispatchEvent(event); - } else event = { promise: promise, reason: reason }; - if (!NATIVE_REJECTION_EVENT && (handler = global_1$1['on' + name])) handler(event); - else if (name === UNHANDLED_REJECTION$1) hostReportErrors$1('Unhandled promise rejection', reason); - }; - - var onUnhandled$1 = function (state) { - task$3.call(global_1$1, function () { - var promise = state.facade; - var value = state.value; - var IS_UNHANDLED = isUnhandled$1(state); - var result; - if (IS_UNHANDLED) { - result = perform$1(function () { - if (engineIsNode) { - process$8.emit('unhandledRejection', value, promise); - } else dispatchEvent$1(UNHANDLED_REJECTION$1, promise, value); - }); - // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should - state.rejection = engineIsNode || isUnhandled$1(state) ? UNHANDLED$1 : HANDLED$1; - if (result.error) throw result.value; - } - }); - }; - - var isUnhandled$1 = function (state) { - return state.rejection !== HANDLED$1 && !state.parent; - }; - - var onHandleUnhandled$1 = function (state) { - task$3.call(global_1$1, function () { - var promise = state.facade; - if (engineIsNode) { - process$8.emit('rejectionHandled', promise); - } else dispatchEvent$1(REJECTION_HANDLED$1, promise, state.value); - }); - }; - - var bind$1 = function (fn, state, unwrap) { - return function (value) { - fn(state, value, unwrap); - }; - }; - - var internalReject$1 = function (state, value, unwrap) { - if (state.done) return; - state.done = true; - if (unwrap) state = unwrap; - state.value = value; - state.state = REJECTED$1; - notify$3(state, true); - }; - - var internalResolve$1 = function (state, value, unwrap) { - if (state.done) return; - state.done = true; - if (unwrap) state = unwrap; - try { - if (state.facade === value) throw TypeError$2("Promise can't be resolved itself"); - var then = isThenable$2(value); - if (then) { - microtask$1(function () { - var wrapper = { done: false }; - try { - then.call(value, - bind$1(internalResolve$1, wrapper, state), - bind$1(internalReject$1, wrapper, state) - ); - } catch (error) { - internalReject$1(wrapper, error, state); - } - }); - } else { - state.value = value; - state.state = FULFILLED$1; - notify$3(state, false); - } - } catch (error) { - internalReject$1({ done: false }, error, state); - } - }; - - // constructor polyfill - if (FORCED$b) { - // 25.4.3.1 Promise(executor) - PromiseConstructor$1 = function Promise(executor) { - anInstance$1(this, PromiseConstructor$1, PROMISE$1); - aFunction$3(executor); - Internal$1.call(this); - var state = getInternalState$8(this); - try { - executor(bind$1(internalResolve$1, state), bind$1(internalReject$1, state)); - } catch (error) { - internalReject$1(state, error); - } - }; - // eslint-disable-next-line no-unused-vars - Internal$1 = function Promise(executor) { - setInternalState$f(this, { - type: PROMISE$1, - done: false, - notified: false, - parent: false, - reactions: [], - rejection: false, - state: PENDING$1, - value: undefined - }); - }; - Internal$1.prototype = redefineAll$1(PromiseConstructor$1.prototype, { - // `Promise.prototype.then` method - // https://tc39.github.io/ecma262/#sec-promise.prototype.then - then: function then(onFulfilled, onRejected) { - var state = getInternalPromiseState$1(this); - var reaction = newPromiseCapability$3(speciesConstructor$1(this, PromiseConstructor$1)); - reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; - reaction.fail = typeof onRejected == 'function' && onRejected; - reaction.domain = engineIsNode ? process$8.domain : undefined; - state.parent = true; - state.reactions.push(reaction); - if (state.state != PENDING$1) notify$3(state, false); - return reaction.promise; - }, - // `Promise.prototype.catch` method - // https://tc39.github.io/ecma262/#sec-promise.prototype.catch - 'catch': function (onRejected) { - return this.then(undefined, onRejected); - } - }); - OwnPromiseCapability$1 = function () { - var promise = new Internal$1(); - var state = getInternalState$8(promise); - this.promise = promise; - this.resolve = bind$1(internalResolve$1, state); - this.reject = bind$1(internalReject$1, state); - }; - newPromiseCapability$2.f = newPromiseCapability$3 = function (C) { - return C === PromiseConstructor$1 || C === PromiseWrapper$1 - ? new OwnPromiseCapability$1(C) - : newGenericPromiseCapability$1(C); - }; - - if ( typeof nativePromiseConstructor$1 == 'function') { - nativeThen$1 = nativePromiseConstructor$1.prototype.then; - - // wrap native Promise#then for native async functions - redefine$1(nativePromiseConstructor$1.prototype, 'then', function then(onFulfilled, onRejected) { - var that = this; - return new PromiseConstructor$1(function (resolve, reject) { - nativeThen$1.call(that, resolve, reject); - }).then(onFulfilled, onRejected); - // https://github.com/zloirock/core-js/issues/640 - }, { unsafe: true }); - - // wrap fetch result - if (typeof $fetch$3 == 'function') _export$1({ global: true, enumerable: true, forced: true }, { - // eslint-disable-next-line no-unused-vars - fetch: function fetch(input /* , init */) { - return promiseResolve$1(PromiseConstructor$1, $fetch$3.apply(global_1$1, arguments)); - } - }); - } - } - - _export$1({ global: true, wrap: true, forced: FORCED$b }, { - Promise: PromiseConstructor$1 - }); - - setToStringTag$1(PromiseConstructor$1, PROMISE$1, false); - setSpecies$1(PROMISE$1); - - PromiseWrapper$1 = getBuiltIn$1(PROMISE$1); - - // statics - _export$1({ target: PROMISE$1, stat: true, forced: FORCED$b }, { - // `Promise.reject` method - // https://tc39.github.io/ecma262/#sec-promise.reject - reject: function reject(r) { - var capability = newPromiseCapability$3(this); - capability.reject.call(undefined, r); - return capability.promise; - } - }); - - _export$1({ target: PROMISE$1, stat: true, forced: FORCED$b }, { - // `Promise.resolve` method - // https://tc39.github.io/ecma262/#sec-promise.resolve - resolve: function resolve(x) { - return promiseResolve$1( this, x); - } - }); - - _export$1({ target: PROMISE$1, stat: true, forced: INCORRECT_ITERATION$3 }, { - // `Promise.all` method - // https://tc39.github.io/ecma262/#sec-promise.all - all: function all(iterable) { - var C = this; - var capability = newPromiseCapability$3(C); - var resolve = capability.resolve; - var reject = capability.reject; - var result = perform$1(function () { - var $promiseResolve = aFunction$3(C.resolve); - var values = []; - var counter = 0; - var remaining = 1; - iterate(iterable, function (promise) { - var index = counter++; - var alreadyCalled = false; - values.push(undefined); - remaining++; - $promiseResolve.call(C, promise).then(function (value) { - if (alreadyCalled) return; - alreadyCalled = true; - values[index] = value; - --remaining || resolve(values); - }, reject); - }); - --remaining || resolve(values); - }); - if (result.error) reject(result.value); - return capability.promise; - }, - // `Promise.race` method - // https://tc39.github.io/ecma262/#sec-promise.race - race: function race(iterable) { - var C = this; - var capability = newPromiseCapability$3(C); - var reject = capability.reject; - var result = perform$1(function () { - var $promiseResolve = aFunction$3(C.resolve); - iterate(iterable, function (promise) { - $promiseResolve.call(C, promise).then(capability.resolve, reject); - }); - }); - if (result.error) reject(result.value); - return capability.promise; - } - }); - - var getOwnPropertyDescriptor$8 = objectGetOwnPropertyDescriptor$1.f; - - - - - - - var nativeStartsWith = ''.startsWith; - var min$b = Math.min; - - var CORRECT_IS_REGEXP_LOGIC = correctIsRegexpLogic$1('startsWith'); - // https://github.com/zloirock/core-js/pull/702 - var MDN_POLYFILL_BUG = !CORRECT_IS_REGEXP_LOGIC && !!function () { - var descriptor = getOwnPropertyDescriptor$8(String.prototype, 'startsWith'); - return descriptor && !descriptor.writable; - }(); - - // `String.prototype.startsWith` method - // https://tc39.github.io/ecma262/#sec-string.prototype.startswith - _export$1({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { - startsWith: function startsWith(searchString /* , position = 0 */) { - var that = String(requireObjectCoercible$1(this)); - notARegexp$1(searchString); - var index = toLength$1(min$b(arguments.length > 1 ? arguments[1] : undefined, that.length)); - var search = String(searchString); - return nativeStartsWith - ? nativeStartsWith.call(that, search, index) - : that.slice(index, index + search.length) === search; - } - }); - - // ========================================================================== - // Type checking utils - // ========================================================================== - var getConstructor$2 = function getConstructor(input) { - return input !== null && typeof input !== 'undefined' ? input.constructor : null; - }; - - var instanceOf$2 = function instanceOf(input, constructor) { - return Boolean(input && constructor && input instanceof constructor); - }; - - var isNullOrUndefined$2 = function isNullOrUndefined(input) { - return input === null || typeof input === 'undefined'; - }; - - var isObject$4 = function isObject(input) { - return getConstructor$2(input) === Object; - }; - - var isNumber$2 = function isNumber(input) { - return getConstructor$2(input) === Number && !Number.isNaN(input); - }; - - var isString$3 = function isString(input) { - return getConstructor$2(input) === String; - }; - - var isBoolean$2 = function isBoolean(input) { - return getConstructor$2(input) === Boolean; - }; - - var isFunction$2 = function isFunction(input) { - return getConstructor$2(input) === Function; - }; - - var isArray$4 = function isArray(input) { - return Array.isArray(input); - }; - - var isWeakMap = function isWeakMap(input) { - return instanceOf$2(input, WeakMap); - }; - - var isNodeList$2 = function isNodeList(input) { - return instanceOf$2(input, NodeList); - }; - - var isTextNode = function isTextNode(input) { - return getConstructor$2(input) === Text; - }; - - var isEvent$3 = function isEvent(input) { - return instanceOf$2(input, Event); - }; - - var isKeyboardEvent = function isKeyboardEvent(input) { - return instanceOf$2(input, KeyboardEvent); - }; - - var isCue = function isCue(input) { - return instanceOf$2(input, window.TextTrackCue) || instanceOf$2(input, window.VTTCue); - }; - - var isTrack = function isTrack(input) { - return instanceOf$2(input, TextTrack) || !isNullOrUndefined$2(input) && isString$3(input.kind); - }; - - var isPromise = function isPromise(input) { - return instanceOf$2(input, Promise) && isFunction$2(input.then); - }; - - var isElement$3 = function isElement(input) { - return input !== null && _typeof(input) === 'object' && input.nodeType === 1 && _typeof(input.style) === 'object' && _typeof(input.ownerDocument) === 'object'; - }; - - var isEmpty$2 = function isEmpty(input) { - return isNullOrUndefined$2(input) || (isString$3(input) || isArray$4(input) || isNodeList$2(input)) && !input.length || isObject$4(input) && !Object.keys(input).length; - }; - - var isUrl = function isUrl(input) { - // Accept a URL object - if (instanceOf$2(input, window.URL)) { - return true; - } // Must be string from here - - - if (!isString$3(input)) { - return false; - } // Add the protocol if required - - - var string = input; - - if (!input.startsWith('http://') || !input.startsWith('https://')) { - string = "http://".concat(input); - } - - try { - return !isEmpty$2(new URL(string).hostname); - } catch (e) { - return false; - } - }; - - var is$2 = { - nullOrUndefined: isNullOrUndefined$2, - object: isObject$4, - number: isNumber$2, - string: isString$3, - boolean: isBoolean$2, - function: isFunction$2, - array: isArray$4, - weakMap: isWeakMap, - nodeList: isNodeList$2, - element: isElement$3, - textNode: isTextNode, - event: isEvent$3, - keyboardEvent: isKeyboardEvent, - cue: isCue, - track: isTrack, - promise: isPromise, - url: isUrl, - empty: isEmpty$2 - }; - - var transitionEndEvent = function () { - var element = document.createElement('span'); - var events = { - WebkitTransition: 'webkitTransitionEnd', - MozTransition: 'transitionend', - OTransition: 'oTransitionEnd otransitionend', - transition: 'transitionend' - }; - var type = Object.keys(events).find(function (event) { - return element.style[event] !== undefined; - }); - return is$2.string(type) ? events[type] : false; - }(); // Force repaint of element - - function repaint(element, delay) { - setTimeout(function () { - try { - // eslint-disable-next-line no-param-reassign - element.hidden = true; // eslint-disable-next-line no-unused-expressions - - element.offsetHeight; // eslint-disable-next-line no-param-reassign - - element.hidden = false; - } catch (e) {// Do nothing - } - }, delay); - } - - // ========================================================================== - // Browser sniffing - // Unfortunately, due to mixed support, UA sniffing is required - // ========================================================================== - var browser = { - isIE: - /* @cc_on!@ */ - !!document.documentMode, - isEdge: window.navigator.userAgent.includes('Edge'), - isWebkit: 'WebkitAppearance' in document.documentElement.style && !/Edge/.test(navigator.userAgent), - isIPhone: /(iPhone|iPod)/gi.test(navigator.platform), - isIos: /(iPad|iPhone|iPod)/gi.test(navigator.platform) - }; - - // `Array.prototype.{ reduce, reduceRight }` methods implementation - var createMethod$b = function (IS_RIGHT) { - return function (that, callbackfn, argumentsLength, memo) { - aFunction$3(callbackfn); - var O = toObject$1(that); - var self = indexedObject$1(O); - var length = toLength$1(O.length); - var index = IS_RIGHT ? length - 1 : 0; - var i = IS_RIGHT ? -1 : 1; - if (argumentsLength < 2) while (true) { - if (index in self) { - memo = self[index]; - index += i; - break; - } - index += i; - if (IS_RIGHT ? index < 0 : length <= index) { - throw TypeError('Reduce of empty array with no initial value'); - } - } - for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) { - memo = callbackfn(memo, self[index], index, O); - } - return memo; - }; - }; - - var arrayReduce$1 = { - // `Array.prototype.reduce` method - // https://tc39.github.io/ecma262/#sec-array.prototype.reduce - left: createMethod$b(false), - // `Array.prototype.reduceRight` method - // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright - right: createMethod$b(true) - }; - - var $reduce$1 = arrayReduce$1.left; - - - - - - var STRICT_METHOD$a = arrayMethodIsStrict$1('reduce'); - var USES_TO_LENGTH$i = arrayMethodUsesToLength$1('reduce', { 1: 0 }); - // Chrome 80-82 has a critical bug - // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 - var CHROME_BUG = !engineIsNode && engineV8Version$1 > 79 && engineV8Version$1 < 83; - - // `Array.prototype.reduce` method - // https://tc39.github.io/ecma262/#sec-array.prototype.reduce - _export$1({ target: 'Array', proto: true, forced: !STRICT_METHOD$a || !USES_TO_LENGTH$i || CHROME_BUG }, { - reduce: function reduce(callbackfn /* , initialValue */) { - return $reduce$1(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); - } - }); - - function cloneDeep(object) { - return JSON.parse(JSON.stringify(object)); - } // Get a nested value in an object - - function getDeep(object, path) { - return path.split('.').reduce(function (obj, key) { - return obj && obj[key]; - }, object); - } // Deep extend destination object with N more objects - - function extend$1() { - var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - sources[_key - 1] = arguments[_key]; - } - - if (!sources.length) { - return target; - } - - var source = sources.shift(); - - if (!is$2.object(source)) { - return target; - } - - Object.keys(source).forEach(function (key) { - if (is$2.object(source[key])) { - if (!Object.keys(target).includes(key)) { - Object.assign(target, _defineProperty({}, key, {})); - } - - extend$1(target[key], source[key]); - } else { - Object.assign(target, _defineProperty({}, key, source[key])); - } - }); - return extend$1.apply(void 0, [target].concat(sources)); - } - - function wrap$4(elements, wrapper) { - // Convert `elements` to an array, if necessary. - var targets = elements.length ? elements : [elements]; // Loops backwards to prevent having to clone the wrapper on the - // first element (see `child` below). - - Array.from(targets).reverse().forEach(function (element, index) { - var child = index > 0 ? wrapper.cloneNode(true) : wrapper; // Cache the current parent and sibling. - - var parent = element.parentNode; - var sibling = element.nextSibling; // Wrap the element (is automatically removed from its current - // parent). - - child.appendChild(element); // If the element had a sibling, insert the wrapper before - // the sibling to maintain the HTML structure; otherwise, just - // append it to the parent. - - if (sibling) { - parent.insertBefore(child, sibling); - } else { - parent.appendChild(child); - } - }); - } // Set attributes - - function setAttributes$1(element, attributes) { - if (!is$2.element(element) || is$2.empty(attributes)) { - return; - } // Assume null and undefined attributes should be left out, - // Setting them would otherwise convert them to "null" and "undefined" - - - Object.entries(attributes).filter(function (_ref) { - var _ref2 = _slicedToArray(_ref, 2), - value = _ref2[1]; - - return !is$2.nullOrUndefined(value); - }).forEach(function (_ref3) { - var _ref4 = _slicedToArray(_ref3, 2), - key = _ref4[0], - value = _ref4[1]; - - return element.setAttribute(key, value); - }); - } // Create a DocumentFragment - - function createElement$1(type, attributes, text) { - // Create a new - var element = document.createElement(type); // Set all passed attributes - - if (is$2.object(attributes)) { - setAttributes$1(element, attributes); - } // Add text node - - - if (is$2.string(text)) { - element.innerText = text; - } // Return built element - - - return element; - } // Inaert an element after another - - function insertAfter(element, target) { - if (!is$2.element(element) || !is$2.element(target)) { - return; - } - - target.parentNode.insertBefore(element, target.nextSibling); - } // Insert a DocumentFragment - - function insertElement(type, parent, attributes, text) { - if (!is$2.element(parent)) { - return; - } - - parent.appendChild(createElement$1(type, attributes, text)); - } // Remove element(s) - - function removeElement(element) { - if (is$2.nodeList(element) || is$2.array(element)) { - Array.from(element).forEach(removeElement); - return; - } - - if (!is$2.element(element) || !is$2.element(element.parentNode)) { - return; - } - - element.parentNode.removeChild(element); - } // Remove all child elements - - function emptyElement(element) { - if (!is$2.element(element)) { - return; - } - - var length = element.childNodes.length; - - while (length > 0) { - element.removeChild(element.lastChild); - length -= 1; - } - } // Replace element - - function replaceElement(newChild, oldChild) { - if (!is$2.element(oldChild) || !is$2.element(oldChild.parentNode) || !is$2.element(newChild)) { - return null; - } - - oldChild.parentNode.replaceChild(newChild, oldChild); - return newChild; - } // Get an attribute object from a string selector - - function getAttributesFromSelector(sel, existingAttributes) { - // For example: - // '.test' to { class: 'test' } - // '#test' to { id: 'test' } - // '[data-test="test"]' to { 'data-test': 'test' } - if (!is$2.string(sel) || is$2.empty(sel)) { - return {}; - } - - var attributes = {}; - var existing = extend$1({}, existingAttributes); - sel.split(',').forEach(function (s) { - // Remove whitespace - var selector = s.trim(); - var className = selector.replace('.', ''); - var stripped = selector.replace(/[[\]]/g, ''); // Get the parts and value - - var parts = stripped.split('='); - - var _parts = _slicedToArray(parts, 1), - key = _parts[0]; - - var value = parts.length > 1 ? parts[1].replace(/["']/g, '') : ''; // Get the first character - - var start = selector.charAt(0); - - switch (start) { - case '.': - // Add to existing classname - if (is$2.string(existing.class)) { - attributes.class = "".concat(existing.class, " ").concat(className); - } else { - attributes.class = className; - } - - break; - - case '#': - // ID selector - attributes.id = selector.replace('#', ''); - break; - - case '[': - // Attribute selector - attributes[key] = value; - break; - } - }); - return extend$1(existing, attributes); - } // Toggle hidden - - function toggleHidden(element, hidden) { - if (!is$2.element(element)) { - return; - } - - var hide = hidden; - - if (!is$2.boolean(hide)) { - hide = !element.hidden; - } // eslint-disable-next-line no-param-reassign - - - element.hidden = hide; - } // Mirror Element.classList.toggle, with IE compatibility for "force" argument - - function toggleClass(element, className, force) { - if (is$2.nodeList(element)) { - return Array.from(element).map(function (e) { - return toggleClass(e, className, force); - }); - } - - if (is$2.element(element)) { - var method = 'toggle'; - - if (typeof force !== 'undefined') { - method = force ? 'add' : 'remove'; - } - - element.classList[method](className); - return element.classList.contains(className); - } - - return false; - } // Has class name - - function hasClass(element, className) { - return is$2.element(element) && element.classList.contains(className); - } // Element matches selector - - function matches$2(element, selector) { - var _Element = Element, - prototype = _Element.prototype; - - function match() { - return Array.from(document.querySelectorAll(selector)).includes(this); - } - - var method = prototype.matches || prototype.webkitMatchesSelector || prototype.mozMatchesSelector || prototype.msMatchesSelector || match; - return method.call(element, selector); - } // Closest ancestor element matching selector (also tests element itself) - - function closest(element, selector) { - var _Element2 = Element, - prototype = _Element2.prototype; // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill - - function closestElement() { - var el = this; - - do { - if (matches$2.matches(el, selector)) return el; - el = el.parentElement || el.parentNode; - } while (el !== null && el.nodeType === 1); - - return null; - } - - var method = prototype.closest || closestElement; - return method.call(element, selector); - } // Find all elements - - function getElements(selector) { - return this.elements.container.querySelectorAll(selector); - } // Find a single element - - function getElement(selector) { - return this.elements.container.querySelector(selector); - } // Set focus and tab focus class - - function setFocus() { - var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; - var tabFocus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - if (!is$2.element(element)) { - return; - } // Set regular focus - - - element.focus({ - preventScroll: true - }); // If we want to mimic keyboard focus via tab - - if (tabFocus) { - toggleClass(element, this.config.classNames.tabFocus); - } - } - - var defaultCodecs = { - 'audio/ogg': 'vorbis', - 'audio/wav': '1', - 'video/webm': 'vp8, vorbis', - 'video/mp4': 'avc1.42E01E, mp4a.40.2', - 'video/ogg': 'theora' - }; // Check for feature support - - var support = { - // Basic support - audio: 'canPlayType' in document.createElement('audio'), - video: 'canPlayType' in document.createElement('video'), - // Check for support - // Basic functionality vs full UI - check: function check(type, provider, playsinline) { - var canPlayInline = browser.isIPhone && playsinline && support.playsinline; - var api = support[type] || provider !== 'html5'; - var ui = api && support.rangeInput && (type !== 'video' || !browser.isIPhone || canPlayInline); - return { - api: api, - ui: ui - }; - }, - // Picture-in-picture support - // Safari & Chrome only currently - pip: function () { - if (browser.isIPhone) { - return false; - } // Safari - // https://developer.apple.com/documentation/webkitjs/adding_picture_in_picture_to_your_safari_media_controls - - - if (is$2.function(createElement$1('video').webkitSetPresentationMode)) { - return true; - } // Chrome - // https://developers.google.com/web/updates/2018/10/watch-video-using-picture-in-picture - - - if (document.pictureInPictureEnabled && !createElement$1('video').disablePictureInPicture) { - return true; - } - - return false; - }(), - // Airplay support - // Safari only currently - airplay: is$2.function(window.WebKitPlaybackTargetAvailabilityEvent), - // Inline playback support - // https://webkit.org/blog/6784/new-video-policies-for-ios/ - playsinline: 'playsInline' in document.createElement('video'), - // Check for mime type support against a player instance - // Credits: http://diveintohtml5.info/everything.html - // Related: http://www.leanbackplayer.com/test/h5mt.html - mime: function mime(input) { - if (is$2.empty(input)) { - return false; - } - - var _input$split = input.split('/'), - _input$split2 = _slicedToArray(_input$split, 1), - mediaType = _input$split2[0]; - - var type = input; // Verify we're using HTML5 and there's no media type mismatch - - if (!this.isHTML5 || mediaType !== this.type) { - return false; - } // Add codec if required - - - if (Object.keys(defaultCodecs).includes(type)) { - type += "; codecs=\"".concat(defaultCodecs[input], "\""); - } - - try { - return Boolean(type && this.media.canPlayType(type).replace(/no/, '')); - } catch (e) { - return false; - } - }, - // Check for textTracks support - textTracks: 'textTracks' in document.createElement('video'), - // Sliders - rangeInput: function () { - var range = document.createElement('input'); - range.type = 'range'; - return range.type === 'range'; - }(), - // Touch - // NOTE: Remember a device can be mouse + touch enabled so we check on first touch event - touch: 'ontouchstart' in document.documentElement, - // Detect transitions support - transitions: transitionEndEvent !== false, - // Reduced motion iOS & MacOS setting - // https://webkit.org/blog/7551/responsive-design-for-motion/ - reducedMotion: 'matchMedia' in window && window.matchMedia('(prefers-reduced-motion)').matches - }; - - // https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md - // https://www.youtube.com/watch?v=NPM6172J22g - - var supportsPassiveListeners = function () { - // Test via a getter in the options object to see if the passive property is accessed - var supported = false; - - try { - var options = Object.defineProperty({}, 'passive', { - get: function get() { - supported = true; - return null; - } - }); - window.addEventListener('test', null, options); - window.removeEventListener('test', null, options); - } catch (e) {// Do nothing - } - - return supported; - }(); // Toggle event listener - - - function toggleListener(element, event, callback) { - var _this = this; - - var toggle = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - var passive = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; - var capture = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false; - - // Bail if no element, event, or callback - if (!element || !('addEventListener' in element) || is$2.empty(event) || !is$2.function(callback)) { - return; - } // Allow multiple events - - - var events = event.split(' '); // Build options - // Default to just the capture boolean for browsers with no passive listener support - - var options = capture; // If passive events listeners are supported - - if (supportsPassiveListeners) { - options = { - // Whether the listener can be passive (i.e. default never prevented) - passive: passive, - // Whether the listener is a capturing listener or not - capture: capture - }; - } // If a single node is passed, bind the event listener - - - events.forEach(function (type) { - if (_this && _this.eventListeners && toggle) { - // Cache event listener - _this.eventListeners.push({ - element: element, - type: type, - callback: callback, - options: options - }); - } - - element[toggle ? 'addEventListener' : 'removeEventListener'](type, callback, options); - }); - } // Bind event handler - - function on(element) { - var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - var callback = arguments.length > 2 ? arguments[2] : undefined; - var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; - var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; - toggleListener.call(this, element, events, callback, true, passive, capture); - } // Unbind event handler - - function off(element) { - var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - var callback = arguments.length > 2 ? arguments[2] : undefined; - var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; - var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; - toggleListener.call(this, element, events, callback, false, passive, capture); - } // Bind once-only event handler - - function once(element) { - var _this2 = this; - - var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - var callback = arguments.length > 2 ? arguments[2] : undefined; - var passive = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; - var capture = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; - - var onceCallback = function onceCallback() { - off(element, events, onceCallback, passive, capture); - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - callback.apply(_this2, args); - }; - - toggleListener.call(this, element, events, onceCallback, true, passive, capture); - } // Trigger event - - function triggerEvent(element) { - var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - var bubbles = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - var detail = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; - - // Bail if no element - if (!is$2.element(element) || is$2.empty(type)) { - return; - } // Create and dispatch the event - - - var event = new CustomEvent(type, { - bubbles: bubbles, - detail: _objectSpread2(_objectSpread2({}, detail), {}, { - plyr: this - }) - }); // Dispatch the event - - element.dispatchEvent(event); - } // Unbind all cached event listeners - - function unbindListeners() { - if (this && this.eventListeners) { - this.eventListeners.forEach(function (item) { - var element = item.element, - type = item.type, - callback = item.callback, - options = item.options; - element.removeEventListener(type, callback, options); - }); - this.eventListeners = []; - } - } // Run method when / if player is ready - - function ready() { - var _this3 = this; - - return new Promise(function (resolve) { - return _this3.ready ? setTimeout(resolve, 0) : on.call(_this3, _this3.elements.container, 'ready', resolve); - }).then(function () {}); - } - - /** - * Silence a Promise-like object. - * This is useful for avoiding non-harmful, but potentially confusing "uncaught - * play promise" rejection error messages. - * @param {Object} value An object that may or may not be `Promise`-like. - */ - - function silencePromise(value) { - if (is$2.promise(value)) { - value.then(null, function () {}); - } - } - - function validateRatio(input) { - if (!is$2.array(input) && (!is$2.string(input) || !input.includes(':'))) { - return false; - } - - var ratio = is$2.array(input) ? input : input.split(':'); - return ratio.map(Number).every(is$2.number); - } - function reduceAspectRatio(ratio) { - if (!is$2.array(ratio) || !ratio.every(is$2.number)) { - return null; - } - - var _ratio = _slicedToArray(ratio, 2), - width = _ratio[0], - height = _ratio[1]; - - var getDivider = function getDivider(w, h) { - return h === 0 ? w : getDivider(h, w % h); - }; - - var divider = getDivider(width, height); - return [width / divider, height / divider]; - } - function getAspectRatio(input) { - var parse = function parse(ratio) { - return validateRatio(ratio) ? ratio.split(':').map(Number) : null; - }; // Try provided ratio - - - var ratio = parse(input); // Get from config - - if (ratio === null) { - ratio = parse(this.config.ratio); - } // Get from embed - - - if (ratio === null && !is$2.empty(this.embed) && is$2.array(this.embed.ratio)) { - ratio = this.embed.ratio; - } // Get from HTML5 video - - - if (ratio === null && this.isHTML5) { - var _this$media = this.media, - videoWidth = _this$media.videoWidth, - videoHeight = _this$media.videoHeight; - ratio = reduceAspectRatio([videoWidth, videoHeight]); - } - - return ratio; - } // Set aspect ratio for responsive container - - function setAspectRatio(input) { - if (!this.isVideo) { - return {}; - } - - var wrapper = this.elements.wrapper; - var ratio = getAspectRatio.call(this, input); - - var _ref = is$2.array(ratio) ? ratio : [0, 0], - _ref2 = _slicedToArray(_ref, 2), - w = _ref2[0], - h = _ref2[1]; - - var padding = 100 / w * h; - wrapper.style.paddingBottom = "".concat(padding, "%"); // For Vimeo we have an extra
to hide the standard controls and UI - - if (this.isVimeo && !this.config.vimeo.premium && this.supported.ui) { - var height = 100 / this.media.offsetWidth * parseInt(window.getComputedStyle(this.media).paddingBottom, 10); - var offset = (height - padding) / (height / 50); - - if (this.fullscreen.active) { - wrapper.style.paddingBottom = null; - } else { - this.media.style.transform = "translateY(-".concat(offset, "%)"); - } - } else if (this.isHTML5) { - wrapper.classList.toggle(this.config.classNames.videoFixedRatio, ratio !== null); - } - - return { - padding: padding, - ratio: ratio - }; - } - - var html5 = { - getSources: function getSources() { - var _this = this; - - if (!this.isHTML5) { - return []; - } - - var sources = Array.from(this.media.querySelectorAll('source')); // Filter out unsupported sources (if type is specified) - - return sources.filter(function (source) { - var type = source.getAttribute('type'); - - if (is$2.empty(type)) { - return true; - } - - return support.mime.call(_this, type); - }); - }, - // Get quality levels - getQualityOptions: function getQualityOptions() { - // Whether we're forcing all options (e.g. for streaming) - if (this.config.quality.forced) { - return this.config.quality.options; - } // Get sizes from elements - - - return html5.getSources.call(this).map(function (source) { - return Number(source.getAttribute('size')); - }).filter(Boolean); - }, - setup: function setup() { - if (!this.isHTML5) { - return; - } - - var player = this; // Set speed options from config - - player.options.speed = player.config.speed.options; // Set aspect ratio if fixed - - if (!is$2.empty(this.config.ratio)) { - setAspectRatio.call(player); - } // Quality - - - Object.defineProperty(player.media, 'quality', { - get: function get() { - // Get sources - var sources = html5.getSources.call(player); - var source = sources.find(function (s) { - return s.getAttribute('src') === player.source; - }); // Return size, if match is found - - return source && Number(source.getAttribute('size')); - }, - set: function set(input) { - if (player.quality === input) { - return; - } // If we're using an an external handler... - - - if (player.config.quality.forced && is$2.function(player.config.quality.onChange)) { - player.config.quality.onChange(input); - } else { - // Get sources - var sources = html5.getSources.call(player); // Get first match for requested size - - var source = sources.find(function (s) { - return Number(s.getAttribute('size')) === input; - }); // No matching source found - - if (!source) { - return; - } // Get current state - - - var _player$media = player.media, - currentTime = _player$media.currentTime, - paused = _player$media.paused, - preload = _player$media.preload, - readyState = _player$media.readyState, - playbackRate = _player$media.playbackRate; // Set new source - - player.media.src = source.getAttribute('src'); // Prevent loading if preload="none" and the current source isn't loaded (#1044) - - if (preload !== 'none' || readyState) { - // Restore time - player.once('loadedmetadata', function () { - player.speed = playbackRate; - player.currentTime = currentTime; // Resume playing - - if (!paused) { - silencePromise(player.play()); - } - }); // Load new source - - player.media.load(); - } - } // Trigger change event - - - triggerEvent.call(player, player.media, 'qualitychange', false, { - quality: input - }); - } - }); - }, - // Cancel current network requests - // See https://github.com/sampotts/plyr/issues/174 - cancelRequests: function cancelRequests() { - if (!this.isHTML5) { - return; - } // Remove child sources - - - removeElement(html5.getSources.call(this)); // Set blank video src attribute - // This is to prevent a MEDIA_ERR_SRC_NOT_SUPPORTED error - // Info: http://stackoverflow.com/questions/32231579/how-to-properly-dispose-of-an-html5-video-and-close-socket-or-connection - - this.media.setAttribute('src', this.config.blankVideo); // Load the new empty source - // This will cancel existing requests - // See https://github.com/sampotts/plyr/issues/174 - - this.media.load(); // Debugging - - this.debug.log('Cancelled network requests'); - } - }; - - function dedupe(array) { - if (!is$2.array(array)) { - return array; - } - - return array.filter(function (item, index) { - return array.indexOf(item) === index; - }); - } // Get the closest value in an array - - function closest$1(array, value) { - if (!is$2.array(array) || !array.length) { - return null; - } - - return array.reduce(function (prev, curr) { - return Math.abs(curr - value) < Math.abs(prev - value) ? curr : prev; - }); - } - - var HAS_SPECIES_SUPPORT$6 = arrayMethodHasSpeciesSupport$1('slice'); - var USES_TO_LENGTH$j = arrayMethodUsesToLength$1('slice', { ACCESSORS: true, 0: 0, 1: 2 }); - - var SPECIES$d = wellKnownSymbol$1('species'); - var nativeSlice$1 = [].slice; - var max$6 = Math.max; - - // `Array.prototype.slice` method - // https://tc39.github.io/ecma262/#sec-array.prototype.slice - // fallback for not array-like ES3 strings and DOM objects - _export$1({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$6 || !USES_TO_LENGTH$j }, { - slice: function slice(start, end) { - var O = toIndexedObject$1(this); - var length = toLength$1(O.length); - var k = toAbsoluteIndex$1(start, length); - var fin = toAbsoluteIndex$1(end === undefined ? length : end, length); - // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible - var Constructor, result, n; - if (isArray$2(O)) { - Constructor = O.constructor; - // cross-realm fallback - if (typeof Constructor == 'function' && (Constructor === Array || isArray$2(Constructor.prototype))) { - Constructor = undefined; - } else if (isObject$2(Constructor)) { - Constructor = Constructor[SPECIES$d]; - if (Constructor === null) Constructor = undefined; - } - if (Constructor === Array || Constructor === undefined) { - return nativeSlice$1.call(O, k, fin); - } - } - result = new (Constructor === undefined ? Array : Constructor)(max$6(fin - k, 0)); - for (n = 0; k < fin; k++, n++) if (k in O) createProperty$1(result, n, O[k]); - result.length = n; - return result; - } - }); - - var defineProperty$f = objectDefineProperty$1.f; - var getOwnPropertyNames$4 = objectGetOwnPropertyNames$1.f; - - - - - - var setInternalState$g = internalState$1.set; - - - - var MATCH$5 = wellKnownSymbol$1('match'); - var NativeRegExp$1 = global_1$1.RegExp; - var RegExpPrototype$3 = NativeRegExp$1.prototype; - var re1$1 = /a/g; - var re2$1 = /a/g; - - // "new" should create a new object, old webkit bug - var CORRECT_NEW$1 = new NativeRegExp$1(re1$1) !== re1$1; - - var UNSUPPORTED_Y$5 = regexpStickyHelpers$1.UNSUPPORTED_Y; - - var FORCED$c = descriptors$1 && isForced_1$1('RegExp', (!CORRECT_NEW$1 || UNSUPPORTED_Y$5 || fails$1(function () { - re2$1[MATCH$5] = false; - // RegExp constructor can alter flags and IsRegExp works correct with @@match - return NativeRegExp$1(re1$1) != re1$1 || NativeRegExp$1(re2$1) == re2$1 || NativeRegExp$1(re1$1, 'i') != '/a/i'; - }))); - - // `RegExp` constructor - // https://tc39.github.io/ecma262/#sec-regexp-constructor - if (FORCED$c) { - var RegExpWrapper$1 = function RegExp(pattern, flags) { - var thisIsRegExp = this instanceof RegExpWrapper$1; - var patternIsRegExp = isRegexp$1(pattern); - var flagsAreUndefined = flags === undefined; - var sticky; - - if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper$1 && flagsAreUndefined) { - return pattern; - } - - if (CORRECT_NEW$1) { - if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source; - } else if (pattern instanceof RegExpWrapper$1) { - if (flagsAreUndefined) flags = regexpFlags$1.call(pattern); - pattern = pattern.source; - } - - if (UNSUPPORTED_Y$5) { - sticky = !!flags && flags.indexOf('y') > -1; - if (sticky) flags = flags.replace(/y/g, ''); - } - - var result = inheritIfRequired$1( - CORRECT_NEW$1 ? new NativeRegExp$1(pattern, flags) : NativeRegExp$1(pattern, flags), - thisIsRegExp ? this : RegExpPrototype$3, - RegExpWrapper$1 - ); - - if (UNSUPPORTED_Y$5 && sticky) setInternalState$g(result, { sticky: sticky }); - - return result; - }; - var proxy$1 = function (key) { - key in RegExpWrapper$1 || defineProperty$f(RegExpWrapper$1, key, { - configurable: true, - get: function () { return NativeRegExp$1[key]; }, - set: function (it) { NativeRegExp$1[key] = it; } - }); - }; - var keys$6 = getOwnPropertyNames$4(NativeRegExp$1); - var index$1 = 0; - while (keys$6.length > index$1) proxy$1(keys$6[index$1++]); - RegExpPrototype$3.constructor = RegExpWrapper$1; - RegExpWrapper$1.prototype = RegExpPrototype$3; - redefine$1(global_1$1, 'RegExp', RegExpWrapper$1); - } - - // https://tc39.github.io/ecma262/#sec-get-regexp-@@species - setSpecies$1('RegExp'); - - function generateId(prefix) { - return "".concat(prefix, "-").concat(Math.floor(Math.random() * 10000)); - } // Format string - - function format(input) { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - if (is$2.empty(input)) { - return input; - } - - return input.toString().replace(/{(\d+)}/g, function (match, i) { - return args[i].toString(); - }); - } // Get percentage - - function getPercentage(current, max) { - if (current === 0 || max === 0 || Number.isNaN(current) || Number.isNaN(max)) { - return 0; - } - - return (current / max * 100).toFixed(2); - } // Replace all occurances of a string in a string - - var replaceAll = function replaceAll() { - var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - var find = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - var replace = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; - return input.replace(new RegExp(find.toString().replace(/([.*+?^=!:${}()|[\]/\\])/g, '\\$1'), 'g'), replace.toString()); - }; // Convert to title case - - var toTitleCase = function toTitleCase() { - var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - return input.toString().replace(/\w\S*/g, function (text) { - return text.charAt(0).toUpperCase() + text.substr(1).toLowerCase(); - }); - }; // Convert string to pascalCase - - function toPascalCase() { - var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - var string = input.toString(); // Convert kebab case - - string = replaceAll(string, '-', ' '); // Convert snake case - - string = replaceAll(string, '_', ' '); // Convert to title case - - string = toTitleCase(string); // Convert to pascal case - - return replaceAll(string, ' ', ''); - } // Convert string to pascalCase - - function toCamelCase() { - var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - var string = input.toString(); // Convert to pascal case - - string = toPascalCase(string); // Convert first character to lowercase - - return string.charAt(0).toLowerCase() + string.slice(1); - } // Remove HTML from a string - - function stripHTML(source) { - var fragment = document.createDocumentFragment(); - var element = document.createElement('div'); - fragment.appendChild(element); - element.innerHTML = source; - return fragment.firstChild.innerText; - } // Like outerHTML, but also works for DocumentFragment - - function getHTML(element) { - var wrapper = document.createElement('div'); - wrapper.appendChild(element); - return wrapper.innerHTML; - } - - var resources = { - pip: 'PIP', - airplay: 'AirPlay', - html5: 'HTML5', - vimeo: 'Vimeo', - youtube: 'YouTube' - }; - var i18n = { - get: function get() { - var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - if (is$2.empty(key) || is$2.empty(config)) { - return ''; - } - - var string = getDeep(config.i18n, key); - - if (is$2.empty(string)) { - if (Object.keys(resources).includes(key)) { - return resources[key]; - } - - return ''; - } - - var replace = { - '{seektime}': config.seekTime, - '{title}': config.title - }; - Object.entries(replace).forEach(function (_ref) { - var _ref2 = _slicedToArray(_ref, 2), - k = _ref2[0], - v = _ref2[1]; - - string = replaceAll(string, k, v); - }); - return string; - } - }; - - var Storage$1 = /*#__PURE__*/function () { - function Storage(player) { - var _this = this; - - _classCallCheck(this, Storage); - - _defineProperty(this, "get", function (key) { - if (!Storage.supported || !_this.enabled) { - return null; - } - - var store = window.localStorage.getItem(_this.key); - - if (is$2.empty(store)) { - return null; - } - - var json = JSON.parse(store); - return is$2.string(key) && key.length ? json[key] : json; - }); - - _defineProperty(this, "set", function (object) { - // Bail if we don't have localStorage support or it's disabled - if (!Storage.supported || !_this.enabled) { - return; - } // Can only store objectst - - - if (!is$2.object(object)) { - return; - } // Get current storage - - - var storage = _this.get(); // Default to empty object - - - if (is$2.empty(storage)) { - storage = {}; - } // Update the working copy of the values - - - extend$1(storage, object); // Update storage - - window.localStorage.setItem(_this.key, JSON.stringify(storage)); - }); - - this.enabled = player.config.storage.enabled; - this.key = player.config.storage.key; - } // Check for actual support (see if we can use it) - - - _createClass(Storage, null, [{ - key: "supported", - get: function get() { - try { - if (!('localStorage' in window)) { - return false; - } - - var test = '___test'; // Try to use it (it might be disabled, e.g. user is in private mode) - // see: https://github.com/sampotts/plyr/issues/131 - - window.localStorage.setItem(test, test); - window.localStorage.removeItem(test); - return true; - } catch (e) { - return false; - } - } - }]); - - return Storage; - }(); - - // ========================================================================== - // Fetch wrapper - // Using XHR to avoid issues with older browsers - // ========================================================================== - function fetch(url) { - var responseType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'text'; - return new Promise(function (resolve, reject) { - try { - var request = new XMLHttpRequest(); // Check for CORS support - - if (!('withCredentials' in request)) { - return; - } - - request.addEventListener('load', function () { - if (responseType === 'text') { - try { - resolve(JSON.parse(request.responseText)); - } catch (e) { - resolve(request.responseText); - } - } else { - resolve(request.response); - } - }); - request.addEventListener('error', function () { - throw new Error(request.status); - }); - request.open('GET', url, true); // Set the required response type - - request.responseType = responseType; - request.send(); - } catch (e) { - reject(e); - } - }); - } - - // ========================================================================== - - function loadSprite(url, id) { - if (!is$2.string(url)) { - return; - } - - var prefix = 'cache'; - var hasId = is$2.string(id); - var isCached = false; - - var exists = function exists() { - return document.getElementById(id) !== null; - }; - - var update = function update(container, data) { - // eslint-disable-next-line no-param-reassign - container.innerHTML = data; // Check again incase of race condition - - if (hasId && exists()) { - return; - } // Inject the SVG to the body - - - document.body.insertAdjacentElement('afterbegin', container); - }; // Only load once if ID set - - - if (!hasId || !exists()) { - var useStorage = Storage$1.supported; // Create container - - var container = document.createElement('div'); - container.setAttribute('hidden', ''); - - if (hasId) { - container.setAttribute('id', id); - } // Check in cache - - - if (useStorage) { - var cached = window.localStorage.getItem("".concat(prefix, "-").concat(id)); - isCached = cached !== null; - - if (isCached) { - var data = JSON.parse(cached); - update(container, data.content); - } - } // Get the sprite - - - fetch(url).then(function (result) { - if (is$2.empty(result)) { - return; - } - - if (useStorage) { - window.localStorage.setItem("".concat(prefix, "-").concat(id), JSON.stringify({ - content: result - })); - } - - update(container, result); - }).catch(function () {}); - } - } - - var ceil$2 = Math.ceil; - var floor$b = Math.floor; - - // `Math.trunc` method - // https://tc39.github.io/ecma262/#sec-math.trunc - _export$1({ target: 'Math', stat: true }, { - trunc: function trunc(it) { - return (it > 0 ? floor$b : ceil$2)(it); - } - }); - - var getHours = function getHours(value) { - return Math.trunc(value / 60 / 60 % 60, 10); - }; - var getMinutes = function getMinutes(value) { - return Math.trunc(value / 60 % 60, 10); - }; - var getSeconds = function getSeconds(value) { - return Math.trunc(value % 60, 10); - }; // Format time to UI friendly string - - function formatTime() { - var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; - var displayHours = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var inverted = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - // Bail if the value isn't a number - if (!is$2.number(time)) { - return formatTime(undefined, displayHours, inverted); - } // Format time component to add leading zero - - - var format = function format(value) { - return "0".concat(value).slice(-2); - }; // Breakdown to hours, mins, secs - - - var hours = getHours(time); - var mins = getMinutes(time); - var secs = getSeconds(time); // Do we need to display hours? - - if (displayHours || hours > 0) { - hours = "".concat(hours, ":"); - } else { - hours = ''; - } // Render - - - return "".concat(inverted && time > 0 ? '-' : '').concat(hours).concat(format(mins), ":").concat(format(secs)); - } - - var controls = { - // Get icon URL - getIconUrl: function getIconUrl() { - var url = new URL(this.config.iconUrl, window.location); - var cors = url.host !== window.location.host || browser.isIE && !window.svg4everybody; - return { - url: this.config.iconUrl, - cors: cors - }; - }, - // Find the UI controls - findElements: function findElements() { - try { - this.elements.controls = getElement.call(this, this.config.selectors.controls.wrapper); // Buttons - - this.elements.buttons = { - play: getElements.call(this, this.config.selectors.buttons.play), - pause: getElement.call(this, this.config.selectors.buttons.pause), - restart: getElement.call(this, this.config.selectors.buttons.restart), - rewind: getElement.call(this, this.config.selectors.buttons.rewind), - fastForward: getElement.call(this, this.config.selectors.buttons.fastForward), - mute: getElement.call(this, this.config.selectors.buttons.mute), - pip: getElement.call(this, this.config.selectors.buttons.pip), - airplay: getElement.call(this, this.config.selectors.buttons.airplay), - settings: getElement.call(this, this.config.selectors.buttons.settings), - captions: getElement.call(this, this.config.selectors.buttons.captions), - fullscreen: getElement.call(this, this.config.selectors.buttons.fullscreen) - }; // Progress - - this.elements.progress = getElement.call(this, this.config.selectors.progress); // Inputs - - this.elements.inputs = { - seek: getElement.call(this, this.config.selectors.inputs.seek), - volume: getElement.call(this, this.config.selectors.inputs.volume) - }; // Display - - this.elements.display = { - buffer: getElement.call(this, this.config.selectors.display.buffer), - currentTime: getElement.call(this, this.config.selectors.display.currentTime), - duration: getElement.call(this, this.config.selectors.display.duration) - }; // Seek tooltip - - if (is$2.element(this.elements.progress)) { - this.elements.display.seekTooltip = this.elements.progress.querySelector(".".concat(this.config.classNames.tooltip)); - } - - return true; - } catch (error) { - // Log it - this.debug.warn('It looks like there is a problem with your custom controls HTML', error); // Restore native video controls - - this.toggleNativeControls(true); - return false; - } - }, - // Create icon - createIcon: function createIcon(type, attributes) { - var namespace = 'http://www.w3.org/2000/svg'; - var iconUrl = controls.getIconUrl.call(this); - var iconPath = "".concat(!iconUrl.cors ? iconUrl.url : '', "#").concat(this.config.iconPrefix); // Create - - var icon = document.createElementNS(namespace, 'svg'); - setAttributes$1(icon, extend$1(attributes, { - 'aria-hidden': 'true', - focusable: 'false' - })); // Create the to reference sprite - - var use = document.createElementNS(namespace, 'use'); - var path = "".concat(iconPath, "-").concat(type); // Set `href` attributes - // https://github.com/sampotts/plyr/issues/460 - // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/xlink:href - - if ('href' in use) { - use.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path); - } // Always set the older attribute even though it's "deprecated" (it'll be around for ages) - - - use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', path); // Add to - - icon.appendChild(use); - return icon; - }, - // Create hidden text label - createLabel: function createLabel(key) { - var attr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var text = i18n.get(key, this.config); - - var attributes = _objectSpread2(_objectSpread2({}, attr), {}, { - class: [attr.class, this.config.classNames.hidden].filter(Boolean).join(' ') - }); - - return createElement$1('span', attributes, text); - }, - // Create a badge - createBadge: function createBadge(text) { - if (is$2.empty(text)) { - return null; - } - - var badge = createElement$1('span', { - class: this.config.classNames.menu.value - }); - badge.appendChild(createElement$1('span', { - class: this.config.classNames.menu.badge - }, text)); - return badge; - }, - // Create a
if needed - - if (is$2.empty(source)) { - source = player.media.getAttribute(player.config.attributes.embed.id); - } - - var id = parseId(source); // Build an iframe - - var iframe = createElement$1('iframe'); - var src = format(player.config.urls.vimeo.iframe, id, params); - iframe.setAttribute('src', src); - iframe.setAttribute('allowfullscreen', ''); - iframe.setAttribute('allow', ['autoplay', 'fullscreen', 'picture-in-picture'].join('; ')); // Set the referrer policy if required - - if (!is$2.empty(referrerPolicy)) { - iframe.setAttribute('referrerPolicy', referrerPolicy); - } // Inject the package - - - if (premium || !config.customControls) { - iframe.setAttribute('data-poster', player.poster); - player.media = replaceElement(iframe, player.media); - } else { - var wrapper = createElement$1('div', { - class: player.config.classNames.embedContainer, - 'data-poster': player.poster - }); - wrapper.appendChild(iframe); - player.media = replaceElement(wrapper, player.media); - } // Get poster image - - - if (!config.customControls) { - fetch(format(player.config.urls.vimeo.api, src)).then(function (response) { - if (is$2.empty(response) || !response.thumbnail_url) { - return; - } // Set and show poster - - - ui.setPoster.call(player, response.thumbnail_url).catch(function () {}); - }); - } // Setup instance - // https://github.com/vimeo/player.js - - - player.embed = new window.Vimeo.Player(iframe, { - autopause: player.config.autopause, - muted: player.muted - }); - player.media.paused = true; - player.media.currentTime = 0; // Disable native text track rendering - - if (player.supported.ui) { - player.embed.disableTextTrack(); - } // Create a faux HTML5 API using the Vimeo API - - - player.media.play = function () { - assurePlaybackState.call(player, true); - return player.embed.play(); - }; - - player.media.pause = function () { - assurePlaybackState.call(player, false); - return player.embed.pause(); - }; - - player.media.stop = function () { - player.pause(); - player.currentTime = 0; - }; // Seeking - - - var currentTime = player.media.currentTime; - Object.defineProperty(player.media, 'currentTime', { - get: function get() { - return currentTime; - }, - set: function set(time) { - // Vimeo will automatically play on seek if the video hasn't been played before - // Get current paused state and volume etc - var embed = player.embed, - media = player.media, - paused = player.paused, - volume = player.volume; - var restorePause = paused && !embed.hasPlayed; // Set seeking state and trigger event - - media.seeking = true; - triggerEvent.call(player, media, 'seeking'); // If paused, mute until seek is complete - - Promise.resolve(restorePause && embed.setVolume(0)) // Seek - .then(function () { - return embed.setCurrentTime(time); - }) // Restore paused - .then(function () { - return restorePause && embed.pause(); - }) // Restore volume - .then(function () { - return restorePause && embed.setVolume(volume); - }).catch(function () {// Do nothing - }); - } - }); // Playback speed - - var speed = player.config.speed.selected; - Object.defineProperty(player.media, 'playbackRate', { - get: function get() { - return speed; - }, - set: function set(input) { - player.embed.setPlaybackRate(input).then(function () { - speed = input; - triggerEvent.call(player, player.media, 'ratechange'); - }).catch(function () { - // Cannot set Playback Rate, Video is probably not on Pro account - player.options.speed = [1]; - }); - } - }); // Volume - - var volume = player.config.volume; - Object.defineProperty(player.media, 'volume', { - get: function get() { - return volume; - }, - set: function set(input) { - player.embed.setVolume(input).then(function () { - volume = input; - triggerEvent.call(player, player.media, 'volumechange'); - }); - } - }); // Muted - - var muted = player.config.muted; - Object.defineProperty(player.media, 'muted', { - get: function get() { - return muted; - }, - set: function set(input) { - var toggle = is$2.boolean(input) ? input : false; - player.embed.setVolume(toggle ? 0 : player.config.volume).then(function () { - muted = toggle; - triggerEvent.call(player, player.media, 'volumechange'); - }); - } - }); // Loop - - var loop = player.config.loop; - Object.defineProperty(player.media, 'loop', { - get: function get() { - return loop; - }, - set: function set(input) { - var toggle = is$2.boolean(input) ? input : player.config.loop.active; - player.embed.setLoop(toggle).then(function () { - loop = toggle; - }); - } - }); // Source - - var currentSrc; - player.embed.getVideoUrl().then(function (value) { - currentSrc = value; - controls.setDownloadUrl.call(player); - }).catch(function (error) { - _this.debug.warn(error); - }); - Object.defineProperty(player.media, 'currentSrc', { - get: function get() { - return currentSrc; - } - }); // Ended - - Object.defineProperty(player.media, 'ended', { - get: function get() { - return player.currentTime === player.duration; - } - }); // Set aspect ratio based on video size - - Promise.all([player.embed.getVideoWidth(), player.embed.getVideoHeight()]).then(function (dimensions) { - var _dimensions = _slicedToArray(dimensions, 2), - width = _dimensions[0], - height = _dimensions[1]; - - player.embed.ratio = [width, height]; - setAspectRatio.call(_this); - }); // Set autopause - - player.embed.setAutopause(player.config.autopause).then(function (state) { - player.config.autopause = state; - }); // Get title - - player.embed.getVideoTitle().then(function (title) { - player.config.title = title; - ui.setTitle.call(_this); - }); // Get current time - - player.embed.getCurrentTime().then(function (value) { - currentTime = value; - triggerEvent.call(player, player.media, 'timeupdate'); - }); // Get duration - - player.embed.getDuration().then(function (value) { - player.media.duration = value; - triggerEvent.call(player, player.media, 'durationchange'); - }); // Get captions - - player.embed.getTextTracks().then(function (tracks) { - player.media.textTracks = tracks; - captions.setup.call(player); - }); - player.embed.on('cuechange', function (_ref) { - var _ref$cues = _ref.cues, - cues = _ref$cues === void 0 ? [] : _ref$cues; - var strippedCues = cues.map(function (cue) { - return stripHTML(cue.text); - }); - captions.updateCues.call(player, strippedCues); - }); - player.embed.on('loaded', function () { - // Assure state and events are updated on autoplay - player.embed.getPaused().then(function (paused) { - assurePlaybackState.call(player, !paused); - - if (!paused) { - triggerEvent.call(player, player.media, 'playing'); - } - }); - - if (is$2.element(player.embed.element) && player.supported.ui) { - var frame = player.embed.element; // Fix keyboard focus issues - // https://github.com/sampotts/plyr/issues/317 - - frame.setAttribute('tabindex', -1); - } - }); - player.embed.on('bufferstart', function () { - triggerEvent.call(player, player.media, 'waiting'); - }); - player.embed.on('bufferend', function () { - triggerEvent.call(player, player.media, 'playing'); - }); - player.embed.on('play', function () { - assurePlaybackState.call(player, true); - triggerEvent.call(player, player.media, 'playing'); - }); - player.embed.on('pause', function () { - assurePlaybackState.call(player, false); - }); - player.embed.on('timeupdate', function (data) { - player.media.seeking = false; - currentTime = data.seconds; - triggerEvent.call(player, player.media, 'timeupdate'); - }); - player.embed.on('progress', function (data) { - player.media.buffered = data.percent; - triggerEvent.call(player, player.media, 'progress'); // Check all loaded - - if (parseInt(data.percent, 10) === 1) { - triggerEvent.call(player, player.media, 'canplaythrough'); - } // Get duration as if we do it before load, it gives an incorrect value - // https://github.com/sampotts/plyr/issues/891 - - - player.embed.getDuration().then(function (value) { - if (value !== player.media.duration) { - player.media.duration = value; - triggerEvent.call(player, player.media, 'durationchange'); - } - }); - }); - player.embed.on('seeked', function () { - player.media.seeking = false; - triggerEvent.call(player, player.media, 'seeked'); - }); - player.embed.on('ended', function () { - player.media.paused = true; - triggerEvent.call(player, player.media, 'ended'); - }); - player.embed.on('error', function (detail) { - player.media.error = detail; - triggerEvent.call(player, player.media, 'error'); - }); // Rebuild UI - - if (config.customControls) { - setTimeout(function () { - return ui.build.call(player); - }, 0); - } - } - }; - - function parseId$1(url) { - if (is$2.empty(url)) { - return null; - } - - var regex = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/; - return url.match(regex) ? RegExp.$2 : url; - } // Set playback state and trigger change (only on actual change) - - - function assurePlaybackState$1(play) { - if (play && !this.embed.hasPlayed) { - this.embed.hasPlayed = true; - } - - if (this.media.paused === play) { - this.media.paused = !play; - triggerEvent.call(this, this.media, play ? 'play' : 'pause'); - } - } - - function getHost$2(config) { - if (config.noCookie) { - return 'https://www.youtube-nocookie.com'; - } - - if (window.location.protocol === 'http:') { - return 'http://www.youtube.com'; - } // Use YouTube's default - - - return undefined; - } - - var youtube = { - setup: function setup() { - var _this = this; - - // Add embed class for responsive - toggleClass(this.elements.wrapper, this.config.classNames.embed, true); // Setup API - - if (is$2.object(window.YT) && is$2.function(window.YT.Player)) { - youtube.ready.call(this); - } else { - // Reference current global callback - var callback = window.onYouTubeIframeAPIReady; // Set callback to process queue - - window.onYouTubeIframeAPIReady = function () { - // Call global callback if set - if (is$2.function(callback)) { - callback(); - } - - youtube.ready.call(_this); - }; // Load the SDK - - - loadScript(this.config.urls.youtube.sdk).catch(function (error) { - _this.debug.warn('YouTube API failed to load', error); - }); - } - }, - // Get the media title - getTitle: function getTitle(videoId) { - var _this2 = this; - - var url = format(this.config.urls.youtube.api, videoId); - fetch(url).then(function (data) { - if (is$2.object(data)) { - var title = data.title, - height = data.height, - width = data.width; // Set title - - _this2.config.title = title; - ui.setTitle.call(_this2); // Set aspect ratio - - _this2.embed.ratio = [width, height]; - } - - setAspectRatio.call(_this2); - }).catch(function () { - // Set aspect ratio - setAspectRatio.call(_this2); - }); - }, - // API ready - ready: function ready() { - var player = this; - var config = player.config.youtube; // Ignore already setup (race condition) - - var currentId = player.media && player.media.getAttribute('id'); - - if (!is$2.empty(currentId) && currentId.startsWith('youtube-')) { - return; - } // Get the source URL or ID - - - var source = player.media.getAttribute('src'); // Get from
if needed - - if (is$2.empty(source)) { - source = player.media.getAttribute(this.config.attributes.embed.id); - } // Replace the