@multiplatform.one/keycloak 0.3.29 → 0.3.31
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/dist/esm/hooks/useKeycloak/useKeycloak.mjs +15 -7
- package/dist/esm/hooks/useKeycloak/useKeycloak.mjs.map +2 -2
- package/dist/esm/provider/keycloakProvider.mjs +3 -3
- package/dist/esm/provider/keycloakProvider.mjs.map +2 -2
- package/dist/jsx/hooks/useKeycloak/useKeycloak.mjs +7 -3
- package/dist/jsx/hooks/useKeycloak/useKeycloak.mjs.map +2 -2
- package/dist/jsx/provider/keycloakProvider.mjs +3 -3
- package/dist/jsx/provider/keycloakProvider.mjs.map +2 -2
- package/dist/lib/hooks/useKeycloak/useKeycloak.d.ts +1 -1
- package/dist/lib/hooks/useKeycloak/useKeycloak.js +11 -7
- package/dist/lib/hooks/useKeycloak/useKeycloak.js.map +2 -2
- package/dist/lib/provider/keycloakProvider.js +3 -3
- package/dist/lib/provider/keycloakProvider.js.map +2 -2
- package/dist/lib/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/hooks/useKeycloak/useKeycloak.ts +7 -2
- package/src/provider/keycloakProvider.tsx +3 -5
|
@@ -57,24 +57,32 @@ import { useAuthConfig } from "../useAuthConfig.mjs";
|
|
|
57
57
|
import { useKeycloak as useReactKeycloak } from "@bitspur/react-keycloak-web";
|
|
58
58
|
import { useKeycloak as useSsrKeycloak } from "@bitspur/react-keycloak-ssr";
|
|
59
59
|
function useKeycloak() {
|
|
60
|
-
var _keycloak$
|
|
60
|
+
var _keycloak$tokenParsed4, _keycloak$tokenParsed5, _keycloak$tokenParsed6;
|
|
61
61
|
var authConfig = useAuthConfig();
|
|
62
|
-
if (MultiPlatform.isStorybook)
|
|
62
|
+
if (MultiPlatform.isStorybook) {
|
|
63
63
|
return {
|
|
64
|
-
authenticated: true
|
|
64
|
+
authenticated: true,
|
|
65
|
+
username: "storybook",
|
|
66
|
+
email: "storybook@example.com",
|
|
67
|
+
userId: "0"
|
|
65
68
|
};
|
|
69
|
+
}
|
|
66
70
|
if (MultiPlatform.isNext && authConfig.ssr) {
|
|
71
|
+
var _keycloak$tokenParsed, _keycloak$tokenParsed2, _keycloak$tokenParsed3;
|
|
67
72
|
var _useSsrKeycloak = useSsrKeycloak(), _keycloak = _useSsrKeycloak.keycloak, _initialized = _useSsrKeycloak.initialized;
|
|
68
73
|
return _objectSpread(_objectSpread({}, _keycloak), {}, {
|
|
69
|
-
authenticated: _initialized ? _keycloak === null || _keycloak === void 0 ? void 0 : _keycloak.authenticated : void 0
|
|
74
|
+
authenticated: _initialized ? _keycloak === null || _keycloak === void 0 ? void 0 : _keycloak.authenticated : void 0,
|
|
75
|
+
email: _keycloak === null || _keycloak === void 0 ? void 0 : (_keycloak$tokenParsed = _keycloak.tokenParsed) === null || _keycloak$tokenParsed === void 0 ? void 0 : _keycloak$tokenParsed.email,
|
|
76
|
+
userId: _keycloak === null || _keycloak === void 0 ? void 0 : (_keycloak$tokenParsed2 = _keycloak.tokenParsed) === null || _keycloak$tokenParsed2 === void 0 ? void 0 : _keycloak$tokenParsed2.sub,
|
|
77
|
+
username: _keycloak === null || _keycloak === void 0 ? void 0 : (_keycloak$tokenParsed3 = _keycloak.tokenParsed) === null || _keycloak$tokenParsed3 === void 0 ? void 0 : _keycloak$tokenParsed3.preferred_username
|
|
70
78
|
});
|
|
71
79
|
}
|
|
72
80
|
var _useReactKeycloak = useReactKeycloak(), keycloak = _useReactKeycloak.keycloak, initialized = _useReactKeycloak.initialized;
|
|
73
81
|
return _objectSpread(_objectSpread({}, keycloak), {}, {
|
|
74
82
|
authenticated: initialized ? keycloak === null || keycloak === void 0 ? void 0 : keycloak.authenticated : void 0,
|
|
75
|
-
email: keycloak === null || keycloak === void 0 ? void 0 : (_keycloak$
|
|
76
|
-
userId: keycloak === null || keycloak === void 0 ? void 0 : (_keycloak$
|
|
77
|
-
username: keycloak === null || keycloak === void 0 ? void 0 : (_keycloak$
|
|
83
|
+
email: keycloak === null || keycloak === void 0 ? void 0 : (_keycloak$tokenParsed4 = keycloak.tokenParsed) === null || _keycloak$tokenParsed4 === void 0 ? void 0 : _keycloak$tokenParsed4.email,
|
|
84
|
+
userId: keycloak === null || keycloak === void 0 ? void 0 : (_keycloak$tokenParsed5 = keycloak.tokenParsed) === null || _keycloak$tokenParsed5 === void 0 ? void 0 : _keycloak$tokenParsed5.sub,
|
|
85
|
+
username: keycloak === null || keycloak === void 0 ? void 0 : (_keycloak$tokenParsed6 = keycloak.tokenParsed) === null || _keycloak$tokenParsed6 === void 0 ? void 0 : _keycloak$tokenParsed6.preferred_username
|
|
78
86
|
});
|
|
79
87
|
}
|
|
80
88
|
export {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/hooks/useKeycloak/useKeycloak.ts"],
|
|
4
|
-
"sourcesContent": ["function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * File: /src/hooks/useKeycloak/useKeycloak.ts\n * Project: app\n * File Created: 08-11-2022 06:04:59\n * Author: Clay Risser\n * -----\n * Last Modified: 31-05-2023 12:
|
|
5
|
-
"mappings": "AAAA,SAAS,QAAQ,KAAK;AAAE;AAA2B,SAAO,UAAU,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUA,MAAK;AAAE,WAAO,OAAOA;AAAA,EAAK,IAAI,SAAUA,MAAK;AAAE,WAAOA,QAAO,cAAc,OAAO,UAAUA,KAAI,gBAAgB,UAAUA,SAAQ,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAK,GAAG,QAAQ,GAAG;AAAG;AAC/U,SAAS,QAAQ,QAAQ,gBAAgB;AAAE,MAAI,OAAO,OAAO,KAAK,MAAM;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,UAAU,OAAO,sBAAsB,MAAM;AAAG,uBAAmB,UAAU,QAAQ,OAAO,SAAU,KAAK;AAAE,aAAO,OAAO,yBAAyB,QAAQ,GAAG,EAAE;AAAA,IAAY,CAAC,IAAI,KAAK,KAAK,MAAM,MAAM,OAAO;AAAA,EAAG;AAAE,SAAO;AAAM;AACpV,SAAS,cAAc,QAAQ;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,SAAS,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC;AAAG,QAAI,IAAI,QAAQ,OAAO,MAAM,GAAG,IAAE,EAAE,QAAQ,SAAU,KAAK;AAAE,sBAAgB,QAAQ,KAAK,OAAO,GAAG,CAAC;AAAA,IAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,QAAQ,OAAO,0BAA0B,MAAM,CAAC,IAAI,QAAQ,OAAO,MAAM,CAAC,EAAE,QAAQ,SAAU,KAAK;AAAE,aAAO,eAAe,QAAQ,KAAK,OAAO,yBAAyB,QAAQ,GAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAO;AAAQ;AACzf,SAAS,gBAAgB,KAAK,KAAK,OAAO;AAAE,QAAM,eAAe,GAAG;AAAG,MAAI,OAAO,KAAK;AAAE,WAAO,eAAe,KAAK,KAAK,EAAE,OAAc,YAAY,MAAM,cAAc,MAAM,UAAU,KAAK,CAAC;AAAA,EAAG,OAAO;AAAE,QAAI,GAAG,IAAI;AAAA,EAAO;AAAE,SAAO;AAAK;AAC3O,SAAS,eAAe,KAAK;AAAE,MAAI,MAAM,aAAa,KAAK,QAAQ;AAAG,SAAO,QAAQ,GAAG,MAAM,WAAW,MAAM,OAAO,GAAG;AAAG;AAC5H,SAAS,aAAa,OAAO,MAAM;AAAE,MAAI,QAAQ,KAAK,MAAM,YAAY,UAAU;AAAM,WAAO;AAAO,MAAI,OAAO,MAAM,OAAO,WAAW;AAAG,MAAI,SAAS,QAAW;AAAE,QAAI,MAAM,KAAK,KAAK,OAAO,QAAQ,SAAS;AAAG,QAAI,QAAQ,GAAG,MAAM;AAAU,aAAO;AAAK,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAG;AAAE,UAAQ,SAAS,WAAW,SAAS,QAAQ,KAAK;AAAG;AAyB5X,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,eAAe,wBAAwB;AAChD,SAAS,eAAe,sBAAsB;AACvC,SAAS,cAAc;AAC5B,MAAI,
|
|
4
|
+
"sourcesContent": ["function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * File: /src/hooks/useKeycloak/useKeycloak.ts\n * Project: app\n * File Created: 08-11-2022 06:04:59\n * Author: Clay Risser\n * -----\n * Last Modified: 31-05-2023 12:49:27\n * Modified By: Clay Risser\n * -----\n * Risser Labs LLC (c) Copyright 2021 - 2022\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { MultiPlatform } from 'multiplatform.one';\nimport { useAuthConfig } from \"../useAuthConfig.mjs\";\nimport { useKeycloak as useReactKeycloak } from '@bitspur/react-keycloak-web';\nimport { useKeycloak as useSsrKeycloak } from '@bitspur/react-keycloak-ssr';\nexport function useKeycloak() {\n var _keycloak$tokenParsed4, _keycloak$tokenParsed5, _keycloak$tokenParsed6;\n var authConfig = useAuthConfig();\n if (MultiPlatform.isStorybook) {\n return {\n authenticated: true,\n username: 'storybook',\n email: 'storybook@example.com',\n userId: '0'\n };\n }\n if (MultiPlatform.isNext && authConfig.ssr) {\n var _keycloak$tokenParsed, _keycloak$tokenParsed2, _keycloak$tokenParsed3;\n var _useSsrKeycloak = useSsrKeycloak(),\n _keycloak = _useSsrKeycloak.keycloak,\n _initialized = _useSsrKeycloak.initialized;\n return _objectSpread(_objectSpread({}, _keycloak), {}, {\n authenticated: _initialized ? _keycloak === null || _keycloak === void 0 ? void 0 : _keycloak.authenticated : undefined,\n email: _keycloak === null || _keycloak === void 0 ? void 0 : (_keycloak$tokenParsed = _keycloak.tokenParsed) === null || _keycloak$tokenParsed === void 0 ? void 0 : _keycloak$tokenParsed.email,\n userId: _keycloak === null || _keycloak === void 0 ? void 0 : (_keycloak$tokenParsed2 = _keycloak.tokenParsed) === null || _keycloak$tokenParsed2 === void 0 ? void 0 : _keycloak$tokenParsed2.sub,\n username: _keycloak === null || _keycloak === void 0 ? void 0 : (_keycloak$tokenParsed3 = _keycloak.tokenParsed) === null || _keycloak$tokenParsed3 === void 0 ? void 0 : _keycloak$tokenParsed3.preferred_username\n });\n }\n var _useReactKeycloak = useReactKeycloak(),\n keycloak = _useReactKeycloak.keycloak,\n initialized = _useReactKeycloak.initialized;\n return _objectSpread(_objectSpread({}, keycloak), {}, {\n authenticated: initialized ? keycloak === null || keycloak === void 0 ? void 0 : keycloak.authenticated : undefined,\n email: keycloak === null || keycloak === void 0 ? void 0 : (_keycloak$tokenParsed4 = keycloak.tokenParsed) === null || _keycloak$tokenParsed4 === void 0 ? void 0 : _keycloak$tokenParsed4.email,\n userId: keycloak === null || keycloak === void 0 ? void 0 : (_keycloak$tokenParsed5 = keycloak.tokenParsed) === null || _keycloak$tokenParsed5 === void 0 ? void 0 : _keycloak$tokenParsed5.sub,\n username: keycloak === null || keycloak === void 0 ? void 0 : (_keycloak$tokenParsed6 = keycloak.tokenParsed) === null || _keycloak$tokenParsed6 === void 0 ? void 0 : _keycloak$tokenParsed6.preferred_username\n });\n}"],
|
|
5
|
+
"mappings": "AAAA,SAAS,QAAQ,KAAK;AAAE;AAA2B,SAAO,UAAU,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUA,MAAK;AAAE,WAAO,OAAOA;AAAA,EAAK,IAAI,SAAUA,MAAK;AAAE,WAAOA,QAAO,cAAc,OAAO,UAAUA,KAAI,gBAAgB,UAAUA,SAAQ,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAK,GAAG,QAAQ,GAAG;AAAG;AAC/U,SAAS,QAAQ,QAAQ,gBAAgB;AAAE,MAAI,OAAO,OAAO,KAAK,MAAM;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,UAAU,OAAO,sBAAsB,MAAM;AAAG,uBAAmB,UAAU,QAAQ,OAAO,SAAU,KAAK;AAAE,aAAO,OAAO,yBAAyB,QAAQ,GAAG,EAAE;AAAA,IAAY,CAAC,IAAI,KAAK,KAAK,MAAM,MAAM,OAAO;AAAA,EAAG;AAAE,SAAO;AAAM;AACpV,SAAS,cAAc,QAAQ;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,SAAS,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC;AAAG,QAAI,IAAI,QAAQ,OAAO,MAAM,GAAG,IAAE,EAAE,QAAQ,SAAU,KAAK;AAAE,sBAAgB,QAAQ,KAAK,OAAO,GAAG,CAAC;AAAA,IAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,QAAQ,OAAO,0BAA0B,MAAM,CAAC,IAAI,QAAQ,OAAO,MAAM,CAAC,EAAE,QAAQ,SAAU,KAAK;AAAE,aAAO,eAAe,QAAQ,KAAK,OAAO,yBAAyB,QAAQ,GAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAO;AAAQ;AACzf,SAAS,gBAAgB,KAAK,KAAK,OAAO;AAAE,QAAM,eAAe,GAAG;AAAG,MAAI,OAAO,KAAK;AAAE,WAAO,eAAe,KAAK,KAAK,EAAE,OAAc,YAAY,MAAM,cAAc,MAAM,UAAU,KAAK,CAAC;AAAA,EAAG,OAAO;AAAE,QAAI,GAAG,IAAI;AAAA,EAAO;AAAE,SAAO;AAAK;AAC3O,SAAS,eAAe,KAAK;AAAE,MAAI,MAAM,aAAa,KAAK,QAAQ;AAAG,SAAO,QAAQ,GAAG,MAAM,WAAW,MAAM,OAAO,GAAG;AAAG;AAC5H,SAAS,aAAa,OAAO,MAAM;AAAE,MAAI,QAAQ,KAAK,MAAM,YAAY,UAAU;AAAM,WAAO;AAAO,MAAI,OAAO,MAAM,OAAO,WAAW;AAAG,MAAI,SAAS,QAAW;AAAE,QAAI,MAAM,KAAK,KAAK,OAAO,QAAQ,SAAS;AAAG,QAAI,QAAQ,GAAG,MAAM;AAAU,aAAO;AAAK,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAG;AAAE,UAAQ,SAAS,WAAW,SAAS,QAAQ,KAAK;AAAG;AAyB5X,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,eAAe,wBAAwB;AAChD,SAAS,eAAe,sBAAsB;AACvC,SAAS,cAAc;AAC5B,MAAI,wBAAwB,wBAAwB;AACpD,MAAI,aAAa,cAAc;AAC/B,MAAI,cAAc,aAAa;AAC7B,WAAO;AAAA,MACL,eAAe;AAAA,MACf,UAAU;AAAA,MACV,OAAO;AAAA,MACP,QAAQ;AAAA,IACV;AAAA,EACF;AACA,MAAI,cAAc,UAAU,WAAW,KAAK;AAC1C,QAAI,uBAAuB,wBAAwB;AACnD,QAAI,kBAAkB,eAAe,GACnC,YAAY,gBAAgB,UAC5B,eAAe,gBAAgB;AACjC,WAAO,cAAc,cAAc,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG;AAAA,MACrD,eAAe,eAAe,cAAc,QAAQ,cAAc,SAAS,SAAS,UAAU,gBAAgB;AAAA,MAC9G,OAAO,cAAc,QAAQ,cAAc,SAAS,UAAU,wBAAwB,UAAU,iBAAiB,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB;AAAA,MAC3L,QAAQ,cAAc,QAAQ,cAAc,SAAS,UAAU,yBAAyB,UAAU,iBAAiB,QAAQ,2BAA2B,SAAS,SAAS,uBAAuB;AAAA,MAC/L,UAAU,cAAc,QAAQ,cAAc,SAAS,UAAU,yBAAyB,UAAU,iBAAiB,QAAQ,2BAA2B,SAAS,SAAS,uBAAuB;AAAA,IACnM,CAAC;AAAA,EACH;AACA,MAAI,oBAAoB,iBAAiB,GACvC,WAAW,kBAAkB,UAC7B,cAAc,kBAAkB;AAClC,SAAO,cAAc,cAAc,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG;AAAA,IACpD,eAAe,cAAc,aAAa,QAAQ,aAAa,SAAS,SAAS,SAAS,gBAAgB;AAAA,IAC1G,OAAO,aAAa,QAAQ,aAAa,SAAS,UAAU,yBAAyB,SAAS,iBAAiB,QAAQ,2BAA2B,SAAS,SAAS,uBAAuB;AAAA,IAC3L,QAAQ,aAAa,QAAQ,aAAa,SAAS,UAAU,yBAAyB,SAAS,iBAAiB,QAAQ,2BAA2B,SAAS,SAAS,uBAAuB;AAAA,IAC5L,UAAU,aAAa,QAAQ,aAAa,SAAS,UAAU,yBAAyB,SAAS,iBAAiB,QAAQ,2BAA2B,SAAS,SAAS,uBAAuB;AAAA,EAChM,CAAC;AACH;",
|
|
6
6
|
"names": ["obj"]
|
|
7
7
|
}
|
|
@@ -280,6 +280,7 @@ function KeycloakProvider(_ref) {
|
|
|
280
280
|
initOptions2.enableLogging = true;
|
|
281
281
|
if (token && typeof token === "string") {
|
|
282
282
|
initOptions2.token = token;
|
|
283
|
+
initOptions2.timeSkew = 0;
|
|
283
284
|
if (idToken && typeof idToken === "string")
|
|
284
285
|
initOptions2.idToken = idToken;
|
|
285
286
|
if (refreshToken && typeof refreshToken === "string")
|
|
@@ -289,7 +290,6 @@ function KeycloakProvider(_ref) {
|
|
|
289
290
|
initOptions2.checkLoginIframe = false;
|
|
290
291
|
initOptions2.flow = "implicit";
|
|
291
292
|
initOptions2.onLoad = void 0;
|
|
292
|
-
initOptions2.timeSkew = 0;
|
|
293
293
|
}
|
|
294
294
|
return initOptions2;
|
|
295
295
|
}, [keycloakInitOptions, token, refreshToken, idToken]);
|
|
@@ -300,7 +300,7 @@ function KeycloakProvider(_ref) {
|
|
|
300
300
|
// @ts-ignore
|
|
301
301
|
/* @__PURE__ */ React.createElement(SSRKeycloakProvider, {
|
|
302
302
|
LoadingComponent: /* @__PURE__ */ React.createElement(LoadingComponent, null),
|
|
303
|
-
autoRefreshToken:
|
|
303
|
+
autoRefreshToken: initOptions.checkLoginIframe,
|
|
304
304
|
initOptions,
|
|
305
305
|
onEvent: handleEvent,
|
|
306
306
|
onTokens,
|
|
@@ -318,7 +318,7 @@ function KeycloakProvider(_ref) {
|
|
|
318
318
|
return /* @__PURE__ */ React.createElement(ReactKeycloakProvider, {
|
|
319
319
|
LoadingComponent: /* @__PURE__ */ React.createElement(LoadingComponent, null),
|
|
320
320
|
authClient: keycloak,
|
|
321
|
-
autoRefreshToken:
|
|
321
|
+
autoRefreshToken: initOptions.checkLoginIframe,
|
|
322
322
|
initOptions,
|
|
323
323
|
onEvent: handleEvent,
|
|
324
324
|
onTokens
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/provider/keycloakProvider.tsx"],
|
|
4
|
-
"sourcesContent": ["function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\n * File: /auth/provider/keycloakProvider.tsx\n * Project: app\n * File Created: 08-11-2022 03:12:43\n * Author: Clay Risser\n * -----\n * Last Modified: 22-11-2022 18:07:46\n * Modified By: Clay Risser\n * -----\n * Risser Labs LLC (c) Copyright 2021 - 2022\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Keycloak from '@bitspur/keycloak-js';\nimport React, { useMemo, useEffect, useState, useCallback } from 'react';\nimport { AfterAuth } from \"./afterAuth.mjs\";\nimport { MultiPlatform } from 'multiplatform.one';\nimport { ReactKeycloakProvider } from '@bitspur/react-keycloak-web';\nimport { SSRKeycloakProvider, SSRCookies } from '@bitspur/react-keycloak-ssr';\nimport { useAuthConfig } from \"../hooks/useAuthConfig.mjs\";\nimport { useAuthState } from \"../state/index.mjs\";\nimport { useRouter } from 'next/router';\nimport { validToken } from \"../util.mjs\";\nvar logger = console;\nexport function KeycloakProvider(_ref) {\n var _query$refreshToken, _query$idToken, _query$token;\n var children = _ref.children,\n cookies = _ref.cookies,\n keycloakConfig = _ref.keycloakConfig,\n keycloakInitOptions = _ref.keycloakInitOptions,\n loadingComponent = _ref.loadingComponent,\n onEvent = _ref.onEvent,\n onTokens = _ref.onTokens;\n var _useAuthConfig = useAuthConfig(),\n debug = _useAuthConfig.debug,\n ensureFreshness = _useAuthConfig.ensureFreshness,\n persist = _useAuthConfig.persist,\n messageHandlerKeys = _useAuthConfig.messageHandlerKeys,\n ssr = _useAuthConfig.ssr;\n var authState = useAuthState();\n var LoadingComponent = loadingComponent || function () {\n return /*#__PURE__*/React.createElement(React.Fragment, null, debug ? 'authenticating' : null);\n };\n var _ref2 = MultiPlatform.isNext ? useRouter() : {\n query: {}\n },\n query = _ref2.query;\n var _useState = useState(validToken(ensureFreshness && ('refreshToken' in query && (((_query$refreshToken = query.refreshToken) === null || _query$refreshToken === void 0 ? void 0 : _query$refreshToken.toString()) || true) || persist && authState.refreshToken) || false)),\n _useState2 = _slicedToArray(_useState, 2),\n refreshToken = _useState2[0],\n setRefreshToken = _useState2[1];\n var _useState3 = useState(validToken('idToken' in query && (((_query$idToken = query.idToken) === null || _query$idToken === void 0 ? void 0 : _query$idToken.toString()) || true) || persist && authState.idToken || false, refreshToken)),\n _useState4 = _slicedToArray(_useState3, 2),\n idToken = _useState4[0],\n setIdToken = _useState4[1];\n var _useState5 = useState(validToken('token' in query && (((_query$token = query.token) === null || _query$token === void 0 ? void 0 : _query$token.toString()) || true) || persist && authState.token || false, refreshToken)),\n _useState6 = _slicedToArray(_useState5, 2),\n token = _useState6[0],\n setToken = _useState6[1];\n useEffect(function () {\n var _window2, _window2$ReactNativeW, _window3, _window3$parent;\n if (token !== true && refreshToken !== true && idToken !== true) return;\n if (debug) logger.debug('post message', JSON.stringify({\n type: 'LOADED'\n }));\n (messageHandlerKeys || []).forEach(function (key) {\n var _window, _window$webkit, _window$webkit$messag, _window$webkit$messag2;\n (_window = window) === null || _window === void 0 ? void 0 : (_window$webkit = _window.webkit) === null || _window$webkit === void 0 ? void 0 : (_window$webkit$messag = _window$webkit.messageHandlers) === null || _window$webkit$messag === void 0 ? void 0 : (_window$webkit$messag2 = _window$webkit$messag[key]) === null || _window$webkit$messag2 === void 0 ? void 0 : _window$webkit$messag2.postMessage(JSON.stringify({\n type: 'LOADED'\n }));\n });\n (_window2 = window) === null || _window2 === void 0 ? void 0 : (_window2$ReactNativeW = _window2.ReactNativeWebView) === null || _window2$ReactNativeW === void 0 ? void 0 : _window2$ReactNativeW.postMessage(JSON.stringify({\n type: 'LOADED'\n }));\n (_window3 = window) === null || _window3 === void 0 ? void 0 : (_window3$parent = _window3.parent) === null || _window3$parent === void 0 ? void 0 : _window3$parent.postMessage(JSON.stringify({\n type: 'LOADED'\n }));\n }, []);\n useEffect(function () {\n if (refreshToken !== true) return;\n var messageCallback = function messageCallback(e) {\n var data = (e === null || e === void 0 ? void 0 : e.data) || null;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {}\n }\n if (debug) logger.debug('received message', JSON.stringify(data));\n var message = data;\n if (!message.type) return;\n if (message.type.toUpperCase() === 'REFRESH_TOKEN' && message.payload) {\n if (debug) logger.debug('setting refresh token', message.payload);\n setRefreshToken(validToken(message.payload));\n window.removeEventListener('message', messageCallback);\n }\n };\n if (debug) {\n logger.debug('listening for message', JSON.stringify({\n type: 'REFRESH_TOKEN',\n payload: '<some_refresh_token>'\n }));\n }\n window.addEventListener('message', messageCallback);\n return function () {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n useEffect(function () {\n if (token !== true) return;\n var messageCallback = function messageCallback(e) {\n var data = (e === null || e === void 0 ? void 0 : e.data) || null;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {}\n }\n if (debug) logger.debug('received message', JSON.stringify(data));\n var message = data;\n if (!message.type) return;\n if (message.type.toUpperCase() === 'TOKEN' && message.payload) {\n if (debug) logger.debug('setting token', message.payload);\n setToken(validToken(message.payload, refreshToken));\n window.removeEventListener('message', messageCallback);\n }\n };\n if (debug) {\n logger.debug('listening for message', JSON.stringify({\n type: 'TOKEN',\n payload: '<some_token>'\n }));\n }\n window.addEventListener('message', messageCallback);\n return function () {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n useEffect(function () {\n if (idToken !== true) return;\n var messageCallback = function messageCallback(e) {\n var data = (e === null || e === void 0 ? void 0 : e.data) || null;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {}\n }\n if (debug) logger.debug('received message', JSON.stringify(data));\n var message = data;\n if (!message.type) return;\n if (message.type.toUpperCase() === 'ID_TOKEN' && message.payload) {\n if (debug) logger.debug('setting id token', message.payload);\n setIdToken(validToken(message.payload, refreshToken));\n window.removeEventListener('message', messageCallback);\n }\n };\n if (debug) {\n logger.debug('listening for message', JSON.stringify({\n type: 'ID_TOKEN',\n payload: '<some_id_token>'\n }));\n }\n window.addEventListener('message', messageCallback);\n return function () {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n var handleEvent = useCallback(function (eventType, error) {\n if (error) {\n if (typeof error === 'string') throw new Error(error);\n var err = new Error(error.error);\n err.errorDescription = error.error_description;\n throw err;\n }\n if (onEvent) onEvent(eventType, error);\n }, []);\n var keycloak = useMemo(function () {\n return typeof window !== 'undefined' && new Keycloak({\n url: keycloakConfig.url,\n realm: keycloakConfig.realm,\n clientId: keycloakConfig.clientId\n });\n }, [keycloakInitOptions, token, refreshToken, idToken]);\n var initOptions = useMemo(function () {\n var initOptions = _objectSpread(_objectSpread({}, defaultKeycloakInitOptions), keycloakInitOptions);\n if (debug) initOptions.enableLogging = true;\n if (token && typeof token === 'string') {\n initOptions.token = token;\n if (idToken && typeof idToken === 'string') initOptions.idToken = idToken;\n if (refreshToken && typeof refreshToken === 'string') initOptions.refreshToken = refreshToken;\n }\n if (typeof window !== 'undefined' && window.self !== window.top || token && !refreshToken) {\n initOptions.checkLoginIframe = false;\n initOptions.flow = 'implicit';\n initOptions.onLoad = undefined;\n initOptions.timeSkew = 0;\n }\n return initOptions;\n }, [keycloakInitOptions, token, refreshToken, idToken]);\n if (token === true || idToken === true || refreshToken === true) return /*#__PURE__*/React.createElement(LoadingComponent, null);\n if (cookies && ssr) {\n return (\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(SSRKeycloakProvider, {\n LoadingComponent: /*#__PURE__*/React.createElement(LoadingComponent, null)\n // keycloak-js already handles refreshing tokens\n ,\n autoRefreshToken: false,\n initOptions: initOptions,\n onEvent: handleEvent,\n onTokens: onTokens,\n persistor: SSRCookies(cookies),\n keycloakConfig: {\n clientId: keycloakConfig.clientId,\n realm: keycloakConfig.realm,\n url: keycloakConfig.url\n }\n }, /*#__PURE__*/React.createElement(AfterAuth, null, children))\n );\n }\n if (!keycloak) return /*#__PURE__*/React.createElement(LoadingComponent, null);\n return /*#__PURE__*/React.createElement(ReactKeycloakProvider, {\n LoadingComponent: /*#__PURE__*/React.createElement(LoadingComponent, null),\n authClient: keycloak\n // keycloak-js already handles refreshing tokens\n ,\n autoRefreshToken: false,\n initOptions: initOptions,\n onEvent: handleEvent,\n onTokens: onTokens\n }, /*#__PURE__*/React.createElement(AfterAuth, null, children));\n}\nexport var defaultKeycloakInitOptions = {\n checkLoginIframe: true,\n checkLoginIframeInterval: 5,\n enableLogging: false,\n onLoad: 'check-sso',\n pkceMethod: 'S256'\n};"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\n * File: /auth/provider/keycloakProvider.tsx\n * Project: app\n * File Created: 08-11-2022 03:12:43\n * Author: Clay Risser\n * -----\n * Last Modified: 22-11-2022 18:07:46\n * Modified By: Clay Risser\n * -----\n * Risser Labs LLC (c) Copyright 2021 - 2022\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Keycloak from '@bitspur/keycloak-js';\nimport React, { useMemo, useEffect, useState, useCallback } from 'react';\nimport { AfterAuth } from \"./afterAuth.mjs\";\nimport { MultiPlatform } from 'multiplatform.one';\nimport { ReactKeycloakProvider } from '@bitspur/react-keycloak-web';\nimport { SSRKeycloakProvider, SSRCookies } from '@bitspur/react-keycloak-ssr';\nimport { useAuthConfig } from \"../hooks/useAuthConfig.mjs\";\nimport { useAuthState } from \"../state/index.mjs\";\nimport { useRouter } from 'next/router';\nimport { validToken } from \"../util.mjs\";\nvar logger = console;\nexport function KeycloakProvider(_ref) {\n var _query$refreshToken, _query$idToken, _query$token;\n var children = _ref.children,\n cookies = _ref.cookies,\n keycloakConfig = _ref.keycloakConfig,\n keycloakInitOptions = _ref.keycloakInitOptions,\n loadingComponent = _ref.loadingComponent,\n onEvent = _ref.onEvent,\n onTokens = _ref.onTokens;\n var _useAuthConfig = useAuthConfig(),\n debug = _useAuthConfig.debug,\n ensureFreshness = _useAuthConfig.ensureFreshness,\n persist = _useAuthConfig.persist,\n messageHandlerKeys = _useAuthConfig.messageHandlerKeys,\n ssr = _useAuthConfig.ssr;\n var authState = useAuthState();\n var LoadingComponent = loadingComponent || function () {\n return /*#__PURE__*/React.createElement(React.Fragment, null, debug ? 'authenticating' : null);\n };\n var _ref2 = MultiPlatform.isNext ? useRouter() : {\n query: {}\n },\n query = _ref2.query;\n var _useState = useState(validToken(ensureFreshness && ('refreshToken' in query && (((_query$refreshToken = query.refreshToken) === null || _query$refreshToken === void 0 ? void 0 : _query$refreshToken.toString()) || true) || persist && authState.refreshToken) || false)),\n _useState2 = _slicedToArray(_useState, 2),\n refreshToken = _useState2[0],\n setRefreshToken = _useState2[1];\n var _useState3 = useState(validToken('idToken' in query && (((_query$idToken = query.idToken) === null || _query$idToken === void 0 ? void 0 : _query$idToken.toString()) || true) || persist && authState.idToken || false, refreshToken)),\n _useState4 = _slicedToArray(_useState3, 2),\n idToken = _useState4[0],\n setIdToken = _useState4[1];\n var _useState5 = useState(validToken('token' in query && (((_query$token = query.token) === null || _query$token === void 0 ? void 0 : _query$token.toString()) || true) || persist && authState.token || false, refreshToken)),\n _useState6 = _slicedToArray(_useState5, 2),\n token = _useState6[0],\n setToken = _useState6[1];\n useEffect(function () {\n var _window2, _window2$ReactNativeW, _window3, _window3$parent;\n if (token !== true && refreshToken !== true && idToken !== true) return;\n if (debug) logger.debug('post message', JSON.stringify({\n type: 'LOADED'\n }));\n (messageHandlerKeys || []).forEach(function (key) {\n var _window, _window$webkit, _window$webkit$messag, _window$webkit$messag2;\n (_window = window) === null || _window === void 0 ? void 0 : (_window$webkit = _window.webkit) === null || _window$webkit === void 0 ? void 0 : (_window$webkit$messag = _window$webkit.messageHandlers) === null || _window$webkit$messag === void 0 ? void 0 : (_window$webkit$messag2 = _window$webkit$messag[key]) === null || _window$webkit$messag2 === void 0 ? void 0 : _window$webkit$messag2.postMessage(JSON.stringify({\n type: 'LOADED'\n }));\n });\n (_window2 = window) === null || _window2 === void 0 ? void 0 : (_window2$ReactNativeW = _window2.ReactNativeWebView) === null || _window2$ReactNativeW === void 0 ? void 0 : _window2$ReactNativeW.postMessage(JSON.stringify({\n type: 'LOADED'\n }));\n (_window3 = window) === null || _window3 === void 0 ? void 0 : (_window3$parent = _window3.parent) === null || _window3$parent === void 0 ? void 0 : _window3$parent.postMessage(JSON.stringify({\n type: 'LOADED'\n }));\n }, []);\n useEffect(function () {\n if (refreshToken !== true) return;\n var messageCallback = function messageCallback(e) {\n var data = (e === null || e === void 0 ? void 0 : e.data) || null;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {}\n }\n if (debug) logger.debug('received message', JSON.stringify(data));\n var message = data;\n if (!message.type) return;\n if (message.type.toUpperCase() === 'REFRESH_TOKEN' && message.payload) {\n if (debug) logger.debug('setting refresh token', message.payload);\n setRefreshToken(validToken(message.payload));\n window.removeEventListener('message', messageCallback);\n }\n };\n if (debug) {\n logger.debug('listening for message', JSON.stringify({\n type: 'REFRESH_TOKEN',\n payload: '<some_refresh_token>'\n }));\n }\n window.addEventListener('message', messageCallback);\n return function () {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n useEffect(function () {\n if (token !== true) return;\n var messageCallback = function messageCallback(e) {\n var data = (e === null || e === void 0 ? void 0 : e.data) || null;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {}\n }\n if (debug) logger.debug('received message', JSON.stringify(data));\n var message = data;\n if (!message.type) return;\n if (message.type.toUpperCase() === 'TOKEN' && message.payload) {\n if (debug) logger.debug('setting token', message.payload);\n setToken(validToken(message.payload, refreshToken));\n window.removeEventListener('message', messageCallback);\n }\n };\n if (debug) {\n logger.debug('listening for message', JSON.stringify({\n type: 'TOKEN',\n payload: '<some_token>'\n }));\n }\n window.addEventListener('message', messageCallback);\n return function () {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n useEffect(function () {\n if (idToken !== true) return;\n var messageCallback = function messageCallback(e) {\n var data = (e === null || e === void 0 ? void 0 : e.data) || null;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {}\n }\n if (debug) logger.debug('received message', JSON.stringify(data));\n var message = data;\n if (!message.type) return;\n if (message.type.toUpperCase() === 'ID_TOKEN' && message.payload) {\n if (debug) logger.debug('setting id token', message.payload);\n setIdToken(validToken(message.payload, refreshToken));\n window.removeEventListener('message', messageCallback);\n }\n };\n if (debug) {\n logger.debug('listening for message', JSON.stringify({\n type: 'ID_TOKEN',\n payload: '<some_id_token>'\n }));\n }\n window.addEventListener('message', messageCallback);\n return function () {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n var handleEvent = useCallback(function (eventType, error) {\n if (error) {\n if (typeof error === 'string') throw new Error(error);\n var err = new Error(error.error);\n err.errorDescription = error.error_description;\n throw err;\n }\n if (onEvent) onEvent(eventType, error);\n }, []);\n var keycloak = useMemo(function () {\n return typeof window !== 'undefined' && new Keycloak({\n url: keycloakConfig.url,\n realm: keycloakConfig.realm,\n clientId: keycloakConfig.clientId\n });\n }, [keycloakInitOptions, token, refreshToken, idToken]);\n var initOptions = useMemo(function () {\n var initOptions = _objectSpread(_objectSpread({}, defaultKeycloakInitOptions), keycloakInitOptions);\n if (debug) initOptions.enableLogging = true;\n if (token && typeof token === 'string') {\n initOptions.token = token;\n initOptions.timeSkew = 0;\n if (idToken && typeof idToken === 'string') initOptions.idToken = idToken;\n if (refreshToken && typeof refreshToken === 'string') initOptions.refreshToken = refreshToken;\n }\n if (typeof window !== 'undefined' && window.self !== window.top || token && !refreshToken) {\n initOptions.checkLoginIframe = false;\n initOptions.flow = 'implicit';\n initOptions.onLoad = undefined;\n }\n return initOptions;\n }, [keycloakInitOptions, token, refreshToken, idToken]);\n if (token === true || idToken === true || refreshToken === true) return /*#__PURE__*/React.createElement(LoadingComponent, null);\n if (cookies && ssr) {\n return (\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(SSRKeycloakProvider, {\n LoadingComponent: /*#__PURE__*/React.createElement(LoadingComponent, null),\n autoRefreshToken: initOptions.checkLoginIframe,\n initOptions: initOptions,\n onEvent: handleEvent,\n onTokens: onTokens,\n persistor: SSRCookies(cookies),\n keycloakConfig: {\n clientId: keycloakConfig.clientId,\n realm: keycloakConfig.realm,\n url: keycloakConfig.url\n }\n }, /*#__PURE__*/React.createElement(AfterAuth, null, children))\n );\n }\n if (!keycloak) return /*#__PURE__*/React.createElement(LoadingComponent, null);\n return /*#__PURE__*/React.createElement(ReactKeycloakProvider, {\n LoadingComponent: /*#__PURE__*/React.createElement(LoadingComponent, null),\n authClient: keycloak,\n autoRefreshToken: initOptions.checkLoginIframe,\n initOptions: initOptions,\n onEvent: handleEvent,\n onTokens: onTokens\n }, /*#__PURE__*/React.createElement(AfterAuth, null, children));\n}\nexport var defaultKeycloakInitOptions = {\n checkLoginIframe: true,\n checkLoginIframeInterval: 5,\n enableLogging: false,\n onLoad: 'check-sso',\n pkceMethod: 'S256'\n};"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["obj", "messageCallback", "initOptions"]
|
|
7
7
|
}
|
|
@@ -4,13 +4,17 @@ import { useKeycloak as useReactKeycloak } from "@bitspur/react-keycloak-web";
|
|
|
4
4
|
import { useKeycloak as useSsrKeycloak } from "@bitspur/react-keycloak-ssr";
|
|
5
5
|
function useKeycloak() {
|
|
6
6
|
const authConfig = useAuthConfig();
|
|
7
|
-
if (MultiPlatform.isStorybook)
|
|
8
|
-
return { authenticated: true };
|
|
7
|
+
if (MultiPlatform.isStorybook) {
|
|
8
|
+
return { authenticated: true, username: "storybook", email: "storybook@example.com", userId: "0" };
|
|
9
|
+
}
|
|
9
10
|
if (MultiPlatform.isNext && authConfig.ssr) {
|
|
10
11
|
const { keycloak: keycloak2, initialized: initialized2 } = useSsrKeycloak();
|
|
11
12
|
return {
|
|
12
13
|
...keycloak2,
|
|
13
|
-
authenticated: initialized2 ? keycloak2?.authenticated : void 0
|
|
14
|
+
authenticated: initialized2 ? keycloak2?.authenticated : void 0,
|
|
15
|
+
email: keycloak2?.tokenParsed?.email,
|
|
16
|
+
userId: keycloak2?.tokenParsed?.sub,
|
|
17
|
+
username: keycloak2?.tokenParsed?.preferred_username
|
|
14
18
|
};
|
|
15
19
|
}
|
|
16
20
|
const { keycloak, initialized } = useReactKeycloak();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/hooks/useKeycloak/useKeycloak.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * File: /src/hooks/useKeycloak/useKeycloak.ts\n * Project: app\n * File Created: 08-11-2022 06:04:59\n * Author: Clay Risser\n * -----\n * Last Modified: 31-05-2023 12:
|
|
5
|
-
"mappings": "AAyBA,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,eAAe,wBAAwB;AAChD,SAAS,eAAe,sBAAsB;AAEvC,SAAS,cAAc;AAC5B,QAAM,aAAa,cAAc;AACjC,MAAI,cAAc;
|
|
4
|
+
"sourcesContent": ["/**\n * File: /src/hooks/useKeycloak/useKeycloak.ts\n * Project: app\n * File Created: 08-11-2022 06:04:59\n * Author: Clay Risser\n * -----\n * Last Modified: 31-05-2023 12:49:27\n * Modified By: Clay Risser\n * -----\n * Risser Labs LLC (c) Copyright 2021 - 2022\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { IKeycloak } from './index';\nimport { MultiPlatform } from 'multiplatform.one';\nimport { useAuthConfig } from '../useAuthConfig';\nimport { useKeycloak as useReactKeycloak } from '@bitspur/react-keycloak-web';\nimport { useKeycloak as useSsrKeycloak } from '@bitspur/react-keycloak-ssr';\n\nexport function useKeycloak() {\n const authConfig = useAuthConfig();\n if (MultiPlatform.isStorybook) {\n return { authenticated: true, username: 'storybook', email: 'storybook@example.com', userId: '0' } as IKeycloak;\n }\n if (MultiPlatform.isNext && authConfig.ssr) {\n const { keycloak, initialized } = useSsrKeycloak();\n return {\n ...keycloak,\n authenticated: initialized ? keycloak?.authenticated : undefined,\n email: keycloak?.tokenParsed?.email,\n userId: keycloak?.tokenParsed?.sub,\n username: keycloak?.tokenParsed?.preferred_username,\n } as IKeycloak;\n }\n const { keycloak, initialized } = useReactKeycloak();\n return {\n ...keycloak,\n authenticated: initialized ? keycloak?.authenticated : undefined,\n email: keycloak?.tokenParsed?.email,\n userId: keycloak?.tokenParsed?.sub,\n username: keycloak?.tokenParsed?.preferred_username,\n } as IKeycloak;\n}\n"],
|
|
5
|
+
"mappings": "AAyBA,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,eAAe,wBAAwB;AAChD,SAAS,eAAe,sBAAsB;AAEvC,SAAS,cAAc;AAC5B,QAAM,aAAa,cAAc;AACjC,MAAI,cAAc,aAAa;AAC7B,WAAO,EAAE,eAAe,MAAM,UAAU,aAAa,OAAO,yBAAyB,QAAQ,IAAI;AAAA,EACnG;AACA,MAAI,cAAc,UAAU,WAAW,KAAK;AAC1C,UAAM,EAAE,UAAAA,WAAU,aAAAC,aAAY,IAAI,eAAe;AACjD,WAAO;AAAA,MACL,GAAGD;AAAA,MACH,eAAeC,eAAcD,WAAU,gBAAgB;AAAA,MACvD,OAAOA,WAAU,aAAa;AAAA,MAC9B,QAAQA,WAAU,aAAa;AAAA,MAC/B,UAAUA,WAAU,aAAa;AAAA,IACnC;AAAA,EACF;AACA,QAAM,EAAE,UAAU,YAAY,IAAI,iBAAiB;AACnD,SAAO;AAAA,IACL,GAAG;AAAA,IACH,eAAe,cAAc,UAAU,gBAAgB;AAAA,IACvD,OAAO,UAAU,aAAa;AAAA,IAC9B,QAAQ,UAAU,aAAa;AAAA,IAC/B,UAAU,UAAU,aAAa;AAAA,EACnC;AACF;",
|
|
6
6
|
"names": ["keycloak", "initialized"]
|
|
7
7
|
}
|
|
@@ -189,6 +189,7 @@ function KeycloakProvider({
|
|
|
189
189
|
initOptions2.enableLogging = true;
|
|
190
190
|
if (token && typeof token === "string") {
|
|
191
191
|
initOptions2.token = token;
|
|
192
|
+
initOptions2.timeSkew = 0;
|
|
192
193
|
if (idToken && typeof idToken === "string")
|
|
193
194
|
initOptions2.idToken = idToken;
|
|
194
195
|
if (refreshToken && typeof refreshToken === "string")
|
|
@@ -198,7 +199,6 @@ function KeycloakProvider({
|
|
|
198
199
|
initOptions2.checkLoginIframe = false;
|
|
199
200
|
initOptions2.flow = "implicit";
|
|
200
201
|
initOptions2.onLoad = void 0;
|
|
201
|
-
initOptions2.timeSkew = 0;
|
|
202
202
|
}
|
|
203
203
|
return initOptions2;
|
|
204
204
|
}, [keycloakInitOptions, token, refreshToken, idToken]);
|
|
@@ -209,7 +209,7 @@ function KeycloakProvider({
|
|
|
209
209
|
// @ts-ignore
|
|
210
210
|
<SSRKeycloakProvider
|
|
211
211
|
LoadingComponent={<LoadingComponent />}
|
|
212
|
-
autoRefreshToken={
|
|
212
|
+
autoRefreshToken={initOptions.checkLoginIframe}
|
|
213
213
|
initOptions={initOptions}
|
|
214
214
|
onEvent={handleEvent}
|
|
215
215
|
onTokens={onTokens}
|
|
@@ -227,7 +227,7 @@ function KeycloakProvider({
|
|
|
227
227
|
return <ReactKeycloakProvider
|
|
228
228
|
LoadingComponent={<LoadingComponent />}
|
|
229
229
|
authClient={keycloak}
|
|
230
|
-
autoRefreshToken={
|
|
230
|
+
autoRefreshToken={initOptions.checkLoginIframe}
|
|
231
231
|
initOptions={initOptions}
|
|
232
232
|
onEvent={handleEvent}
|
|
233
233
|
onTokens={onTokens}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/provider/keycloakProvider.tsx"],
|
|
4
|
-
"sourcesContent": ["/**\n * File: /auth/provider/keycloakProvider.tsx\n * Project: app\n * File Created: 08-11-2022 03:12:43\n * Author: Clay Risser\n * -----\n * Last Modified: 22-11-2022 18:07:46\n * Modified By: Clay Risser\n * -----\n * Risser Labs LLC (c) Copyright 2021 - 2022\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Keycloak from '@bitspur/keycloak-js';\nimport React, { useMemo, useEffect, useState, useCallback } from 'react';\nimport type { AuthClientEvent, AuthClientError, AuthClientTokens } from '@bitspur/react-keycloak-core';\nimport type { KeycloakInitOptions, KeycloakConfig } from '@bitspur/keycloak-js';\nimport type { ReactNode, ComponentType } from 'react';\nimport { AfterAuth } from './afterAuth';\nimport { MultiPlatform } from 'multiplatform.one';\nimport { ReactKeycloakProvider } from '@bitspur/react-keycloak-web';\nimport { SSRKeycloakProvider, SSRCookies } from '@bitspur/react-keycloak-ssr';\nimport { useAuthConfig } from '../hooks/useAuthConfig';\nimport { useAuthState } from '../state';\nimport { useRouter } from 'next/router';\nimport { validToken } from '../util';\n\nexport interface KeycloakProviderProps {\n children: ReactNode;\n cookies?: unknown;\n keycloakConfig: KeycloakConfig;\n keycloakInitOptions?: KeycloakInitOptions;\n loadingComponent?: ComponentType;\n onEvent?: (eventType: AuthClientEvent, error?: AuthClientError) => void;\n onTokens?: (tokens: AuthClientTokens) => void;\n}\n\nconst logger = console;\n\nexport function KeycloakProvider({\n children,\n cookies,\n keycloakConfig,\n keycloakInitOptions,\n loadingComponent,\n onEvent,\n onTokens,\n}: KeycloakProviderProps) {\n const { debug, ensureFreshness, persist, messageHandlerKeys, ssr } = useAuthConfig();\n const authState = useAuthState();\n const LoadingComponent = loadingComponent || (() => <>{debug ? 'authenticating' : null}</>);\n const { query } = MultiPlatform.isNext ? useRouter() : { query: {} };\n const [refreshToken, setRefreshToken] = useState<string | boolean>(\n validToken(\n (ensureFreshness &&\n (('refreshToken' in query && (query.refreshToken?.toString() || true)) ||\n (persist && authState.refreshToken))) ||\n false,\n ),\n );\n const [idToken, setIdToken] = useState<string | boolean>(\n validToken(\n ('idToken' in query && (query.idToken?.toString() || true)) || (persist && authState.idToken) || false,\n refreshToken,\n ),\n );\n const [token, setToken] = useState<string | boolean>(\n validToken(\n ('token' in query && (query.token?.toString() || true)) || (persist && authState.token) || false,\n refreshToken,\n ),\n );\n\n useEffect(() => {\n if (token !== true && refreshToken !== true && idToken !== true) return;\n if (debug) logger.debug('post message', JSON.stringify({ type: 'LOADED' }));\n (messageHandlerKeys || []).forEach((key: string) => {\n window?.webkit?.messageHandlers?.[key]?.postMessage(JSON.stringify({ type: 'LOADED' }));\n });\n window?.ReactNativeWebView?.postMessage(JSON.stringify({ type: 'LOADED' }));\n window?.parent?.postMessage(JSON.stringify({ type: 'LOADED' }));\n }, []);\n\n useEffect(() => {\n if (refreshToken !== true) return;\n const messageCallback = (e: MessageEvent<any>) => {\n let data = e?.data || null;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {}\n }\n if (debug) logger.debug('received message', JSON.stringify(data));\n const message: MessageSchema = data;\n if (!message.type) return;\n if (message.type.toUpperCase() === 'REFRESH_TOKEN' && message.payload) {\n if (debug) logger.debug('setting refresh token', message.payload);\n setRefreshToken(validToken(message.payload));\n window.removeEventListener('message', messageCallback);\n }\n };\n if (debug) {\n logger.debug(\n 'listening for message',\n JSON.stringify({\n type: 'REFRESH_TOKEN',\n payload: '<some_refresh_token>',\n }),\n );\n }\n window.addEventListener('message', messageCallback);\n return () => {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n\n useEffect(() => {\n if (token !== true) return;\n const messageCallback = (e: MessageEvent<any>) => {\n let data = e?.data || null;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {}\n }\n if (debug) logger.debug('received message', JSON.stringify(data));\n const message: MessageSchema = data;\n if (!message.type) return;\n if (message.type.toUpperCase() === 'TOKEN' && message.payload) {\n if (debug) logger.debug('setting token', message.payload);\n setToken(validToken(message.payload, refreshToken));\n window.removeEventListener('message', messageCallback);\n }\n };\n if (debug) {\n logger.debug(\n 'listening for message',\n JSON.stringify({\n type: 'TOKEN',\n payload: '<some_token>',\n }),\n );\n }\n window.addEventListener('message', messageCallback);\n return () => {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n\n useEffect(() => {\n if (idToken !== true) return;\n const messageCallback = (e: MessageEvent<any>) => {\n let data = e?.data || null;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {}\n }\n if (debug) logger.debug('received message', JSON.stringify(data));\n const message: MessageSchema = data;\n if (!message.type) return;\n if (message.type.toUpperCase() === 'ID_TOKEN' && message.payload) {\n if (debug) logger.debug('setting id token', message.payload);\n setIdToken(validToken(message.payload, refreshToken));\n window.removeEventListener('message', messageCallback);\n }\n };\n if (debug) {\n logger.debug(\n 'listening for message',\n JSON.stringify({\n type: 'ID_TOKEN',\n payload: '<some_id_token>',\n }),\n );\n }\n window.addEventListener('message', messageCallback);\n return () => {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n\n const handleEvent = useCallback((eventType: AuthClientEvent, error?: AuthClientError) => {\n if (error) {\n if (typeof error === 'string') throw new Error(error);\n const err: Error & { errorDescription?: string } = new Error(error.error);\n err.errorDescription = error.error_description;\n throw err;\n }\n if (onEvent) onEvent(eventType, error);\n }, []);\n\n const keycloak = useMemo(\n () =>\n typeof window !== 'undefined' &&\n new Keycloak({\n url: keycloakConfig.url,\n realm: keycloakConfig.realm,\n clientId: keycloakConfig.clientId,\n }),\n [keycloakInitOptions, token, refreshToken, idToken],\n );\n\n const initOptions = useMemo(() => {\n const initOptions = {\n ...defaultKeycloakInitOptions,\n ...keycloakInitOptions,\n };\n if (debug) initOptions.enableLogging = true;\n if (token && typeof token === 'string') {\n initOptions.token = token;\n if (idToken && typeof idToken === 'string') initOptions.idToken = idToken;\n if (refreshToken && typeof refreshToken === 'string') initOptions.refreshToken = refreshToken;\n }\n if ((typeof window !== 'undefined' && window.self !== window.top) || (token && !refreshToken)) {\n initOptions.checkLoginIframe = false;\n initOptions.flow = 'implicit';\n initOptions.onLoad = undefined;\n
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["/**\n * File: /auth/provider/keycloakProvider.tsx\n * Project: app\n * File Created: 08-11-2022 03:12:43\n * Author: Clay Risser\n * -----\n * Last Modified: 22-11-2022 18:07:46\n * Modified By: Clay Risser\n * -----\n * Risser Labs LLC (c) Copyright 2021 - 2022\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Keycloak from '@bitspur/keycloak-js';\nimport React, { useMemo, useEffect, useState, useCallback } from 'react';\nimport type { AuthClientEvent, AuthClientError, AuthClientTokens } from '@bitspur/react-keycloak-core';\nimport type { KeycloakInitOptions, KeycloakConfig } from '@bitspur/keycloak-js';\nimport type { ReactNode, ComponentType } from 'react';\nimport { AfterAuth } from './afterAuth';\nimport { MultiPlatform } from 'multiplatform.one';\nimport { ReactKeycloakProvider } from '@bitspur/react-keycloak-web';\nimport { SSRKeycloakProvider, SSRCookies } from '@bitspur/react-keycloak-ssr';\nimport { useAuthConfig } from '../hooks/useAuthConfig';\nimport { useAuthState } from '../state';\nimport { useRouter } from 'next/router';\nimport { validToken } from '../util';\n\nexport interface KeycloakProviderProps {\n children: ReactNode;\n cookies?: unknown;\n keycloakConfig: KeycloakConfig;\n keycloakInitOptions?: KeycloakInitOptions;\n loadingComponent?: ComponentType;\n onEvent?: (eventType: AuthClientEvent, error?: AuthClientError) => void;\n onTokens?: (tokens: AuthClientTokens) => void;\n}\n\nconst logger = console;\n\nexport function KeycloakProvider({\n children,\n cookies,\n keycloakConfig,\n keycloakInitOptions,\n loadingComponent,\n onEvent,\n onTokens,\n}: KeycloakProviderProps) {\n const { debug, ensureFreshness, persist, messageHandlerKeys, ssr } = useAuthConfig();\n const authState = useAuthState();\n const LoadingComponent = loadingComponent || (() => <>{debug ? 'authenticating' : null}</>);\n const { query } = MultiPlatform.isNext ? useRouter() : { query: {} };\n const [refreshToken, setRefreshToken] = useState<string | boolean>(\n validToken(\n (ensureFreshness &&\n (('refreshToken' in query && (query.refreshToken?.toString() || true)) ||\n (persist && authState.refreshToken))) ||\n false,\n ),\n );\n const [idToken, setIdToken] = useState<string | boolean>(\n validToken(\n ('idToken' in query && (query.idToken?.toString() || true)) || (persist && authState.idToken) || false,\n refreshToken,\n ),\n );\n const [token, setToken] = useState<string | boolean>(\n validToken(\n ('token' in query && (query.token?.toString() || true)) || (persist && authState.token) || false,\n refreshToken,\n ),\n );\n\n useEffect(() => {\n if (token !== true && refreshToken !== true && idToken !== true) return;\n if (debug) logger.debug('post message', JSON.stringify({ type: 'LOADED' }));\n (messageHandlerKeys || []).forEach((key: string) => {\n window?.webkit?.messageHandlers?.[key]?.postMessage(JSON.stringify({ type: 'LOADED' }));\n });\n window?.ReactNativeWebView?.postMessage(JSON.stringify({ type: 'LOADED' }));\n window?.parent?.postMessage(JSON.stringify({ type: 'LOADED' }));\n }, []);\n\n useEffect(() => {\n if (refreshToken !== true) return;\n const messageCallback = (e: MessageEvent<any>) => {\n let data = e?.data || null;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {}\n }\n if (debug) logger.debug('received message', JSON.stringify(data));\n const message: MessageSchema = data;\n if (!message.type) return;\n if (message.type.toUpperCase() === 'REFRESH_TOKEN' && message.payload) {\n if (debug) logger.debug('setting refresh token', message.payload);\n setRefreshToken(validToken(message.payload));\n window.removeEventListener('message', messageCallback);\n }\n };\n if (debug) {\n logger.debug(\n 'listening for message',\n JSON.stringify({\n type: 'REFRESH_TOKEN',\n payload: '<some_refresh_token>',\n }),\n );\n }\n window.addEventListener('message', messageCallback);\n return () => {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n\n useEffect(() => {\n if (token !== true) return;\n const messageCallback = (e: MessageEvent<any>) => {\n let data = e?.data || null;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {}\n }\n if (debug) logger.debug('received message', JSON.stringify(data));\n const message: MessageSchema = data;\n if (!message.type) return;\n if (message.type.toUpperCase() === 'TOKEN' && message.payload) {\n if (debug) logger.debug('setting token', message.payload);\n setToken(validToken(message.payload, refreshToken));\n window.removeEventListener('message', messageCallback);\n }\n };\n if (debug) {\n logger.debug(\n 'listening for message',\n JSON.stringify({\n type: 'TOKEN',\n payload: '<some_token>',\n }),\n );\n }\n window.addEventListener('message', messageCallback);\n return () => {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n\n useEffect(() => {\n if (idToken !== true) return;\n const messageCallback = (e: MessageEvent<any>) => {\n let data = e?.data || null;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {}\n }\n if (debug) logger.debug('received message', JSON.stringify(data));\n const message: MessageSchema = data;\n if (!message.type) return;\n if (message.type.toUpperCase() === 'ID_TOKEN' && message.payload) {\n if (debug) logger.debug('setting id token', message.payload);\n setIdToken(validToken(message.payload, refreshToken));\n window.removeEventListener('message', messageCallback);\n }\n };\n if (debug) {\n logger.debug(\n 'listening for message',\n JSON.stringify({\n type: 'ID_TOKEN',\n payload: '<some_id_token>',\n }),\n );\n }\n window.addEventListener('message', messageCallback);\n return () => {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n\n const handleEvent = useCallback((eventType: AuthClientEvent, error?: AuthClientError) => {\n if (error) {\n if (typeof error === 'string') throw new Error(error);\n const err: Error & { errorDescription?: string } = new Error(error.error);\n err.errorDescription = error.error_description;\n throw err;\n }\n if (onEvent) onEvent(eventType, error);\n }, []);\n\n const keycloak = useMemo(\n () =>\n typeof window !== 'undefined' &&\n new Keycloak({\n url: keycloakConfig.url,\n realm: keycloakConfig.realm,\n clientId: keycloakConfig.clientId,\n }),\n [keycloakInitOptions, token, refreshToken, idToken],\n );\n\n const initOptions = useMemo(() => {\n const initOptions = {\n ...defaultKeycloakInitOptions,\n ...keycloakInitOptions,\n };\n if (debug) initOptions.enableLogging = true;\n if (token && typeof token === 'string') {\n initOptions.token = token;\n initOptions.timeSkew = 0;\n if (idToken && typeof idToken === 'string') initOptions.idToken = idToken;\n if (refreshToken && typeof refreshToken === 'string') initOptions.refreshToken = refreshToken;\n }\n if ((typeof window !== 'undefined' && window.self !== window.top) || (token && !refreshToken)) {\n initOptions.checkLoginIframe = false;\n initOptions.flow = 'implicit';\n initOptions.onLoad = undefined;\n }\n return initOptions;\n }, [keycloakInitOptions, token, refreshToken, idToken]);\n\n if (token === true || idToken === true || refreshToken === true) return <LoadingComponent />;\n if (cookies && ssr) {\n return (\n // @ts-ignore\n <SSRKeycloakProvider\n LoadingComponent={<LoadingComponent />}\n autoRefreshToken={initOptions.checkLoginIframe}\n initOptions={initOptions}\n onEvent={handleEvent}\n onTokens={onTokens}\n persistor={SSRCookies(cookies)}\n keycloakConfig={{\n clientId: keycloakConfig.clientId,\n realm: keycloakConfig.realm,\n url: keycloakConfig.url,\n }}\n >\n <AfterAuth>{children}</AfterAuth>\n </SSRKeycloakProvider>\n );\n }\n if (!keycloak) return <LoadingComponent />;\n return (\n <ReactKeycloakProvider\n LoadingComponent={<LoadingComponent />}\n authClient={keycloak}\n autoRefreshToken={initOptions.checkLoginIframe}\n initOptions={initOptions}\n onEvent={handleEvent}\n onTokens={onTokens}\n >\n <AfterAuth>{children}</AfterAuth>\n </ReactKeycloakProvider>\n );\n}\n\nexport const defaultKeycloakInitOptions: KeycloakInitOptions = {\n checkLoginIframe: true,\n checkLoginIframeInterval: 5,\n enableLogging: false,\n onLoad: 'check-sso',\n pkceMethod: 'S256',\n};\n\nexport interface MessageSchema {\n type: string;\n payload?: string;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["initOptions"]
|
|
7
7
|
}
|
|
@@ -43,22 +43,26 @@ var import_useAuthConfig = require("../useAuthConfig");
|
|
|
43
43
|
var import_react_keycloak_web = require("@bitspur/react-keycloak-web");
|
|
44
44
|
var import_react_keycloak_ssr = require("@bitspur/react-keycloak-ssr");
|
|
45
45
|
function useKeycloak() {
|
|
46
|
-
var _a, _b, _c;
|
|
46
|
+
var _a, _b, _c, _d, _e, _f;
|
|
47
47
|
const authConfig = (0, import_useAuthConfig.useAuthConfig)();
|
|
48
|
-
if (import_multiplatform.MultiPlatform.isStorybook)
|
|
49
|
-
return { authenticated: true };
|
|
48
|
+
if (import_multiplatform.MultiPlatform.isStorybook) {
|
|
49
|
+
return { authenticated: true, username: "storybook", email: "storybook@example.com", userId: "0" };
|
|
50
|
+
}
|
|
50
51
|
if (import_multiplatform.MultiPlatform.isNext && authConfig.ssr) {
|
|
51
52
|
const { keycloak: keycloak2, initialized: initialized2 } = (0, import_react_keycloak_ssr.useKeycloak)();
|
|
52
53
|
return __spreadProps(__spreadValues({}, keycloak2), {
|
|
53
|
-
authenticated: initialized2 ? keycloak2 == null ? void 0 : keycloak2.authenticated : void 0
|
|
54
|
+
authenticated: initialized2 ? keycloak2 == null ? void 0 : keycloak2.authenticated : void 0,
|
|
55
|
+
email: (_a = keycloak2 == null ? void 0 : keycloak2.tokenParsed) == null ? void 0 : _a.email,
|
|
56
|
+
userId: (_b = keycloak2 == null ? void 0 : keycloak2.tokenParsed) == null ? void 0 : _b.sub,
|
|
57
|
+
username: (_c = keycloak2 == null ? void 0 : keycloak2.tokenParsed) == null ? void 0 : _c.preferred_username
|
|
54
58
|
});
|
|
55
59
|
}
|
|
56
60
|
const { keycloak, initialized } = (0, import_react_keycloak_web.useKeycloak)();
|
|
57
61
|
return __spreadProps(__spreadValues({}, keycloak), {
|
|
58
62
|
authenticated: initialized ? keycloak == null ? void 0 : keycloak.authenticated : void 0,
|
|
59
|
-
email: (
|
|
60
|
-
userId: (
|
|
61
|
-
username: (
|
|
63
|
+
email: (_d = keycloak == null ? void 0 : keycloak.tokenParsed) == null ? void 0 : _d.email,
|
|
64
|
+
userId: (_e = keycloak == null ? void 0 : keycloak.tokenParsed) == null ? void 0 : _e.sub,
|
|
65
|
+
username: (_f = keycloak == null ? void 0 : keycloak.tokenParsed) == null ? void 0 : _f.preferred_username
|
|
62
66
|
});
|
|
63
67
|
}
|
|
64
68
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/hooks/useKeycloak/useKeycloak.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * File: /src/hooks/useKeycloak/useKeycloak.ts\n * Project: app\n * File Created: 08-11-2022 06:04:59\n * Author: Clay Risser\n * -----\n * Last Modified: 31-05-2023 12:
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAyBA,2BAA8B;AAC9B,2BAA8B;AAC9B,gCAAgD;AAChD,gCAA8C;AAEvC,SAAS,cAAc;AA9B9B;AA+BE,QAAM,iBAAa,oCAAc;AACjC,MAAI,mCAAc;
|
|
4
|
+
"sourcesContent": ["/**\n * File: /src/hooks/useKeycloak/useKeycloak.ts\n * Project: app\n * File Created: 08-11-2022 06:04:59\n * Author: Clay Risser\n * -----\n * Last Modified: 31-05-2023 12:49:27\n * Modified By: Clay Risser\n * -----\n * Risser Labs LLC (c) Copyright 2021 - 2022\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { IKeycloak } from './index';\nimport { MultiPlatform } from 'multiplatform.one';\nimport { useAuthConfig } from '../useAuthConfig';\nimport { useKeycloak as useReactKeycloak } from '@bitspur/react-keycloak-web';\nimport { useKeycloak as useSsrKeycloak } from '@bitspur/react-keycloak-ssr';\n\nexport function useKeycloak() {\n const authConfig = useAuthConfig();\n if (MultiPlatform.isStorybook) {\n return { authenticated: true, username: 'storybook', email: 'storybook@example.com', userId: '0' } as IKeycloak;\n }\n if (MultiPlatform.isNext && authConfig.ssr) {\n const { keycloak, initialized } = useSsrKeycloak();\n return {\n ...keycloak,\n authenticated: initialized ? keycloak?.authenticated : undefined,\n email: keycloak?.tokenParsed?.email,\n userId: keycloak?.tokenParsed?.sub,\n username: keycloak?.tokenParsed?.preferred_username,\n } as IKeycloak;\n }\n const { keycloak, initialized } = useReactKeycloak();\n return {\n ...keycloak,\n authenticated: initialized ? keycloak?.authenticated : undefined,\n email: keycloak?.tokenParsed?.email,\n userId: keycloak?.tokenParsed?.sub,\n username: keycloak?.tokenParsed?.preferred_username,\n } as IKeycloak;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAyBA,2BAA8B;AAC9B,2BAA8B;AAC9B,gCAAgD;AAChD,gCAA8C;AAEvC,SAAS,cAAc;AA9B9B;AA+BE,QAAM,iBAAa,oCAAc;AACjC,MAAI,mCAAc,aAAa;AAC7B,WAAO,EAAE,eAAe,MAAM,UAAU,aAAa,OAAO,yBAAyB,QAAQ,IAAI;AAAA,EACnG;AACA,MAAI,mCAAc,UAAU,WAAW,KAAK;AAC1C,UAAM,EAAE,UAAAA,WAAU,aAAAC,aAAY,QAAI,0BAAAC,aAAe;AACjD,WAAO,iCACFF,YADE;AAAA,MAEL,eAAeC,eAAcD,aAAA,gBAAAA,UAAU,gBAAgB;AAAA,MACvD,QAAO,KAAAA,aAAA,gBAAAA,UAAU,gBAAV,mBAAuB;AAAA,MAC9B,SAAQ,KAAAA,aAAA,gBAAAA,UAAU,gBAAV,mBAAuB;AAAA,MAC/B,WAAU,KAAAA,aAAA,gBAAAA,UAAU,gBAAV,mBAAuB;AAAA,IACnC;AAAA,EACF;AACA,QAAM,EAAE,UAAU,YAAY,QAAI,0BAAAG,aAAiB;AACnD,SAAO,iCACF,WADE;AAAA,IAEL,eAAe,cAAc,qCAAU,gBAAgB;AAAA,IACvD,QAAO,0CAAU,gBAAV,mBAAuB;AAAA,IAC9B,SAAQ,0CAAU,gBAAV,mBAAuB;AAAA,IAC/B,WAAU,0CAAU,gBAAV,mBAAuB;AAAA,EACnC;AACF;",
|
|
6
6
|
"names": ["keycloak", "initialized", "useSsrKeycloak", "useReactKeycloak"]
|
|
7
7
|
}
|
|
@@ -238,6 +238,7 @@ function KeycloakProvider({
|
|
|
238
238
|
initOptions2.enableLogging = true;
|
|
239
239
|
if (token && typeof token === "string") {
|
|
240
240
|
initOptions2.token = token;
|
|
241
|
+
initOptions2.timeSkew = 0;
|
|
241
242
|
if (idToken && typeof idToken === "string")
|
|
242
243
|
initOptions2.idToken = idToken;
|
|
243
244
|
if (refreshToken && typeof refreshToken === "string")
|
|
@@ -247,7 +248,6 @@ function KeycloakProvider({
|
|
|
247
248
|
initOptions2.checkLoginIframe = false;
|
|
248
249
|
initOptions2.flow = "implicit";
|
|
249
250
|
initOptions2.onLoad = void 0;
|
|
250
|
-
initOptions2.timeSkew = 0;
|
|
251
251
|
}
|
|
252
252
|
return initOptions2;
|
|
253
253
|
}, [keycloakInitOptions, token, refreshToken, idToken]);
|
|
@@ -260,7 +260,7 @@ function KeycloakProvider({
|
|
|
260
260
|
import_react_keycloak_ssr.SSRKeycloakProvider,
|
|
261
261
|
{
|
|
262
262
|
LoadingComponent: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(LoadingComponent, {}),
|
|
263
|
-
autoRefreshToken:
|
|
263
|
+
autoRefreshToken: initOptions.checkLoginIframe,
|
|
264
264
|
initOptions,
|
|
265
265
|
onEvent: handleEvent,
|
|
266
266
|
onTokens,
|
|
@@ -282,7 +282,7 @@ function KeycloakProvider({
|
|
|
282
282
|
{
|
|
283
283
|
LoadingComponent: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(LoadingComponent, {}),
|
|
284
284
|
authClient: keycloak,
|
|
285
|
-
autoRefreshToken:
|
|
285
|
+
autoRefreshToken: initOptions.checkLoginIframe,
|
|
286
286
|
initOptions,
|
|
287
287
|
onEvent: handleEvent,
|
|
288
288
|
onTokens,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/provider/keycloakProvider.tsx"],
|
|
4
|
-
"sourcesContent": ["/**\n * File: /auth/provider/keycloakProvider.tsx\n * Project: app\n * File Created: 08-11-2022 03:12:43\n * Author: Clay Risser\n * -----\n * Last Modified: 22-11-2022 18:07:46\n * Modified By: Clay Risser\n * -----\n * Risser Labs LLC (c) Copyright 2021 - 2022\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Keycloak from '@bitspur/keycloak-js';\nimport React, { useMemo, useEffect, useState, useCallback } from 'react';\nimport type { AuthClientEvent, AuthClientError, AuthClientTokens } from '@bitspur/react-keycloak-core';\nimport type { KeycloakInitOptions, KeycloakConfig } from '@bitspur/keycloak-js';\nimport type { ReactNode, ComponentType } from 'react';\nimport { AfterAuth } from './afterAuth';\nimport { MultiPlatform } from 'multiplatform.one';\nimport { ReactKeycloakProvider } from '@bitspur/react-keycloak-web';\nimport { SSRKeycloakProvider, SSRCookies } from '@bitspur/react-keycloak-ssr';\nimport { useAuthConfig } from '../hooks/useAuthConfig';\nimport { useAuthState } from '../state';\nimport { useRouter } from 'next/router';\nimport { validToken } from '../util';\n\nexport interface KeycloakProviderProps {\n children: ReactNode;\n cookies?: unknown;\n keycloakConfig: KeycloakConfig;\n keycloakInitOptions?: KeycloakInitOptions;\n loadingComponent?: ComponentType;\n onEvent?: (eventType: AuthClientEvent, error?: AuthClientError) => void;\n onTokens?: (tokens: AuthClientTokens) => void;\n}\n\nconst logger = console;\n\nexport function KeycloakProvider({\n children,\n cookies,\n keycloakConfig,\n keycloakInitOptions,\n loadingComponent,\n onEvent,\n onTokens,\n}: KeycloakProviderProps) {\n const { debug, ensureFreshness, persist, messageHandlerKeys, ssr } = useAuthConfig();\n const authState = useAuthState();\n const LoadingComponent = loadingComponent || (() => <>{debug ? 'authenticating' : null}</>);\n const { query } = MultiPlatform.isNext ? useRouter() : { query: {} };\n const [refreshToken, setRefreshToken] = useState<string | boolean>(\n validToken(\n (ensureFreshness &&\n (('refreshToken' in query && (query.refreshToken?.toString() || true)) ||\n (persist && authState.refreshToken))) ||\n false,\n ),\n );\n const [idToken, setIdToken] = useState<string | boolean>(\n validToken(\n ('idToken' in query && (query.idToken?.toString() || true)) || (persist && authState.idToken) || false,\n refreshToken,\n ),\n );\n const [token, setToken] = useState<string | boolean>(\n validToken(\n ('token' in query && (query.token?.toString() || true)) || (persist && authState.token) || false,\n refreshToken,\n ),\n );\n\n useEffect(() => {\n if (token !== true && refreshToken !== true && idToken !== true) return;\n if (debug) logger.debug('post message', JSON.stringify({ type: 'LOADED' }));\n (messageHandlerKeys || []).forEach((key: string) => {\n window?.webkit?.messageHandlers?.[key]?.postMessage(JSON.stringify({ type: 'LOADED' }));\n });\n window?.ReactNativeWebView?.postMessage(JSON.stringify({ type: 'LOADED' }));\n window?.parent?.postMessage(JSON.stringify({ type: 'LOADED' }));\n }, []);\n\n useEffect(() => {\n if (refreshToken !== true) return;\n const messageCallback = (e: MessageEvent<any>) => {\n let data = e?.data || null;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {}\n }\n if (debug) logger.debug('received message', JSON.stringify(data));\n const message: MessageSchema = data;\n if (!message.type) return;\n if (message.type.toUpperCase() === 'REFRESH_TOKEN' && message.payload) {\n if (debug) logger.debug('setting refresh token', message.payload);\n setRefreshToken(validToken(message.payload));\n window.removeEventListener('message', messageCallback);\n }\n };\n if (debug) {\n logger.debug(\n 'listening for message',\n JSON.stringify({\n type: 'REFRESH_TOKEN',\n payload: '<some_refresh_token>',\n }),\n );\n }\n window.addEventListener('message', messageCallback);\n return () => {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n\n useEffect(() => {\n if (token !== true) return;\n const messageCallback = (e: MessageEvent<any>) => {\n let data = e?.data || null;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {}\n }\n if (debug) logger.debug('received message', JSON.stringify(data));\n const message: MessageSchema = data;\n if (!message.type) return;\n if (message.type.toUpperCase() === 'TOKEN' && message.payload) {\n if (debug) logger.debug('setting token', message.payload);\n setToken(validToken(message.payload, refreshToken));\n window.removeEventListener('message', messageCallback);\n }\n };\n if (debug) {\n logger.debug(\n 'listening for message',\n JSON.stringify({\n type: 'TOKEN',\n payload: '<some_token>',\n }),\n );\n }\n window.addEventListener('message', messageCallback);\n return () => {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n\n useEffect(() => {\n if (idToken !== true) return;\n const messageCallback = (e: MessageEvent<any>) => {\n let data = e?.data || null;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {}\n }\n if (debug) logger.debug('received message', JSON.stringify(data));\n const message: MessageSchema = data;\n if (!message.type) return;\n if (message.type.toUpperCase() === 'ID_TOKEN' && message.payload) {\n if (debug) logger.debug('setting id token', message.payload);\n setIdToken(validToken(message.payload, refreshToken));\n window.removeEventListener('message', messageCallback);\n }\n };\n if (debug) {\n logger.debug(\n 'listening for message',\n JSON.stringify({\n type: 'ID_TOKEN',\n payload: '<some_id_token>',\n }),\n );\n }\n window.addEventListener('message', messageCallback);\n return () => {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n\n const handleEvent = useCallback((eventType: AuthClientEvent, error?: AuthClientError) => {\n if (error) {\n if (typeof error === 'string') throw new Error(error);\n const err: Error & { errorDescription?: string } = new Error(error.error);\n err.errorDescription = error.error_description;\n throw err;\n }\n if (onEvent) onEvent(eventType, error);\n }, []);\n\n const keycloak = useMemo(\n () =>\n typeof window !== 'undefined' &&\n new Keycloak({\n url: keycloakConfig.url,\n realm: keycloakConfig.realm,\n clientId: keycloakConfig.clientId,\n }),\n [keycloakInitOptions, token, refreshToken, idToken],\n );\n\n const initOptions = useMemo(() => {\n const initOptions = {\n ...defaultKeycloakInitOptions,\n ...keycloakInitOptions,\n };\n if (debug) initOptions.enableLogging = true;\n if (token && typeof token === 'string') {\n initOptions.token = token;\n if (idToken && typeof idToken === 'string') initOptions.idToken = idToken;\n if (refreshToken && typeof refreshToken === 'string') initOptions.refreshToken = refreshToken;\n }\n if ((typeof window !== 'undefined' && window.self !== window.top) || (token && !refreshToken)) {\n initOptions.checkLoginIframe = false;\n initOptions.flow = 'implicit';\n initOptions.onLoad = undefined;\n
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["/**\n * File: /auth/provider/keycloakProvider.tsx\n * Project: app\n * File Created: 08-11-2022 03:12:43\n * Author: Clay Risser\n * -----\n * Last Modified: 22-11-2022 18:07:46\n * Modified By: Clay Risser\n * -----\n * Risser Labs LLC (c) Copyright 2021 - 2022\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Keycloak from '@bitspur/keycloak-js';\nimport React, { useMemo, useEffect, useState, useCallback } from 'react';\nimport type { AuthClientEvent, AuthClientError, AuthClientTokens } from '@bitspur/react-keycloak-core';\nimport type { KeycloakInitOptions, KeycloakConfig } from '@bitspur/keycloak-js';\nimport type { ReactNode, ComponentType } from 'react';\nimport { AfterAuth } from './afterAuth';\nimport { MultiPlatform } from 'multiplatform.one';\nimport { ReactKeycloakProvider } from '@bitspur/react-keycloak-web';\nimport { SSRKeycloakProvider, SSRCookies } from '@bitspur/react-keycloak-ssr';\nimport { useAuthConfig } from '../hooks/useAuthConfig';\nimport { useAuthState } from '../state';\nimport { useRouter } from 'next/router';\nimport { validToken } from '../util';\n\nexport interface KeycloakProviderProps {\n children: ReactNode;\n cookies?: unknown;\n keycloakConfig: KeycloakConfig;\n keycloakInitOptions?: KeycloakInitOptions;\n loadingComponent?: ComponentType;\n onEvent?: (eventType: AuthClientEvent, error?: AuthClientError) => void;\n onTokens?: (tokens: AuthClientTokens) => void;\n}\n\nconst logger = console;\n\nexport function KeycloakProvider({\n children,\n cookies,\n keycloakConfig,\n keycloakInitOptions,\n loadingComponent,\n onEvent,\n onTokens,\n}: KeycloakProviderProps) {\n const { debug, ensureFreshness, persist, messageHandlerKeys, ssr } = useAuthConfig();\n const authState = useAuthState();\n const LoadingComponent = loadingComponent || (() => <>{debug ? 'authenticating' : null}</>);\n const { query } = MultiPlatform.isNext ? useRouter() : { query: {} };\n const [refreshToken, setRefreshToken] = useState<string | boolean>(\n validToken(\n (ensureFreshness &&\n (('refreshToken' in query && (query.refreshToken?.toString() || true)) ||\n (persist && authState.refreshToken))) ||\n false,\n ),\n );\n const [idToken, setIdToken] = useState<string | boolean>(\n validToken(\n ('idToken' in query && (query.idToken?.toString() || true)) || (persist && authState.idToken) || false,\n refreshToken,\n ),\n );\n const [token, setToken] = useState<string | boolean>(\n validToken(\n ('token' in query && (query.token?.toString() || true)) || (persist && authState.token) || false,\n refreshToken,\n ),\n );\n\n useEffect(() => {\n if (token !== true && refreshToken !== true && idToken !== true) return;\n if (debug) logger.debug('post message', JSON.stringify({ type: 'LOADED' }));\n (messageHandlerKeys || []).forEach((key: string) => {\n window?.webkit?.messageHandlers?.[key]?.postMessage(JSON.stringify({ type: 'LOADED' }));\n });\n window?.ReactNativeWebView?.postMessage(JSON.stringify({ type: 'LOADED' }));\n window?.parent?.postMessage(JSON.stringify({ type: 'LOADED' }));\n }, []);\n\n useEffect(() => {\n if (refreshToken !== true) return;\n const messageCallback = (e: MessageEvent<any>) => {\n let data = e?.data || null;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {}\n }\n if (debug) logger.debug('received message', JSON.stringify(data));\n const message: MessageSchema = data;\n if (!message.type) return;\n if (message.type.toUpperCase() === 'REFRESH_TOKEN' && message.payload) {\n if (debug) logger.debug('setting refresh token', message.payload);\n setRefreshToken(validToken(message.payload));\n window.removeEventListener('message', messageCallback);\n }\n };\n if (debug) {\n logger.debug(\n 'listening for message',\n JSON.stringify({\n type: 'REFRESH_TOKEN',\n payload: '<some_refresh_token>',\n }),\n );\n }\n window.addEventListener('message', messageCallback);\n return () => {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n\n useEffect(() => {\n if (token !== true) return;\n const messageCallback = (e: MessageEvent<any>) => {\n let data = e?.data || null;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {}\n }\n if (debug) logger.debug('received message', JSON.stringify(data));\n const message: MessageSchema = data;\n if (!message.type) return;\n if (message.type.toUpperCase() === 'TOKEN' && message.payload) {\n if (debug) logger.debug('setting token', message.payload);\n setToken(validToken(message.payload, refreshToken));\n window.removeEventListener('message', messageCallback);\n }\n };\n if (debug) {\n logger.debug(\n 'listening for message',\n JSON.stringify({\n type: 'TOKEN',\n payload: '<some_token>',\n }),\n );\n }\n window.addEventListener('message', messageCallback);\n return () => {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n\n useEffect(() => {\n if (idToken !== true) return;\n const messageCallback = (e: MessageEvent<any>) => {\n let data = e?.data || null;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {}\n }\n if (debug) logger.debug('received message', JSON.stringify(data));\n const message: MessageSchema = data;\n if (!message.type) return;\n if (message.type.toUpperCase() === 'ID_TOKEN' && message.payload) {\n if (debug) logger.debug('setting id token', message.payload);\n setIdToken(validToken(message.payload, refreshToken));\n window.removeEventListener('message', messageCallback);\n }\n };\n if (debug) {\n logger.debug(\n 'listening for message',\n JSON.stringify({\n type: 'ID_TOKEN',\n payload: '<some_id_token>',\n }),\n );\n }\n window.addEventListener('message', messageCallback);\n return () => {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n\n const handleEvent = useCallback((eventType: AuthClientEvent, error?: AuthClientError) => {\n if (error) {\n if (typeof error === 'string') throw new Error(error);\n const err: Error & { errorDescription?: string } = new Error(error.error);\n err.errorDescription = error.error_description;\n throw err;\n }\n if (onEvent) onEvent(eventType, error);\n }, []);\n\n const keycloak = useMemo(\n () =>\n typeof window !== 'undefined' &&\n new Keycloak({\n url: keycloakConfig.url,\n realm: keycloakConfig.realm,\n clientId: keycloakConfig.clientId,\n }),\n [keycloakInitOptions, token, refreshToken, idToken],\n );\n\n const initOptions = useMemo(() => {\n const initOptions = {\n ...defaultKeycloakInitOptions,\n ...keycloakInitOptions,\n };\n if (debug) initOptions.enableLogging = true;\n if (token && typeof token === 'string') {\n initOptions.token = token;\n initOptions.timeSkew = 0;\n if (idToken && typeof idToken === 'string') initOptions.idToken = idToken;\n if (refreshToken && typeof refreshToken === 'string') initOptions.refreshToken = refreshToken;\n }\n if ((typeof window !== 'undefined' && window.self !== window.top) || (token && !refreshToken)) {\n initOptions.checkLoginIframe = false;\n initOptions.flow = 'implicit';\n initOptions.onLoad = undefined;\n }\n return initOptions;\n }, [keycloakInitOptions, token, refreshToken, idToken]);\n\n if (token === true || idToken === true || refreshToken === true) return <LoadingComponent />;\n if (cookies && ssr) {\n return (\n // @ts-ignore\n <SSRKeycloakProvider\n LoadingComponent={<LoadingComponent />}\n autoRefreshToken={initOptions.checkLoginIframe}\n initOptions={initOptions}\n onEvent={handleEvent}\n onTokens={onTokens}\n persistor={SSRCookies(cookies)}\n keycloakConfig={{\n clientId: keycloakConfig.clientId,\n realm: keycloakConfig.realm,\n url: keycloakConfig.url,\n }}\n >\n <AfterAuth>{children}</AfterAuth>\n </SSRKeycloakProvider>\n );\n }\n if (!keycloak) return <LoadingComponent />;\n return (\n <ReactKeycloakProvider\n LoadingComponent={<LoadingComponent />}\n authClient={keycloak}\n autoRefreshToken={initOptions.checkLoginIframe}\n initOptions={initOptions}\n onEvent={handleEvent}\n onTokens={onTokens}\n >\n <AfterAuth>{children}</AfterAuth>\n </ReactKeycloakProvider>\n );\n}\n\nexport const defaultKeycloakInitOptions: KeycloakInitOptions = {\n checkLoginIframe: true,\n checkLoginIframeInterval: 5,\n enableLogging: false,\n onLoad: 'check-sso',\n pkceMethod: 'S256',\n};\n\nexport interface MessageSchema {\n type: string;\n payload?: string;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["_a", "_b", "_c", "Keycloak", "initOptions"]
|
|
7
7
|
}
|