@ytsaurus/ui 1.12.1 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/@types/core.d.ts +38 -0
- package/build/cjs/server/components/layout-config.js +6 -1
- package/build/cjs/server/components/layout-config.js.map +1 -1
- package/build/cjs/server/components/oauth.d.ts +26 -0
- package/build/cjs/server/components/oauth.js +123 -0
- package/build/cjs/server/components/oauth.js.map +1 -0
- package/build/cjs/server/components/yt-auth.d.ts +6 -0
- package/build/cjs/server/components/yt-auth.js +23 -0
- package/build/cjs/server/components/yt-auth.js.map +1 -0
- package/build/cjs/server/controllers/login.d.ts +0 -1
- package/build/cjs/server/controllers/login.js +4 -26
- package/build/cjs/server/controllers/login.js.map +1 -1
- package/build/cjs/server/controllers/logout.d.ts +2 -0
- package/build/cjs/server/controllers/logout.js +15 -0
- package/build/cjs/server/controllers/logout.js.map +1 -0
- package/build/cjs/server/controllers/oauth-login.d.ts +4 -0
- package/build/cjs/server/controllers/oauth-login.js +30 -0
- package/build/cjs/server/controllers/oauth-login.js.map +1 -0
- package/build/cjs/server/index.js +9 -1
- package/build/cjs/server/index.js.map +1 -1
- package/build/cjs/server/middlewares/authorization.d.ts +2 -0
- package/build/cjs/server/middlewares/authorization.js +42 -0
- package/build/cjs/server/middlewares/authorization.js.map +1 -0
- package/build/cjs/server/middlewares/oauth.d.ts +2 -0
- package/build/cjs/server/middlewares/oauth.js +27 -0
- package/build/cjs/server/middlewares/oauth.js.map +1 -0
- package/build/cjs/server/middlewares/yt-auth.d.ts +1 -1
- package/build/cjs/server/middlewares/yt-auth.js +10 -42
- package/build/cjs/server/middlewares/yt-auth.js.map +1 -1
- package/build/cjs/server/routes.js +6 -1
- package/build/cjs/server/routes.js.map +1 -1
- package/build/cjs/server/utils/authorization.d.ts +6 -0
- package/build/cjs/server/utils/authorization.js +33 -0
- package/build/cjs/server/utils/authorization.js.map +1 -0
- package/build/cjs/shared/constants/index.d.ts +3 -0
- package/build/cjs/shared/constants/index.js +3 -1
- package/build/cjs/shared/constants/index.js.map +1 -1
- package/build/cjs/shared/yt-types.d.ts +2 -0
- package/build/cjs/ui/components/Login/LoginFormPage/LoginFormPage.js +23 -5
- package/build/cjs/ui/components/Login/LoginFormPage/LoginFormPage.js.map +1 -1
- package/build/cjs/ui/components/Login/LoginPageWrapper/LoginPageWrapper.css +8 -0
- package/build/cjs/ui/components/Login/LoginPageWrapper/LoginPageWrapper.css.map +1 -1
- package/build/cjs/ui/components/NumberInput/NumberInput.d.ts +1 -1
- package/build/cjs/ui/constants/docsUrls.d.ts +1 -0
- package/build/cjs/ui/constants/docsUrls.js +1 -0
- package/build/cjs/ui/constants/docsUrls.js.map +1 -1
- package/build/cjs/ui/containers/AppNavigation/AppNavigation.js +2 -0
- package/build/cjs/ui/containers/AppNavigation/AppNavigation.js.map +1 -1
- package/build/cjs/ui/containers/AppNavigation/AppNavigationComponent.d.ts +1 -1
- package/build/cjs/ui/containers/AppNavigation/AppNavigationComponent.js +5 -7
- package/build/cjs/ui/containers/AppNavigation/AppNavigationComponent.js.map +1 -1
- package/build/cjs/ui/containers/AppNavigation/AppNavigationPageLayout.d.ts +2 -0
- package/build/cjs/ui/containers/AppNavigation/AppNavigationPageLayout.js.map +1 -1
- package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js +11 -7
- package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js.map +1 -1
- package/build/cjs/ui/store/actions/tablet_cell_bundles/index.js +1 -1
- package/build/cjs/ui/store/actions/tablet_cell_bundles/index.js.map +1 -1
- package/build/cjs/ui/store/reducers/global/index.d.ts +1 -0
- package/build/cjs/ui/store/reducers/global/index.js +1 -0
- package/build/cjs/ui/store/reducers/global/index.js.map +1 -1
- package/build/cjs/ui/store/reducers/tablet_cell_bundles/index.d.ts +8 -0
- package/build/cjs/ui/store/reducers/tablet_cell_bundles/index.js.map +1 -1
- package/build/cjs/ui/store/selectors/global/index.d.ts +4 -0
- package/build/cjs/ui/store/selectors/global/index.js +14 -4
- package/build/cjs/ui/store/selectors/global/index.js.map +1 -1
- package/build/cjs/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.d.ts +2 -1
- package/build/cjs/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.js +16 -1
- package/build/cjs/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.js.map +1 -1
- package/build/esm/@types/core.d.ts +38 -0
- package/build/esm/server/components/layout-config.js +7 -2
- package/build/esm/server/components/layout-config.js.map +1 -1
- package/build/esm/server/components/oauth.d.ts +26 -0
- package/build/esm/server/components/oauth.js +169 -0
- package/build/esm/server/components/oauth.js.map +1 -0
- package/build/esm/server/components/yt-auth.d.ts +6 -0
- package/build/esm/server/components/yt-auth.js +17 -0
- package/build/esm/server/components/yt-auth.js.map +1 -0
- package/build/esm/server/controllers/login.d.ts +0 -1
- package/build/esm/server/controllers/login.js +41 -88
- package/build/esm/server/controllers/login.js.map +1 -1
- package/build/esm/server/controllers/logout.d.ts +2 -0
- package/build/esm/server/controllers/logout.js +11 -0
- package/build/esm/server/controllers/logout.js.map +1 -0
- package/build/esm/server/controllers/oauth-login.d.ts +4 -0
- package/build/esm/server/controllers/oauth-login.js +50 -0
- package/build/esm/server/controllers/oauth-login.js.map +1 -0
- package/build/esm/server/index.js +7 -2
- package/build/esm/server/index.js.map +1 -1
- package/build/esm/server/middlewares/authorization.d.ts +2 -0
- package/build/esm/server/middlewares/authorization.js +74 -0
- package/build/esm/server/middlewares/authorization.js.map +1 -0
- package/build/esm/server/middlewares/oauth.d.ts +2 -0
- package/build/esm/server/middlewares/oauth.js +50 -0
- package/build/esm/server/middlewares/oauth.js.map +1 -0
- package/build/esm/server/middlewares/yt-auth.d.ts +1 -1
- package/build/esm/server/middlewares/yt-auth.js +8 -58
- package/build/esm/server/middlewares/yt-auth.js.map +1 -1
- package/build/esm/server/routes.js +16 -2
- package/build/esm/server/routes.js.map +1 -1
- package/build/esm/server/utils/authorization.d.ts +6 -0
- package/build/esm/server/utils/authorization.js +28 -0
- package/build/esm/server/utils/authorization.js.map +1 -0
- package/build/esm/shared/constants/index.d.ts +3 -0
- package/build/esm/shared/constants/index.js +2 -1
- package/build/esm/shared/constants/index.js.map +1 -1
- package/build/esm/shared/yt-types.d.ts +2 -0
- package/build/esm/ui/components/Login/LoginFormPage/LoginFormPage.js +24 -6
- package/build/esm/ui/components/Login/LoginFormPage/LoginFormPage.js.map +1 -1
- package/build/esm/ui/components/Login/LoginPageWrapper/LoginPageWrapper.css +8 -0
- package/build/esm/ui/components/Login/LoginPageWrapper/LoginPageWrapper.css.map +1 -1
- package/build/esm/ui/components/Login/LoginPageWrapper/LoginPageWrapper.scss +12 -0
- package/build/esm/ui/components/NumberInput/NumberInput.d.ts +1 -1
- package/build/esm/ui/constants/docsUrls.d.ts +1 -0
- package/build/esm/ui/constants/docsUrls.js +1 -0
- package/build/esm/ui/constants/docsUrls.js.map +1 -1
- package/build/esm/ui/containers/AppNavigation/AppNavigation.js +3 -1
- package/build/esm/ui/containers/AppNavigation/AppNavigation.js.map +1 -1
- package/build/esm/ui/containers/AppNavigation/AppNavigationComponent.d.ts +1 -1
- package/build/esm/ui/containers/AppNavigation/AppNavigationComponent.js +5 -7
- package/build/esm/ui/containers/AppNavigation/AppNavigationComponent.js.map +1 -1
- package/build/esm/ui/containers/AppNavigation/AppNavigationPageLayout.d.ts +2 -0
- package/build/esm/ui/containers/AppNavigation/AppNavigationPageLayout.js.map +1 -1
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js +12 -8
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js.map +1 -1
- package/build/esm/ui/store/actions/tablet_cell_bundles/index.js +1 -1
- package/build/esm/ui/store/actions/tablet_cell_bundles/index.js.map +1 -1
- package/build/esm/ui/store/reducers/global/index.d.ts +1 -0
- package/build/esm/ui/store/reducers/global/index.js +1 -0
- package/build/esm/ui/store/reducers/global/index.js.map +1 -1
- package/build/esm/ui/store/reducers/tablet_cell_bundles/index.d.ts +8 -0
- package/build/esm/ui/store/reducers/tablet_cell_bundles/index.js.map +1 -1
- package/build/esm/ui/store/selectors/global/index.d.ts +4 -0
- package/build/esm/ui/store/selectors/global/index.js +12 -2
- package/build/esm/ui/store/selectors/global/index.js.map +1 -1
- package/build/esm/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.d.ts +2 -1
- package/build/esm/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.js +15 -0
- package/build/esm/ui/utils/tablet_cell_bundles/bundles/bundle-editor-dialog/index.js.map +1 -1
- package/dist/public/build/assets-manifest.json +12 -12
- package/dist/public/build/css/{main.136a49c7.css → main.e919e247.css} +2 -2
- package/dist/public/build/css/main.e919e247.css.map +1 -0
- package/dist/public/build/js/89.07445d46.chunk.js +2 -0
- package/dist/public/build/js/89.07445d46.chunk.js.map +1 -0
- package/dist/public/build/js/main.9d592639.js +3 -0
- package/dist/public/build/js/{main.69fdeec5.js.map → main.9d592639.js.map} +1 -1
- package/dist/public/build/js/{runtime.6c8d85d3.js → runtime.9491563b.js} +2 -2
- package/dist/public/build/js/{runtime.6c8d85d3.js.map → runtime.9491563b.js.map} +1 -1
- package/dist/public/build/manifest.json +8 -8
- package/dist/server/components/layout-config.js +6 -1
- package/dist/server/components/oauth.d.ts +26 -0
- package/dist/server/components/oauth.js +123 -0
- package/dist/server/components/yt-auth.d.ts +6 -0
- package/dist/server/components/yt-auth.js +23 -0
- package/dist/server/controllers/login.d.ts +0 -1
- package/dist/server/controllers/login.js +4 -26
- package/dist/server/controllers/logout.d.ts +2 -0
- package/dist/server/controllers/logout.js +15 -0
- package/dist/server/controllers/oauth-login.d.ts +4 -0
- package/dist/server/controllers/oauth-login.js +30 -0
- package/dist/server/index.js +9 -1
- package/dist/server/middlewares/authorization.d.ts +2 -0
- package/dist/server/middlewares/authorization.js +42 -0
- package/dist/server/middlewares/oauth.d.ts +2 -0
- package/dist/server/middlewares/oauth.js +27 -0
- package/dist/server/middlewares/yt-auth.d.ts +1 -1
- package/dist/server/middlewares/yt-auth.js +10 -42
- package/dist/server/routes.js +6 -1
- package/dist/server/utils/authorization.d.ts +6 -0
- package/dist/server/utils/authorization.js +33 -0
- package/dist/shared/constants/index.d.ts +3 -0
- package/dist/shared/constants/index.js +3 -1
- package/package.json +2 -2
- package/dist/public/build/css/main.136a49c7.css.map +0 -1
- package/dist/public/build/js/89.6ea87438.chunk.js +0 -2
- package/dist/public/build/js/89.6ea87438.chunk.js.map +0 -1
- package/dist/public/build/js/main.69fdeec5.js +0 -3
- /package/dist/public/build/js/{main.69fdeec5.js.LICENSE.txt → main.9d592639.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
|
|
1
|
-
(()=>{"use strict";var e,t,r,a,n,o={},i={};function d(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={id:e,loaded:!1,exports:{}};return o[e].call(r.exports,r,r.exports,d),r.loaded=!0,r.exports}d.m=o,d.amdO={},e=[],d.O=(t,r,a,n)=>{if(!r){var o=1/0;for(u=0;u<e.length;u++){for(var[r,a,n]=e[u],i=!0,
|
2
|
-
//# sourceMappingURL=runtime.
|
1
|
+
(()=>{"use strict";var e,t,r,a,n,o={},i={};function d(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={id:e,loaded:!1,exports:{}};return o[e].call(r.exports,r,r.exports,d),r.loaded=!0,r.exports}d.m=o,d.amdO={},e=[],d.O=(t,r,a,n)=>{if(!r){var o=1/0;for(u=0;u<e.length;u++){for(var[r,a,n]=e[u],i=!0,f=0;f<r.length;f++)(!1&n||o>=n)&&Object.keys(d.O).every((e=>d.O[e](r[f])))?r.splice(f--,1):(i=!1,n<o&&(o=n));if(i){e.splice(u--,1);var l=a();void 0!==l&&(t=l)}}return t}n=n||0;for(var u=e.length;u>0&&e[u-1][2]>n;u--)e[u]=e[u-1];e[u]=[r,a,n]},d.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return d.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var n=Object.create(null);d.r(n);var o={};t=t||[null,r({}),r([]),r(r)];for(var i=2&a&&e;"object"==typeof i&&!~t.indexOf(i);i=r(i))Object.getOwnPropertyNames(i).forEach((t=>o[t]=()=>e[t]));return o.default=()=>e,d.d(n,o),n},d.d=(e,t)=>{for(var r in t)d.o(t,r)&&!d.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce(((t,r)=>(d.f[r](e,t),t)),[])),d.u=e=>"js/"+(980===e?"vis-network":e)+"."+{64:"73cd3d66",89:"07445d46",122:"8dcbdc87",132:"b9a412c7",145:"70218a68",150:"0eda950b",350:"080f04b3",364:"3e4b8059",379:"e78941c7",389:"a87889ec",505:"7d7675f5",511:"88f49ffd",516:"af5fa69d",526:"1c587e53",719:"a72dd230",869:"c0b556ac",925:"d1733b8a",934:"405901da",943:"f6342dd5",955:"e1c8cf19",979:"0e3142c0",980:"b367d390"}[e]+".chunk.js",d.miniCssF=e=>"css/"+e+"."+{64:"5615c430",89:"3546950a",122:"63a98264",145:"272f2f18",150:"b7b4eaa1",350:"3552a8ae",511:"b000eadf",719:"a9e767b7",869:"8f91d9da",925:"f8e38d68",934:"adfa96ce",943:"d936073c",979:"57765dc0"}[e]+".chunk.css",d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a={},n="@ytsaurus/ui:",d.l=(e,t,r,o)=>{if(a[e])a[e].push(t);else{var i,f;if(void 0!==r)for(var l=document.getElementsByTagName("script"),u=0;u<l.length;u++){var c=l[u];if(c.getAttribute("src")==e||c.getAttribute("data-webpack")==n+r){i=c;break}}i||(f=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,d.nc&&i.setAttribute("nonce",d.nc),i.setAttribute("data-webpack",n+r),i.src=e),a[e]=[t];var s=(t,r)=>{i.onerror=i.onload=null,clearTimeout(p);var n=a[e];if(delete a[e],i.parentNode&&i.parentNode.removeChild(i),n&&n.forEach((e=>e(r))),t)return t(r)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=s.bind(null,i.onerror),i.onload=s.bind(null,i.onload),f&&document.head.appendChild(i)}},d.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;d.g.importScripts&&(e=d.g.location+"");var t=d.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var a=r.length-1;a>-1&&!e;)e=r[a--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),d.p=e+"../"})(),(()=>{if("undefined"!=typeof document){var e={666:0};d.f.miniCss=(t,r)=>{e[t]?r.push(e[t]):0!==e[t]&&{64:1,89:1,122:1,145:1,150:1,350:1,511:1,719:1,869:1,925:1,934:1,943:1,979:1}[t]&&r.push(e[t]=(e=>new Promise(((t,r)=>{var a=d.miniCssF(e),n=d.p+a;if(((e,t)=>{for(var r=document.getElementsByTagName("link"),a=0;a<r.length;a++){var n=(i=r[a]).getAttribute("data-href")||i.getAttribute("href");if("stylesheet"===i.rel&&(n===e||n===t))return i}var o=document.getElementsByTagName("style");for(a=0;a<o.length;a++){var i;if((n=(i=o[a]).getAttribute("data-href"))===e||n===t)return i}})(a,n))return t();((e,t,r,a,n)=>{var o=document.createElement("link");o.rel="stylesheet",o.type="text/css",o.onerror=o.onload=r=>{if(o.onerror=o.onload=null,"load"===r.type)a();else{var i=r&&("load"===r.type?"missing":r.type),d=r&&r.target&&r.target.href||t,f=new Error("Loading CSS chunk "+e+" failed.\n("+d+")");f.code="CSS_CHUNK_LOAD_FAILED",f.type=i,f.request=d,o.parentNode&&o.parentNode.removeChild(o),n(f)}},o.href=t,document.head.appendChild(o)})(e,n,0,t,r)})))(t).then((()=>{e[t]=0}),(r=>{throw delete e[t],r})))}}})(),(()=>{var e={666:0};d.f.j=(t,r)=>{var a=d.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else if(666!=t){var n=new Promise(((r,n)=>a=e[t]=[r,n]));r.push(a[2]=n);var o=d.p+d.u(t),i=new Error;d.l(o,(r=>{if(d.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var n=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;i.message="Loading chunk "+t+" failed.\n("+n+": "+o+")",i.name="ChunkLoadError",i.type=n,i.request=o,a[1](i)}}),"chunk-"+t,t)}else e[t]=0},d.O.j=t=>0===e[t];var t=(t,r)=>{var a,n,[o,i,f]=r,l=0;if(o.some((t=>0!==e[t]))){for(a in i)d.o(i,a)&&(d.m[a]=i[a]);if(f)var u=f(d)}for(t&&t(r);l<o.length;l++)n=o[l],d.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return d.O(u)},r=self.webpackChunk_ytsaurus_ui=self.webpackChunk_ytsaurus_ui||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})()})();
|
2
|
+
//# sourceMappingURL=runtime.9491563b.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"js/runtime.6c8d85d3.js","mappings":"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","sources":["webpack://@ytsaurus/ui/webpack/runtime/chunk loaded","webpack://@ytsaurus/ui/webpack/runtime/create fake namespace object","webpack://@ytsaurus/ui/webpack/runtime/load script","webpack://@ytsaurus/ui/webpack/bootstrap","webpack://@ytsaurus/ui/webpack/runtime/amd options","webpack://@ytsaurus/ui/webpack/runtime/compat get default export","webpack://@ytsaurus/ui/webpack/runtime/define property getters","webpack://@ytsaurus/ui/webpack/runtime/ensure chunk","webpack://@ytsaurus/ui/webpack/runtime/get javascript chunk filename","webpack://@ytsaurus/ui/webpack/runtime/get mini-css chunk filename","webpack://@ytsaurus/ui/webpack/runtime/global","webpack://@ytsaurus/ui/webpack/runtime/hasOwnProperty shorthand","webpack://@ytsaurus/ui/webpack/runtime/make namespace object","webpack://@ytsaurus/ui/webpack/runtime/node module decorator","webpack://@ytsaurus/ui/webpack/runtime/publicPath","webpack://@ytsaurus/ui/webpack/runtime/css loading","webpack://@ytsaurus/ui/webpack/runtime/jsonp chunk loading"],"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, fn, priority] = deferred[i];\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};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"@ytsaurus/ui:\";\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\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","__webpack_require__.amdO = {};","// 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 based on template\n\treturn \"js/\" + (chunkId === 980 ? \"vis-network\" : chunkId) + \".\" + {\"64\":\"73cd3d66\",\"89\":\"6ea87438\",\"122\":\"8dcbdc87\",\"132\":\"b9a412c7\",\"145\":\"70218a68\",\"150\":\"0eda950b\",\"350\":\"080f04b3\",\"364\":\"3e4b8059\",\"379\":\"e78941c7\",\"389\":\"a87889ec\",\"505\":\"7d7675f5\",\"511\":\"88f49ffd\",\"516\":\"af5fa69d\",\"526\":\"1c587e53\",\"719\":\"a72dd230\",\"869\":\"c0b556ac\",\"925\":\"d1733b8a\",\"934\":\"405901da\",\"943\":\"f6342dd5\",\"955\":\"e1c8cf19\",\"979\":\"0e3142c0\",\"980\":\"b367d390\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"64\":\"5615c430\",\"89\":\"3546950a\",\"122\":\"63a98264\",\"145\":\"272f2f18\",\"150\":\"b7b4eaa1\",\"350\":\"3552a8ae\",\"511\":\"b000eadf\",\"719\":\"a9e767b7\",\"869\":\"8f91d9da\",\"925\":\"f8e38d68\",\"934\":\"adfa96ce\",\"943\":\"d936073c\",\"979\":\"57765dc0\"}[chunkId] + \".chunk.css\";\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};","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) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\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 + \"../\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = (event) => {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = (href, fullhref) => {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = (chunkId) => {\n\treturn new Promise((resolve, reject) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t666: 0\n};\n\n__webpack_require__.f.miniCss = (chunkId, promises) => {\n\tvar cssChunks = {\"64\":1,\"89\":1,\"122\":1,\"145\":1,\"150\":1,\"350\":1,\"511\":1,\"719\":1,\"869\":1,\"925\":1,\"934\":1,\"943\":1,\"979\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, (e) => {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\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\t666: 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(666 != chunkId) {\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__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\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[\"webpackChunk_ytsaurus_ui\"] = self[\"webpackChunk_ytsaurus_ui\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","id","loaded","__webpack_modules__","call","m","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","getPrototypeOf","obj","t","value","mode","this","then","ns","create","def","current","indexOf","getOwnPropertyNames","forEach","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","Function","window","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","location","currentScript","Error","replace","p","installedCssChunks","miniCss","resolve","reject","href","fullhref","existingLinkTags","dataHref","tag","rel","existingStyleTags","findStylesheet","oldTag","linkTag","errorType","realHref","err","code","request","createStylesheet","loadStylesheet","installedChunks","installedChunkData","promise","error","realSrc","message","name","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal","self"],"sourceRoot":""}
|
1
|
+
{"version":3,"file":"js/runtime.9491563b.js","mappings":"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","sources":["webpack://@ytsaurus/ui/webpack/runtime/chunk loaded","webpack://@ytsaurus/ui/webpack/runtime/create fake namespace object","webpack://@ytsaurus/ui/webpack/runtime/load script","webpack://@ytsaurus/ui/webpack/bootstrap","webpack://@ytsaurus/ui/webpack/runtime/amd options","webpack://@ytsaurus/ui/webpack/runtime/compat get default export","webpack://@ytsaurus/ui/webpack/runtime/define property getters","webpack://@ytsaurus/ui/webpack/runtime/ensure chunk","webpack://@ytsaurus/ui/webpack/runtime/get javascript chunk filename","webpack://@ytsaurus/ui/webpack/runtime/get mini-css chunk filename","webpack://@ytsaurus/ui/webpack/runtime/global","webpack://@ytsaurus/ui/webpack/runtime/hasOwnProperty shorthand","webpack://@ytsaurus/ui/webpack/runtime/make namespace object","webpack://@ytsaurus/ui/webpack/runtime/node module decorator","webpack://@ytsaurus/ui/webpack/runtime/publicPath","webpack://@ytsaurus/ui/webpack/runtime/css loading","webpack://@ytsaurus/ui/webpack/runtime/jsonp chunk loading"],"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, fn, priority] = deferred[i];\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};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"@ytsaurus/ui:\";\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\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","__webpack_require__.amdO = {};","// 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 based on template\n\treturn \"js/\" + (chunkId === 980 ? \"vis-network\" : chunkId) + \".\" + {\"64\":\"73cd3d66\",\"89\":\"07445d46\",\"122\":\"8dcbdc87\",\"132\":\"b9a412c7\",\"145\":\"70218a68\",\"150\":\"0eda950b\",\"350\":\"080f04b3\",\"364\":\"3e4b8059\",\"379\":\"e78941c7\",\"389\":\"a87889ec\",\"505\":\"7d7675f5\",\"511\":\"88f49ffd\",\"516\":\"af5fa69d\",\"526\":\"1c587e53\",\"719\":\"a72dd230\",\"869\":\"c0b556ac\",\"925\":\"d1733b8a\",\"934\":\"405901da\",\"943\":\"f6342dd5\",\"955\":\"e1c8cf19\",\"979\":\"0e3142c0\",\"980\":\"b367d390\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"64\":\"5615c430\",\"89\":\"3546950a\",\"122\":\"63a98264\",\"145\":\"272f2f18\",\"150\":\"b7b4eaa1\",\"350\":\"3552a8ae\",\"511\":\"b000eadf\",\"719\":\"a9e767b7\",\"869\":\"8f91d9da\",\"925\":\"f8e38d68\",\"934\":\"adfa96ce\",\"943\":\"d936073c\",\"979\":\"57765dc0\"}[chunkId] + \".chunk.css\";\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};","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) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\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 + \"../\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = (event) => {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = (href, fullhref) => {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = (chunkId) => {\n\treturn new Promise((resolve, reject) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t666: 0\n};\n\n__webpack_require__.f.miniCss = (chunkId, promises) => {\n\tvar cssChunks = {\"64\":1,\"89\":1,\"122\":1,\"145\":1,\"150\":1,\"350\":1,\"511\":1,\"719\":1,\"869\":1,\"925\":1,\"934\":1,\"943\":1,\"979\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, (e) => {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\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\t666: 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(666 != chunkId) {\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__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\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[\"webpackChunk_ytsaurus_ui\"] = self[\"webpackChunk_ytsaurus_ui\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","id","loaded","__webpack_modules__","call","m","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","getPrototypeOf","obj","t","value","mode","this","then","ns","create","def","current","indexOf","getOwnPropertyNames","forEach","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","Function","window","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","location","currentScript","Error","replace","p","installedCssChunks","miniCss","resolve","reject","href","fullhref","existingLinkTags","dataHref","tag","rel","existingStyleTags","findStylesheet","oldTag","linkTag","errorType","realHref","err","code","request","createStylesheet","loadStylesheet","installedChunks","installedChunkData","promise","error","realSrc","message","name","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal","self"],"sourceRoot":""}
|
@@ -1,9 +1,9 @@
|
|
1
1
|
{
|
2
|
-
"main.css": "css/main.
|
3
|
-
"main.js": "js/main.
|
4
|
-
"runtime.js": "js/runtime.
|
2
|
+
"main.css": "css/main.e919e247.css",
|
3
|
+
"main.js": "js/main.9d592639.js",
|
4
|
+
"runtime.js": "js/runtime.9491563b.js",
|
5
5
|
"css/89.3546950a.chunk.css": "css/89.3546950a.chunk.css",
|
6
|
-
"js/89.
|
6
|
+
"js/89.07445d46.chunk.js": "js/89.07445d46.chunk.js",
|
7
7
|
"css/979.57765dc0.chunk.css": "css/979.57765dc0.chunk.css",
|
8
8
|
"js/979.0e3142c0.chunk.js": "js/979.0e3142c0.chunk.js",
|
9
9
|
"css/511.b000eadf.chunk.css": "css/511.b000eadf.chunk.css",
|
@@ -54,11 +54,11 @@
|
|
54
54
|
"assets/images/user-avatar.svg": "assets/images/user-avatar.24a15921.svg",
|
55
55
|
"assets/images/ui.jpg": "assets/images/ui.bab31938.jpg",
|
56
56
|
"assets/images/cluster-2x.svg": "assets/images/cluster-2x.e53788d6.svg",
|
57
|
-
"main.
|
58
|
-
"main.
|
59
|
-
"runtime.
|
57
|
+
"main.e919e247.css.map": "css/main.e919e247.css.map",
|
58
|
+
"main.9d592639.js.map": "js/main.9d592639.js.map",
|
59
|
+
"runtime.9491563b.js.map": "js/runtime.9491563b.js.map",
|
60
60
|
"89.3546950a.chunk.css.map": "css/89.3546950a.chunk.css.map",
|
61
|
-
"89.
|
61
|
+
"89.07445d46.chunk.js.map": "js/89.07445d46.chunk.js.map",
|
62
62
|
"979.57765dc0.chunk.css.map": "css/979.57765dc0.chunk.css.map",
|
63
63
|
"979.0e3142c0.chunk.js.map": "js/979.0e3142c0.chunk.js.map",
|
64
64
|
"511.b000eadf.chunk.css.map": "css/511.b000eadf.chunk.css.map",
|
@@ -1,8 +1,10 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.getLayoutConfig = void 0;
|
4
|
-
const utils_1 = require("../utils");
|
5
4
|
const table_column_preset_1 = require("../controllers/table-column-preset");
|
5
|
+
const utils_1 = require("../utils");
|
6
|
+
const authorization_1 = require("../utils/authorization");
|
7
|
+
const oauth_1 = require("./oauth");
|
6
8
|
async function getLayoutConfig(req, params) {
|
7
9
|
var _a;
|
8
10
|
const { login, ytConfig, settings } = params;
|
@@ -15,6 +17,7 @@ async function getLayoutConfig(req, params) {
|
|
15
17
|
version: uiVersion,
|
16
18
|
},
|
17
19
|
login,
|
20
|
+
authWay: (0, authorization_1.getAuthWay)(req),
|
18
21
|
};
|
19
22
|
const isProduction = (0, utils_1.isProductionEnv)();
|
20
23
|
const res = {
|
@@ -39,6 +42,8 @@ async function getLayoutConfig(req, params) {
|
|
39
42
|
uiSettings,
|
40
43
|
metrikaCounterId: (_a = metrikaCounter === null || metrikaCounter === void 0 ? void 0 : metrikaCounter[0]) === null || _a === void 0 ? void 0 : _a.id,
|
41
44
|
allowLoginDialog: Boolean(ytAuthCluster),
|
45
|
+
allowOAuth: (0, oauth_1.isOAuthAllowed)(req),
|
46
|
+
oauthButtonLabel: (0, oauth_1.isOAuthAllowed)(req) ? (0, oauth_1.getOAuthSettings)(req).buttonLabel : undefined,
|
42
47
|
allowUserColumnPresets: (0, table_column_preset_1.isUserColumnPresetsEnabled)(req),
|
43
48
|
odinPageEnabled: Boolean(odinBaseUrl),
|
44
49
|
},
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import type { Request, Response } from 'express';
|
2
|
+
export declare function isOAuthAllowed(req: Request): boolean;
|
3
|
+
export declare function getOAuthSettings(req: Request): {
|
4
|
+
baseURL: string;
|
5
|
+
authPath: string;
|
6
|
+
logoutPath: string;
|
7
|
+
tokenPath: string;
|
8
|
+
clientId: string;
|
9
|
+
clientSecret: string;
|
10
|
+
scope: string;
|
11
|
+
buttonLabel?: string | undefined;
|
12
|
+
};
|
13
|
+
export type OAuthAuthorizationTokens = {
|
14
|
+
access_token: string;
|
15
|
+
expires_in: number;
|
16
|
+
refresh_token: string;
|
17
|
+
refresh_expires_in: number;
|
18
|
+
};
|
19
|
+
export declare function isUserOAuthLogged(req: Request): boolean;
|
20
|
+
export declare function getOAuthAccessToken(req: Request, res: Response): Promise<any>;
|
21
|
+
export declare function removeOAuthCookies(res: Response): void;
|
22
|
+
export declare function saveOAuthTokensInCookies(res: Response, tokens: OAuthAuthorizationTokens): void;
|
23
|
+
export declare function getOAuthLoginPath(req: Request): string;
|
24
|
+
export declare function getOAuthLogoutPath(req: Request): string;
|
25
|
+
export declare function refreshOAuthToken(req: Request, token: string): Promise<OAuthAuthorizationTokens>;
|
26
|
+
export declare function exchangeOAuthToken(req: Request, code: string): Promise<OAuthAuthorizationTokens>;
|
@@ -0,0 +1,123 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.exchangeOAuthToken = exports.refreshOAuthToken = exports.getOAuthLogoutPath = exports.getOAuthLoginPath = exports.saveOAuthTokensInCookies = exports.removeOAuthCookies = exports.getOAuthAccessToken = exports.isUserOAuthLogged = exports.getOAuthSettings = exports.isOAuthAllowed = void 0;
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
8
|
+
const constants_1 = require("../../shared/constants");
|
9
|
+
function isOAuthAllowed(req) {
|
10
|
+
const config = req.ctx.config.ytOAuthSettings;
|
11
|
+
return Boolean(config &&
|
12
|
+
config.baseURL &&
|
13
|
+
config.authPath &&
|
14
|
+
config.tokenPath &&
|
15
|
+
config.clientId &&
|
16
|
+
config.clientSecret);
|
17
|
+
}
|
18
|
+
exports.isOAuthAllowed = isOAuthAllowed;
|
19
|
+
function getOAuthSettings(req) {
|
20
|
+
const config = req.ctx.config.ytOAuthSettings;
|
21
|
+
if (!config) {
|
22
|
+
throw new Error('OAuth settings is not specified');
|
23
|
+
}
|
24
|
+
return config;
|
25
|
+
}
|
26
|
+
exports.getOAuthSettings = getOAuthSettings;
|
27
|
+
function isUserOAuthLogged(req) {
|
28
|
+
return (Boolean(req.cookies[constants_1.YT_OAUTH_ACCESS_TOKEN_NAME]) ||
|
29
|
+
Boolean(req.cookies[constants_1.YT_OAUTH_REFRESH_TOKEN_NAME]));
|
30
|
+
}
|
31
|
+
exports.isUserOAuthLogged = isUserOAuthLogged;
|
32
|
+
async function getOAuthAccessToken(req, res) {
|
33
|
+
if (req.cookies[constants_1.YT_OAUTH_ACCESS_TOKEN_NAME]) {
|
34
|
+
return req.cookies[constants_1.YT_OAUTH_ACCESS_TOKEN_NAME];
|
35
|
+
}
|
36
|
+
else if (req.cookies[constants_1.YT_OAUTH_REFRESH_TOKEN_NAME]) {
|
37
|
+
const tokens = await refreshOAuthToken(req, req.cookies[constants_1.YT_OAUTH_REFRESH_TOKEN_NAME]);
|
38
|
+
saveOAuthTokensInCookies(res, tokens);
|
39
|
+
return tokens.access_token;
|
40
|
+
}
|
41
|
+
return undefined;
|
42
|
+
}
|
43
|
+
exports.getOAuthAccessToken = getOAuthAccessToken;
|
44
|
+
function removeOAuthCookies(res) {
|
45
|
+
res.clearCookie(constants_1.YT_OAUTH_ACCESS_TOKEN_NAME);
|
46
|
+
res.clearCookie(constants_1.YT_OAUTH_REFRESH_TOKEN_NAME);
|
47
|
+
}
|
48
|
+
exports.removeOAuthCookies = removeOAuthCookies;
|
49
|
+
function saveOAuthTokensInCookies(res, tokens) {
|
50
|
+
res.cookie(constants_1.YT_OAUTH_ACCESS_TOKEN_NAME, tokens.access_token, {
|
51
|
+
maxAge: tokens.expires_in * 1000,
|
52
|
+
httpOnly: true,
|
53
|
+
secure: true,
|
54
|
+
});
|
55
|
+
if (tokens.refresh_token) {
|
56
|
+
res.cookie(constants_1.YT_OAUTH_REFRESH_TOKEN_NAME, tokens.refresh_token, {
|
57
|
+
maxAge: tokens.refresh_expires_in,
|
58
|
+
httpOnly: true,
|
59
|
+
secure: true,
|
60
|
+
});
|
61
|
+
}
|
62
|
+
}
|
63
|
+
exports.saveOAuthTokensInCookies = saveOAuthTokensInCookies;
|
64
|
+
function getOAuthLoginPath(req) {
|
65
|
+
const config = getOAuthSettings(req);
|
66
|
+
const host = req.get('host');
|
67
|
+
const params = new URLSearchParams({
|
68
|
+
response_type: 'code',
|
69
|
+
client_id: config.clientId,
|
70
|
+
scope: config.scope,
|
71
|
+
redirect_uri: `https://${host}/api/oauth/callback`,
|
72
|
+
});
|
73
|
+
const url = new URL(config.authPath, config.baseURL);
|
74
|
+
url.search = params.toString();
|
75
|
+
return url.toString();
|
76
|
+
}
|
77
|
+
exports.getOAuthLoginPath = getOAuthLoginPath;
|
78
|
+
function getOAuthLogoutPath(req) {
|
79
|
+
const config = getOAuthSettings(req);
|
80
|
+
const host = req.get('host');
|
81
|
+
const params = new URLSearchParams({
|
82
|
+
post_logout_redirect_uri: `https://${host}/api/oauth/logout/callback`,
|
83
|
+
client_id: config.clientId,
|
84
|
+
});
|
85
|
+
const url = new URL(config.logoutPath, config.baseURL);
|
86
|
+
url.search = params.toString();
|
87
|
+
return url.toString();
|
88
|
+
}
|
89
|
+
exports.getOAuthLogoutPath = getOAuthLogoutPath;
|
90
|
+
async function refreshOAuthToken(req, token) {
|
91
|
+
const config = getOAuthSettings(req);
|
92
|
+
const params = new URLSearchParams({
|
93
|
+
grant_type: 'refresh_token',
|
94
|
+
client_id: config === null || config === void 0 ? void 0 : config.clientId,
|
95
|
+
refresh_token: token,
|
96
|
+
client_secret: config === null || config === void 0 ? void 0 : config.clientSecret,
|
97
|
+
});
|
98
|
+
const { data } = await axios_1.default.post(new URL(config.tokenPath, config.baseURL).toString(), params.toString(), {
|
99
|
+
headers: {
|
100
|
+
'Content-type': 'application/x-www-form-urlencoded',
|
101
|
+
},
|
102
|
+
});
|
103
|
+
return data;
|
104
|
+
}
|
105
|
+
exports.refreshOAuthToken = refreshOAuthToken;
|
106
|
+
async function exchangeOAuthToken(req, code) {
|
107
|
+
const config = getOAuthSettings(req);
|
108
|
+
const host = req.get('host');
|
109
|
+
const params = new URLSearchParams({
|
110
|
+
grant_type: 'authorization_code',
|
111
|
+
client_id: config.clientId,
|
112
|
+
code: code,
|
113
|
+
client_secret: config.clientSecret,
|
114
|
+
redirect_uri: `https://${host}/api/oauth/callback`,
|
115
|
+
});
|
116
|
+
const { data } = await axios_1.default.post(new URL(config.tokenPath, config.baseURL).toString(), params.toString(), {
|
117
|
+
headers: {
|
118
|
+
'Content-type': 'application/x-www-form-urlencoded',
|
119
|
+
},
|
120
|
+
});
|
121
|
+
return data;
|
122
|
+
}
|
123
|
+
exports.exchangeOAuthToken = exchangeOAuthToken;
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import { AppConfig } from '@gravity-ui/nodekit';
|
2
|
+
import type { Response } from 'express';
|
3
|
+
export declare function isYtAuthEnabled(config: AppConfig): boolean;
|
4
|
+
export declare function assertAuthEnabled(ytAuthCluster?: string): asserts ytAuthCluster is string;
|
5
|
+
export declare function getAuthCluster(config: AppConfig): string;
|
6
|
+
export declare function YTAuthLogout(res: Response): void;
|
@@ -0,0 +1,23 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.YTAuthLogout = exports.getAuthCluster = exports.assertAuthEnabled = exports.isYtAuthEnabled = void 0;
|
4
|
+
const constants_1 = require("../../shared/constants");
|
5
|
+
function isYtAuthEnabled(config) {
|
6
|
+
return Boolean(config.ytAuthCluster);
|
7
|
+
}
|
8
|
+
exports.isYtAuthEnabled = isYtAuthEnabled;
|
9
|
+
function assertAuthEnabled(ytAuthCluster) {
|
10
|
+
if (!ytAuthCluster) {
|
11
|
+
throw new Error('Cluster for password authentication is disabled. You have to define ytAuthCluster to use it.');
|
12
|
+
}
|
13
|
+
}
|
14
|
+
exports.assertAuthEnabled = assertAuthEnabled;
|
15
|
+
function getAuthCluster(config) {
|
16
|
+
assertAuthEnabled(config.ytAuthCluster);
|
17
|
+
return config.ytAuthCluster;
|
18
|
+
}
|
19
|
+
exports.getAuthCluster = getAuthCluster;
|
20
|
+
function YTAuthLogout(res) {
|
21
|
+
res.setHeader('set-cookie', `${constants_1.YT_CYPRESS_COOKIE_NAME}=deleted; Path=/; Max-Age=0;`);
|
22
|
+
}
|
23
|
+
exports.YTAuthLogout = YTAuthLogout;
|
@@ -1,4 +1,3 @@
|
|
1
1
|
import type { Request, Response } from 'express';
|
2
2
|
export declare function handleLogin(req: Request, res: Response): Promise<void>;
|
3
|
-
export declare function handleLogout(req: Request, res: Response): Promise<void>;
|
4
3
|
export declare function handleChangePassword(req: Request, res: Response): Promise<void>;
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.handleChangePassword = exports.
|
6
|
+
exports.handleChangePassword = exports.handleLogin = void 0;
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
8
8
|
const lodash_1 = __importDefault(require("lodash"));
|
9
9
|
const constants_1 = require("../../shared/constants");
|
@@ -13,16 +13,11 @@ const crypto_1 = __importDefault(require("crypto"));
|
|
13
13
|
// @ts-ignore
|
14
14
|
const javascript_wrapper_1 = __importDefault(require("@ytsaurus/javascript-wrapper"));
|
15
15
|
const cluster_queries_1 = require("../components/cluster-queries");
|
16
|
+
const yt_auth_1 = require("../components/yt-auth");
|
16
17
|
const yt = (0, javascript_wrapper_1.default)();
|
17
|
-
function throwAuthDisabled() {
|
18
|
-
throw new Error('Cluster for password authentication is disabled. You have to define ytAuthCluster to use it.');
|
19
|
-
}
|
20
18
|
async function handleLogin(req, res) {
|
21
19
|
try {
|
22
|
-
const
|
23
|
-
if (!ytAuthCluster) {
|
24
|
-
return throwAuthDisabled();
|
25
|
-
}
|
20
|
+
const ytAuthCluster = (0, yt_auth_1.getAuthCluster)(req.ctx.config);
|
26
21
|
const { username, password } = JSON.parse(req.body) || {};
|
27
22
|
if (!username || !password) {
|
28
23
|
throw new Error('Username and password must not be empty');
|
@@ -72,26 +67,9 @@ function removeSecureFlagIfOriginInsecure(req, headers) {
|
|
72
67
|
return acc;
|
73
68
|
}, {});
|
74
69
|
}
|
75
|
-
async function handleLogout(req, res) {
|
76
|
-
try {
|
77
|
-
const { ytAuthCluster } = req.ctx.config;
|
78
|
-
if (!ytAuthCluster) {
|
79
|
-
return throwAuthDisabled();
|
80
|
-
}
|
81
|
-
res.setHeader('set-cookie', `${constants_1.YT_CYPRESS_COOKIE_NAME}=deleted; Path=/; Max-Age=0;`);
|
82
|
-
res.sendStatus(401).send('Logout');
|
83
|
-
}
|
84
|
-
catch (e) {
|
85
|
-
(0, utils_1.sendAndLogError)(req.ctx, res, 500, e);
|
86
|
-
}
|
87
|
-
}
|
88
|
-
exports.handleLogout = handleLogout;
|
89
70
|
async function handleChangePassword(req, res) {
|
90
71
|
try {
|
91
|
-
const
|
92
|
-
if (!ytAuthCluster) {
|
93
|
-
return throwAuthDisabled();
|
94
|
-
}
|
72
|
+
const ytAuthCluster = (0, yt_auth_1.getAuthCluster)(req.ctx.config);
|
95
73
|
const { newPassword, currentPassword } = JSON.parse(req.body) || {};
|
96
74
|
if (!newPassword || !currentPassword) {
|
97
75
|
throw new Error('New and current password must not be empty');
|
@@ -0,0 +1,15 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.handleLogout = void 0;
|
4
|
+
const oauth_1 = require("../components/oauth");
|
5
|
+
const yt_auth_1 = require("../components/yt-auth");
|
6
|
+
function handleLogout(req, res) {
|
7
|
+
if ((0, oauth_1.isOAuthAllowed)(req) && (0, oauth_1.isUserOAuthLogged)(req)) {
|
8
|
+
res.redirect((0, oauth_1.getOAuthLogoutPath)(req));
|
9
|
+
}
|
10
|
+
else if ((0, yt_auth_1.isYtAuthEnabled)(req.ctx.config)) {
|
11
|
+
(0, yt_auth_1.YTAuthLogout)(res);
|
12
|
+
}
|
13
|
+
res.redirect('/');
|
14
|
+
}
|
15
|
+
exports.handleLogout = handleLogout;
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import type { Request, Response } from 'express';
|
2
|
+
export declare function oauthLogin(req: Request, res: Response): void;
|
3
|
+
export declare function oauthLogout(_: Request, res: Response): void;
|
4
|
+
export declare function oauthCallback(req: Request, res: Response): Promise<void>;
|
@@ -0,0 +1,30 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.oauthCallback = exports.oauthLogout = exports.oauthLogin = void 0;
|
4
|
+
const oauth_1 = require("../components/oauth");
|
5
|
+
function oauthLogin(req, res) {
|
6
|
+
res.redirect((0, oauth_1.getOAuthLoginPath)(req));
|
7
|
+
}
|
8
|
+
exports.oauthLogin = oauthLogin;
|
9
|
+
function oauthLogout(_, res) {
|
10
|
+
(0, oauth_1.removeOAuthCookies)(res);
|
11
|
+
res.redirect('/');
|
12
|
+
}
|
13
|
+
exports.oauthLogout = oauthLogout;
|
14
|
+
async function oauthCallback(req, res) {
|
15
|
+
const { code } = req.query;
|
16
|
+
if (!code) {
|
17
|
+
throw new Error('Authorization code is not specified');
|
18
|
+
}
|
19
|
+
try {
|
20
|
+
const tokens = await (0, oauth_1.exchangeOAuthToken)(req, code);
|
21
|
+
(0, oauth_1.saveOAuthTokensInCookies)(res, tokens);
|
22
|
+
res.redirect('/');
|
23
|
+
}
|
24
|
+
catch (e) {
|
25
|
+
req.ctx.logError('exchange token error', e);
|
26
|
+
const message = e instanceof Error ? e.message : 'Unknown error';
|
27
|
+
res.status(500).send(message);
|
28
|
+
}
|
29
|
+
}
|
30
|
+
exports.oauthCallback = oauthCallback;
|
package/dist/server/index.js
CHANGED
@@ -10,6 +10,9 @@ const expresskit_1 = require("@gravity-ui/expresskit");
|
|
10
10
|
const configure_app_1 = require("./configure-app");
|
11
11
|
const yt_auth_1 = require("./middlewares/yt-auth");
|
12
12
|
const routes_1 = __importDefault(require("./routes"));
|
13
|
+
const oauth_1 = require("./middlewares/oauth");
|
14
|
+
const authorization_1 = require("./middlewares/authorization");
|
15
|
+
const authorization_2 = require("./utils/authorization");
|
13
16
|
const nodekit = new nodekit_1.NodeKit({ configsPath: path_1.default.resolve(__dirname, './configs') });
|
14
17
|
const { appName, appEnv, appInstallation, appDevMode } = nodekit.config;
|
15
18
|
nodekit.ctx.log('AppConfig details', {
|
@@ -23,7 +26,12 @@ if (ytAuthCluster) {
|
|
23
26
|
if (appAuthHandler) {
|
24
27
|
nodekit.ctx.fail(new Error('"appAuthHandler" option will be ignored cause "ytAuthCluster" option is provided.'));
|
25
28
|
}
|
26
|
-
nodekit.config.
|
29
|
+
nodekit.config.appBeforeAuthMiddleware = [
|
30
|
+
...(nodekit.config.appBeforeAuthMiddleware || []),
|
31
|
+
(0, authorization_2.authorizationResolver)((0, oauth_1.createOAuthAuthorizationResolver)()),
|
32
|
+
(0, authorization_2.authorizationResolver)((0, yt_auth_1.createYTAuthorizationResolver)()),
|
33
|
+
];
|
34
|
+
nodekit.config.appAuthHandler = (0, authorization_1.createAuthMiddleware)(ytAuthCluster);
|
27
35
|
}
|
28
36
|
(_b = (_a = nodekit.config).adjustAppConfig) === null || _b === void 0 ? void 0 : _b.call(_a, nodekit);
|
29
37
|
const app = new expresskit_1.ExpressKit(nodekit, routes_1.default);
|
@@ -0,0 +1,42 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.createAuthMiddleware = void 0;
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
8
|
+
const authorization_1 = require("../utils/authorization");
|
9
|
+
const requestsSetup_1 = require("../components/requestsSetup");
|
10
|
+
const cluster_queries_1 = require("../components/cluster-queries");
|
11
|
+
const utils_1 = require("../utils");
|
12
|
+
class AuthError extends Error {
|
13
|
+
constructor() {
|
14
|
+
super('Authorization required');
|
15
|
+
}
|
16
|
+
}
|
17
|
+
function isAuthError(e) {
|
18
|
+
var _a;
|
19
|
+
return e instanceof AuthError || (axios_1.default.isAxiosError(e) && ((_a = e.response) === null || _a === void 0 ? void 0 : _a.status) === 401);
|
20
|
+
}
|
21
|
+
function createAuthMiddleware(ytAuthCluster) {
|
22
|
+
return async function authMiddleware(req, res, next) {
|
23
|
+
try {
|
24
|
+
if (!(0, authorization_1.isAuthorized)(req)) {
|
25
|
+
throw new AuthError();
|
26
|
+
}
|
27
|
+
const cfg = (0, requestsSetup_1.getUserYTApiSetup)(ytAuthCluster, req);
|
28
|
+
const { login } = await (0, cluster_queries_1.getXSRFToken)(req, cfg);
|
29
|
+
req.yt.login = login;
|
30
|
+
}
|
31
|
+
catch (e) {
|
32
|
+
const isAuthFailed = isAuthError(e);
|
33
|
+
const error = isAuthFailed ? undefined : e;
|
34
|
+
if (!req.routeInfo.ui && isAuthFailed) {
|
35
|
+
(0, utils_1.sendError)(res, error, 401);
|
36
|
+
return;
|
37
|
+
}
|
38
|
+
}
|
39
|
+
next();
|
40
|
+
};
|
41
|
+
}
|
42
|
+
exports.createAuthMiddleware = createAuthMiddleware;
|