login-authorization-v2 1.1.5 → 2.0.0-beta.1

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.
Files changed (94) hide show
  1. package/README.md +54 -54
  2. package/babel.config.js +6 -0
  3. package/coverage/clover.xml +140 -0
  4. package/coverage/coverage-final.json +8 -0
  5. package/coverage/lcov-report/base.css +224 -0
  6. package/coverage/lcov-report/block-navigation.js +87 -0
  7. package/coverage/lcov-report/common-authorization-v2/index.html +116 -0
  8. package/coverage/lcov-report/common-authorization-v2/index.ts.html +547 -0
  9. package/coverage/lcov-report/common-authorization-v2/src/compatible.ts.html +223 -0
  10. package/coverage/lcov-report/common-authorization-v2/src/constance.ts.html +106 -0
  11. package/coverage/lcov-report/common-authorization-v2/src/cookie.ts.html +346 -0
  12. package/coverage/lcov-report/common-authorization-v2/src/dom.ts.html +262 -0
  13. package/coverage/lcov-report/common-authorization-v2/src/index.html +206 -0
  14. package/coverage/lcov-report/common-authorization-v2/src/request.ts.html +361 -0
  15. package/coverage/lcov-report/common-authorization-v2/src/shares.ts.html +163 -0
  16. package/coverage/lcov-report/common-authorization-v2/src/types.ts.html +412 -0
  17. package/coverage/lcov-report/common-authorization-v2/src/utils.ts.html +145 -0
  18. package/coverage/lcov-report/compatible.ts.html +223 -0
  19. package/coverage/lcov-report/constance.ts.html +106 -0
  20. package/coverage/lcov-report/cookie.ts.html +310 -0
  21. package/coverage/lcov-report/dom.ts.html +262 -0
  22. package/coverage/lcov-report/favicon.png +0 -0
  23. package/coverage/lcov-report/index.html +206 -0
  24. package/coverage/lcov-report/prettify.css +1 -0
  25. package/coverage/lcov-report/prettify.js +2 -0
  26. package/coverage/lcov-report/shares.ts.html +163 -0
  27. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  28. package/coverage/lcov-report/sorter.js +210 -0
  29. package/coverage/lcov-report/types.ts.html +412 -0
  30. package/coverage/lcov-report/utils.ts.html +145 -0
  31. package/coverage/lcov.info +268 -0
  32. package/dist/compatible.d.ts +10 -0
  33. package/dist/compatible.d.ts.map +1 -0
  34. package/dist/constance.d.ts +6 -0
  35. package/dist/constance.d.ts.map +1 -0
  36. package/dist/cookie.d.ts +8 -0
  37. package/dist/cookie.d.ts.map +1 -0
  38. package/dist/dom.d.ts +2 -0
  39. package/dist/dom.d.ts.map +1 -0
  40. package/dist/index.d.ts +15 -0
  41. package/dist/index.d.ts.map +1 -0
  42. package/dist/index.esm.js +498 -0
  43. package/dist/index.js.LICENSE.txt +1 -0
  44. package/dist/{index.js → index.umd.js} +125 -14
  45. package/dist/request.d.ts +36 -0
  46. package/dist/request.d.ts.map +1 -0
  47. package/dist/shares.d.ts +10 -0
  48. package/dist/shares.d.ts.map +1 -0
  49. package/dist/src/compatible.d.ts +10 -0
  50. package/dist/src/compatible.d.ts.map +1 -0
  51. package/dist/src/constance.d.ts +8 -0
  52. package/dist/src/constance.d.ts.map +1 -0
  53. package/dist/src/cookie.d.ts +8 -0
  54. package/dist/src/cookie.d.ts.map +1 -0
  55. package/dist/src/dom.d.ts +3 -0
  56. package/dist/src/dom.d.ts.map +1 -0
  57. package/dist/src/request.d.ts +36 -0
  58. package/dist/src/request.d.ts.map +1 -0
  59. package/dist/src/shares.d.ts +10 -0
  60. package/dist/src/shares.d.ts.map +1 -0
  61. package/dist/src/types.d.ts +89 -0
  62. package/dist/src/types.d.ts.map +1 -0
  63. package/dist/src/utils.d.ts +4 -0
  64. package/dist/src/utils.d.ts.map +1 -0
  65. package/dist/test/cookie.test.d.ts +2 -0
  66. package/dist/test/cookie.test.d.ts.map +1 -0
  67. package/dist/test/shares.test.d.ts +2 -0
  68. package/dist/test/shares.test.d.ts.map +1 -0
  69. package/dist/types.d.ts +89 -0
  70. package/dist/types.d.ts.map +1 -0
  71. package/dist/utils.d.ts +2 -0
  72. package/dist/utils.d.ts.map +1 -0
  73. package/index.html +28 -0
  74. package/index.ts +154 -0
  75. package/jest.config.js +6 -0
  76. package/package.json +55 -28
  77. package/src/compatible.ts +46 -0
  78. package/src/constance.ts +7 -0
  79. package/src/cookie.ts +75 -0
  80. package/src/dom.ts +59 -0
  81. package/src/request.ts +99 -0
  82. package/src/shares.ts +26 -0
  83. package/src/types.ts +109 -0
  84. package/src/utils.ts +20 -0
  85. package/tests/compatible.test.ts +420 -0
  86. package/tests/cookie.test.ts +78 -0
  87. package/tests/dom.test.ts +95 -0
  88. package/tests/index.test.ts +126 -0
  89. package/tests/shares.test.ts +52 -0
  90. package/tests/utils.test.ts +79 -0
  91. package/tsconfig.json +49 -0
  92. package/webpack.config.mjs +47 -0
  93. package/index.js +0 -304
  94. package/webpack.config.js +0 -9
@@ -0,0 +1 @@
1
+ /*! js-cookie v3.0.5 | MIT */
@@ -6,20 +6,19 @@
6
6
  * or disable the default devtool with "devtool: false".
7
7
  * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
8
8
  */
9
- /******/ (() => { // webpackBootstrap
9
+ (function webpackUniversalModuleDefinition(root, factory) {
10
+ if(typeof exports === 'object' && typeof module === 'object')
11
+ module.exports = factory();
12
+ else if(typeof define === 'function' && define.amd)
13
+ define([], factory);
14
+ else {
15
+ var a = factory();
16
+ for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
17
+ }
18
+ })(this, function() {
19
+ return /******/ (() => { // webpackBootstrap
10
20
  /******/ var __webpack_modules__ = ({
11
21
 
12
- /***/ "./index.js":
13
- /*!******************!*\
14
- !*** ./index.js ***!
15
- \******************/
16
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
17
-
18
- "use strict";
19
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"init\": () => (/* binding */ init),\n/* harmony export */ \"getUserInfo\": () => (/* binding */ getUserInfo),\n/* harmony export */ \"getIdToken\": () => (/* binding */ getIdToken),\n/* harmony export */ \"setIdToken\": () => (/* binding */ setIdToken),\n/* harmony export */ \"getRefreshToken\": () => (/* binding */ getRefreshToken),\n/* harmony export */ \"setRefreshToken\": () => (/* binding */ setRefreshToken),\n/* harmony export */ \"clearLoginCookie\": () => (/* binding */ clearLoginCookie),\n/* harmony export */ \"refreshIdTokenTimer\": () => (/* binding */ refreshIdTokenTimer),\n/* harmony export */ \"logout\": () => (/* binding */ logout),\n/* harmony export */ \"setCookie\": () => (/* binding */ setCookie),\n/* harmony export */ \"getCookie\": () => (/* binding */ getCookie),\n/* harmony export */ \"getUrlParam\": () => (/* binding */ getUrlParam)\n/* harmony export */ });\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! axios */ \"./node_modules/axios/index.js\");\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! js-base64 */ \"./node_modules/js-base64/base64.mjs\");\n\r\n\r\nlet tokenTimer = null;\r\nlet idTokenFront = null;\r\nlet idTokenBack = null;\r\nlet refreshTokenFront = null;\r\nlet refreshTokenBack = null;\r\nlet userRequestUrl = null;\r\nlet userLogoutUrl = null;\r\nlet tenantId = '';\r\nlet currentSystemType = '';\r\nlet menuLists = [];\r\nlet currentSystemName = '';\r\n// 获取、设置cookie\r\nfunction getCookie (c_name) {\r\n if (document.cookie.length > 0) {\r\n let c_start = document.cookie.indexOf(c_name + \"=\")\r\n if (c_start != -1) {\r\n c_start = c_start + c_name.length + 1\r\n let c_end = document.cookie.indexOf(\";\", c_start)\r\n if (c_end == -1) c_end = document.cookie.length\r\n return unescape(document.cookie.substring(c_start, c_end))\r\n }\r\n }\r\n return null\r\n}\r\nfunction setCookie (name, value, domain, path = '/', time = 30 * 24 * 60 * 60 * 1000) {\r\n if (value === undefined) return;\r\n let exp = new Date();\r\n exp.setTime(exp.getTime() + time);\r\n document.cookie = name + \"=\" + escape(value) + \";expires=\" + exp.toGMTString() + \";domain=\" + domain + \";path=\" + path;\r\n}\r\n// 获取url参数中的某个值\r\nfunction getUrlParam (urlStr) {\r\n var query = window.location.href.split('?')[1];\r\n var vars = query ? query.split(\"&\") : [];\r\n for (var i = 0; i < vars.length; i++) {\r\n var pair = vars[i].split(\"=\");\r\n if (pair[0] == urlStr) { return pair[1]; }\r\n }\r\n return null;\r\n}\r\n\r\nif (getCookie('idTokenFront')) {\r\n idTokenFront = getCookie('idTokenFront');\r\n}\r\nif (getCookie('idTokenBack')) {\r\n idTokenBack = getCookie('idTokenBack');\r\n}\r\nif (getCookie('refreshTokenFront')) {\r\n refreshTokenFront = getCookie('refreshTokenFront');\r\n}\r\nif (getCookie('refreshTokenBack')) {\r\n refreshTokenBack = getCookie('refreshTokenBack');\r\n}\r\n// 获取用户信息\r\nfunction getUserInfo () {\r\n if (idTokenBack) {\r\n return JSON.parse(atob(idTokenBack.split('.')[0]))\r\n } else {\r\n return null\r\n }\r\n}\r\n// 获取idToken\r\nfunction getIdToken () {\r\n if (idTokenFront && idTokenBack) {\r\n idTokenFront = getCookie('idTokenFront');\r\n idTokenBack = getCookie('idTokenBack');\r\n }\r\n return (idTokenFront && idTokenBack) ? (idTokenFront + '.' + idTokenBack) : null\r\n}\r\n// 设置idToken\r\nfunction setIdToken (value) {\r\n idTokenFront = value.split('.')[0] + '.' + value.split('.')[1];\r\n idTokenBack = value.split('.')[2];\r\n setCookie('idTokenFront', idTokenFront, window.location.hostname.substring(window.location.hostname.indexOf('.')));\r\n setCookie('idTokenBack', idTokenBack, window.location.hostname.substring(window.location.hostname.indexOf('.')));\r\n}\r\n// 获取refreshToken\r\nfunction getRefreshToken () {\r\n return (refreshTokenFront && refreshTokenBack) ? (refreshTokenFront + '.' + refreshTokenBack) : null\r\n}\r\n// 设置refreshToken\r\nfunction setRefreshToken (value) {\r\n refreshTokenFront = value.split('.')[0] + '.' + value.split('.')[1];\r\n refreshTokenBack = value.split('.')[2] + '.' + value.split('.')[3] + '.' + value.split('.')[4];\r\n setCookie('refreshTokenFront', refreshTokenFront, window.location.hostname.substring(window.location.hostname.indexOf('.')));\r\n setCookie('refreshTokenBack', refreshTokenBack, window.location.hostname.substring(window.location.hostname.indexOf('.')));\r\n}\r\n// 清空登录相关cookie\r\nfunction clearLoginCookie () {\r\n if (currentSystemType === getCookie('currentSystemType')) {\r\n setCookie('idTokenFront', null, window.location.hostname.substring(window.location.hostname.indexOf('.')), '/', -1);\r\n setCookie('idTokenBack', null, window.location.hostname.substring(window.location.hostname.indexOf('.')), '/', -1);\r\n setCookie('refreshTokenFront', null, window.location.hostname.substring(window.location.hostname.indexOf('.')), '/', -1);\r\n setCookie('refreshTokenBack', null, window.location.hostname.substring(window.location.hostname.indexOf('.')), '/', -1);\r\n } else if (!getCookie('currentSystemType') || currentSystemName === 'commonLogin' || currentSystemName === 'App') {\r\n setCookie('idTokenFront', null, window.location.hostname.substring(window.location.hostname.indexOf('.')), '/', -1);\r\n setCookie('idTokenBack', null, window.location.hostname.substring(window.location.hostname.indexOf('.')), '/', -1);\r\n setCookie('refreshTokenFront', null, window.location.hostname.substring(window.location.hostname.indexOf('.')), '/', -1);\r\n setCookie('refreshTokenBack', null, window.location.hostname.substring(window.location.hostname.indexOf('.')), '/', -1);\r\n }\r\n}\r\n// 定时刷新IdToken\r\nfunction refreshIdTokenTimer (time) {\r\n if (!getIdToken() || !getRefreshToken()) {\r\n return;\r\n }\r\n tokenTimer = setInterval(() => {\r\n axios__WEBPACK_IMPORTED_MODULE_0___default()({\r\n url: userRequestUrl + '/user-profile/refresh-token/refresh',\r\n method: 'post',\r\n data: {\r\n refreshToken: getRefreshToken()\r\n }\r\n }).then(res => {\r\n if (res.data.code === 200) {\r\n try {\r\n const userInfo = JSON.parse(js_base64__WEBPACK_IMPORTED_MODULE_1__.Base64.decode(res.data.content.idToken.split('.')[1]))\r\n const groups = userInfo['cognito:groups'] || []\r\n if (!groups.includes(currentSystemName) && currentSystemName !== 'App' && currentSystemName !== 'commonLogin') {\r\n clearInterval(tokenTimer)\r\n clearLoginCookie();\r\n IsPC() ? createDoalog() : createDoalogMobile()\r\n return\r\n }\r\n } catch (e) {\r\n console.warn(e)\r\n }\r\n setIdToken(res.data.content.idToken);\r\n } else if (res.data.code === 500) {\r\n if (userLogoutUrl !== '' || userLogoutUrl !== undefined) {\r\n clearLoginCookie();\r\n window.location.href = userLogoutUrl;\r\n }\r\n }\r\n })\r\n }, time)\r\n}\r\n// 登出\r\nfunction logout () {\r\n return new Promise((resolve, reject) => {\r\n axios__WEBPACK_IMPORTED_MODULE_0___default()({\r\n url: userRequestUrl + '/user-profile/logout',\r\n method: 'post',\r\n data: {\r\n refreshToken: getRefreshToken()\r\n }\r\n }).then(res => {\r\n clearInterval(tokenTimer);\r\n clearLoginCookie();\r\n if (userLogoutUrl !== '' || userLogoutUrl !== undefined) {\r\n window.location.href = userLogoutUrl;\r\n }\r\n resolve(true)\r\n })\r\n })\r\n}\r\n// 无权限访问时弹窗显示\r\nfunction createDoalog(){\r\n let html = `<div id=\"confirm-container\" style=\"box-sizing:border-box;position:fixed;width:615px;height:145px;box-shadow: 0 0 2px 2px #eeeeee;border-radius: 5px;z-index: 10000000;display: block;left: 35%;padding:20px 20px;top:10px;font-size: 16px;\">\r\n <div id=\"href\" style=\"color: rgb(32,33,36);\"></div>\r\n <div style=\"margin: 10px 0 20px 0;color: rgb(32,33,36);font-size: 14px;\">You do not have access to the system.</div>\r\n <div style=\"display: flex;justify-content: flex-end;\">\r\n <button id=\"cancel\" style=\"padding: 8px 15px;background: #ffffff;color:rgb(26,115,232);border:1px solid #ccc;border-radius:5px;cursor: pointer;font-size:14px;\">Cancel</button>\r\n <button id=\"confirm\" style=\"padding: 8px 15px;background: rgb(26,115,232);color:#ffffff;border:none;border-radius:5px;margin-left: 10px;cursor: pointer;font-size:14px;\">Sign in to another ZERO account</button>\r\n </div>\r\n </div>`\r\n let confirmDialog=document.getElementsByTagName('body')[0];\r\n confirmDialog.innerHTML = '';\r\n confirmDialog.insertAdjacentHTML(\"beforeend\", html);\r\n document.getElementById('href').innerHTML = window.location.hostname;\r\n document.getElementById('confirm').onclick = confirms;\r\n document.getElementById('cancel').onclick = cancels;\r\n}\r\nfunction createDoalogMobile(){\r\n let html = `<div id=\"confirm-container\" style=\"box-sizing:border-box;position:fixed;width:97.6vw;height:145px;box-shadow: 0 0 2px 2px #eeeeee;border-radius: 5px;z-index: 10000000;display: block;left:0px;padding:20px 20px;top:4px;margin:0 4px;font-size: 16px;\">\r\n <div id=\"href\" style=\"color: rgb(32,33,36);\"></div>\r\n <div style=\"margin: 10px 0 20px 0;color: rgb(32,33,36);font-size: 14px;\">You do not have access to the system.</div>\r\n <div style=\"display: flex;justify-content: flex-end;\">\r\n <div style=\"display: flex;justify-content: flex-end;\">\r\n <button id=\"cancel\" style=\"padding: 8px 15px;background: #ffffff;color:rgb(26,115,232);border:1px solid #ccc;border-radius:5px;cursor: pointer;font-size:14px;\">Cancel</button>\r\n <button id=\"confirm\" style=\"padding: 8px 15px;background: rgb(26,115,232);color:#ffffff;border:none;border-radius:5px;margin-left: 10px;cursor: pointer;font-size:14px;\">Sign in to another ZERO account</button>\r\n </div>\r\n </div>\r\n </div>`\r\n let confirmDialog=document.getElementsByTagName('body')[0];\r\n confirmDialog.innerHTML = '';\r\n confirmDialog.insertAdjacentHTML(\"beforeend\", html);\r\n document.getElementById('href').innerHTML = window.location.hostname;\r\n document.getElementById('confirm').onclick = confirms;\r\n document.getElementById('cancel').onclick = cancels;\r\n}\r\nfunction confirms() {\r\n clearLoginCookie();\r\n document.getElementById('confirm-container').style.display = 'none';\r\n window.location.href = userLogoutUrl;\r\n}\r\nfunction cancels() {\r\n document.getElementById('confirm-container').style.display = 'none';\r\n window.location.href = 'about:blank';\r\n}\r\nfunction IsPC () {\r\n var userAgentInfo = navigator.userAgent;\r\n var Agents = [\r\n 'Android',\r\n 'iPhone',\r\n 'SymbianOS',\r\n 'Windows Phone',\r\n 'iPad',\r\n 'iPod',\r\n ];\r\n var flag = true;\r\n for (var v = 0; v < Agents.length; v++) {\r\n if (userAgentInfo.indexOf(Agents[v]) > 0) {\r\n flag = false;\r\n break;\r\n }\r\n }\r\n return flag;\r\n}\r\n// 获取可访问系统列表\r\nfunction systemLists (systemName, idToken) {\r\n return new Promise((resolve, reject) => {\r\n axios__WEBPACK_IMPORTED_MODULE_0___default()({\r\n url: userRequestUrl + '/session/current/servers',\r\n method: 'get',\r\n headers: {\r\n authorization: 'Bearer ' + idToken,\r\n 'X-tenant-id': tenantId ? tenantId : ''\r\n }\r\n }).then(res => {\r\n if (res.data.code === 200) {\r\n menuLists = res.data.content;\r\n if (!systemName) {\r\n IsPC() ? createDoalog() : createDoalogMobile()\r\n } else if (systemName === 'commonLogin') {\r\n resolve(true);\r\n } else if (menuLists.length === 0) {\r\n IsPC() ? createDoalog() : createDoalogMobile()\r\n } else {\r\n let hasAccess = false;\r\n menuLists.forEach(item => {\r\n if (systemName.toLowerCase() === item.groupName.toLowerCase()) {\r\n resolve(true);\r\n hasAccess = true;\r\n currentSystemType = item.staffEndpoint ? 'staff' : 'client';\r\n }\r\n })\r\n if (!hasAccess) {\r\n IsPC() ? createDoalog() : createDoalogMobile()\r\n }\r\n }\r\n } else {\r\n resolve(false);\r\n }\r\n }).catch(() => {\r\n resolve(true);\r\n })\r\n })\r\n}\r\n// init初始化\r\nasync function init (requestUrl, loginUrl, systemName, tenant, time = 1000 * 60 * 3) {\r\n tenantId = tenant ? tenant : '';\r\n userLogoutUrl = loginUrl;\r\n currentSystemName = systemName;\r\n return new Promise(async (resolve, reject) => {\r\n if (!getIdToken() || !getRefreshToken()) {\r\n resolve(false);\r\n }\r\n if (requestUrl) {\r\n userRequestUrl = requestUrl;\r\n refreshIdTokenTimer(time);\r\n if (systemName === 'App') {\r\n resolve(true);\r\n } else {\r\n let hasAuth = await systemLists(systemName, getIdToken());\r\n if (hasAuth) {\r\n resolve(true);\r\n } else {\r\n await logout();\r\n resolve(false);\r\n }\r\n }\r\n } else {\r\n alert('Not request url');\r\n reject();\r\n }\r\n })\r\n}\r\n\r\n\n\n//# sourceURL=webpack://login-authorization-v2/./index.js?");
20
-
21
- /***/ }),
22
-
23
22
  /***/ "./node_modules/axios/index.js":
24
23
  /*!*************************************!*\
25
24
  !*** ./node_modules/axios/index.js ***!
@@ -337,6 +336,105 @@ eval("\n\nvar bind = __webpack_require__(/*! ./helpers/bind */ \"./node_modules/
337
336
 
338
337
  /***/ }),
339
338
 
339
+ /***/ "./index.ts":
340
+ /*!******************!*\
341
+ !*** ./index.ts ***!
342
+ \******************/
343
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
344
+
345
+ "use strict";
346
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getAccessToken\": () => (/* reexport safe */ _src_cookie__WEBPACK_IMPORTED_MODULE_0__.getAccessToken),\n/* harmony export */ \"getRefreshToken\": () => (/* reexport safe */ _src_cookie__WEBPACK_IMPORTED_MODULE_0__.getRefreshToken),\n/* harmony export */ \"getSystemType\": () => (/* reexport safe */ _src_cookie__WEBPACK_IMPORTED_MODULE_0__.getSystemType),\n/* harmony export */ \"setAccessToken\": () => (/* reexport safe */ _src_cookie__WEBPACK_IMPORTED_MODULE_0__.setAccessToken),\n/* harmony export */ \"setRefreshToken\": () => (/* reexport safe */ _src_cookie__WEBPACK_IMPORTED_MODULE_0__.setRefreshToken),\n/* harmony export */ \"setSystemType\": () => (/* reexport safe */ _src_cookie__WEBPACK_IMPORTED_MODULE_0__.setSystemType),\n/* harmony export */ \"clearLoginCookie\": () => (/* reexport safe */ _src_compatible__WEBPACK_IMPORTED_MODULE_1__.clearLoginCookie),\n/* harmony export */ \"getCookie\": () => (/* reexport safe */ _src_compatible__WEBPACK_IMPORTED_MODULE_1__.getCookie),\n/* harmony export */ \"getIdToken\": () => (/* reexport safe */ _src_compatible__WEBPACK_IMPORTED_MODULE_1__.getIdToken),\n/* harmony export */ \"getUrlParam\": () => (/* reexport safe */ _src_compatible__WEBPACK_IMPORTED_MODULE_1__.getUrlParam),\n/* harmony export */ \"setCookie\": () => (/* reexport safe */ _src_compatible__WEBPACK_IMPORTED_MODULE_1__.setCookie),\n/* harmony export */ \"setIdToken\": () => (/* reexport safe */ _src_compatible__WEBPACK_IMPORTED_MODULE_1__.setIdToken),\n/* harmony export */ \"make\": () => (/* binding */ make)\n/* harmony export */ });\n/* harmony import */ var _src_cookie__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/cookie */ \"./src/cookie.ts\");\n/* harmony import */ var _src_compatible__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/compatible */ \"./src/compatible.ts\");\n/* harmony import */ var _src_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/dom */ \"./src/dom.ts\");\n/* harmony import */ var _src_request__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/request */ \"./src/request.ts\");\n/* harmony import */ var _src_constance__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./src/constance */ \"./src/constance.ts\");\n/* harmony import */ var _src_shares__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./src/shares */ \"./src/shares.ts\");\n/* harmony import */ var _src_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./src/types */ \"./src/types.ts\");\n/* harmony import */ var _src_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./src/utils */ \"./src/utils.ts\");\n\n\n\n\n\n\n\n\n\n\nconst make = (config) => {\n if (!config.moduleBaseUrl) {\n throw new Error(_src_constance__WEBPACK_IMPORTED_MODULE_4__.NO_MODULE_BASE_URL);\n }\n let timer = undefined;\n (0,_src_shares__WEBPACK_IMPORTED_MODULE_5__.setModuleBaseUrl)(config.moduleBaseUrl);\n (0,_src_shares__WEBPACK_IMPORTED_MODULE_5__.setLoginPageUrl)(config.loginPageUrl);\n (0,_src_shares__WEBPACK_IMPORTED_MODULE_5__.setTenantId)(config.tenantId);\n (0,_src_shares__WEBPACK_IMPORTED_MODULE_5__.setBrand)(config.brand);\n (0,_src_request__WEBPACK_IMPORTED_MODULE_3__.initInstance)();\n const init = () => {\n const token = (0,_src_cookie__WEBPACK_IMPORTED_MODULE_0__.getAccessToken)();\n const refreshToken = (0,_src_cookie__WEBPACK_IMPORTED_MODULE_0__.getRefreshToken)();\n if (!token) {\n (0,_src_cookie__WEBPACK_IMPORTED_MODULE_0__.setAccessToken)(null);\n (0,_src_cookie__WEBPACK_IMPORTED_MODULE_0__.setRefreshToken)(null);\n return Promise.reject(new Error(_src_constance__WEBPACK_IMPORTED_MODULE_4__.NO_ACCESS_TOKEN));\n }\n if (!refreshToken) {\n (0,_src_cookie__WEBPACK_IMPORTED_MODULE_0__.setAccessToken)(null);\n (0,_src_cookie__WEBPACK_IMPORTED_MODULE_0__.setRefreshToken)(null);\n return Promise.reject(new Error(_src_constance__WEBPACK_IMPORTED_MODULE_4__.NO_REFRESH_TOKEN));\n }\n return (0,_src_utils__WEBPACK_IMPORTED_MODULE_7__.getUserInfo)()\n .then(async (userInfo) => {\n const valid = detectUserInfoGroupAuth(userInfo);\n if (!valid) {\n return Promise.reject();\n }\n return (0,_src_request__WEBPACK_IMPORTED_MODULE_3__.fetchServerListHTTP)();\n })\n .catch(error => {\n (0,_src_dom__WEBPACK_IMPORTED_MODULE_2__.openDialog)();\n throw error;\n })\n .then(resp => {\n const menus = resp.data.content || [];\n if (menus.length <= 0)\n return Promise.reject();\n const group = menus.find(menu => menu.groupName === config.moduleName);\n if (group) {\n (0,_src_cookie__WEBPACK_IMPORTED_MODULE_0__.setSystemType)(group.staffEndpoint ? _src_types__WEBPACK_IMPORTED_MODULE_6__.SystemType.Staff : _src_types__WEBPACK_IMPORTED_MODULE_6__.SystemType.Client);\n }\n setupRefreshTokenTimer();\n return Promise.resolve();\n })\n .catch(async (error) => {\n clearRefreshTokenTimer();\n (0,_src_cookie__WEBPACK_IMPORTED_MODULE_0__.setAccessToken)(null);\n (0,_src_cookie__WEBPACK_IMPORTED_MODULE_0__.setRefreshToken)(null);\n await logout();\n throw error;\n });\n };\n const detectUserInfoGroupAuth = (userInfo) => {\n const groups = userInfo['cognito:groups'] || [];\n if (!groups.includes(config.moduleName)\n && config.moduleName !== 'commonLogin'\n && config.moduleName !== 'App') {\n return false;\n }\n return true;\n };\n const setupRefreshTokenTimer = () => {\n const refreshToken = (0,_src_cookie__WEBPACK_IMPORTED_MODULE_0__.getRefreshToken)();\n if (!refreshToken)\n return;\n if (timer) {\n clearInterval(timer);\n }\n timer = setInterval(() => {\n (0,_src_request__WEBPACK_IMPORTED_MODULE_3__.fetchRefreshTokenHTTP)(refreshToken)\n .then(resp => {\n const { content: { idToken } } = resp.data;\n (0,_src_cookie__WEBPACK_IMPORTED_MODULE_0__.setAccessToken)(idToken);\n return (0,_src_utils__WEBPACK_IMPORTED_MODULE_7__.getUserInfo)();\n })\n .then(userInfo => {\n const valid = detectUserInfoGroupAuth(userInfo);\n if (!valid) {\n clearRefreshTokenTimer();\n (0,_src_dom__WEBPACK_IMPORTED_MODULE_2__.openDialog)();\n return logout();\n }\n })\n .catch(error => {\n clearRefreshTokenTimer();\n throw error;\n });\n }, 1e3 * 60 * 3); // 3 minutes\n };\n const logout = () => {\n return (0,_src_request__WEBPACK_IMPORTED_MODULE_3__.fetchLogoutHTTP)()\n .finally(() => {\n clearRefreshTokenTimer();\n (0,_src_cookie__WEBPACK_IMPORTED_MODULE_0__.setAccessToken)(null);\n (0,_src_cookie__WEBPACK_IMPORTED_MODULE_0__.setRefreshToken)(null);\n });\n };\n const clearRefreshTokenTimer = () => {\n if (!timer)\n return;\n clearInterval(timer);\n timer = null;\n };\n return {\n init,\n logout\n };\n};\n\n\n//# sourceURL=webpack://login-authorization-v2/./index.ts?");
347
+
348
+ /***/ }),
349
+
350
+ /***/ "./src/compatible.ts":
351
+ /*!***************************!*\
352
+ !*** ./src/compatible.ts ***!
353
+ \***************************/
354
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
355
+
356
+ "use strict";
357
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"setIdToken\": () => (/* binding */ setIdToken),\n/* harmony export */ \"getIdToken\": () => (/* binding */ getIdToken),\n/* harmony export */ \"setCookie\": () => (/* binding */ setCookie),\n/* harmony export */ \"clearLoginCookie\": () => (/* binding */ clearLoginCookie),\n/* harmony export */ \"getCookie\": () => (/* binding */ getCookie),\n/* harmony export */ \"getUrlParam\": () => (/* binding */ getUrlParam)\n/* harmony export */ });\n/* harmony import */ var _cookie__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cookie */ \"./src/cookie.ts\");\n/* harmony import */ var js_cookie__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! js-cookie */ \"./node_modules/js-cookie/dist/js.cookie.mjs\");\n/**\n * 这个文件是写一些兼容的方法,避免各个项目做出大量调整\n */\n\n\nconst setIdToken = _cookie__WEBPACK_IMPORTED_MODULE_0__.setAccessToken;\nconst getIdToken = _cookie__WEBPACK_IMPORTED_MODULE_0__.getAccessToken;\nconst setCookie = (name, value, domain, path = '/', time = 30 * 24 * 60 * 60 * 1000) => {\n if (value === null || value === undefined) {\n return js_cookie__WEBPACK_IMPORTED_MODULE_1__[\"default\"].remove(name);\n }\n js_cookie__WEBPACK_IMPORTED_MODULE_1__[\"default\"].set(name, value, {\n domain,\n path,\n expires: time / (24 * 60 * 60 * 1000)\n });\n};\nconst clearLoginCookie = () => {\n (0,_cookie__WEBPACK_IMPORTED_MODULE_0__.setAccessToken)(null);\n (0,_cookie__WEBPACK_IMPORTED_MODULE_0__.setRefreshToken)(null);\n};\nconst getCookie = (c_name) => {\n if (!c_name)\n return null;\n const reg = new RegExp('(?:^|; )' + encodeURIComponent(c_name) + '=([^;]*)');\n const result = reg.exec(document.cookie);\n return result ? decodeURIComponent(result[1] || '') : null;\n};\nconst getUrlParam = (key, href) => {\n const search = '?' + ((href || window.location.href).split('?')[1] || '');\n const searchParams = new URLSearchParams(search);\n return searchParams.get(key);\n};\n\n\n//# sourceURL=webpack://login-authorization-v2/./src/compatible.ts?");
358
+
359
+ /***/ }),
360
+
361
+ /***/ "./src/constance.ts":
362
+ /*!**************************!*\
363
+ !*** ./src/constance.ts ***!
364
+ \**************************/
365
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
366
+
367
+ "use strict";
368
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"NO_ACCESS_TOKEN\": () => (/* binding */ NO_ACCESS_TOKEN),\n/* harmony export */ \"INVALID_ACCESS_TOKEN\": () => (/* binding */ INVALID_ACCESS_TOKEN),\n/* harmony export */ \"INVALID_REFRESH_TOKEN\": () => (/* binding */ INVALID_REFRESH_TOKEN),\n/* harmony export */ \"NO_REFRESH_TOKEN\": () => (/* binding */ NO_REFRESH_TOKEN),\n/* harmony export */ \"NO_MODULE_BASE_URL\": () => (/* binding */ NO_MODULE_BASE_URL),\n/* harmony export */ \"INVALID_TENANT_ID\": () => (/* binding */ INVALID_TENANT_ID),\n/* harmony export */ \"INVALID_BRAND\": () => (/* binding */ INVALID_BRAND)\n/* harmony export */ });\nconst NO_ACCESS_TOKEN = 'Access token not found';\nconst INVALID_ACCESS_TOKEN = 'Invalid access token';\nconst INVALID_REFRESH_TOKEN = 'Invalid refresh token';\nconst NO_REFRESH_TOKEN = 'Refresh token not found';\nconst NO_MODULE_BASE_URL = 'Module base URL is required';\nconst INVALID_TENANT_ID = 'Invalid tenant ID';\nconst INVALID_BRAND = 'Invalid brand';\n\n\n//# sourceURL=webpack://login-authorization-v2/./src/constance.ts?");
369
+
370
+ /***/ }),
371
+
372
+ /***/ "./src/cookie.ts":
373
+ /*!***********************!*\
374
+ !*** ./src/cookie.ts ***!
375
+ \***********************/
376
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
377
+
378
+ "use strict";
379
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"setRefreshToken\": () => (/* binding */ setRefreshToken),\n/* harmony export */ \"setAccessToken\": () => (/* binding */ setAccessToken),\n/* harmony export */ \"getAccessToken\": () => (/* binding */ getAccessToken),\n/* harmony export */ \"getRefreshToken\": () => (/* binding */ getRefreshToken),\n/* harmony export */ \"setSystemType\": () => (/* binding */ setSystemType),\n/* harmony export */ \"getSystemType\": () => (/* binding */ getSystemType)\n/* harmony export */ });\n/* harmony import */ var js_cookie__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! js-cookie */ \"./node_modules/js-cookie/dist/js.cookie.mjs\");\n/* harmony import */ var _constance__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constance */ \"./src/constance.ts\");\n\n\nconst makeSetCookieFn = (key, options) => {\n const index = window.location.hostname.indexOf('.');\n const domain = index === -1\n ? window.location.hostname\n : window.location.hostname.slice(index);\n return (value) => {\n if (value === null) {\n return js_cookie__WEBPACK_IMPORTED_MODULE_0__[\"default\"].remove(key, { domain, ...options });\n }\n js_cookie__WEBPACK_IMPORTED_MODULE_0__[\"default\"].set(key, value, {\n domain,\n expires: 30,\n ...options\n });\n };\n};\nconst setIdTokenFront = makeSetCookieFn('idTokenFront');\nconst setIdTokenBack = makeSetCookieFn('idTokenBack');\nconst setRefreshTokenFront = makeSetCookieFn('refreshTokenFront');\nconst setRefreshTokenBack = makeSetCookieFn('refreshTokenBack');\nconst setRefreshToken = (token) => {\n if (!token) {\n setIdTokenBack(null);\n setIdTokenFront(null);\n makeSetCookieFn('refresh_token')(null);\n return;\n }\n const splits = token.split('.');\n if (splits.length < 5)\n throw new Error(_constance__WEBPACK_IMPORTED_MODULE_1__.INVALID_REFRESH_TOKEN);\n const refreshTokenFront = splits[0] + '.' + splits[1];\n const refreshTokenBack = splits[2] + '.' + splits[3] + '.' + splits[4];\n setRefreshTokenFront(refreshTokenFront);\n setRefreshTokenBack(refreshTokenBack);\n makeSetCookieFn('refresh_token')(token);\n};\nconst setAccessToken = (token) => {\n if (!token) {\n setIdTokenBack(null);\n setIdTokenFront(null);\n makeSetCookieFn('access_token')(null);\n return;\n }\n const splits = token.split('.');\n if (splits.length < 3)\n throw new Error(_constance__WEBPACK_IMPORTED_MODULE_1__.INVALID_ACCESS_TOKEN);\n const idTokenFront = splits[0] + '.' + splits[1];\n const idTokenBack = splits[2] || '';\n setIdTokenFront(idTokenFront);\n setIdTokenBack(idTokenBack);\n makeSetCookieFn('access_token')(token);\n};\nconst getAccessToken = () => js_cookie__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get('access_token');\nconst getRefreshToken = () => js_cookie__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get('refresh_token');\nconst setSystemType = makeSetCookieFn('currentSystemType');\nconst getSystemType = () => js_cookie__WEBPACK_IMPORTED_MODULE_0__[\"default\"].get('currentSystemType');\n\n\n//# sourceURL=webpack://login-authorization-v2/./src/cookie.ts?");
380
+
381
+ /***/ }),
382
+
383
+ /***/ "./src/dom.ts":
384
+ /*!********************!*\
385
+ !*** ./src/dom.ts ***!
386
+ \********************/
387
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
388
+
389
+ "use strict";
390
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"closeDialog\": () => (/* binding */ closeDialog),\n/* harmony export */ \"openDialog\": () => (/* binding */ openDialog)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n/* harmony import */ var _shares__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./shares */ \"./src/shares.ts\");\n\n\nconst createPcDialog = () => {\n return `<div id=\"confirm-container\" style=\"box-sizing:border-box;position:fixed;width:615px;height:145px;box-shadow: 0 0 2px 2px #eeeeee;border-radius: 5px;z-index: 10000000;display: block;left: 35%;padding:20px 20px;top:10px;font-size: 16px;\">\n <div id=\"href\" style=\"color: rgb(32,33,36);\"></div>\n <div style=\"margin: 10px 0 20px 0;color: rgb(32,33,36);font-size: 14px;\">You do not have access to the system.</div>\n <div style=\"display: flex;justify-content: flex-end;\">\n <button id=\"cancel\" style=\"padding: 8px 15px;background: #ffffff;color:rgb(26,115,232);border:1px solid #ccc;border-radius:5px;cursor: pointer;font-size:14px;\">Cancel</button>\n <button id=\"confirm\" style=\"padding: 8px 15px;background: rgb(26,115,232);color:#ffffff;border:none;border-radius:5px;margin-left: 10px;cursor: pointer;font-size:14px;\">Sign in to another ZERO account</button>\n </div>\n </div>`;\n};\nconst createMobileDialog = () => {\n return `<div id=\"confirm-container\" style=\"box-sizing:border-box;position:fixed;width:97.6vw;height:145px;box-shadow: 0 0 2px 2px #eeeeee;border-radius: 5px;z-index: 10000000;display: block;left:0px;padding:20px 20px;top:4px;margin:0 4px;font-size: 16px;\">\n <div id=\"href\" style=\"color: rgb(32,33,36);\"></div>\n <div style=\"margin: 10px 0 20px 0;color: rgb(32,33,36);font-size: 14px;\">You do not have access to the system.</div>\n <div style=\"display: flex;justify-content: flex-end;\">\n <div style=\"display: flex;justify-content: flex-end;\">\n <button id=\"cancel\" style=\"padding: 8px 15px;background: #ffffff;color:rgb(26,115,232);border:1px solid #ccc;border-radius:5px;cursor: pointer;font-size:14px;\">Cancel</button>\n <button id=\"confirm\" style=\"padding: 8px 15px;background: rgb(26,115,232);color:#ffffff;border:none;border-radius:5px;margin-left: 10px;cursor: pointer;font-size:14px;\">Sign in to another ZERO account</button>\n </div>\n </div>\n </div>`;\n};\nconst onConfirmHandler = (evt) => {\n closeDialog();\n window.location.href = _shares__WEBPACK_IMPORTED_MODULE_1__.loginPageUrl;\n};\nconst onCancelHandler = () => {\n closeDialog();\n window.location.href = 'about:blank';\n};\nconst closeDialog = () => {\n const container = document.getElementById('confirm-container');\n if (!container || !container.parentNode)\n return;\n document.body.removeChild(container.parentNode);\n};\nconst openDialog = () => {\n const container = document.createElement('div');\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.isMobile)()\n ? container.innerHTML = createMobileDialog()\n : container.innerHTML = createPcDialog();\n const confirmButton = container.querySelector('#confirm');\n const cancelButton = container.querySelector('#cancel');\n confirmButton?.addEventListener('click', onConfirmHandler);\n cancelButton?.addEventListener('click', onCancelHandler);\n document.body.appendChild(container);\n};\n\n\n//# sourceURL=webpack://login-authorization-v2/./src/dom.ts?");
391
+
392
+ /***/ }),
393
+
394
+ /***/ "./src/request.ts":
395
+ /*!************************!*\
396
+ !*** ./src/request.ts ***!
397
+ \************************/
398
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
399
+
400
+ "use strict";
401
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"initInstance\": () => (/* binding */ initInstance),\n/* harmony export */ \"fetchRefreshTokenHTTP\": () => (/* binding */ fetchRefreshTokenHTTP),\n/* harmony export */ \"fetchLogoutHTTP\": () => (/* binding */ fetchLogoutHTTP),\n/* harmony export */ \"fetchServerListHTTP\": () => (/* binding */ fetchServerListHTTP)\n/* harmony export */ });\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! axios */ \"./node_modules/axios/index.js\");\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _shares__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./shares */ \"./src/shares.ts\");\n/* harmony import */ var _cookie__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cookie */ \"./src/cookie.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n\n\n\n\nlet instance;\n/**\n * 没找到更好的方式,只能这样做了\n */\nconst initInstance = async () => {\n let userInfo = null;\n try {\n userInfo = await (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getUserInfo)();\n }\n catch (error) {\n console.warn('initInstance getUserInfo error:', error);\n }\n instance = axios__WEBPACK_IMPORTED_MODULE_0___default().create({\n baseURL: _shares__WEBPACK_IMPORTED_MODULE_1__.moduleBaseUrl,\n timeout: 1.5e4,\n headers: {\n 'X-tenant-id': userInfo ? userInfo['custom:tenant_id'].toString() : _shares__WEBPACK_IMPORTED_MODULE_1__.tenantId.toString(),\n 'X-brand': _shares__WEBPACK_IMPORTED_MODULE_1__.brand.toString(),\n 'Authorization': `Bearer ${(0,_cookie__WEBPACK_IMPORTED_MODULE_2__.getAccessToken)()}`,\n }\n });\n instance.interceptors.request.use((config) => {\n return config;\n }, (error) => {\n return Promise.reject(error);\n });\n instance.interceptors.response.use((response) => {\n if (response.data.code !== 200) {\n return Promise.reject(response.data.msg);\n }\n return response;\n }, (error) => {\n return Promise.reject(error);\n });\n};\nconst fetchRefreshTokenHTTP = (refreshToken) => {\n return instance({\n method: 'post',\n url: '/user-profile/refresh-token/refresh',\n data: {\n refreshToken\n }\n });\n};\nconst fetchLogoutHTTP = () => {\n return instance({\n method: 'get',\n url: '/user-profile/logout'\n });\n};\nconst fetchServerListHTTP = () => {\n return instance({\n method: 'get',\n url: '/session/current/servers'\n });\n};\n\n\n//# sourceURL=webpack://login-authorization-v2/./src/request.ts?");
402
+
403
+ /***/ }),
404
+
405
+ /***/ "./src/shares.ts":
406
+ /*!***********************!*\
407
+ !*** ./src/shares.ts ***!
408
+ \***********************/
409
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
410
+
411
+ "use strict";
412
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"tenantId\": () => (/* binding */ tenantId),\n/* harmony export */ \"brand\": () => (/* binding */ brand),\n/* harmony export */ \"moduleBaseUrl\": () => (/* binding */ moduleBaseUrl),\n/* harmony export */ \"loginPageUrl\": () => (/* binding */ loginPageUrl),\n/* harmony export */ \"setTenantId\": () => (/* binding */ setTenantId),\n/* harmony export */ \"setBrand\": () => (/* binding */ setBrand),\n/* harmony export */ \"setModuleBaseUrl\": () => (/* binding */ setModuleBaseUrl),\n/* harmony export */ \"setLoginPageUrl\": () => (/* binding */ setLoginPageUrl)\n/* harmony export */ });\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types */ \"./src/types.ts\");\n/* harmony import */ var _constance__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constance */ \"./src/constance.ts\");\n\n\nlet tenantId;\nlet brand;\nlet moduleBaseUrl = '';\nlet loginPageUrl = '';\nconst setTenantId = (id) => {\n if (!Object.values(_types__WEBPACK_IMPORTED_MODULE_0__.Tenant).includes(id)) {\n throw new Error(_constance__WEBPACK_IMPORTED_MODULE_1__.INVALID_TENANT_ID);\n }\n tenantId = id;\n};\nconst setBrand = (id) => {\n if (!Object.values(_types__WEBPACK_IMPORTED_MODULE_0__.Brand).includes(id)) {\n throw new Error(_constance__WEBPACK_IMPORTED_MODULE_1__.INVALID_BRAND);\n }\n brand = id;\n};\nconst setModuleBaseUrl = (url) => {\n moduleBaseUrl = url;\n};\nconst setLoginPageUrl = (url) => {\n loginPageUrl = url;\n};\n\n\n//# sourceURL=webpack://login-authorization-v2/./src/shares.ts?");
413
+
414
+ /***/ }),
415
+
416
+ /***/ "./src/types.ts":
417
+ /*!**********************!*\
418
+ !*** ./src/types.ts ***!
419
+ \**********************/
420
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
421
+
422
+ "use strict";
423
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Brand\": () => (/* binding */ Brand),\n/* harmony export */ \"Tenant\": () => (/* binding */ Tenant),\n/* harmony export */ \"SystemType\": () => (/* binding */ SystemType)\n/* harmony export */ });\nconst modules = [\n {\n href: '',\n name: 'commonLogin'\n },\n {\n href: '',\n name: 'App'\n },\n {\n href: '',\n name: 'Portal'\n },\n {\n href: '',\n name: 'AgentPortal'\n },\n {\n href: '',\n name: 'AdminPortal'\n },\n {\n href: '',\n name: 'CRM'\n },\n {\n href: '',\n name: 'Finance'\n },\n {\n href: '',\n name: 'FundingAdmin'\n },\n {\n href: '',\n name: 'MessageTemplate'\n },\n {\n href: '',\n name: 'Translate'\n },\n {\n href: '',\n name: 'TradeConfig'\n },\n {\n href: '',\n name: 'Ticket'\n },\n {\n href: '',\n name: 'IBPortalAdmin'\n },\n {\n href: '',\n name: 'OPPortal'\n },\n {\n href: '',\n name: 'ClientInfoHub'\n },\n {\n href: '',\n name: 'Promotion'\n }\n];\nvar Brand;\n(function (Brand) {\n Brand[Brand[\"ZERO\"] = 1] = \"ZERO\";\n Brand[Brand[\"HEDGEHOOD\"] = 2] = \"HEDGEHOOD\";\n Brand[Brand[\"NISE\"] = 3] = \"NISE\";\n})(Brand || (Brand = {}));\nvar Tenant;\n(function (Tenant) {\n Tenant[Tenant[\"ZERO_INT\"] = 1] = \"ZERO_INT\";\n Tenant[Tenant[\"HEDGEHOOD\"] = 2] = \"HEDGEHOOD\";\n Tenant[Tenant[\"ZERO_NZ\"] = 3] = \"ZERO_NZ\";\n Tenant[Tenant[\"ZERO_LA\"] = 4] = \"ZERO_LA\";\n Tenant[Tenant[\"ZERO_BR\"] = 4] = \"ZERO_BR\";\n Tenant[Tenant[\"NISE_EU\"] = 5] = \"NISE_EU\";\n})(Tenant || (Tenant = {}));\nvar SystemType;\n(function (SystemType) {\n SystemType[\"Staff\"] = \"staff\";\n SystemType[\"Client\"] = \"client\";\n})(SystemType || (SystemType = {}));\n\n\n//# sourceURL=webpack://login-authorization-v2/./src/types.ts?");
424
+
425
+ /***/ }),
426
+
427
+ /***/ "./src/utils.ts":
428
+ /*!**********************!*\
429
+ !*** ./src/utils.ts ***!
430
+ \**********************/
431
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
432
+
433
+ "use strict";
434
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"isMobile\": () => (/* binding */ isMobile),\n/* harmony export */ \"getUserInfo\": () => (/* binding */ getUserInfo)\n/* harmony export */ });\n/* harmony import */ var _cookie__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cookie */ \"./src/cookie.ts\");\n/* harmony import */ var _constance__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constance */ \"./src/constance.ts\");\n/* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! js-base64 */ \"./node_modules/js-base64/base64.mjs\");\n\n\n\nconst isMobile = () => {\n const ua = navigator.userAgent;\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(ua);\n};\nconst getUserInfo = () => {\n return new Promise((resolve, reject) => {\n const token = (0,_cookie__WEBPACK_IMPORTED_MODULE_0__.getAccessToken)();\n if (!token)\n return reject(new Error(_constance__WEBPACK_IMPORTED_MODULE_1__.NO_ACCESS_TOKEN));\n const splits = token.split('.');\n if (splits.length < 3)\n return reject(new Error(_constance__WEBPACK_IMPORTED_MODULE_1__.NO_ACCESS_TOKEN));\n resolve(JSON.parse(js_base64__WEBPACK_IMPORTED_MODULE_2__.Base64.decode(splits[1])));\n });\n};\n\n\n//# sourceURL=webpack://login-authorization-v2/./src/utils.ts?");
435
+
436
+ /***/ }),
437
+
340
438
  /***/ "./node_modules/js-base64/base64.mjs":
341
439
  /*!*******************************************!*\
342
440
  !*** ./node_modules/js-base64/base64.mjs ***!
@@ -346,6 +444,17 @@ eval("\n\nvar bind = __webpack_require__(/*! ./helpers/bind */ \"./node_modules/
346
444
  "use strict";
347
445
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"version\": () => (/* binding */ version),\n/* harmony export */ \"VERSION\": () => (/* binding */ VERSION),\n/* harmony export */ \"atob\": () => (/* binding */ _atob),\n/* harmony export */ \"atobPolyfill\": () => (/* binding */ atobPolyfill),\n/* harmony export */ \"btoa\": () => (/* binding */ _btoa),\n/* harmony export */ \"btoaPolyfill\": () => (/* binding */ btoaPolyfill),\n/* harmony export */ \"fromBase64\": () => (/* binding */ decode),\n/* harmony export */ \"toBase64\": () => (/* binding */ encode),\n/* harmony export */ \"utob\": () => (/* binding */ utob),\n/* harmony export */ \"encode\": () => (/* binding */ encode),\n/* harmony export */ \"encodeURI\": () => (/* binding */ encodeURI),\n/* harmony export */ \"encodeURL\": () => (/* binding */ encodeURI),\n/* harmony export */ \"btou\": () => (/* binding */ btou),\n/* harmony export */ \"decode\": () => (/* binding */ decode),\n/* harmony export */ \"isValid\": () => (/* binding */ isValid),\n/* harmony export */ \"fromUint8Array\": () => (/* binding */ fromUint8Array),\n/* harmony export */ \"toUint8Array\": () => (/* binding */ toUint8Array),\n/* harmony export */ \"extendString\": () => (/* binding */ extendString),\n/* harmony export */ \"extendUint8Array\": () => (/* binding */ extendUint8Array),\n/* harmony export */ \"extendBuiltins\": () => (/* binding */ extendBuiltins),\n/* harmony export */ \"Base64\": () => (/* binding */ gBase64)\n/* harmony export */ });\n/**\n * base64.ts\n *\n * Licensed under the BSD 3-Clause License.\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * References:\n * http://en.wikipedia.org/wiki/Base64\n *\n * @author Dan Kogai (https://github.com/dankogai)\n */\nconst version = '3.7.7';\n/**\n * @deprecated use lowercase `version`.\n */\nconst VERSION = version;\nconst _hasBuffer = typeof Buffer === 'function';\nconst _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;\nconst _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;\nconst b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst b64chs = Array.prototype.slice.call(b64ch);\nconst b64tab = ((a) => {\n let tab = {};\n a.forEach((c, i) => tab[c] = i);\n return tab;\n})(b64chs);\nconst b64re = /^(?:[A-Za-z\\d+\\/]{4})*?(?:[A-Za-z\\d+\\/]{2}(?:==)?|[A-Za-z\\d+\\/]{3}=?)?$/;\nconst _fromCC = String.fromCharCode.bind(String);\nconst _U8Afrom = typeof Uint8Array.from === 'function'\n ? Uint8Array.from.bind(Uint8Array)\n : (it) => new Uint8Array(Array.prototype.slice.call(it, 0));\nconst _mkUriSafe = (src) => src\n .replace(/=/g, '').replace(/[+\\/]/g, (m0) => m0 == '+' ? '-' : '_');\nconst _tidyB64 = (s) => s.replace(/[^A-Za-z0-9\\+\\/]/g, '');\n/**\n * polyfill version of `btoa`\n */\nconst btoaPolyfill = (bin) => {\n // console.log('polyfilled');\n let u32, c0, c1, c2, asc = '';\n const pad = bin.length % 3;\n for (let i = 0; i < bin.length;) {\n if ((c0 = bin.charCodeAt(i++)) > 255 ||\n (c1 = bin.charCodeAt(i++)) > 255 ||\n (c2 = bin.charCodeAt(i++)) > 255)\n throw new TypeError('invalid character found');\n u32 = (c0 << 16) | (c1 << 8) | c2;\n asc += b64chs[u32 >> 18 & 63]\n + b64chs[u32 >> 12 & 63]\n + b64chs[u32 >> 6 & 63]\n + b64chs[u32 & 63];\n }\n return pad ? asc.slice(0, pad - 3) + \"===\".substring(pad) : asc;\n};\n/**\n * does what `window.btoa` of web browsers do.\n * @param {String} bin binary string\n * @returns {string} Base64-encoded string\n */\nconst _btoa = typeof btoa === 'function' ? (bin) => btoa(bin)\n : _hasBuffer ? (bin) => Buffer.from(bin, 'binary').toString('base64')\n : btoaPolyfill;\nconst _fromUint8Array = _hasBuffer\n ? (u8a) => Buffer.from(u8a).toString('base64')\n : (u8a) => {\n // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326\n const maxargs = 0x1000;\n let strs = [];\n for (let i = 0, l = u8a.length; i < l; i += maxargs) {\n strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));\n }\n return _btoa(strs.join(''));\n };\n/**\n * converts a Uint8Array to a Base64 string.\n * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5\n * @returns {string} Base64 string\n */\nconst fromUint8Array = (u8a, urlsafe = false) => urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const utob = (src: string) => unescape(encodeURIComponent(src));\n// reverting good old fationed regexp\nconst cb_utob = (c) => {\n if (c.length < 2) {\n var cc = c.charCodeAt(0);\n return cc < 0x80 ? c\n : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6))\n + _fromCC(0x80 | (cc & 0x3f)))\n : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n else {\n var cc = 0x10000\n + (c.charCodeAt(0) - 0xD800) * 0x400\n + (c.charCodeAt(1) - 0xDC00);\n return (_fromCC(0xf0 | ((cc >>> 18) & 0x07))\n + _fromCC(0x80 | ((cc >>> 12) & 0x3f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n};\nconst re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-8 string\n * @returns {string} UTF-16 string\n */\nconst utob = (u) => u.replace(re_utob, cb_utob);\n//\nconst _encode = _hasBuffer\n ? (s) => Buffer.from(s, 'utf8').toString('base64')\n : _TE\n ? (s) => _fromUint8Array(_TE.encode(s))\n : (s) => _btoa(utob(s));\n/**\n * converts a UTF-8-encoded string to a Base64 string.\n * @param {boolean} [urlsafe] if `true` make the result URL-safe\n * @returns {string} Base64 string\n */\nconst encode = (src, urlsafe = false) => urlsafe\n ? _mkUriSafe(_encode(src))\n : _encode(src);\n/**\n * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5.\n * @returns {string} Base64 string\n */\nconst encodeURI = (src) => encode(src, true);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const btou = (src: string) => decodeURIComponent(escape(src));\n// reverting good old fationed regexp\nconst re_btou = /[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}/g;\nconst cb_btou = (cccc) => {\n switch (cccc.length) {\n case 4:\n var cp = ((0x07 & cccc.charCodeAt(0)) << 18)\n | ((0x3f & cccc.charCodeAt(1)) << 12)\n | ((0x3f & cccc.charCodeAt(2)) << 6)\n | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000;\n return (_fromCC((offset >>> 10) + 0xD800)\n + _fromCC((offset & 0x3FF) + 0xDC00));\n case 3:\n return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12)\n | ((0x3f & cccc.charCodeAt(1)) << 6)\n | (0x3f & cccc.charCodeAt(2)));\n default:\n return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6)\n | (0x3f & cccc.charCodeAt(1)));\n }\n};\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-16 string\n * @returns {string} UTF-8 string\n */\nconst btou = (b) => b.replace(re_btou, cb_btou);\n/**\n * polyfill version of `atob`\n */\nconst atobPolyfill = (asc) => {\n // console.log('polyfilled');\n asc = asc.replace(/\\s+/g, '');\n if (!b64re.test(asc))\n throw new TypeError('malformed base64.');\n asc += '=='.slice(2 - (asc.length & 3));\n let u24, bin = '', r1, r2;\n for (let i = 0; i < asc.length;) {\n u24 = b64tab[asc.charAt(i++)] << 18\n | b64tab[asc.charAt(i++)] << 12\n | (r1 = b64tab[asc.charAt(i++)]) << 6\n | (r2 = b64tab[asc.charAt(i++)]);\n bin += r1 === 64 ? _fromCC(u24 >> 16 & 255)\n : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255)\n : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);\n }\n return bin;\n};\n/**\n * does what `window.atob` of web browsers do.\n * @param {String} asc Base64-encoded string\n * @returns {string} binary string\n */\nconst _atob = typeof atob === 'function' ? (asc) => atob(_tidyB64(asc))\n : _hasBuffer ? (asc) => Buffer.from(asc, 'base64').toString('binary')\n : atobPolyfill;\n//\nconst _toUint8Array = _hasBuffer\n ? (a) => _U8Afrom(Buffer.from(a, 'base64'))\n : (a) => _U8Afrom(_atob(a).split('').map(c => c.charCodeAt(0)));\n/**\n * converts a Base64 string to a Uint8Array.\n */\nconst toUint8Array = (a) => _toUint8Array(_unURI(a));\n//\nconst _decode = _hasBuffer\n ? (a) => Buffer.from(a, 'base64').toString('utf8')\n : _TD\n ? (a) => _TD.decode(_toUint8Array(a))\n : (a) => btou(_atob(a));\nconst _unURI = (a) => _tidyB64(a.replace(/[-_]/g, (m0) => m0 == '-' ? '+' : '/'));\n/**\n * converts a Base64 string to a UTF-8 string.\n * @param {String} src Base64 string. Both normal and URL-safe are supported\n * @returns {string} UTF-8 string\n */\nconst decode = (src) => _decode(_unURI(src));\n/**\n * check if a value is a valid Base64 string\n * @param {String} src a value to check\n */\nconst isValid = (src) => {\n if (typeof src !== 'string')\n return false;\n const s = src.replace(/\\s+/g, '').replace(/={0,2}$/, '');\n return !/[^\\s0-9a-zA-Z\\+/]/.test(s) || !/[^\\s0-9a-zA-Z\\-_]/.test(s);\n};\n//\nconst _noEnum = (v) => {\n return {\n value: v, enumerable: false, writable: true, configurable: true\n };\n};\n/**\n * extend String.prototype with relevant methods\n */\nconst extendString = function () {\n const _add = (name, body) => Object.defineProperty(String.prototype, name, _noEnum(body));\n _add('fromBase64', function () { return decode(this); });\n _add('toBase64', function (urlsafe) { return encode(this, urlsafe); });\n _add('toBase64URI', function () { return encode(this, true); });\n _add('toBase64URL', function () { return encode(this, true); });\n _add('toUint8Array', function () { return toUint8Array(this); });\n};\n/**\n * extend Uint8Array.prototype with relevant methods\n */\nconst extendUint8Array = function () {\n const _add = (name, body) => Object.defineProperty(Uint8Array.prototype, name, _noEnum(body));\n _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); });\n _add('toBase64URI', function () { return fromUint8Array(this, true); });\n _add('toBase64URL', function () { return fromUint8Array(this, true); });\n};\n/**\n * extend Builtin prototypes with relevant methods\n */\nconst extendBuiltins = () => {\n extendString();\n extendUint8Array();\n};\nconst gBase64 = {\n version: version,\n VERSION: VERSION,\n atob: _atob,\n atobPolyfill: atobPolyfill,\n btoa: _btoa,\n btoaPolyfill: btoaPolyfill,\n fromBase64: decode,\n toBase64: encode,\n encode: encode,\n encodeURI: encodeURI,\n encodeURL: encodeURI,\n utob: utob,\n btou: btou,\n decode: decode,\n isValid: isValid,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array,\n extendString: extendString,\n extendUint8Array: extendUint8Array,\n extendBuiltins: extendBuiltins\n};\n// makecjs:CUT //\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// and finally,\n\n\n\n//# sourceURL=webpack://login-authorization-v2/./node_modules/js-base64/base64.mjs?");
348
446
 
447
+ /***/ }),
448
+
449
+ /***/ "./node_modules/js-cookie/dist/js.cookie.mjs":
450
+ /*!***************************************************!*\
451
+ !*** ./node_modules/js-cookie/dist/js.cookie.mjs ***!
452
+ \***************************************************/
453
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
454
+
455
+ "use strict";
456
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ api)\n/* harmony export */ });\n/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\n\n\n\n//# sourceURL=webpack://login-authorization-v2/./node_modules/js-cookie/dist/js.cookie.mjs?");
457
+
349
458
  /***/ })
350
459
 
351
460
  /******/ });
@@ -420,7 +529,9 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
420
529
  /******/ // startup
421
530
  /******/ // Load entry module and return exports
422
531
  /******/ // This entry module can't be inlined because the eval devtool is used.
423
- /******/ var __webpack_exports__ = __webpack_require__("./index.js");
532
+ /******/ var __webpack_exports__ = __webpack_require__("./index.ts");
424
533
  /******/
534
+ /******/ return __webpack_exports__;
425
535
  /******/ })()
426
- ;
536
+ ;
537
+ });
@@ -0,0 +1,36 @@
1
+ import type { ModuleName } from './types';
2
+ import type { AxiosPromise } from 'axios';
3
+ /**
4
+ * 没找到更好的方式,只能这样做了
5
+ */
6
+ export declare const initInstance: () => void;
7
+ type RefreshTokenResponse = {
8
+ code: string;
9
+ msg: string;
10
+ content: {
11
+ accessToken: string;
12
+ expiresIn: number;
13
+ idToken: string;
14
+ newDeviceMetadata: null;
15
+ refreshToken: string;
16
+ tokenType: 'Bearer';
17
+ };
18
+ };
19
+ export declare const fetchRefreshTokenHTTP: (refreshToken: string) => AxiosPromise<RefreshTokenResponse>;
20
+ export declare const fetchLogoutHTTP: () => AxiosPromise<any>;
21
+ type Content = {
22
+ groupName: ModuleName;
23
+ icon: string;
24
+ id: number;
25
+ label: string;
26
+ staffEndpoint: boolean;
27
+ url: string;
28
+ };
29
+ type ServerListResponse = {
30
+ content: Array<Content>;
31
+ code: number;
32
+ totalElements: number;
33
+ };
34
+ export declare const fetchServerListHTTP: () => AxiosPromise<ServerListResponse>;
35
+ export {};
36
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAA;AAIxD;;GAEG;AACH,eAAO,MAAM,YAAY,YA+BxB,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE;QACP,WAAW,EAAE,MAAM,CAAA;QACnB,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,iBAAiB,EAAE,IAAI,CAAA;QACvB,YAAY,EAAE,MAAM,CAAA;QACpB,SAAS,EAAE,QAAQ,CAAA;KACpB,CAAA;CACF,CAAA;AACD,eAAO,MAAM,qBAAqB,GAAI,cAAc,MAAM,KAOlD,YAAY,CAAC,oBAAoB,CACxC,CAAA;AAED,eAAO,MAAM,eAAe,yBAK3B,CAAA;AAED,KAAK,OAAO,GAAG;IACb,SAAS,EAAE,UAAU,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,OAAO,CAAA;IACtB,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AACD,KAAK,kBAAkB,GAAG;IACxB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AACD,eAAO,MAAM,mBAAmB,QAIxB,YAAY,CAAC,kBAAkB,CACtC,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { Tenant, Brand } from './types';
2
+ export declare let tenantId: Tenant;
3
+ export declare let brand: Brand;
4
+ export declare let moduleBaseUrl: string;
5
+ export declare let loginPageUrl: string;
6
+ export declare const setTenantId: (id: Tenant) => void;
7
+ export declare const setBrand: (b: Brand) => void;
8
+ export declare const setModuleBaseUrl: (url: string) => void;
9
+ export declare const setLoginPageUrl: (url: string) => void;
10
+ //# sourceMappingURL=shares.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shares.d.ts","sourceRoot":"","sources":["../src/shares.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEvC,eAAO,IAAI,QAAQ,EAAE,MAAW,CAAA;AAChC,eAAO,IAAI,KAAK,EAAE,KAAU,CAAA;AAC5B,eAAO,IAAI,aAAa,EAAE,MAAW,CAAA;AACrC,eAAO,IAAI,YAAY,EAAE,MAAW,CAAA;AAEpC,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,SAErC,CAAA;AACD,eAAO,MAAM,QAAQ,GAAI,GAAG,KAAK,SAEhC,CAAA;AACD,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,SAE3C,CAAA;AACD,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,SAE1C,CAAA"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 这个文件是写一些兼容的方法,避免各个项目做出大量调整
3
+ */
4
+ export declare const setIdToken: (token: string | null) => void;
5
+ export declare const getIdToken: () => string | undefined;
6
+ export declare const setCookie: (name: string, value: string | undefined | null, domain: string, path?: string, time?: number) => void;
7
+ export declare const clearLoginCookie: () => void;
8
+ export declare const getCookie: (c_name: string) => string | null;
9
+ export declare const getUrlParam: (key: string, href?: string) => string | null;
10
+ //# sourceMappingURL=compatible.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compatible.d.ts","sourceRoot":"","sources":["../../src/compatible.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,eAAO,MAAM,UAAU,gCAAiB,CAAA;AACxC,eAAO,MAAM,UAAU,0BAAiB,CAAA;AAExC,eAAO,MAAM,SAAS,GACpB,MAAM,MAAM,EACZ,OAAO,MAAM,GAAG,SAAS,GAAG,IAAI,EAChC,QAAQ,MAAM,EACd,OAAM,MAAY,EAClB,aAA+B,SAUhC,CAAA;AACD,eAAO,MAAM,gBAAgB,YAG5B,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,kBAKvC,CAAA;AAGD,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,EAAE,OAAO,MAAM,kBAMrD,CAAA"}
@@ -0,0 +1,8 @@
1
+ export declare const NO_ACCESS_TOKEN = "Access token not found";
2
+ export declare const INVALID_ACCESS_TOKEN = "Invalid access token";
3
+ export declare const INVALID_REFRESH_TOKEN = "Invalid refresh token";
4
+ export declare const NO_REFRESH_TOKEN = "Refresh token not found";
5
+ export declare const NO_MODULE_BASE_URL = "Module base URL is required";
6
+ export declare const INVALID_TENANT_ID = "Invalid tenant ID";
7
+ export declare const INVALID_BRAND = "Invalid brand";
8
+ //# sourceMappingURL=constance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constance.d.ts","sourceRoot":"","sources":["../../src/constance.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,2BAA2B,CAAA;AACvD,eAAO,MAAM,oBAAoB,yBAAyB,CAAA;AAC1D,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAC5D,eAAO,MAAM,gBAAgB,4BAA4B,CAAA;AACzD,eAAO,MAAM,kBAAkB,gCAAgC,CAAA;AAC/D,eAAO,MAAM,iBAAiB,sBAAsB,CAAA;AACpD,eAAO,MAAM,aAAa,kBAAkB,CAAA"}
@@ -0,0 +1,8 @@
1
+ export type CookieKeys = 'access_token' | 'refresh_token' | 'idTokenFront' | 'idTokenBack' | 'refreshTokenFront' | 'refreshTokenBack' | 'currentSystemType';
2
+ export declare const setRefreshToken: (token: string | null) => void;
3
+ export declare const setAccessToken: (token: string | null) => void;
4
+ export declare const getAccessToken: () => string | undefined;
5
+ export declare const getRefreshToken: () => string | undefined;
6
+ export declare const setSystemType: (value: string | null) => void;
7
+ export declare const getSystemType: () => string | undefined;
8
+ //# sourceMappingURL=cookie.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../../src/cookie.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,GACpB,cAAc,GACZ,eAAe,GACf,cAAc,GACd,aAAa,GACb,mBAAmB,GACnB,kBAAkB,GAClB,mBAAmB,CAAA;AAyBvB,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,GAAG,IAAI,SAenD,CAAA;AACD,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,GAAG,IAAI,SAgBlD,CAAA;AAED,eAAO,MAAM,cAAc,0BAAmC,CAAA;AAC9D,eAAO,MAAM,eAAe,0BAAoC,CAAA;AAEhE,eAAO,MAAM,aAAa,UArDT,MAAM,GAAG,IAAI,SAqDmC,CAAA;AACjE,eAAO,MAAM,aAAa,0BAAwC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare const closeDialog: () => void;
2
+ export declare const openDialog: () => void;
3
+ //# sourceMappingURL=dom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/dom.ts"],"names":[],"mappings":"AAqCA,eAAO,MAAM,WAAW,YAKvB,CAAA;AAED,eAAO,MAAM,UAAU,YActB,CAAA"}
@@ -0,0 +1,36 @@
1
+ import type { ModuleName } from './types';
2
+ import type { AxiosPromise } from 'axios';
3
+ /**
4
+ * 没找到更好的方式,只能这样做了
5
+ */
6
+ export declare const initInstance: () => Promise<void>;
7
+ type RefreshTokenResponse = {
8
+ code: string;
9
+ msg: string;
10
+ content: {
11
+ accessToken: string;
12
+ expiresIn: number;
13
+ idToken: string;
14
+ newDeviceMetadata: null;
15
+ refreshToken: string;
16
+ tokenType: 'Bearer';
17
+ };
18
+ };
19
+ export declare const fetchRefreshTokenHTTP: (refreshToken: string) => AxiosPromise<RefreshTokenResponse>;
20
+ export declare const fetchLogoutHTTP: () => AxiosPromise<any>;
21
+ type Content = {
22
+ groupName: ModuleName;
23
+ icon: string;
24
+ id: number;
25
+ label: string;
26
+ staffEndpoint: boolean;
27
+ url: string;
28
+ };
29
+ type ServerListResponse = {
30
+ content: Array<Content>;
31
+ code: number;
32
+ totalElements: number;
33
+ };
34
+ export declare const fetchServerListHTTP: () => AxiosPromise<ServerListResponse>;
35
+ export {};
36
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAY,MAAM,SAAS,CAAA;AAEnD,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAA;AAKxD;;GAEG;AACH,eAAO,MAAM,YAAY,qBAqCxB,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE;QACP,WAAW,EAAE,MAAM,CAAA;QACnB,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,iBAAiB,EAAE,IAAI,CAAA;QACvB,YAAY,EAAE,MAAM,CAAA;QACpB,SAAS,EAAE,QAAQ,CAAA;KACpB,CAAA;CACF,CAAA;AACD,eAAO,MAAM,qBAAqB,GAAI,cAAc,MAAM,KAOlD,YAAY,CAAC,oBAAoB,CACxC,CAAA;AAED,eAAO,MAAM,eAAe,yBAK3B,CAAA;AAED,KAAK,OAAO,GAAG;IACb,SAAS,EAAE,UAAU,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,OAAO,CAAA;IACtB,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AACD,KAAK,kBAAkB,GAAG;IACxB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AACD,eAAO,MAAM,mBAAmB,QAIxB,YAAY,CAAC,kBAAkB,CACtC,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { Tenant, Brand } from './types';
2
+ export declare let tenantId: Tenant;
3
+ export declare let brand: Brand;
4
+ export declare let moduleBaseUrl: string;
5
+ export declare let loginPageUrl: string;
6
+ export declare const setTenantId: (id: Tenant) => void;
7
+ export declare const setBrand: (id: Brand) => void;
8
+ export declare const setModuleBaseUrl: (url: string) => void;
9
+ export declare const setLoginPageUrl: (url: string) => void;
10
+ //# sourceMappingURL=shares.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shares.d.ts","sourceRoot":"","sources":["../../src/shares.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAGvC,eAAO,IAAI,QAAQ,EAAG,MAAM,CAAA;AAC5B,eAAO,IAAI,KAAK,EAAG,KAAK,CAAA;AACxB,eAAO,IAAI,aAAa,EAAE,MAAW,CAAA;AACrC,eAAO,IAAI,YAAY,EAAE,MAAW,CAAA;AAEpC,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,SAKrC,CAAA;AACD,eAAO,MAAM,QAAQ,GAAI,IAAI,KAAK,SAKjC,CAAA;AACD,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,SAE3C,CAAA;AACD,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,SAE1C,CAAA"}
@@ -0,0 +1,89 @@
1
+ declare const modules: readonly [{
2
+ readonly href: "";
3
+ readonly name: "commonLogin";
4
+ }, {
5
+ readonly href: "";
6
+ readonly name: "App";
7
+ }, {
8
+ readonly href: "";
9
+ readonly name: "Portal";
10
+ }, {
11
+ readonly href: "";
12
+ readonly name: "AgentPortal";
13
+ }, {
14
+ readonly href: "";
15
+ readonly name: "AdminPortal";
16
+ }, {
17
+ readonly href: "";
18
+ readonly name: "CRM";
19
+ }, {
20
+ readonly href: "";
21
+ readonly name: "Finance";
22
+ }, {
23
+ readonly href: "";
24
+ readonly name: "FundingAdmin";
25
+ }, {
26
+ readonly href: "";
27
+ readonly name: "MessageTemplate";
28
+ }, {
29
+ readonly href: "";
30
+ readonly name: "Translate";
31
+ }, {
32
+ readonly href: "";
33
+ readonly name: "TradeConfig";
34
+ }, {
35
+ readonly href: "";
36
+ readonly name: "Ticket";
37
+ }, {
38
+ readonly href: "";
39
+ readonly name: "IBPortalAdmin";
40
+ }, {
41
+ readonly href: "";
42
+ readonly name: "OPPortal";
43
+ }, {
44
+ readonly href: "";
45
+ readonly name: "ClientInfoHub";
46
+ }, {
47
+ readonly href: "";
48
+ readonly name: "Promotion";
49
+ }];
50
+ export type ModuleName = typeof modules[number]['name'];
51
+ export type UserInfo = {
52
+ 'aud': string;
53
+ 'aud_time': number;
54
+ 'cognito:groups': ModuleName[];
55
+ 'cognito:username': string;
56
+ 'custom:encrypt_email_var': string;
57
+ 'custom:tenant_id': Tenant;
58
+ 'custom:user_id': string;
59
+ 'email': string;
60
+ 'email_verified': boolean;
61
+ 'exp': number;
62
+ 'event_id': string;
63
+ 'iat': number;
64
+ 'iss': string;
65
+ 'jti': string;
66
+ 'origin_jti': string;
67
+ 'preferred_username': string;
68
+ 'sub': string;
69
+ 'token_use': string;
70
+ };
71
+ export declare enum Brand {
72
+ ZERO = 1,
73
+ HEDGEHOOD = 2,
74
+ NISE = 3
75
+ }
76
+ export declare enum Tenant {
77
+ ZERO_INT = 1,
78
+ HEDGEHOOD = 2,
79
+ ZERO_NZ = 3,
80
+ ZERO_LA = 4,
81
+ ZERO_BR = 4,
82
+ NISE_EU = 5
83
+ }
84
+ export declare enum SystemType {
85
+ Staff = "staff",
86
+ Client = "client"
87
+ }
88
+ export {};
89
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiEH,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;AAEvD,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,UAAU,EAAE,CAAA;IAC9B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,0BAA0B,EAAE,MAAM,CAAA;IAClC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,OAAO,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,oBAAY,KAAK;IACf,IAAI,IAAI;IACR,SAAS,IAAI;IACb,IAAI,IAAI;CACT;AAED,oBAAY,MAAM;IAChB,QAAQ,IAAI;IACZ,SAAS,IAAI;IACb,OAAO,IAAI;IACX,OAAO,IAAI;IACX,OAAO,IAAI;IACX,OAAO,IAAI;CACZ;AAED,oBAAY,UAAU;IACpB,KAAK,UAAU;IACf,MAAM,WAAW;CAClB"}
@@ -0,0 +1,4 @@
1
+ import type { UserInfo } from './types';
2
+ export declare const isMobile: () => boolean;
3
+ export declare const getUserInfo: () => Promise<UserInfo>;
4
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAKvC,eAAO,MAAM,QAAQ,QAAM,OAG1B,CAAA;AAED,eAAO,MAAM,WAAW,QAAO,OAAO,CAAC,QAAQ,CAS9C,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cookie.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookie.test.d.ts","sourceRoot":"","sources":["../../test/cookie.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=shares.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shares.test.d.ts","sourceRoot":"","sources":["../../test/shares.test.ts"],"names":[],"mappings":""}