diff options
author | Simon L <szaimen@e.mail.de> | 2023-05-20 00:56:07 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-20 00:56:07 +0200 |
commit | 6fc80a4c537f783fae1d54b1fac86e05b14d376d (patch) | |
tree | 179513aa1ed3fbb52720d9351a151e208c3f0199 | |
parent | 3d2d1c171ec435e1519c8319e3f141d7381cb4cb (diff) | |
parent | 98ddb81e829fff4b1e1fe27613df479c489700dd (diff) | |
download | nextcloud-server-6fc80a4c537f783fae1d54b1fac86e05b14d376d.tar.gz nextcloud-server-6fc80a4c537f783fae1d54b1fac86e05b14d376d.zip |
Merge pull request #38354 from nextcloud/pulsejet/patch-ubr
Make unsupported browser check asynchronous
-rw-r--r-- | core/src/unsupported-browser-redirect.js | 7 | ||||
-rw-r--r-- | dist/9551-9551.js | 3 | ||||
-rw-r--r-- | dist/9551-9551.js.LICENSE.txt | 64 | ||||
-rw-r--r-- | dist/9551-9551.js.map | 1 | ||||
-rw-r--r-- | dist/core-unsupported-browser-redirect.js | 4 | ||||
-rw-r--r-- | dist/core-unsupported-browser-redirect.js.LICENSE.txt | 44 | ||||
-rw-r--r-- | dist/core-unsupported-browser-redirect.js.map | 2 |
7 files changed, 75 insertions, 50 deletions
diff --git a/core/src/unsupported-browser-redirect.js b/core/src/unsupported-browser-redirect.js index 5ea64221a04..3ecf0b4dbe7 100644 --- a/core/src/unsupported-browser-redirect.js +++ b/core/src/unsupported-browser-redirect.js @@ -19,8 +19,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import { testSupportedBrowser } from './utils/RedirectUnsupportedBrowsers.js' - if (!window.TESTING && !OC?.config?.no_unsupported_browser_warning) { - testSupportedBrowser() + window.addEventListener('DOMContentLoaded', async function() { + const { testSupportedBrowser } = await import('./utils/RedirectUnsupportedBrowsers.js') + testSupportedBrowser() + }) } diff --git a/dist/9551-9551.js b/dist/9551-9551.js new file mode 100644 index 00000000000..85898e9f8f4 --- /dev/null +++ b/dist/9551-9551.js @@ -0,0 +1,3 @@ +/*! For license information please see 9551-9551.js.LICENSE.txt */ +(self.webpackChunknextcloud=self.webpackChunknextcloud||[]).push([[9551],{20452:(e,t,r)=>{"use strict";r.d(t,{Z:()=>n});var o=r(45994),s=r(17499);const n=null===(i=(0,o.ts)())?(0,s.IY)().setApp("core").build():(0,s.IY)().setApp("core").setUid(i.uid).build();var i},5650:(e,t,r)=>{"use strict";r.d(t,{Z:()=>o});const o=(0,r(62556).getBuilder)("core").clearOnLogout().persist().build()},95350:(e,t,r)=>{"use strict";r.d(t,{B:()=>l});var o=r(49232),s=r(31e3),n=r.n(s),i=r(77727),u=r.n(i);const l=(0,o.z$)({allowHigherVersions:!0,browsers:u()});n()(u())},77816:(e,t,r)=>{"use strict";r.d(t,{testSupportedBrowser:()=>d});var o=r(79753),s=r(95350),n=r(5650),i=r(20452),u=r(23085).lW;const l=(0,o.generateUrl)("/unsupported"),c="true"===n.Z.getItem("unsupported-browser-ignore"),d=function(){if(s.B.test(navigator.userAgent))i.Z.debug("this browser is officially supported ! 🚀");else if(c)i.Z.debug("this browser is NOT supported but has been manually overridden ! ⚠️");else if(-1===window.location.pathname.indexOf(l)){const e=window.location.href.replace(window.location.origin,""),t=u.from(e).toString("base64");history.pushState(null,null,"".concat(l,"?redirect_url=").concat(t)),window.location.reload()}}},72950:()=>{}}]); +//# sourceMappingURL=9551-9551.js.map?v=8ba904d6389e4bbe93e3
\ No newline at end of file diff --git a/dist/9551-9551.js.LICENSE.txt b/dist/9551-9551.js.LICENSE.txt new file mode 100644 index 00000000000..e443bc3c839 --- /dev/null +++ b/dist/9551-9551.js.LICENSE.txt @@ -0,0 +1,64 @@ +/** + * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at> + * + * @author Christoph Wurst <christoph@winzerhof-wurst.at> + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +/** + * @copyright 2021 John Molakvoæ <skjnldsv@protonmail.com> + * + * @author John Molakvoæ <skjnldsv@protonmail.com> + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +/** + * @copyright 2022 John Molakvoæ <skjnldsv@protonmail.com> + * + * @author John Molakvoæ <skjnldsv@protonmail.com> + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ diff --git a/dist/9551-9551.js.map b/dist/9551-9551.js.map new file mode 100644 index 00000000000..41e165c1dcf --- /dev/null +++ b/dist/9551-9551.js.map @@ -0,0 +1 @@ +{"version":3,"file":"9551-9551.js?v=8ba904d6389e4bbe93e3","mappings":";kJAyBA,MAYA,EAXc,QADIA,GAYOC,EAAAA,EAAAA,QAVhBC,EAAAA,EAAAA,MACLC,OAAO,QACPC,SAEIF,EAAAA,EAAAA,MACLC,OAAO,QACPE,OAAOL,EAAKM,KACZF,QATeJ,oDCDlB,SAAeO,WAAAA,YAAW,QACxBC,gBACAC,UACAL,6GCCK,MAAMM,GAA0BC,EAAAA,EAAAA,IAAkB,CAAEC,qBAAqB,EAAMC,SAAUC,MAC/DC,IAAaD,oICHvC,MACDE,GAAeC,EAAAA,EAAAA,aAAY,gBAE3BC,EAAoE,SAA9CC,EAAAA,EAAAA,QAHK,8BASpBC,EAAuB,WACnC,GAAIV,EAAAA,EAAAA,KAA6BW,UAAUC,WAC1CC,EAAAA,EAAAA,MAAa,kDAKd,GAAIL,EACHK,EAAAA,EAAAA,MAAa,4EAMd,IAAwD,IAApDC,OAAOC,SAASC,SAASC,QAAQX,GAAsB,CAC1D,MAAMY,EAAcJ,OAAOC,SAASI,KAAKC,QAAQN,OAAOC,SAASM,OAAQ,IACnEC,EAAcC,EAAOC,KAAKN,GAAaO,SAAS,UACtDC,QAAQC,UAAU,KAAM,KAAM,GAAFC,OAAKtB,EAAY,kBAAAsB,OAAiBN,IAC9DR,OAAOC,SAASc,QACjB,CACD","sources":["webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/services/BrowserStorageService.js","webpack:///nextcloud/core/src/services/BrowsersListService.js","webpack:///nextcloud/core/src/utils/RedirectUnsupportedBrowsers.js"],"sourcesContent":["/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nconst getLogger = user => {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n","/**\n * @copyright 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getBuilder } from '@nextcloud/browser-storage'\n\nexport default getBuilder('core')\n\t.clearOnLogout()\n\t.persist()\n\t.build()\n","/**\n * @copyright 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getUserAgentRegex } from 'browserslist-useragent-regexp'\n// eslint-disable-next-line n/no-extraneous-import\nimport browserslist from 'browserslist'\nimport browserslistConfig from '@nextcloud/browserslist-config'\n\n// Generate a regex that matches user agents to detect incompatible browsers\nexport const supportedBrowsersRegExp = getUserAgentRegex({ allowHigherVersions: true, browsers: browserslistConfig })\nexport const supportedBrowsers = browserslist(browserslistConfig)\n","/**\n * @copyright 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport { supportedBrowsersRegExp } from '../services/BrowsersListService.js'\nimport browserStorage from '../services/BrowserStorageService.js'\nimport logger from '../logger.js'\n\nexport const browserStorageKey = 'unsupported-browser-ignore'\nconst redirectPath = generateUrl('/unsupported')\n\nconst isBrowserOverridden = browserStorage.getItem(browserStorageKey) === 'true'\n\n/**\n * Test the current browser user agent against our official browserslist config\n * and redirect if unsupported\n */\nexport const testSupportedBrowser = function() {\n\tif (supportedBrowsersRegExp.test(navigator.userAgent)) {\n\t\tlogger.debug('this browser is officially supported ! 🚀')\n\t\treturn\n\t}\n\n\t// If incompatible BUT ignored, let's keep going\n\tif (isBrowserOverridden) {\n\t\tlogger.debug('this browser is NOT supported but has been manually overridden ! ⚠️')\n\t\treturn\n\t}\n\n\t// If incompatible, NOT overridden AND NOT already on the warning page,\n\t// redirect to the unsupported warning page\n\tif (window.location.pathname.indexOf(redirectPath) === -1) {\n\t\tconst redirectUrl = window.location.href.replace(window.location.origin, '')\n\t\tconst base64Param = Buffer.from(redirectUrl).toString('base64')\n\t\thistory.pushState(null, null, `${redirectPath}?redirect_url=${base64Param}`)\n\t\twindow.location.reload()\n\t}\n}\n"],"names":["user","getCurrentUser","getLoggerBuilder","setApp","build","setUid","uid","getBuilder","clearOnLogout","persist","supportedBrowsersRegExp","getUserAgentRegex","allowHigherVersions","browsers","browserslistConfig","browserslist","redirectPath","generateUrl","isBrowserOverridden","browserStorage","testSupportedBrowser","navigator","userAgent","logger","window","location","pathname","indexOf","redirectUrl","href","replace","origin","base64Param","Buffer","from","toString","history","pushState","concat","reload"],"sourceRoot":""}
\ No newline at end of file diff --git a/dist/core-unsupported-browser-redirect.js b/dist/core-unsupported-browser-redirect.js index 9ab0b8e82f0..4a50465dc11 100644 --- a/dist/core-unsupported-browser-redirect.js +++ b/dist/core-unsupported-browser-redirect.js @@ -1,3 +1,3 @@ /*! For license information please see core-unsupported-browser-redirect.js.LICENSE.txt */ -(()=>{var e,r={25714:(e,r,o)=>{"use strict";var t=o(79753),n=o(49232),i=o(31e3),l=o.n(i),a=o(77727),s=o.n(a);const u=(0,n.z$)({allowHigherVersions:!0,browsers:s()});l()(s());const d=(0,o(62556).getBuilder)("core").clearOnLogout().persist().build();var c=o(45994),p=o(17499);const f=null===(b=(0,c.ts)())?(0,p.IY)().setApp("core").build():(0,p.IY)().setApp("core").setUid(b.uid).build();var b,v=o(23085).lW;const h=(0,t.generateUrl)("/unsupported"),g="true"===d.getItem("unsupported-browser-ignore");var w,y;window.TESTING||null!==(w=OC)&&void 0!==w&&null!==(y=w.config)&&void 0!==y&&y.no_unsupported_browser_warning||function(){if(u.test(navigator.userAgent))f.debug("this browser is officially supported ! 🚀");else if(g)f.debug("this browser is NOT supported but has been manually overridden ! ⚠️");else if(-1===window.location.pathname.indexOf(h)){const e=window.location.href.replace(window.location.origin,""),r=v.from(e).toString("base64");history.pushState(null,null,"".concat(h,"?redirect_url=").concat(r)),window.location.reload()}}()},72950:()=>{}},o={};function t(e){var n=o[e];if(void 0!==n)return n.exports;var i=o[e]={id:e,loaded:!1,exports:{}};return r[e].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}t.m=r,e=[],t.O=(r,o,n,i)=>{if(!o){var l=1/0;for(d=0;d<e.length;d++){o=e[d][0],n=e[d][1],i=e[d][2];for(var a=!0,s=0;s<o.length;s++)(!1&i||l>=i)&&Object.keys(t.O).every((e=>t.O[e](o[s])))?o.splice(s--,1):(a=!1,i<l&&(l=i));if(a){e.splice(d--,1);var u=n();void 0!==u&&(r=u)}}return r}i=i||0;for(var d=e.length;d>0&&e[d-1][2]>i;d--)e[d]=e[d-1];e[d]=[o,n,i]},t.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),t.j=8876,(()=>{t.b=document.baseURI||self.location.href;var e={8876:0};t.O.j=r=>0===e[r];var r=(r,o)=>{var n,i,l=o[0],a=o[1],s=o[2],u=0;if(l.some((r=>0!==e[r]))){for(n in a)t.o(a,n)&&(t.m[n]=a[n]);if(s)var d=s(t)}for(r&&r(o);u<l.length;u++)i=l[u],t.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return t.O(d)},o=self.webpackChunknextcloud=self.webpackChunknextcloud||[];o.forEach(r.bind(null,0)),o.push=r.bind(null,o.push.bind(o))})(),t.nc=void 0;var n=t.O(void 0,[7874],(()=>t(25714)));n=t.O(n)})(); -//# sourceMappingURL=core-unsupported-browser-redirect.js.map?v=f272594296b7d3434246
\ No newline at end of file +(()=>{var e,r,t,o,n={},a={};function i(e){var r=a[e];if(void 0!==r)return r.exports;var t=a[e]={id:e,loaded:!1,exports:{}};return n[e].call(t.exports,t,t.exports,i),t.loaded=!0,t.exports}i.m=n,i.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return i.d(r,{a:r}),r},i.d=(e,r)=>{for(var t in r)i.o(r,t)&&!i.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((r,t)=>(i.f[t](e,r),r)),[])),i.u=e=>7874===e?"core-common.js?v=5c402e7b304792b0738d":e+"-"+e+".js?v=8ba904d6389e4bbe93e3",i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="nextcloud:",i.l=(t,o,n,a)=>{if(e[t])e[t].push(o);else{var l,d;if(void 0!==n)for(var u=document.getElementsByTagName("script"),c=0;c<u.length;c++){var s=u[c];if(s.getAttribute("src")==t||s.getAttribute("data-webpack")==r+n){l=s;break}}l||(d=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,i.nc&&l.setAttribute("nonce",i.nc),l.setAttribute("data-webpack",r+n),l.src=t),e[t]=[o];var p=(r,o)=>{l.onerror=l.onload=null,clearTimeout(f);var n=e[t];if(delete e[t],l.parentNode&&l.parentNode.removeChild(l),n&&n.forEach((e=>e(o))),r)return r(o)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=p.bind(null,l.onerror),l.onload=p.bind(null,l.onload),d&&document.head.appendChild(l)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),i.j=8876,(()=>{var e;i.g.importScripts&&(e=i.g.location+"");var r=i.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");t.length&&(e=t[t.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=e})(),(()=>{i.b=document.baseURI||self.location.href;var e={8876:0};i.f.j=(r,t)=>{var o=i.o(e,r)?e[r]:void 0;if(0!==o)if(o)t.push(o[2]);else{var n=new Promise(((t,n)=>o=e[r]=[t,n]));t.push(o[2]=n);var a=i.p+i.u(r),l=new Error;i.l(a,(t=>{if(i.o(e,r)&&(0!==(o=e[r])&&(e[r]=void 0),o)){var n=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;l.message="Loading chunk "+r+" failed.\n("+n+": "+a+")",l.name="ChunkLoadError",l.type=n,l.request=a,o[1](l)}}),"chunk-"+r,r)}};var r=(r,t)=>{var o,n,a=t[0],l=t[1],d=t[2],u=0;if(a.some((r=>0!==e[r]))){for(o in l)i.o(l,o)&&(i.m[o]=l[o]);d&&d(i)}for(r&&r(t);u<a.length;u++)n=a[u],i.o(e,n)&&e[n]&&e[n][0](),e[n]=0},t=self.webpackChunknextcloud=self.webpackChunknextcloud||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),i.nc=void 0,window.TESTING||null!==(t=OC)&&void 0!==t&&null!==(o=t.config)&&void 0!==o&&o.no_unsupported_browser_warning||window.addEventListener("DOMContentLoaded",(async function(){const{testSupportedBrowser:e}=await Promise.all([i.e(7874),i.e(9551)]).then(i.bind(i,77816));e()}))})(); +//# sourceMappingURL=core-unsupported-browser-redirect.js.map?v=f7c2db555dbb1f07ab5b
\ No newline at end of file diff --git a/dist/core-unsupported-browser-redirect.js.LICENSE.txt b/dist/core-unsupported-browser-redirect.js.LICENSE.txt index e443bc3c839..a4c9db17035 100644 --- a/dist/core-unsupported-browser-redirect.js.LICENSE.txt +++ b/dist/core-unsupported-browser-redirect.js.LICENSE.txt @@ -1,48 +1,4 @@ /** - * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at> - * - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -/** - * @copyright 2021 John Molakvoæ <skjnldsv@protonmail.com> - * - * @author John Molakvoæ <skjnldsv@protonmail.com> - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -/** * @copyright 2022 John Molakvoæ <skjnldsv@protonmail.com> * * @author John Molakvoæ <skjnldsv@protonmail.com> diff --git a/dist/core-unsupported-browser-redirect.js.map b/dist/core-unsupported-browser-redirect.js.map index 22495c0d047..162082a5f5b 100644 --- a/dist/core-unsupported-browser-redirect.js.map +++ b/dist/core-unsupported-browser-redirect.js.map @@ -1 +1 @@ -{"version":3,"file":"core-unsupported-browser-redirect.js?v=f272594296b7d3434246","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/core/src/services/BrowsersListService.js","webpack:///nextcloud/core/src/services/BrowserStorageService.js","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/utils/RedirectUnsupportedBrowsers.js","webpack:///nextcloud/core/src/unsupported-browser-redirect.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","/**\n * @copyright 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getUserAgentRegex } from 'browserslist-useragent-regexp'\n// eslint-disable-next-line n/no-extraneous-import\nimport browserslist from 'browserslist'\nimport browserslistConfig from '@nextcloud/browserslist-config'\n\n// Generate a regex that matches user agents to detect incompatible browsers\nexport const supportedBrowsersRegExp = getUserAgentRegex({ allowHigherVersions: true, browsers: browserslistConfig })\nexport const supportedBrowsers = browserslist(browserslistConfig)\n","/**\n * @copyright 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getBuilder } from '@nextcloud/browser-storage'\n\nexport default getBuilder('core')\n\t.clearOnLogout()\n\t.persist()\n\t.build()\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nconst getLogger = user => {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n","/**\n * @copyright 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport { supportedBrowsersRegExp } from '../services/BrowsersListService.js'\nimport browserStorage from '../services/BrowserStorageService.js'\nimport logger from '../logger.js'\n\nexport const browserStorageKey = 'unsupported-browser-ignore'\nconst redirectPath = generateUrl('/unsupported')\n\nconst isBrowserOverridden = browserStorage.getItem(browserStorageKey) === 'true'\n\n/**\n * Test the current browser user agent against our official browserslist config\n * and redirect if unsupported\n */\nexport const testSupportedBrowser = function() {\n\tif (supportedBrowsersRegExp.test(navigator.userAgent)) {\n\t\tlogger.debug('this browser is officially supported ! 🚀')\n\t\treturn\n\t}\n\n\t// If incompatible BUT ignored, let's keep going\n\tif (isBrowserOverridden) {\n\t\tlogger.debug('this browser is NOT supported but has been manually overridden ! ⚠️')\n\t\treturn\n\t}\n\n\t// If incompatible, NOT overridden AND NOT already on the warning page,\n\t// redirect to the unsupported warning page\n\tif (window.location.pathname.indexOf(redirectPath) === -1) {\n\t\tconst redirectUrl = window.location.href.replace(window.location.origin, '')\n\t\tconst base64Param = Buffer.from(redirectUrl).toString('base64')\n\t\thistory.pushState(null, null, `${redirectPath}?redirect_url=${base64Param}`)\n\t\twindow.location.reload()\n\t}\n}\n","/**\n * @copyright 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { testSupportedBrowser } from './utils/RedirectUnsupportedBrowsers.js'\n\nif (!window.TESTING && !OC?.config?.no_unsupported_browser_warning) {\n\ttestSupportedBrowser()\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 8876;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t8876: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], () => (__webpack_require__(25714)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","supportedBrowsersRegExp","getUserAgentRegex","allowHigherVersions","browsers","browserslistConfig","browserslist","getBuilder","clearOnLogout","persist","build","user","getCurrentUser","getLoggerBuilder","setApp","setUid","uid","redirectPath","generateUrl","isBrowserOverridden","browserStorage","window","TESTING","_OC","OC","_OC$config","config","no_unsupported_browser_warning","test","navigator","userAgent","logger","debug","location","pathname","indexOf","redirectUrl","href","replace","origin","base64Param","Buffer","from","toString","history","pushState","concat","reload","testSupportedBrowser","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","id","loaded","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","this","Function","e","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","value","nmd","paths","children","b","document","baseURI","self","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","push","nc","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"core-unsupported-browser-redirect.js?v=f7c2db555dbb1f07ab5b","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/core/src/unsupported-browser-redirect.js"],"sourcesContent":["var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames not based on template\n\tif (chunkId === 7874) return \"core-common.js?v=5c402e7b304792b0738d\";\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + \"8ba904d6389e4bbe93e3\" + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 8876;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t8876: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","/**\n * @copyright 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nif (!window.TESTING && !OC?.config?.no_unsupported_browser_warning) {\n\twindow.addEventListener('DOMContentLoaded', async function() {\n\t\tconst { testSupportedBrowser } = await import('./utils/RedirectUnsupportedBrowsers.js')\n\t\ttestSupportedBrowser()\n\t})\n}\n"],"names":["inProgress","dataWebpackPrefix","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","id","loaded","__webpack_modules__","call","m","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","f","e","chunkId","Promise","all","keys","reduce","promises","u","g","globalThis","this","Function","window","obj","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","i","length","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","fn","setTimeout","bind","type","target","head","appendChild","r","Symbol","toStringTag","value","nmd","paths","children","j","scriptUrl","importScripts","location","currentScript","Error","replace","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","error","errorType","realSrc","message","name","request","webpackJsonpCallback","parentChunkLoadingFunction","data","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","TESTING","_OC","OC","_OC$config","config","no_unsupported_browser_warning","addEventListener","async","testSupportedBrowser"],"sourceRoot":""}
\ No newline at end of file |