@axa-fr/react-oidc 5.7.0-aplha0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/README.md +502 -0
  2. package/dist/FetchToken.d.ts +10 -0
  3. package/dist/FetchToken.d.ts.map +1 -0
  4. package/dist/FetchToken.js +107 -0
  5. package/dist/FetchToken.js.map +1 -0
  6. package/dist/OidcProvider.d.ts +25 -0
  7. package/dist/OidcProvider.d.ts.map +1 -0
  8. package/dist/OidcProvider.js +133 -0
  9. package/dist/OidcProvider.js.map +1 -0
  10. package/dist/OidcSecure.d.ts +10 -0
  11. package/dist/OidcSecure.d.ts.map +1 -0
  12. package/dist/OidcSecure.js +68 -0
  13. package/dist/OidcSecure.js.map +1 -0
  14. package/dist/OidcServiceWorker.js +272 -0
  15. package/dist/OidcTrustedDomains.js +6 -0
  16. package/dist/ReactOidc.d.ts +17 -0
  17. package/dist/ReactOidc.d.ts.map +1 -0
  18. package/dist/ReactOidc.js +106 -0
  19. package/dist/ReactOidc.js.map +1 -0
  20. package/dist/User.d.ts +15 -0
  21. package/dist/User.d.ts.map +1 -0
  22. package/dist/User.js +48 -0
  23. package/dist/User.js.map +1 -0
  24. package/dist/core/default-component/AuthenticateError.component.d.ts +4 -0
  25. package/dist/core/default-component/AuthenticateError.component.d.ts.map +1 -0
  26. package/dist/core/default-component/AuthenticateError.component.js +32 -0
  27. package/dist/core/default-component/AuthenticateError.component.js.map +1 -0
  28. package/dist/core/default-component/Authenticating.component.d.ts +4 -0
  29. package/dist/core/default-component/Authenticating.component.d.ts.map +1 -0
  30. package/dist/core/default-component/Authenticating.component.js +32 -0
  31. package/dist/core/default-component/Authenticating.component.js.map +1 -0
  32. package/dist/core/default-component/Callback.component.d.ts +5 -0
  33. package/dist/core/default-component/Callback.component.d.ts.map +1 -0
  34. package/dist/core/default-component/Callback.component.js +118 -0
  35. package/dist/core/default-component/Callback.component.js.map +1 -0
  36. package/dist/core/default-component/Loading.component.d.ts +4 -0
  37. package/dist/core/default-component/Loading.component.d.ts.map +1 -0
  38. package/dist/core/default-component/Loading.component.js +29 -0
  39. package/dist/core/default-component/Loading.component.js.map +1 -0
  40. package/dist/core/default-component/ServiceWorkerInstall.component.d.ts +4 -0
  41. package/dist/core/default-component/ServiceWorkerInstall.component.d.ts.map +1 -0
  42. package/dist/core/default-component/ServiceWorkerInstall.component.js +122 -0
  43. package/dist/core/default-component/ServiceWorkerInstall.component.js.map +1 -0
  44. package/dist/core/default-component/ServiceWorkerNotSupported.component.d.ts +4 -0
  45. package/dist/core/default-component/ServiceWorkerNotSupported.component.d.ts.map +1 -0
  46. package/dist/core/default-component/ServiceWorkerNotSupported.component.js +32 -0
  47. package/dist/core/default-component/ServiceWorkerNotSupported.component.js.map +1 -0
  48. package/dist/core/default-component/SessionLost.component.d.ts +4 -0
  49. package/dist/core/default-component/SessionLost.component.d.ts.map +1 -0
  50. package/dist/core/default-component/SessionLost.component.js +14 -0
  51. package/dist/core/default-component/SessionLost.component.js.map +1 -0
  52. package/dist/core/default-component/SilentCallback.component.d.ts +4 -0
  53. package/dist/core/default-component/SilentCallback.component.d.ts.map +1 -0
  54. package/dist/core/default-component/SilentCallback.component.js +96 -0
  55. package/dist/core/default-component/SilentCallback.component.js.map +1 -0
  56. package/dist/core/default-component/index.d.ts +7 -0
  57. package/dist/core/default-component/index.d.ts.map +1 -0
  58. package/dist/core/default-component/index.js +20 -0
  59. package/dist/core/default-component/index.js.map +1 -0
  60. package/dist/core/routes/OidcRoutes.d.ts +12 -0
  61. package/dist/core/routes/OidcRoutes.d.ts.map +1 -0
  62. package/dist/core/routes/OidcRoutes.js +71 -0
  63. package/dist/core/routes/OidcRoutes.js.map +1 -0
  64. package/dist/core/routes/index.d.ts +3 -0
  65. package/dist/core/routes/index.d.ts.map +1 -0
  66. package/dist/core/routes/index.js +9 -0
  67. package/dist/core/routes/index.js.map +1 -0
  68. package/dist/core/routes/route-utils.d.ts +2 -0
  69. package/dist/core/routes/route-utils.d.ts.map +1 -0
  70. package/dist/core/routes/route-utils.js +32 -0
  71. package/dist/core/routes/route-utils.js.map +1 -0
  72. package/dist/core/routes/withRouter.d.ts +19 -0
  73. package/dist/core/routes/withRouter.d.ts.map +1 -0
  74. package/dist/core/routes/withRouter.js +33 -0
  75. package/dist/core/routes/withRouter.js.map +1 -0
  76. package/dist/index.d.ts +6 -0
  77. package/dist/index.d.ts.map +1 -0
  78. package/dist/index.js +19 -0
  79. package/dist/index.js.map +1 -0
  80. package/dist/vanilla/index.d.ts +2 -0
  81. package/dist/vanilla/index.d.ts.map +1 -0
  82. package/dist/vanilla/index.js +6 -0
  83. package/dist/vanilla/index.js.map +1 -0
  84. package/dist/vanilla/initSession.d.ts +11 -0
  85. package/dist/vanilla/initSession.d.ts.map +1 -0
  86. package/dist/vanilla/initSession.js +72 -0
  87. package/dist/vanilla/initSession.js.map +1 -0
  88. package/dist/vanilla/initWorker.d.ts +13 -0
  89. package/dist/vanilla/initWorker.d.ts.map +1 -0
  90. package/dist/vanilla/initWorker.js +211 -0
  91. package/dist/vanilla/initWorker.js.map +1 -0
  92. package/dist/vanilla/memoryStorageBackend.d.ts +10 -0
  93. package/dist/vanilla/memoryStorageBackend.d.ts.map +1 -0
  94. package/dist/vanilla/memoryStorageBackend.js +33 -0
  95. package/dist/vanilla/memoryStorageBackend.js.map +1 -0
  96. package/dist/vanilla/noHashQueryStringUtils.d.ts +5 -0
  97. package/dist/vanilla/noHashQueryStringUtils.d.ts.map +1 -0
  98. package/dist/vanilla/noHashQueryStringUtils.js +31 -0
  99. package/dist/vanilla/noHashQueryStringUtils.js.map +1 -0
  100. package/dist/vanilla/oidc.d.ts +77 -0
  101. package/dist/vanilla/oidc.d.ts.map +1 -0
  102. package/dist/vanilla/oidc.js +814 -0
  103. package/dist/vanilla/oidc.js.map +1 -0
  104. package/dist/vanilla/timer.d.ts +8 -0
  105. package/dist/vanilla/timer.d.ts.map +1 -0
  106. package/dist/vanilla/timer.js +135 -0
  107. package/dist/vanilla/timer.js.map +1 -0
  108. package/package.json +73 -0
  109. package/src/App.css +38 -0
  110. package/src/App.specold.tsx +46 -0
  111. package/src/App.tsx +61 -0
  112. package/src/FetchUser.tsx +53 -0
  113. package/src/Home.tsx +20 -0
  114. package/src/MultiAuth.tsx +114 -0
  115. package/src/Profile.tsx +77 -0
  116. package/src/configurations.ts +53 -0
  117. package/src/index.css +13 -0
  118. package/src/index.tsx +9 -0
  119. package/src/logo.svg +7 -0
  120. package/src/oidc/FetchToken.tsx +51 -0
  121. package/src/oidc/OidcProvider.tsx +165 -0
  122. package/src/oidc/OidcSecure.tsx +32 -0
  123. package/src/oidc/ReactOidc.tsx +112 -0
  124. package/src/oidc/User.ts +38 -0
  125. package/src/oidc/core/default-component/AuthenticateError.component.tsx +13 -0
  126. package/src/oidc/core/default-component/Authenticating.component.tsx +13 -0
  127. package/src/oidc/core/default-component/Callback.component.tsx +49 -0
  128. package/src/oidc/core/default-component/Loading.component.tsx +10 -0
  129. package/src/oidc/core/default-component/ServiceWorkerInstall.component.tsx +51 -0
  130. package/src/oidc/core/default-component/ServiceWorkerNotSupported.component.tsx +13 -0
  131. package/src/oidc/core/default-component/SessionLost.component.tsx +14 -0
  132. package/src/oidc/core/default-component/SilentCallback.component.tsx +31 -0
  133. package/src/oidc/core/default-component/index.ts +6 -0
  134. package/src/oidc/core/routes/OidcRoutes.spec.tsx +16 -0
  135. package/src/oidc/core/routes/OidcRoutes.tsx +69 -0
  136. package/src/oidc/core/routes/__snapshots__/OidcRoutes.spec.tsx.snap +7 -0
  137. package/src/oidc/core/routes/index.ts +2 -0
  138. package/src/oidc/core/routes/route-utils.spec.ts +9 -0
  139. package/src/oidc/core/routes/route-utils.ts +34 -0
  140. package/src/oidc/core/routes/withRouter.spec.tsx +48 -0
  141. package/src/oidc/core/routes/withRouter.tsx +60 -0
  142. package/src/oidc/index.ts +5 -0
  143. package/src/oidc/vanilla/OidcServiceWorker.js +272 -0
  144. package/src/oidc/vanilla/OidcTrustedDomains.js +6 -0
  145. package/src/oidc/vanilla/index.ts +1 -0
  146. package/src/oidc/vanilla/initSession.ts +36 -0
  147. package/src/oidc/vanilla/initWorker.ts +153 -0
  148. package/src/oidc/vanilla/memoryStorageBackend.ts +33 -0
  149. package/src/oidc/vanilla/noHashQueryStringUtils.ts +7 -0
  150. package/src/oidc/vanilla/oidc.ts +600 -0
  151. package/src/oidc/vanilla/timer.ts +157 -0
  152. package/src/override/AuthenticateError.component.tsx +14 -0
  153. package/src/override/Authenticating.component.tsx +14 -0
  154. package/src/override/Callback.component.tsx +13 -0
  155. package/src/override/Loading.component.tsx +13 -0
  156. package/src/override/ServiceWorkerNotSupported.component.tsx +15 -0
  157. package/src/override/SessionLost.component.tsx +21 -0
  158. package/src/override/style.ts +10 -0
  159. package/src/setupTests.js +5 -0
  160. package/tsconfig.json +38 -0
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.OidcProvider = void 0;
30
+ var react_1 = __importStar(require("react"));
31
+ var oidc_1 = __importDefault(require("./vanilla/oidc"));
32
+ var OidcRoutes_1 = __importDefault(require("./core/routes/OidcRoutes"));
33
+ var index_1 = require("./core/default-component/index");
34
+ var ServiceWorkerNotSupported_component_1 = __importDefault(require("./core/default-component/ServiceWorkerNotSupported.component"));
35
+ var AuthenticateError_component_1 = __importDefault(require("./core/default-component/AuthenticateError.component"));
36
+ var defaultEventState = { name: "", data: null };
37
+ var OidcSession = function (_a) {
38
+ var loadingComponent = _a.loadingComponent, children = _a.children, configurationName = _a.configurationName;
39
+ var _b = (0, react_1.useState)(true), loading = _b[0], setLoading = _b[1];
40
+ var getOidc = oidc_1.default.get;
41
+ var oidc = getOidc(configurationName);
42
+ (0, react_1.useEffect)(function () {
43
+ var isMounted = true;
44
+ if (oidc) {
45
+ oidc.tryKeepExistingSessionAsync().then(function () {
46
+ if (isMounted) {
47
+ setLoading(false);
48
+ }
49
+ });
50
+ }
51
+ return function () {
52
+ isMounted = false;
53
+ };
54
+ }, [oidc, configurationName]);
55
+ var LoadingComponent = loadingComponent;
56
+ return (react_1.default.createElement(react_1.default.Fragment, null, loading ? (react_1.default.createElement(LoadingComponent, { configurationName: configurationName })) : (react_1.default.createElement(react_1.default.Fragment, null, children))));
57
+ };
58
+ var Switch = function (_a) {
59
+ var isLoading = _a.isLoading, loadingComponent = _a.loadingComponent, children = _a.children, configurationName = _a.configurationName;
60
+ var LoadingComponent = loadingComponent;
61
+ if (isLoading) {
62
+ return react_1.default.createElement(LoadingComponent, { configurationName: configurationName }, children);
63
+ }
64
+ return react_1.default.createElement(react_1.default.Fragment, null, children);
65
+ };
66
+ var OidcProvider = function (_a) {
67
+ var children = _a.children, configuration = _a.configuration, _b = _a.configurationName, configurationName = _b === void 0 ? "default" : _b, _c = _a.callbackSuccessComponent, callbackSuccessComponent = _c === void 0 ? index_1.CallBackSuccess : _c, _d = _a.callbackErrorComponent, callbackErrorComponent = _d === void 0 ? index_1.AuthenticateError : _d, _e = _a.authenticatingComponent, authenticatingComponent = _e === void 0 ? index_1.Authenticating : _e, _f = _a.loadingComponent, loadingComponent = _f === void 0 ? index_1.Loading : _f, _g = _a.serviceWorkerNotSupportedComponent, serviceWorkerNotSupportedComponent = _g === void 0 ? ServiceWorkerNotSupported_component_1.default : _g, _h = _a.authenticatingErrorComponent, authenticatingErrorComponent = _h === void 0 ? AuthenticateError_component_1.default : _h, _j = _a.sessionLostComponent, sessionLostComponent = _j === void 0 ? index_1.SessionLost : _j, _k = _a.onSessionLost, onSessionLost = _k === void 0 ? null : _k;
68
+ var getOidc = function (configurationName) {
69
+ if (configurationName === void 0) { configurationName = "default"; }
70
+ return oidc_1.default.getOrCreate(configuration, configurationName);
71
+ };
72
+ var _l = (0, react_1.useState)(true), loading = _l[0], setLoading = _l[1];
73
+ var _m = (0, react_1.useState)(defaultEventState), event = _m[0], setEvent = _m[1];
74
+ var _o = (0, react_1.useState)("default"), currentConfigurationName = _o[0], setConfigurationName = _o[1];
75
+ (0, react_1.useEffect)(function () {
76
+ var oidc = getOidc(configurationName);
77
+ var newSubscriptionId = oidc.subscriveEvents(function (name, data) {
78
+ if (name == oidc_1.default.eventNames.refreshTokensAsync_error) {
79
+ if (onSessionLost != null) {
80
+ onSessionLost();
81
+ return;
82
+ }
83
+ setEvent({ name: name, data: data });
84
+ }
85
+ else if (name == oidc_1.default.eventNames.loginAsync_begin
86
+ || name == oidc_1.default.eventNames.loginCallbackAsync_end
87
+ || name == oidc_1.default.eventNames.loginAsync_error
88
+ || name == oidc_1.default.eventNames.loginCallbackAsync_error) {
89
+ setEvent({ name: name, data: data });
90
+ }
91
+ else if (name == oidc_1.default.eventNames.service_worker_not_supported_by_browser && configuration.service_worker_only === true) {
92
+ setEvent({ name: name, data: data });
93
+ }
94
+ });
95
+ setConfigurationName(configurationName);
96
+ setLoading(false);
97
+ return function () {
98
+ var previousOidc = getOidc(configurationName);
99
+ previousOidc.removeEventSubscription(newSubscriptionId);
100
+ setEvent(defaultEventState);
101
+ };
102
+ }, [configuration, configurationName]);
103
+ var SessionLostComponent = sessionLostComponent;
104
+ var AuthenticatingComponent = authenticatingComponent;
105
+ var LoadingComponent = loadingComponent;
106
+ var ServiceWorkerNotSupportedComponent = serviceWorkerNotSupportedComponent;
107
+ var AuthenticatingErrorComponent = authenticatingErrorComponent;
108
+ var isLoading = (loading || (currentConfigurationName != configurationName));
109
+ var eventName = event.name;
110
+ switch (eventName) {
111
+ case oidc_1.default.eventNames.service_worker_not_supported_by_browser:
112
+ return react_1.default.createElement(Switch, { loadingComponent: LoadingComponent, isLoading: isLoading, configurationName: configurationName },
113
+ react_1.default.createElement(ServiceWorkerNotSupportedComponent, { configurationName: configurationName }));
114
+ case oidc_1.default.eventNames.loginAsync_begin:
115
+ return react_1.default.createElement(Switch, { loadingComponent: LoadingComponent, isLoading: isLoading, configurationName: configurationName },
116
+ react_1.default.createElement(AuthenticatingComponent, { configurationName: configurationName }));
117
+ case oidc_1.default.eventNames.loginAsync_error:
118
+ case oidc_1.default.eventNames.loginCallbackAsync_error:
119
+ return react_1.default.createElement(Switch, { loadingComponent: LoadingComponent, isLoading: isLoading, configurationName: configurationName },
120
+ react_1.default.createElement(AuthenticatingErrorComponent, { configurationName: configurationName }),
121
+ ";");
122
+ case oidc_1.default.eventNames.refreshTokensAsync_error:
123
+ return react_1.default.createElement(Switch, { loadingComponent: LoadingComponent, isLoading: isLoading, configurationName: configurationName },
124
+ react_1.default.createElement(SessionLostComponent, { configurationName: configurationName }));
125
+ default:
126
+ return (react_1.default.createElement(Switch, { loadingComponent: LoadingComponent, isLoading: isLoading, configurationName: configurationName },
127
+ react_1.default.createElement(OidcRoutes_1.default, { redirect_uri: configuration.redirect_uri, silent_redirect_uri: configuration.silent_redirect_uri, callbackSuccessComponent: callbackSuccessComponent, callbackErrorComponent: callbackErrorComponent, authenticatingComponent: authenticatingComponent, configurationName: configurationName },
128
+ react_1.default.createElement(OidcSession, { loadingComponent: LoadingComponent, configurationName: configurationName }, children))));
129
+ }
130
+ };
131
+ exports.OidcProvider = OidcProvider;
132
+ exports.default = exports.OidcProvider;
133
+ //# sourceMappingURL=OidcProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OidcProvider.js","sourceRoot":"","sources":["../src/oidc/OidcProvider.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { PropsWithChildren, FC } from 'react';
2
+ import { StringMap } from "./vanilla/oidc";
3
+ export declare type OidcSecureProps = {
4
+ callbackPath?: string;
5
+ extras?: StringMap;
6
+ configurationName?: string;
7
+ };
8
+ export declare const OidcSecure: FC<PropsWithChildren<OidcSecureProps>>;
9
+ export declare const withOidcSecure: (WrappedComponent: any, callbackPath?: any) => (props: any) => JSX.Element;
10
+ //# sourceMappingURL=OidcSecure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OidcSecure.d.ts","sourceRoot":"","sources":["../src/oidc/OidcSecure.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAY,iBAAiB,EAAE,EAAE,EAAC,MAAM,OAAO,CAAC;AAE9D,OAAa,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAE/C,oBAAY,eAAe,GAAG;IAC1B,YAAY,CAAC,EAAC,MAAM,CAAC;IACrB,MAAM,CAAC,EAAC,SAAS,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAe7D,CAAA;AAED,eAAO,MAAM,cAAc,4EAI1B,CAAC"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.withOidcSecure = exports.OidcSecure = void 0;
41
+ var react_1 = __importStar(require("react"));
42
+ var oidc_1 = __importDefault(require("./vanilla/oidc"));
43
+ var OidcSecure = function (_a) {
44
+ var children = _a.children, _b = _a.callbackPath, callbackPath = _b === void 0 ? null : _b, _c = _a.extras, extras = _c === void 0 ? null : _c, _d = _a.configurationName, configurationName = _d === void 0 ? "default" : _d;
45
+ var getOidc = oidc_1.default.get;
46
+ var oidc = getOidc(configurationName);
47
+ (0, react_1.useEffect)(function () {
48
+ if (!oidc.tokens) {
49
+ oidc.loginAsync(callbackPath, extras);
50
+ }
51
+ return function () {
52
+ };
53
+ }, [configurationName, callbackPath, extras]);
54
+ if (!oidc.tokens) {
55
+ return null;
56
+ }
57
+ return react_1.default.createElement(react_1.default.Fragment, null, children);
58
+ };
59
+ exports.OidcSecure = OidcSecure;
60
+ var withOidcSecure = function (WrappedComponent, callbackPath) {
61
+ if (callbackPath === void 0) { callbackPath = null; }
62
+ return function (props) {
63
+ return react_1.default.createElement(exports.OidcSecure, { callbackPath: callbackPath },
64
+ react_1.default.createElement(WrappedComponent, __assign({}, props)));
65
+ };
66
+ };
67
+ exports.withOidcSecure = withOidcSecure;
68
+ //# sourceMappingURL=OidcSecure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OidcSecure.js","sourceRoot":"","sources":["../src/oidc/OidcSecure.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA8D;AAE9D,wDAA+C;AAQxC,IAAM,UAAU,GAA2C,UAAC,EAAuE;QAAtE,QAAQ,cAAA,EAAE,oBAAiB,EAAjB,YAAY,mBAAC,IAAI,KAAA,EAAE,cAAW,EAAX,MAAM,mBAAC,IAAI,KAAA,EAAE,yBAA2B,EAA3B,iBAAiB,mBAAC,SAAS,KAAA;IACrI,IAAM,OAAO,GAAI,cAAI,CAAC,GAAG,CAAC;IAC1B,IAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACxC,IAAA,iBAAS,EAAC;QACN,IAAG,CAAC,IAAI,CAAC,MAAM,EAAC;YACZ,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;SACzC;QACD,OAAO;QACP,CAAC,CAAA;IACL,CAAC,EAAE,CAAC,iBAAiB,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;IAE7C,IAAG,CAAC,IAAI,CAAC,MAAM,EAAC;QACd,OAAO,IAAI,CAAC;KACb;IACD,OAAO,8DAAG,QAAQ,CAAI,CAAA;AAC1B,CAAC,CAAA;AAfY,QAAA,UAAU,cAetB;AAEM,IAAM,cAAc,GAAG,UAC5B,gBAAgB,EAAE,YAAiB;IAAjB,6BAAA,EAAA,mBAAiB;IAChC,OAAA,UAAC,KAAK;QACT,OAAO,8BAAC,kBAAU,IAAC,YAAY,EAAE,YAAY;YAAE,8BAAC,gBAAgB,eAAK,KAAK,EAAI,CAAa,CAAC;IAC9F,CAAC;AAFI,CAEJ,CAAC;AAJW,QAAA,cAAc,kBAIzB"}
@@ -0,0 +1,272 @@
1
+ this.importScripts('OidcTrustedDomains.js');
2
+
3
+ const id = Math.round(new Date().getTime() / 1000).toString();
4
+
5
+ const keepAliveJsonFilename = "OidcKeepAliveServiceWorker.json";
6
+ const handleInstall = (event) => {
7
+ console.log('[OidcServiceWorker] service worker installed ' + id);
8
+ self.skipWaiting();
9
+ };
10
+
11
+ const handleActivate = () => {
12
+ console.log('[OidcServiceWorker] service worker activated ' + id);
13
+ self.clients.claim();
14
+ };
15
+
16
+ let currentLoginCallbackConfigurationName = null;
17
+ let database = {
18
+ default: {
19
+ configurationName: "default",
20
+ tokens: null,
21
+ items:[],
22
+ oidcServerConfiguration: null
23
+ }
24
+ };
25
+
26
+ const countLetter = (str, find)=> {
27
+ return (str.split(find)).length - 1;
28
+ }
29
+
30
+ function extractAccessTokenPayload(accessToken) {
31
+ try{
32
+ if (!accessToken) {
33
+ return null;
34
+ }
35
+ if(countLetter(accessToken,'.') === 2) {
36
+ return JSON.parse(atob(accessToken.split('.')[1]));
37
+ } else {
38
+ return null;
39
+ }
40
+ } catch (e) {
41
+ console.warn(e);
42
+ }
43
+ return null;
44
+ }
45
+
46
+ function hideTokens(currentDatabaseElement) {
47
+ const configurationName = currentDatabaseElement.configurationName;
48
+ return (response) => {
49
+ return response.json().then(tokens => {
50
+ currentDatabaseElement.tokens = tokens;
51
+ const secureTokens = {
52
+ ...tokens,
53
+ access_token: ACCESS_TOKEN +"_" + configurationName,
54
+ refresh_token: REFRESH_TOKEN + "_" + configurationName,
55
+ };
56
+ const body = JSON.stringify(secureTokens)
57
+ return new Response(body, response);
58
+ });
59
+ };
60
+ }
61
+
62
+ const getCurrentDatabasesTokenEndpoint = (database, url) => {
63
+ const databases = [];
64
+ for (const [key, value] of Object.entries(database)) {
65
+ if(value && value.oidcServerConfiguration !=null && url.startsWith(value.oidcServerConfiguration.tokenEndpoint)){
66
+ databases.push(value);
67
+ }
68
+ }
69
+ return databases;
70
+ }
71
+
72
+ const getCurrentDatabaseDomain = (database, url) => {
73
+ for (const [key, currentDatabase] of Object.entries(database)) {
74
+
75
+ const oidcServerConfiguration = currentDatabase.oidcServerConfiguration;
76
+ const domainsToSendTokens = oidcServerConfiguration != null ? [
77
+ oidcServerConfiguration.userInfoEndpoint, ...trustedDomains[key]
78
+ ] : [...trustedDomains[key]];
79
+
80
+ let hasToSendToken = false;
81
+ for(let i=0;i<domainsToSendTokens.length;i++) {
82
+ const domain = domainsToSendTokens[i];
83
+ if (url.startsWith(domain)) {
84
+ hasToSendToken = true;
85
+ break;
86
+ }
87
+ }
88
+
89
+ if(hasToSendToken){
90
+ if(!currentDatabase.tokens) {
91
+ return null;
92
+ }
93
+ return currentDatabase;
94
+ }
95
+ }
96
+
97
+ return null;
98
+ }
99
+
100
+ const serializeHeaders = (headers) => {
101
+ let headersObj = {};
102
+ for (let key of headers.keys()) {
103
+ headersObj[key] = headers.get(key);
104
+ }
105
+ return headersObj;
106
+ };
107
+
108
+ const REFRESH_TOKEN = 'REFRESH_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER';
109
+ const ACCESS_TOKEN = 'ACCESS_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER';
110
+
111
+ const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
112
+
113
+ const keepAliveAsync = async (event) => {
114
+ const originalRequest = event.request;
115
+ const isFromVanilla = originalRequest.headers.has('oidc-vanilla');
116
+ if(!isFromVanilla) {
117
+ await sleep(15000);
118
+ }
119
+ const init = {"status": 200, "statusText": 'oidc-service-worker'};
120
+ return new Response('{}', init);
121
+ }
122
+
123
+ const handleFetch = async (event) => {
124
+ const originalRequest = event.request;
125
+
126
+ if(originalRequest.url.includes(keepAliveJsonFilename) ){
127
+ event.respondWith(keepAliveAsync(event));
128
+ return;
129
+ }
130
+
131
+ const currentDatabaseForRequestAccessToken = getCurrentDatabaseDomain(database, originalRequest.url);
132
+ if(currentDatabaseForRequestAccessToken && currentDatabaseForRequestAccessToken.tokens) {
133
+ const newRequest = new Request(originalRequest, {
134
+ headers: {
135
+ ...serializeHeaders(originalRequest.headers),
136
+ authorization: "Bearer " + currentDatabaseForRequestAccessToken.tokens.access_token
137
+ }
138
+ });
139
+ event.waitUntil(event.respondWith(fetch(newRequest)));
140
+ }
141
+
142
+ if(event.request.method !== "POST"){
143
+ return;
144
+ }
145
+ let currentDatabase = null;
146
+ const currentDatabases = getCurrentDatabasesTokenEndpoint(database, originalRequest.url);
147
+ const numberDatabase = currentDatabases.length;
148
+ if(numberDatabase > 0) {
149
+ const maPromesse = new Promise((resolve, reject) => {
150
+ const response = originalRequest.clone().text().then(actualBody => {
151
+ if(actualBody.includes(REFRESH_TOKEN)) {
152
+ let newBody = actualBody;
153
+ for(let i= 0;i<numberDatabase;i++){
154
+ const currentDb = currentDatabases[i];
155
+ const key = REFRESH_TOKEN + '_'+ currentDb.configurationName;
156
+ if(currentDb && currentDb.tokens != null && actualBody.includes(key)) {
157
+ newBody = newBody.replace(key, encodeURIComponent(currentDb.tokens.refresh_token));
158
+ currentDatabase = currentDb;
159
+ break;
160
+ }
161
+ }
162
+ return fetch(originalRequest, {
163
+ body: newBody,
164
+ method: originalRequest.method,
165
+ headers: {
166
+ ...serializeHeaders(originalRequest.headers),
167
+ },
168
+ mode: originalRequest.mode,
169
+ cache: originalRequest.cache,
170
+ redirect: originalRequest.redirect,
171
+ referrer: originalRequest.referrer,
172
+ credentials: originalRequest.credentials,
173
+ integrity: originalRequest.integrity
174
+ }).then(hideTokens(currentDatabase));
175
+ } else if(currentLoginCallbackConfigurationName){
176
+ currentDatabase = database[currentLoginCallbackConfigurationName];
177
+ currentLoginCallbackConfigurationName=null;
178
+ return fetch(originalRequest,{
179
+ body: actualBody,
180
+ method: originalRequest.method,
181
+ headers: {
182
+ ...serializeHeaders(originalRequest.headers),
183
+ },
184
+ mode: originalRequest.mode,
185
+ cache: originalRequest.cache,
186
+ redirect: originalRequest.redirect,
187
+ referrer: originalRequest.referrer,
188
+ credentials: originalRequest.credentials,
189
+ integrity: originalRequest.integrity
190
+ }).then(hideTokens(currentDatabase));
191
+ }
192
+ });
193
+ response.then(r => {
194
+ if(r !== undefined){
195
+ resolve(r);
196
+ }
197
+ }).catch(err => {
198
+ if(err !== undefined) {
199
+ reject(err);
200
+ }
201
+ });
202
+ });
203
+ event.waitUntil(event.respondWith(maPromesse));
204
+ }
205
+ };
206
+
207
+ self.addEventListener('install', handleInstall);
208
+ self.addEventListener('activate', handleActivate);
209
+ self.addEventListener('fetch', handleFetch);
210
+
211
+ addEventListener('message', event => {
212
+ const port = event.ports[0];
213
+ const data = event.data;
214
+ const configurationName = data.configurationName;
215
+ let currentDatabase = database[configurationName];
216
+
217
+ if(!currentDatabase){
218
+ database[configurationName] = {
219
+ tokens: null,
220
+ items:[],
221
+ oidcServerConfiguration: null,
222
+ configurationName: configurationName,
223
+ };
224
+ currentDatabase = database[configurationName];
225
+ if(!trustedDomains[configurationName]) {
226
+ trustedDomains[configurationName] = [];
227
+ }
228
+ }
229
+ switch (data.type){
230
+ case "loadItems":
231
+ port.postMessage(database[configurationName].items);
232
+ return;
233
+ case "clear":
234
+ currentDatabase.tokens = null;
235
+ currentDatabase.items = null;
236
+ port.postMessage({configurationName});
237
+ return;
238
+ case "init":
239
+ currentDatabase.oidcServerConfiguration = data.data.oidcServerConfiguration;
240
+ const where = data.data.where;
241
+ if(where === "loginCallbackAsync" || where === "tryKeepExistingSessionAsync") {
242
+ currentLoginCallbackConfigurationName = configurationName;
243
+ } else{
244
+ currentLoginCallbackConfigurationName = null;
245
+ }
246
+ if(!currentDatabase.tokens){
247
+ port.postMessage({
248
+ tokens:null,
249
+ configurationName});
250
+ } else {
251
+ port.postMessage({
252
+ tokens: {
253
+ ...currentDatabase.tokens,
254
+ refresh_token: REFRESH_TOKEN + "_" + configurationName,
255
+ access_token: ACCESS_TOKEN + "_" + configurationName
256
+ },
257
+ configurationName
258
+ });
259
+ }
260
+ return;
261
+
262
+ case "getAccessTokenPayload":
263
+ const accessTokenPayload = extractAccessTokenPayload(currentDatabase.tokens.access_token);
264
+ port.postMessage({configurationName, accessTokenPayload});
265
+ return;
266
+ default:
267
+ currentDatabase.items = data.data;
268
+ port.postMessage({configurationName});
269
+ return;
270
+ }
271
+ });
272
+
@@ -0,0 +1,6 @@
1
+ 
2
+ // Add here trusted domains, access tokens will be send to
3
+ const trustedDomains = {
4
+ default:["http://localhost:4200"],
5
+ auth0:[]
6
+ };
@@ -0,0 +1,17 @@
1
+ import { StringMap } from "./vanilla/oidc";
2
+ export declare const useOidc: (configurationName?: string) => {
3
+ login: (callbackPath?: string | undefined, extras?: StringMap) => any;
4
+ logout: (callbackPath?: string | undefined) => any;
5
+ isAuthenticated: boolean;
6
+ };
7
+ export declare type OidcAccessToken = {
8
+ accessToken?: any;
9
+ accessTokenPayload?: any;
10
+ };
11
+ export declare const useOidcAccessToken: (configurationName?: string) => OidcAccessToken;
12
+ export declare type OidcIdToken = {
13
+ idToken?: any;
14
+ idTokenPayload?: any;
15
+ };
16
+ export declare const useOidcIdToken: (configurationName?: string) => OidcIdToken;
17
+ //# sourceMappingURL=ReactOidc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactOidc.d.ts","sourceRoot":"","sources":["../src/oidc/ReactOidc.tsx"],"names":[],"mappings":"AACA,OAAa,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAG/C,eAAO,MAAM,OAAO;2BAGY,MAAM,GAAG,SAAS,WAAqB,SAAS;4BAG9C,MAAM,GAAG,SAAS;;CAWnD,CAAA;AAcD,oBAAY,eAAe,GAAG;IAC1B,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,kBAAkB,CAAC,EAAE,GAAG,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,kBAAkB,iDA0B9B,CAAA;AAcD,oBAAY,WAAW,GAAG;IACtB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,cAAc,CAAC,EAAE,GAAG,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,cAAc,6CA0B1B,CAAA"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.useOidcIdToken = exports.useOidcAccessToken = exports.useOidc = void 0;
7
+ var react_1 = require("react");
8
+ var oidc_1 = __importDefault(require("./vanilla/oidc"));
9
+ var defaultConfigurationName = "default";
10
+ var useOidc = function (configurationName) {
11
+ if (configurationName === void 0) { configurationName = defaultConfigurationName; }
12
+ var getOidc = oidc_1.default.get;
13
+ var login = function (callbackPath, extras) {
14
+ if (callbackPath === void 0) { callbackPath = undefined; }
15
+ if (extras === void 0) { extras = null; }
16
+ return getOidc(configurationName).loginAsync(callbackPath, extras);
17
+ };
18
+ var logout = function (callbackPath) {
19
+ if (callbackPath === void 0) { callbackPath = undefined; }
20
+ return getOidc(configurationName).logoutAsync(callbackPath);
21
+ };
22
+ var isAuthenticated = false;
23
+ var oidc = getOidc(configurationName);
24
+ if (oidc) {
25
+ isAuthenticated = getOidc(configurationName).tokens != null;
26
+ }
27
+ return { login: login, logout: logout, isAuthenticated: isAuthenticated };
28
+ };
29
+ exports.useOidc = useOidc;
30
+ var accessTokenInitialState = { accessToken: null, accessTokenPayload: null };
31
+ var initTokens = function (configurationName) {
32
+ var getOidc = oidc_1.default.get;
33
+ var oidc = getOidc(configurationName);
34
+ if (oidc.tokens) {
35
+ var tokens = oidc.tokens;
36
+ return { accessToken: tokens.accessToken, accessTokenPayload: tokens.accessTokenPayload };
37
+ }
38
+ return accessTokenInitialState;
39
+ };
40
+ var useOidcAccessToken = function (configurationName) {
41
+ if (configurationName === void 0) { configurationName = defaultConfigurationName; }
42
+ var getOidc = oidc_1.default.get;
43
+ var _a = (0, react_1.useState)(initTokens(configurationName)), state = _a[0], setAccessToken = _a[1];
44
+ (0, react_1.useEffect)(function () {
45
+ var isMounted = true;
46
+ var oidc = getOidc(configurationName);
47
+ if (oidc.tokens) {
48
+ var tokens = oidc.tokens;
49
+ setAccessToken({ accessToken: tokens.accessToken, accessTokenPayload: tokens.accessTokenPayload });
50
+ }
51
+ var newSubscriptionId = oidc.subscriveEvents(function (name, data) {
52
+ if (name == oidc_1.default.eventNames.token_renewed
53
+ || name == oidc_1.default.eventNames.token_aquired) {
54
+ if (isMounted) {
55
+ var tokens = oidc.tokens;
56
+ setAccessToken(tokens != null ? { accessToken: tokens.accessToken, accessTokenPayload: tokens.accessTokenPayload } : accessTokenInitialState);
57
+ }
58
+ }
59
+ });
60
+ return function () {
61
+ isMounted = false;
62
+ oidc.removeEventSubscription(newSubscriptionId);
63
+ };
64
+ }, [configurationName]);
65
+ return state;
66
+ };
67
+ exports.useOidcAccessToken = useOidcAccessToken;
68
+ var idTokenInitialState = { idToken: null, idTokenPayload: null };
69
+ var initIdToken = function (configurationName) {
70
+ var getOidc = oidc_1.default.get;
71
+ var oidc = getOidc(configurationName);
72
+ if (oidc.tokens) {
73
+ var tokens = oidc.tokens;
74
+ return { idToken: tokens.idToken, idTokenPayload: tokens.idTokenPayload };
75
+ }
76
+ return idTokenInitialState;
77
+ };
78
+ var useOidcIdToken = function (configurationName) {
79
+ if (configurationName === void 0) { configurationName = defaultConfigurationName; }
80
+ var getOidc = oidc_1.default.get;
81
+ var _a = (0, react_1.useState)(initIdToken(configurationName)), state = _a[0], setIDToken = _a[1];
82
+ (0, react_1.useEffect)(function () {
83
+ var isMounted = true;
84
+ var oidc = getOidc(configurationName);
85
+ if (oidc.tokens) {
86
+ var tokens = oidc.tokens;
87
+ setIDToken({ idToken: tokens.idToken, idTokenPayload: tokens.idTokenPayload });
88
+ }
89
+ var newSubscriptionId = oidc.subscriveEvents(function (name, data) {
90
+ if (name == oidc_1.default.eventNames.token_renewed
91
+ || name == oidc_1.default.eventNames.token_aquired) {
92
+ if (isMounted) {
93
+ var tokens = oidc.tokens;
94
+ setIDToken(tokens != null ? { idToken: tokens.idToken, idTokenPayload: tokens.idTokenPayload } : idTokenInitialState);
95
+ }
96
+ }
97
+ });
98
+ return function () {
99
+ isMounted = false;
100
+ oidc.removeEventSubscription(newSubscriptionId);
101
+ };
102
+ }, [configurationName]);
103
+ return state;
104
+ };
105
+ exports.useOidcIdToken = useOidcIdToken;
106
+ //# sourceMappingURL=ReactOidc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactOidc.js","sourceRoot":"","sources":["../src/oidc/ReactOidc.tsx"],"names":[],"mappings":"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"}
package/dist/User.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ export declare enum OidcUserStatus {
2
+ Unauthenticated = "Unauthenticated",
3
+ Loading = "Loading user",
4
+ Loaded = "User loaded",
5
+ LoadingError = "Error loading user"
6
+ }
7
+ export declare type OidcUser = {
8
+ user: any;
9
+ status: OidcUserStatus;
10
+ };
11
+ export declare const useOidcUser: (configurationName?: string) => {
12
+ oidcUser: any;
13
+ oidcUserLoadingState: OidcUserStatus;
14
+ };
15
+ //# sourceMappingURL=User.d.ts.map