oidc-spa 7.1.10 → 7.2.0-rc.2

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 (367) hide show
  1. package/backend.js +235 -352
  2. package/backend.js.map +1 -1
  3. package/core/AuthResponse.js +12 -49
  4. package/core/AuthResponse.js.map +1 -1
  5. package/core/Oidc.d.ts +1 -2
  6. package/core/Oidc.js.map +1 -1
  7. package/core/OidcInitializationError.d.ts +0 -13
  8. package/core/OidcInitializationError.js +8 -318
  9. package/core/OidcInitializationError.js.map +1 -1
  10. package/core/OidcMetadata.js +1 -1
  11. package/core/OidcMetadata.js.map +1 -1
  12. package/core/StateData.d.ts +5 -5
  13. package/core/StateData.js +25 -25
  14. package/core/StateData.js.map +1 -1
  15. package/core/configId.js +1 -1
  16. package/core/configId.js.map +1 -1
  17. package/core/createOidc.d.ts +8 -0
  18. package/core/createOidc.js +1030 -1292
  19. package/core/createOidc.js.map +1 -1
  20. package/core/diagnostic.d.ts +14 -0
  21. package/core/diagnostic.js +214 -0
  22. package/core/diagnostic.js.map +1 -0
  23. package/core/evtIsUserActive.js +26 -27
  24. package/core/evtIsUserActive.js.map +1 -1
  25. package/core/handleOidcCallback.js +99 -154
  26. package/core/handleOidcCallback.js.map +1 -1
  27. package/core/iframeMessageProtection.d.ts +1 -1
  28. package/core/iframeMessageProtection.js +40 -106
  29. package/core/iframeMessageProtection.js.map +1 -1
  30. package/core/index.d.ts +1 -1
  31. package/core/index.js +3 -3
  32. package/core/index.js.map +1 -1
  33. package/core/initialLocationHref.js +1 -1
  34. package/core/initialLocationHref.js.map +1 -1
  35. package/core/isNewBrowserSession.js +8 -8
  36. package/core/isNewBrowserSession.js.map +1 -1
  37. package/core/loginOrGoToAuthServer.d.ts +1 -1
  38. package/core/loginOrGoToAuthServer.js +188 -310
  39. package/core/loginOrGoToAuthServer.js.map +1 -1
  40. package/core/loginPropagationToOtherTabs.js +15 -16
  41. package/core/loginPropagationToOtherTabs.js.map +1 -1
  42. package/core/loginSilent.d.ts +2 -3
  43. package/core/loginSilent.js +118 -214
  44. package/core/loginSilent.js.map +1 -1
  45. package/core/logoutPropagationToOtherTabs.js +15 -16
  46. package/core/logoutPropagationToOtherTabs.js.map +1 -1
  47. package/core/oidcClientTsUserToTokens.d.ts +1 -1
  48. package/core/oidcClientTsUserToTokens.js +75 -72
  49. package/core/oidcClientTsUserToTokens.js.map +1 -1
  50. package/core/ongoingLoginOrRefreshProcesses.js +23 -89
  51. package/core/ongoingLoginOrRefreshProcesses.js.map +1 -1
  52. package/core/persistedAuthState.js +13 -13
  53. package/core/persistedAuthState.js.map +1 -1
  54. package/entrypoint.js +9 -9
  55. package/entrypoint.js.map +1 -1
  56. package/esm/core/AuthResponse.d.ts +5 -0
  57. package/{src/core/AuthResponse.ts → esm/core/AuthResponse.js} +3 -9
  58. package/esm/core/AuthResponse.js.map +1 -0
  59. package/esm/core/Oidc.d.ts +126 -0
  60. package/esm/core/Oidc.js +2 -0
  61. package/esm/core/Oidc.js.map +1 -0
  62. package/esm/core/OidcInitializationError.d.ts +7 -0
  63. package/esm/core/OidcInitializationError.js +17 -0
  64. package/esm/core/OidcInitializationError.js.map +1 -0
  65. package/{src/core/OidcMetadata.ts → esm/core/OidcMetadata.d.ts} +0 -5
  66. package/esm/core/OidcMetadata.js +3 -0
  67. package/esm/core/OidcMetadata.js.map +1 -0
  68. package/esm/core/StateData.d.ts +42 -0
  69. package/esm/core/StateData.js +55 -0
  70. package/esm/core/StateData.js.map +1 -0
  71. package/esm/core/configId.d.ts +4 -0
  72. package/esm/core/configId.js +4 -0
  73. package/esm/core/configId.js.map +1 -0
  74. package/esm/core/createOidc.d.ts +132 -0
  75. package/{src/core/createOidc.ts → esm/core/createOidc.js} +282 -826
  76. package/esm/core/createOidc.js.map +1 -0
  77. package/esm/core/diagnostic.d.ts +14 -0
  78. package/{src/core/OidcInitializationError.ts → esm/core/diagnostic.js} +40 -117
  79. package/esm/core/diagnostic.js.map +1 -0
  80. package/esm/core/evtIsUserActive.d.ts +5 -0
  81. package/{src/core/evtIsUserActive.ts → esm/core/evtIsUserActive.js} +14 -46
  82. package/esm/core/evtIsUserActive.js.map +1 -0
  83. package/esm/core/handleOidcCallback.d.ts +13 -0
  84. package/{src/core/handleOidcCallback.ts → esm/core/handleOidcCallback.js} +56 -131
  85. package/esm/core/handleOidcCallback.js.map +1 -0
  86. package/esm/core/iframeMessageProtection.d.ts +20 -0
  87. package/{src/core/iframeMessageProtection.ts → esm/core/iframeMessageProtection.js} +14 -49
  88. package/esm/core/iframeMessageProtection.js.map +1 -0
  89. package/{src/core/index.ts → esm/core/index.d.ts} +1 -1
  90. package/esm/core/index.js +4 -0
  91. package/esm/core/index.js.map +1 -0
  92. package/esm/core/initialLocationHref.d.ts +1 -0
  93. package/{src/core/initialLocationHref.ts → esm/core/initialLocationHref.js} +1 -1
  94. package/esm/core/initialLocationHref.js.map +1 -0
  95. package/esm/core/isNewBrowserSession.d.ts +9 -0
  96. package/{src/core/isNewBrowserSession.ts → esm/core/isNewBrowserSession.js} +3 -15
  97. package/esm/core/isNewBrowserSession.js.map +1 -0
  98. package/esm/core/loginOrGoToAuthServer.d.ts +40 -0
  99. package/{src/core/loginOrGoToAuthServer.ts → esm/core/loginOrGoToAuthServer.js} +60 -168
  100. package/esm/core/loginOrGoToAuthServer.js.map +1 -0
  101. package/esm/core/loginPropagationToOtherTabs.d.ts +8 -0
  102. package/{src/core/loginPropagationToOtherTabs.ts → esm/core/loginPropagationToOtherTabs.js} +7 -25
  103. package/esm/core/loginPropagationToOtherTabs.js.map +1 -0
  104. package/esm/core/loginSilent.d.ts +28 -0
  105. package/esm/core/loginSilent.js +125 -0
  106. package/esm/core/loginSilent.js.map +1 -0
  107. package/esm/core/logoutPropagationToOtherTabs.d.ts +10 -0
  108. package/{src/core/logoutPropagationToOtherTabs.ts → esm/core/logoutPropagationToOtherTabs.js} +8 -28
  109. package/esm/core/logoutPropagationToOtherTabs.js.map +1 -0
  110. package/esm/core/oidcClientTsUserToTokens.d.ts +11 -0
  111. package/esm/core/oidcClientTsUserToTokens.js +155 -0
  112. package/esm/core/oidcClientTsUserToTokens.js.map +1 -0
  113. package/esm/core/ongoingLoginOrRefreshProcesses.d.ts +6 -0
  114. package/{src/core/ongoingLoginOrRefreshProcesses.ts → esm/core/ongoingLoginOrRefreshProcesses.js} +6 -24
  115. package/esm/core/ongoingLoginOrRefreshProcesses.js.map +1 -0
  116. package/esm/core/persistedAuthState.d.ts +28 -0
  117. package/esm/core/persistedAuthState.js +64 -0
  118. package/esm/core/persistedAuthState.js.map +1 -0
  119. package/esm/entrypoint.d.ts +7 -0
  120. package/{src/entrypoint.ts → esm/entrypoint.js} +3 -26
  121. package/esm/entrypoint.js.map +1 -0
  122. package/esm/index.d.ts +1 -0
  123. package/esm/index.js +2 -0
  124. package/esm/index.js.map +1 -0
  125. package/esm/keycloak/index.d.ts +3 -0
  126. package/esm/keycloak/index.js +3 -0
  127. package/esm/keycloak/index.js.map +1 -0
  128. package/esm/keycloak/isKeycloak.d.ts +3 -0
  129. package/esm/keycloak/isKeycloak.js +17 -0
  130. package/esm/keycloak/isKeycloak.js.map +1 -0
  131. package/esm/keycloak/keycloak-js/Keycloak.d.ts +284 -0
  132. package/esm/keycloak/keycloak-js/Keycloak.js +774 -0
  133. package/esm/keycloak/keycloak-js/Keycloak.js.map +1 -0
  134. package/esm/keycloak/keycloak-js/index.d.ts +2 -0
  135. package/esm/keycloak/keycloak-js/index.js +2 -0
  136. package/esm/keycloak/keycloak-js/index.js.map +1 -0
  137. package/esm/keycloak/keycloak-js/types.d.ts +361 -0
  138. package/esm/keycloak/keycloak-js/types.js +2 -0
  139. package/esm/keycloak/keycloak-js/types.js.map +1 -0
  140. package/esm/keycloak/keycloakIssuerUriParsed.d.ts +9 -0
  141. package/esm/keycloak/keycloakIssuerUriParsed.js +16 -0
  142. package/esm/keycloak/keycloakIssuerUriParsed.js.map +1 -0
  143. package/esm/keycloak/keycloakUtils.d.ts +37 -0
  144. package/esm/keycloak/keycloakUtils.js +44 -0
  145. package/esm/keycloak/keycloakUtils.js.map +1 -0
  146. package/esm/keycloak-js.d.ts +1 -0
  147. package/esm/keycloak-js.js +2 -0
  148. package/esm/keycloak-js.js.map +1 -0
  149. package/esm/mock/index.js +2 -0
  150. package/esm/mock/index.js.map +1 -0
  151. package/esm/mock/oidc.d.ts +19 -0
  152. package/{src/mock/oidc.ts → esm/mock/oidc.js} +28 -88
  153. package/esm/mock/oidc.js.map +1 -0
  154. package/esm/mock/react.d.ts +58 -0
  155. package/esm/mock/react.js +7 -0
  156. package/esm/mock/react.js.map +1 -0
  157. package/esm/react/index.js +2 -0
  158. package/esm/react/index.js.map +1 -0
  159. package/esm/react/react.d.ts +102 -0
  160. package/esm/react/react.js +221 -0
  161. package/esm/react/react.js.map +1 -0
  162. package/esm/tools/Deferred.d.ts +14 -0
  163. package/esm/tools/Deferred.js +23 -0
  164. package/esm/tools/Deferred.js.map +1 -0
  165. package/esm/tools/EphemeralSessionStorage.d.ts +12 -0
  166. package/{src/tools/EphemeralSessionStorage.ts → esm/tools/EphemeralSessionStorage.js} +30 -112
  167. package/esm/tools/EphemeralSessionStorage.js.map +1 -0
  168. package/esm/tools/Evt.d.ts +11 -0
  169. package/{src/tools/Evt.ts → esm/tools/Evt.js} +7 -25
  170. package/esm/tools/Evt.js.map +1 -0
  171. package/esm/tools/StatefulEvt.d.ts +12 -0
  172. package/esm/tools/StatefulEvt.js +21 -0
  173. package/esm/tools/StatefulEvt.js.map +1 -0
  174. package/esm/tools/ValueOrAsyncGetter.js +2 -0
  175. package/esm/tools/ValueOrAsyncGetter.js.map +1 -0
  176. package/esm/tools/asymmetricEncryption.d.ts +18 -0
  177. package/esm/tools/asymmetricEncryption.js +85 -0
  178. package/esm/tools/asymmetricEncryption.js.map +1 -0
  179. package/esm/tools/base64.d.ts +2 -0
  180. package/{src/tools/base64.ts → esm/tools/base64.js} +3 -3
  181. package/esm/tools/base64.js.map +1 -0
  182. package/esm/tools/createObjectThatThrowsIfAccessed.d.ts +8 -0
  183. package/{src/tools/createObjectThatThrowsIfAccessed.ts → esm/tools/createObjectThatThrowsIfAccessed.js} +7 -18
  184. package/esm/tools/createObjectThatThrowsIfAccessed.js.map +1 -0
  185. package/esm/tools/decodeJwt.d.ts +25 -0
  186. package/esm/tools/decodeJwt.js +60 -0
  187. package/esm/tools/decodeJwt.js.map +1 -0
  188. package/esm/tools/generateUrlSafeRandom.d.ts +3 -0
  189. package/{src/tools/generateUrlSafeRandom.ts → esm/tools/generateUrlSafeRandom.js} +5 -8
  190. package/esm/tools/generateUrlSafeRandom.js.map +1 -0
  191. package/esm/tools/getDownlinkAndRtt.d.ts +4 -0
  192. package/{src/tools/getDownlinkAndRtt.ts → esm/tools/getDownlinkAndRtt.js} +6 -10
  193. package/esm/tools/getDownlinkAndRtt.js.map +1 -0
  194. package/esm/tools/getIsOnline.d.ts +7 -0
  195. package/{src/tools/getIsOnline.ts → esm/tools/getIsOnline.js} +3 -9
  196. package/esm/tools/getIsOnline.js.map +1 -0
  197. package/esm/tools/getIsValidRemoteJson.d.ts +1 -0
  198. package/esm/tools/getIsValidRemoteJson.js +15 -0
  199. package/esm/tools/getIsValidRemoteJson.js.map +1 -0
  200. package/esm/tools/getPrUserInteraction.d.ts +4 -0
  201. package/{src/tools/getPrUserInteraction.ts → esm/tools/getPrUserInteraction.js} +2 -6
  202. package/esm/tools/getPrUserInteraction.js.map +1 -0
  203. package/esm/tools/getUserEnvironmentInfo.d.ts +1 -0
  204. package/esm/tools/getUserEnvironmentInfo.js +50 -0
  205. package/esm/tools/getUserEnvironmentInfo.js.map +1 -0
  206. package/esm/tools/haveSharedParentDomain.d.ts +4 -0
  207. package/{src/tools/haveSharedParentDomain.ts → esm/tools/haveSharedParentDomain.js} +3 -5
  208. package/esm/tools/haveSharedParentDomain.js.map +1 -0
  209. package/esm/tools/isDev.d.ts +1 -0
  210. package/{src/tools/isDev.ts → esm/tools/isDev.js} +5 -12
  211. package/esm/tools/isDev.js.map +1 -0
  212. package/esm/tools/parseKeycloakIssuerUri.d.ts +30 -0
  213. package/esm/tools/parseKeycloakIssuerUri.js +33 -0
  214. package/esm/tools/parseKeycloakIssuerUri.js.map +1 -0
  215. package/esm/tools/readExpirationTimeInJwt.d.ts +1 -0
  216. package/{src/tools/readExpirationTimeInJwt.ts → esm/tools/readExpirationTimeInJwt.js} +6 -7
  217. package/esm/tools/readExpirationTimeInJwt.js.map +1 -0
  218. package/esm/tools/startCountdown.d.ts +11 -0
  219. package/{src/tools/startCountdown.ts → esm/tools/startCountdown.js} +6 -17
  220. package/esm/tools/startCountdown.js.map +1 -0
  221. package/esm/tools/subscribeToUserInteraction.d.ts +6 -0
  222. package/{src/tools/subscribeToUserInteraction.ts → esm/tools/subscribeToUserInteraction.js} +4 -13
  223. package/esm/tools/subscribeToUserInteraction.js.map +1 -0
  224. package/esm/tools/toFullyQualifiedUrl.d.ts +10 -0
  225. package/{src/tools/toFullyQualifiedUrl.ts → esm/tools/toFullyQualifiedUrl.js} +7 -25
  226. package/esm/tools/toFullyQualifiedUrl.js.map +1 -0
  227. package/esm/tools/toHumanReadableDuration.d.ts +1 -0
  228. package/{src/tools/toHumanReadableDuration.ts → esm/tools/toHumanReadableDuration.js} +8 -5
  229. package/esm/tools/toHumanReadableDuration.js.map +1 -0
  230. package/esm/tools/urlSearchParams.d.ts +19 -0
  231. package/{src/tools/urlSearchParams.ts → esm/tools/urlSearchParams.js} +24 -70
  232. package/esm/tools/urlSearchParams.js.map +1 -0
  233. package/esm/tools/workerTimers.d.ts +5 -0
  234. package/{src/tools/workerTimers.ts → esm/tools/workerTimers.js} +7 -27
  235. package/esm/tools/workerTimers.js.map +1 -0
  236. package/esm/vendor/frontend/oidc-client-ts.d.ts +1 -0
  237. package/esm/vendor/frontend/oidc-client-ts.js +3636 -0
  238. package/{src/vendor/frontend/tsafe.ts → esm/vendor/frontend/tsafe.d.ts} +1 -0
  239. package/esm/vendor/frontend/tsafe.js +1 -0
  240. package/esm/vendor/frontend/worker-timers.js +1 -0
  241. package/index.d.ts +1 -1
  242. package/index.js +1 -2
  243. package/index.js.map +1 -1
  244. package/keycloak/index.d.ts +3 -0
  245. package/keycloak/index.js +8 -0
  246. package/keycloak/index.js.map +1 -0
  247. package/keycloak/isKeycloak.d.ts +3 -0
  248. package/keycloak/isKeycloak.js +20 -0
  249. package/keycloak/isKeycloak.js.map +1 -0
  250. package/keycloak/keycloak-js/Keycloak.d.ts +284 -0
  251. package/keycloak/keycloak-js/Keycloak.js +778 -0
  252. package/keycloak/keycloak-js/Keycloak.js.map +1 -0
  253. package/keycloak/keycloak-js/index.d.ts +2 -0
  254. package/keycloak/keycloak-js/index.js +6 -0
  255. package/keycloak/keycloak-js/index.js.map +1 -0
  256. package/keycloak/keycloak-js/types.d.ts +361 -0
  257. package/keycloak/keycloak-js/types.js +3 -0
  258. package/keycloak/keycloak-js/types.js.map +1 -0
  259. package/keycloak/keycloakIssuerUriParsed.d.ts +9 -0
  260. package/keycloak/keycloakIssuerUriParsed.js +19 -0
  261. package/keycloak/keycloakIssuerUriParsed.js.map +1 -0
  262. package/keycloak/keycloakUtils.d.ts +37 -0
  263. package/keycloak/keycloakUtils.js +47 -0
  264. package/keycloak/keycloakUtils.js.map +1 -0
  265. package/keycloak-js.d.ts +1 -0
  266. package/keycloak-js.js +18 -0
  267. package/keycloak-js.js.map +1 -0
  268. package/mock/index.js.map +1 -1
  269. package/mock/oidc.js +147 -194
  270. package/mock/oidc.js.map +1 -1
  271. package/mock/react.js +2 -2
  272. package/mock/react.js.map +1 -1
  273. package/package.json +74 -299
  274. package/react/index.js.map +1 -1
  275. package/react/react.js +133 -244
  276. package/react/react.js.map +1 -1
  277. package/tools/Deferred.js +13 -35
  278. package/tools/Deferred.js.map +1 -1
  279. package/tools/EphemeralSessionStorage.js +46 -48
  280. package/tools/EphemeralSessionStorage.js.map +1 -1
  281. package/tools/Evt.js +14 -14
  282. package/tools/Evt.js.map +1 -1
  283. package/tools/StatefulEvt.js +5 -5
  284. package/tools/StatefulEvt.js.map +1 -1
  285. package/tools/ValueOrAsyncGetter.js.map +1 -1
  286. package/tools/asymmetricEncryption.js +81 -172
  287. package/tools/asymmetricEncryption.js.map +1 -1
  288. package/tools/base64.js +2 -2
  289. package/tools/base64.js.map +1 -1
  290. package/tools/createObjectThatThrowsIfAccessed.js +13 -61
  291. package/tools/createObjectThatThrowsIfAccessed.js.map +1 -1
  292. package/tools/decodeJwt.d.ts +25 -2
  293. package/tools/decodeJwt.js +61 -3
  294. package/tools/decodeJwt.js.map +1 -1
  295. package/tools/generateUrlSafeRandom.js +5 -30
  296. package/tools/generateUrlSafeRandom.js.map +1 -1
  297. package/tools/getDownlinkAndRtt.js +8 -30
  298. package/tools/getDownlinkAndRtt.js.map +1 -1
  299. package/tools/getIsOnline.js +3 -3
  300. package/tools/getIsOnline.js.map +1 -1
  301. package/tools/getIsValidRemoteJson.js +12 -59
  302. package/tools/getIsValidRemoteJson.js.map +1 -1
  303. package/tools/getPrUserInteraction.js +4 -4
  304. package/tools/getPrUserInteraction.js.map +1 -1
  305. package/tools/getUserEnvironmentInfo.js +17 -12
  306. package/tools/getUserEnvironmentInfo.js.map +1 -1
  307. package/tools/haveSharedParentDomain.js +5 -5
  308. package/tools/haveSharedParentDomain.js.map +1 -1
  309. package/tools/isDev.js +2 -2
  310. package/tools/isDev.js.map +1 -1
  311. package/tools/parseKeycloakIssuerUri.d.ts +2 -0
  312. package/tools/parseKeycloakIssuerUri.js +11 -42
  313. package/tools/parseKeycloakIssuerUri.js.map +1 -1
  314. package/tools/readExpirationTimeInJwt.js +4 -4
  315. package/tools/readExpirationTimeInJwt.js.map +1 -1
  316. package/tools/startCountdown.js +17 -65
  317. package/tools/startCountdown.js.map +1 -1
  318. package/tools/subscribeToUserInteraction.js +17 -66
  319. package/tools/subscribeToUserInteraction.js.map +1 -1
  320. package/tools/toFullyQualifiedUrl.js +7 -7
  321. package/tools/toFullyQualifiedUrl.js.map +1 -1
  322. package/tools/toHumanReadableDuration.js +13 -13
  323. package/tools/toHumanReadableDuration.js.map +1 -1
  324. package/tools/urlSearchParams.js +28 -50
  325. package/tools/urlSearchParams.js.map +1 -1
  326. package/tools/workerTimers.js +10 -10
  327. package/tools/workerTimers.js.map +1 -1
  328. package/vendor/frontend/oidc-client-ts.d.ts +1 -0
  329. package/vendor/frontend/oidc-client-ts.js +3686 -0
  330. package/vendor/frontend/tsafe.d.ts +1 -0
  331. package/vendor/frontend/tsafe.js +1 -1
  332. package/LICENSE +0 -21
  333. package/README.md +0 -185
  334. package/core/trustedFetch.d.ts +0 -2
  335. package/core/trustedFetch.js +0 -12
  336. package/core/trustedFetch.js.map +0 -1
  337. package/src/backend.ts +0 -391
  338. package/src/core/Oidc.ts +0 -141
  339. package/src/core/StateData.ts +0 -118
  340. package/src/core/configId.ts +0 -3
  341. package/src/core/loginSilent.ts +0 -206
  342. package/src/core/oidcClientTsUserToTokens.ts +0 -229
  343. package/src/core/persistedAuthState.ts +0 -122
  344. package/src/core/trustedFetch.ts +0 -9
  345. package/src/index.ts +0 -7
  346. package/src/mock/react.tsx +0 -11
  347. package/src/react/react.tsx +0 -460
  348. package/src/tools/Deferred.ts +0 -39
  349. package/src/tools/StatefulEvt.ts +0 -38
  350. package/src/tools/asymmetricEncryption.ts +0 -184
  351. package/src/tools/decodeJwt.ts +0 -2
  352. package/src/tools/getIsValidRemoteJson.ts +0 -18
  353. package/src/tools/getUserEnvironmentInfo.ts +0 -42
  354. package/src/tools/parseKeycloakIssuerUri.ts +0 -68
  355. package/src/vendor/backend/evt.ts +0 -2
  356. package/src/vendor/backend/jsonwebtoken.ts +0 -1
  357. package/src/vendor/backend/node-fetch.ts +0 -2
  358. package/src/vendor/backend/node-jose.ts +0 -1
  359. package/src/vendor/backend/tsafe.ts +0 -5
  360. package/src/vendor/backend/zod.ts +0 -1
  361. package/src/vendor/frontend/oidc-client-ts-and-jwt-decode.ts +0 -4
  362. package/vendor/frontend/oidc-client-ts-and-jwt-decode.d.ts +0 -3
  363. package/vendor/frontend/oidc-client-ts-and-jwt-decode.js +0 -3
  364. /package/{src/mock/index.ts → esm/mock/index.d.ts} +0 -0
  365. /package/{src/react/index.ts → esm/react/index.d.ts} +0 -0
  366. /package/{src/tools/ValueOrAsyncGetter.ts → esm/tools/ValueOrAsyncGetter.d.ts} +0 -0
  367. /package/{src/vendor/frontend/worker-timers.ts → esm/vendor/frontend/worker-timers.d.ts} +0 -0
@@ -1,98 +1,49 @@
1
- import type { Oidc } from "../core";
2
1
  import { createObjectThatThrowsIfAccessed } from "../tools/createObjectThatThrowsIfAccessed";
3
2
  import { id } from "../vendor/frontend/tsafe";
4
3
  import { toFullyQualifiedUrl } from "../tools/toFullyQualifiedUrl";
5
4
  import { getSearchParam, addOrUpdateSearchParam } from "../tools/urlSearchParams";
6
5
  import { initialLocationHref } from "../core/initialLocationHref";
7
-
8
- export type ParamsOfCreateMockOidc<
9
- DecodedIdToken extends Record<string, unknown> = Record<string, unknown>,
10
- AutoLogin extends boolean = false
11
- > = {
12
- mockedParams?: Partial<Oidc["params"]>;
13
- mockedTokens?: Partial<Oidc.Tokens<DecodedIdToken>>;
14
- /**
15
- * The URL of the home page of your app.
16
- * We need to know this so we know where to redirect when you call `logout({ redirectTo: "home"})`.
17
- * In the majority of cases it should be `homeUrl: "/"` but it could aso be something like `homeUrl: "/dashboard"`
18
- * if your web app isn't hosted at the root of the domain.
19
- */
20
- homeUrl: string;
21
- autoLogin?: AutoLogin;
22
- postLoginRedirectUrl?: string;
23
- } & (AutoLogin extends true
24
- ? { isUserInitiallyLoggedIn?: true }
25
- : {
26
- isUserInitiallyLoggedIn: boolean;
27
- });
28
-
29
6
  const URL_SEARCH_PARAM_NAME = "isUserLoggedIn";
30
-
31
- export async function createMockOidc<
32
- DecodedIdToken extends Record<string, unknown> = Oidc.Tokens.DecodedIdToken_base,
33
- AutoLogin extends boolean = false
34
- >(
35
- params: ParamsOfCreateMockOidc<DecodedIdToken, AutoLogin>
36
- ): Promise<AutoLogin extends true ? Oidc.LoggedIn<DecodedIdToken> : Oidc<DecodedIdToken>> {
37
- const {
38
- isUserInitiallyLoggedIn = true,
39
- mockedParams = {},
40
- mockedTokens = {},
41
- homeUrl: homeUrl_params,
42
- autoLogin = false,
43
- postLoginRedirectUrl
44
- } = params;
45
-
7
+ export async function createMockOidc(params) {
8
+ const { isUserInitiallyLoggedIn = true, mockedParams = {}, mockedTokens = {}, homeUrl: homeUrl_params, autoLogin = false, postLoginRedirectUrl } = params;
46
9
  const isUserLoggedIn = (() => {
47
10
  const { wasPresent, value } = getSearchParam({
48
11
  url: initialLocationHref,
49
12
  name: URL_SEARCH_PARAM_NAME
50
13
  });
51
-
52
14
  if (!wasPresent) {
53
15
  return isUserInitiallyLoggedIn;
54
16
  }
55
-
56
17
  remove_from_url: {
57
18
  const { wasPresent, url_withoutTheParam } = getSearchParam({
58
19
  url: window.location.href,
59
20
  name: URL_SEARCH_PARAM_NAME
60
21
  });
61
-
62
22
  if (!wasPresent) {
63
23
  break remove_from_url;
64
24
  }
65
-
66
25
  window.history.replaceState({}, "", url_withoutTheParam);
67
26
  }
68
-
69
27
  return value === "true";
70
28
  })();
71
-
72
29
  const homeUrl = toFullyQualifiedUrl({
73
30
  urlish: homeUrl_params,
74
31
  doAssertNoQueryParams: true,
75
32
  doOutputWithTrailingSlash: true
76
33
  });
77
-
78
- const common: Oidc.Common = {
34
+ const common = {
79
35
  params: {
80
36
  clientId: mockedParams.clientId ?? "mymockclient",
81
37
  issuerUri: mockedParams.issuerUri ?? "https://my-mock-oidc-server.net/realms/mymockrealm"
82
38
  }
83
39
  };
84
-
85
- const loginOrGoToAuthServer = async (params: {
86
- redirectUrl: string | undefined;
87
- }): Promise<never> => {
40
+ const loginOrGoToAuthServer = async (params) => {
88
41
  const { redirectUrl: redirectUrl_params } = params;
89
-
90
42
  const redirectUrl = addOrUpdateSearchParam({
91
43
  url: (() => {
92
44
  if (redirectUrl_params === undefined) {
93
45
  return window.location.href;
94
46
  }
95
-
96
47
  return toFullyQualifiedUrl({
97
48
  urlish: redirectUrl_params,
98
49
  doAssertNoQueryParams: false
@@ -102,14 +53,11 @@ export async function createMockOidc<
102
53
  value: "true",
103
54
  encodeMethod: "www-form"
104
55
  });
105
-
106
56
  window.location.href = redirectUrl;
107
-
108
- return new Promise<never>(() => {});
57
+ return new Promise(() => { });
109
58
  };
110
-
111
59
  if (!isUserLoggedIn) {
112
- const oidc = id<Oidc.NotLoggedIn>({
60
+ const oidc = id({
113
61
  ...common,
114
62
  isUserLoggedIn: false,
115
63
  login: ({ redirectUrl }) => loginOrGoToAuthServer({ redirectUrl }),
@@ -125,27 +73,24 @@ export async function createMockOidc<
125
73
  // @ts-expect-error: We know what we are doing
126
74
  return oidc;
127
75
  }
128
-
129
- const oidc: Oidc.LoggedIn<DecodedIdToken> = {
76
+ const oidc = {
130
77
  ...common,
131
78
  isUserLoggedIn: true,
132
- renewTokens: async () => {},
79
+ renewTokens: async () => { },
133
80
  ...(() => {
134
- const tokens_common: Oidc.Tokens.Common<DecodedIdToken> = {
81
+ const tokens_common = {
135
82
  accessToken: mockedTokens.accessToken ?? "mocked-access-token",
136
83
  accessTokenExpirationTime: mockedTokens.accessTokenExpirationTime ?? Infinity,
137
84
  idToken: mockedTokens.idToken ?? "mocked-id-token",
138
- decodedIdToken:
139
- mockedTokens.decodedIdToken ??
140
- createObjectThatThrowsIfAccessed<DecodedIdToken>({
85
+ decodedIdToken: mockedTokens.decodedIdToken ??
86
+ createObjectThatThrowsIfAccessed({
141
87
  debugMessage: [
142
88
  "You haven't provided a mocked decodedIdToken",
143
89
  "See https://docs.oidc-spa.dev/v/v7/mock"
144
90
  ].join("\n")
145
91
  }),
146
- decodedIdToken_original:
147
- mockedTokens.decodedIdToken_original ??
148
- createObjectThatThrowsIfAccessed<Oidc.Tokens.DecodedIdToken_base>({
92
+ decodedIdToken_original: mockedTokens.decodedIdToken_original ??
93
+ createObjectThatThrowsIfAccessed({
149
94
  debugMessage: [
150
95
  "You haven't provided a mocked decodedIdToken_original",
151
96
  "See https://docs.oidc-spa.dev/v/v7/mock"
@@ -153,27 +98,24 @@ export async function createMockOidc<
153
98
  }),
154
99
  issuedAtTime: Date.now()
155
100
  };
156
-
157
- const tokens: Oidc.Tokens<DecodedIdToken> =
158
- mockedTokens.refreshToken !== undefined || mockedTokens.hasRefreshToken === true
159
- ? id<Oidc.Tokens.WithRefreshToken<DecodedIdToken>>({
160
- ...tokens_common,
161
- hasRefreshToken: true,
162
- refreshToken: mockedTokens.refreshToken ?? "mocked-refresh-token",
163
- refreshTokenExpirationTime: mockedTokens.refreshTokenExpirationTime
164
- })
165
- : id<Oidc.Tokens.WithoutRefreshToken<DecodedIdToken>>({
166
- ...tokens_common,
167
- hasRefreshToken: false
168
- });
169
-
101
+ const tokens = mockedTokens.refreshToken !== undefined || mockedTokens.hasRefreshToken === true
102
+ ? id({
103
+ ...tokens_common,
104
+ hasRefreshToken: true,
105
+ refreshToken: mockedTokens.refreshToken ?? "mocked-refresh-token",
106
+ refreshTokenExpirationTime: mockedTokens.refreshTokenExpirationTime
107
+ })
108
+ : id({
109
+ ...tokens_common,
110
+ hasRefreshToken: false
111
+ });
170
112
  return {
171
113
  getTokens: () => Promise.resolve(tokens),
172
114
  getDecodedIdToken: () => tokens_common.decodedIdToken
173
115
  };
174
116
  })(),
175
117
  subscribeToTokensChange: () => ({
176
- unsubscribe: () => {}
118
+ unsubscribe: () => { }
177
119
  }),
178
120
  logout: params => {
179
121
  const redirectUrl = addOrUpdateSearchParam({
@@ -194,18 +136,16 @@ export async function createMockOidc<
194
136
  value: "false",
195
137
  encodeMethod: "www-form"
196
138
  });
197
-
198
139
  window.location.href = redirectUrl;
199
-
200
- return new Promise<never>(() => {});
140
+ return new Promise(() => { });
201
141
  },
202
142
  subscribeToAutoLogoutCountdown: () => ({
203
- unsubscribeFromAutoLogoutCountdown: () => {}
143
+ unsubscribeFromAutoLogoutCountdown: () => { }
204
144
  }),
205
145
  goToAuthServer: async ({ redirectUrl }) => loginOrGoToAuthServer({ redirectUrl }),
206
146
  isNewBrowserSession: false,
207
147
  backFromAuthServer: undefined
208
148
  };
209
-
210
149
  return oidc;
211
150
  }
151
+ //# sourceMappingURL=oidc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oidc.js","sourceRoot":"","sources":["../../../src/mock/oidc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { type ParamsOfCreateMockOidc } from "./oidc";
2
+ import type { ValueOrAsyncGetter } from "../tools/ValueOrAsyncGetter";
3
+ /** @see: https://docs.oidc-spa.dev/v/v7/mock */
4
+ export declare function createMockReactOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>, AutoLogin extends boolean = false>(params: ValueOrAsyncGetter<ParamsOfCreateMockOidc<DecodedIdToken, AutoLogin>>): {
5
+ OidcProvider: (ParamsOfCreateMockOidc<DecodedIdToken, AutoLogin> extends infer T ? T extends ParamsOfCreateMockOidc<DecodedIdToken, AutoLogin> ? T extends {
6
+ autoLogin?: true | undefined;
7
+ } ? true : false : never : never) extends infer T_1 ? T_1 extends (ParamsOfCreateMockOidc<DecodedIdToken, AutoLogin> extends infer T_2 ? T_2 extends ParamsOfCreateMockOidc<DecodedIdToken, AutoLogin> ? T_2 extends {
8
+ autoLogin?: true | undefined;
9
+ } ? true : false : never : never) ? T_1 extends true ? (props: {
10
+ fallback?: import("react").ReactNode;
11
+ ErrorFallback?: (props: {
12
+ initializationError: import("..").OidcInitializationError;
13
+ }) => import("react").ReactNode;
14
+ children: import("react").ReactNode;
15
+ }) => import("react").JSX.Element : (props: {
16
+ fallback?: import("react").ReactNode;
17
+ children: import("react").ReactNode;
18
+ }) => import("react").JSX.Element : never : never;
19
+ useOidc: (ParamsOfCreateMockOidc<DecodedIdToken, AutoLogin> extends infer T_3 ? T_3 extends ParamsOfCreateMockOidc<DecodedIdToken, AutoLogin> ? T_3 extends {
20
+ autoLogin?: true | undefined;
21
+ } ? true : false : never : never) extends infer T_4 ? T_4 extends (ParamsOfCreateMockOidc<DecodedIdToken, AutoLogin> extends infer T_5 ? T_5 extends ParamsOfCreateMockOidc<DecodedIdToken, AutoLogin> ? T_5 extends {
22
+ autoLogin?: true | undefined;
23
+ } ? true : false : never : never) ? T_4 extends true ? (params?: {
24
+ assert: "user logged in";
25
+ }) => import("../react/react").OidcReact.LoggedIn<DecodedIdToken> : {
26
+ (params?: {
27
+ assert?: undefined;
28
+ }): import("../react/react").OidcReact<DecodedIdToken>;
29
+ (params: {
30
+ assert: "user logged in";
31
+ }): import("../react/react").OidcReact.LoggedIn<DecodedIdToken>;
32
+ (params: {
33
+ assert: "user not logged in";
34
+ }): import("../react/react").OidcReact.NotLoggedIn;
35
+ } : never : never;
36
+ getOidc: () => Promise<(ParamsOfCreateMockOidc<DecodedIdToken, AutoLogin> extends infer T_6 ? T_6 extends ParamsOfCreateMockOidc<DecodedIdToken, AutoLogin> ? T_6 extends {
37
+ autoLogin?: true | undefined;
38
+ } ? true : false : never : never) extends infer T_7 ? T_7 extends (ParamsOfCreateMockOidc<DecodedIdToken, AutoLogin> extends infer T_8 ? T_8 extends ParamsOfCreateMockOidc<DecodedIdToken, AutoLogin> ? T_8 extends {
39
+ autoLogin?: true | undefined;
40
+ } ? true : false : never : never) ? T_7 extends true ? import("..").Oidc.LoggedIn<DecodedIdToken> : import("..").Oidc<DecodedIdToken> : never : never>;
41
+ } & ((ParamsOfCreateMockOidc<DecodedIdToken, AutoLogin> extends infer T_6 ? T_6 extends ParamsOfCreateMockOidc<DecodedIdToken, AutoLogin> ? T_6 extends {
42
+ autoLogin?: true | undefined;
43
+ } ? true : false : never : never) extends infer T_7 ? T_7 extends (ParamsOfCreateMockOidc<DecodedIdToken, AutoLogin> extends infer T_8 ? T_8 extends ParamsOfCreateMockOidc<DecodedIdToken, AutoLogin> ? T_8 extends {
44
+ autoLogin?: true | undefined;
45
+ } ? true : false : never : never) ? T_7 extends true ? {} : {
46
+ withLoginEnforced: <Props extends Record<string, unknown>>(Component: import("react").ComponentType<Props>, params?: {
47
+ onRedirecting: () => import("react").JSX.Element | null;
48
+ }) => import("react").FC<Props>;
49
+ enforceLogin: (loaderParams: {
50
+ request?: {
51
+ url?: string;
52
+ };
53
+ cause?: "preload" | string;
54
+ location?: {
55
+ href?: string;
56
+ };
57
+ }) => Promise<void | never>;
58
+ } : never : never);
@@ -0,0 +1,7 @@
1
+ import { createOidcReactApi_dependencyInjection } from "../react/react";
2
+ import { createMockOidc } from "./oidc";
3
+ /** @see: https://docs.oidc-spa.dev/v/v7/mock */
4
+ export function createMockReactOidc(params) {
5
+ return createOidcReactApi_dependencyInjection(params, createMockOidc);
6
+ }
7
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../../src/mock/react.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,sCAAsC,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,cAAc,EAA+B,MAAM,QAAQ,CAAC;AAGrE,gDAAgD;AAChD,MAAM,UAAU,mBAAmB,CAGjC,MAA6E;IAC3E,OAAO,sCAAsC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAC1E,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { createReactOidc } from "./react";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,eAAe,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,102 @@
1
+ import { type ReactNode, type ComponentType, type FC, type JSX } from "react";
2
+ import { type Oidc, type ParamsOfCreateOidc, OidcInitializationError } from "../core";
3
+ import type { ValueOrAsyncGetter } from "../tools/ValueOrAsyncGetter";
4
+ export type OidcReact<DecodedIdToken extends Record<string, unknown>> = OidcReact.NotLoggedIn | OidcReact.LoggedIn<DecodedIdToken>;
5
+ export declare namespace OidcReact {
6
+ type Common = Oidc.Common & {
7
+ useAutoLogoutWarningCountdown: (params: {
8
+ warningDurationSeconds: number;
9
+ }) => {
10
+ secondsLeft: number | undefined;
11
+ };
12
+ };
13
+ type NotLoggedIn = Common & {
14
+ isUserLoggedIn: false;
15
+ login: (params?: {
16
+ extraQueryParams?: Record<string, string | undefined>;
17
+ redirectUrl?: string;
18
+ transformUrlBeforeRedirect?: (url: string) => string;
19
+ doesCurrentHrefRequiresAuth?: boolean;
20
+ }) => Promise<never>;
21
+ initializationError: OidcInitializationError | undefined;
22
+ decodedIdToken?: never;
23
+ logout?: never;
24
+ renewTokens?: never;
25
+ goToAuthServer?: never;
26
+ backFromAuthServer?: never;
27
+ isNewBrowserSession?: never;
28
+ };
29
+ type LoggedIn<DecodedIdToken extends Record<string, unknown>> = Common & {
30
+ isUserLoggedIn: true;
31
+ decodedIdToken: DecodedIdToken;
32
+ logout: Oidc.LoggedIn["logout"];
33
+ renewTokens: Oidc.LoggedIn["renewTokens"];
34
+ login?: never;
35
+ initializationError?: never;
36
+ goToAuthServer: (params: {
37
+ extraQueryParams?: Record<string, string>;
38
+ redirectUrl?: string;
39
+ transformUrlBeforeRedirect?: (url: string) => string;
40
+ }) => Promise<never>;
41
+ backFromAuthServer: {
42
+ extraQueryParams: Record<string, string>;
43
+ result: Record<string, string>;
44
+ } | undefined;
45
+ isNewBrowserSession: boolean;
46
+ };
47
+ }
48
+ type OidcReactApi<DecodedIdToken extends Record<string, unknown>, AutoLogin extends boolean> = {
49
+ OidcProvider: AutoLogin extends true ? (props: {
50
+ fallback?: ReactNode;
51
+ ErrorFallback?: (props: {
52
+ initializationError: OidcInitializationError;
53
+ }) => ReactNode;
54
+ children: ReactNode;
55
+ }) => JSX.Element : (props: {
56
+ fallback?: ReactNode;
57
+ children: ReactNode;
58
+ }) => JSX.Element;
59
+ useOidc: AutoLogin extends true ? {
60
+ (params?: {
61
+ assert: "user logged in";
62
+ }): OidcReact.LoggedIn<DecodedIdToken>;
63
+ } : {
64
+ (params?: {
65
+ assert?: undefined;
66
+ }): OidcReact<DecodedIdToken>;
67
+ (params: {
68
+ assert: "user logged in";
69
+ }): OidcReact.LoggedIn<DecodedIdToken>;
70
+ (params: {
71
+ assert: "user not logged in";
72
+ }): OidcReact.NotLoggedIn;
73
+ };
74
+ getOidc: () => Promise<AutoLogin extends true ? Oidc.LoggedIn<DecodedIdToken> : Oidc<DecodedIdToken>>;
75
+ } & (AutoLogin extends true ? {} : {
76
+ withLoginEnforced: <Props extends Record<string, unknown>>(Component: ComponentType<Props>, params?: {
77
+ onRedirecting: () => JSX.Element | null;
78
+ }) => FC<Props>;
79
+ enforceLogin: (loaderParams: {
80
+ request?: {
81
+ url?: string;
82
+ };
83
+ cause?: "preload" | string;
84
+ location?: {
85
+ href?: string;
86
+ };
87
+ }) => Promise<void | never>;
88
+ });
89
+ export declare function createOidcReactApi_dependencyInjection<DecodedIdToken extends Record<string, unknown>, ParamsOfCreateOidc extends {
90
+ autoLogin?: boolean;
91
+ } & ({
92
+ decodedIdTokenSchema: {
93
+ parse: (data: unknown) => DecodedIdToken;
94
+ } | undefined;
95
+ } | {})>(paramsOrGetParams: ValueOrAsyncGetter<ParamsOfCreateOidc>, createOidc: (params: ParamsOfCreateOidc) => Promise<Oidc<DecodedIdToken>>): OidcReactApi<DecodedIdToken, ParamsOfCreateOidc extends {
96
+ autoLogin?: true | undefined;
97
+ } ? true : false>;
98
+ /** @see: https://docs.oidc-spa.dev/v/v7/usage#react-api */
99
+ export declare function createReactOidc<DecodedIdToken extends Record<string, unknown> = Oidc.Tokens.DecodedIdToken_base, AutoLogin extends boolean = false>(params: ValueOrAsyncGetter<ParamsOfCreateOidc<DecodedIdToken, AutoLogin>>): OidcReactApi<DecodedIdToken, ParamsOfCreateOidc<DecodedIdToken, AutoLogin> extends infer T ? T extends ParamsOfCreateOidc<DecodedIdToken, AutoLogin> ? T extends {
100
+ autoLogin?: true | undefined;
101
+ } ? true : false : never : never>;
102
+ export {};
@@ -0,0 +1,221 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState, createContext, useContext } from "react";
3
+ import { createOidc, OidcInitializationError, handleOidcCallback } from "../core";
4
+ import { assert } from "../vendor/frontend/tsafe";
5
+ import { id } from "../vendor/frontend/tsafe";
6
+ import { Deferred } from "../tools/Deferred";
7
+ import { toFullyQualifiedUrl } from "../tools/toFullyQualifiedUrl";
8
+ {
9
+ assert();
10
+ }
11
+ export function createOidcReactApi_dependencyInjection(paramsOrGetParams, createOidc) {
12
+ const dReadyToCreate = new Deferred();
13
+ const oidcContext = createContext(undefined);
14
+ // NOTE: It can be InitializationError only if autoLogin is true
15
+ const prOidcOrInitializationError = (async () => {
16
+ // We're doing this here just for people that wouldn't have
17
+ // configured the early init in entrypoint.
18
+ {
19
+ const { isHandled } = handleOidcCallback();
20
+ if (isHandled) {
21
+ return new Promise(() => { });
22
+ }
23
+ }
24
+ const params = await (async () => {
25
+ if (typeof paramsOrGetParams === "function") {
26
+ const getParams = paramsOrGetParams;
27
+ await dReadyToCreate.pr;
28
+ const params = await getParams();
29
+ return params;
30
+ }
31
+ const params = paramsOrGetParams;
32
+ return params;
33
+ })();
34
+ let oidc;
35
+ try {
36
+ oidc = await createOidc(params);
37
+ }
38
+ catch (error) {
39
+ if (!(error instanceof OidcInitializationError)) {
40
+ throw error;
41
+ }
42
+ return error;
43
+ }
44
+ return oidc;
45
+ })();
46
+ let prOidcOrInitializationError_resolvedValue = undefined;
47
+ prOidcOrInitializationError.then(value => (prOidcOrInitializationError_resolvedValue = value));
48
+ function OidcProvider(props) {
49
+ const { fallback, ErrorFallback, children } = props;
50
+ const [oidcOrInitializationError, setOidcOrInitializationError] = useState(prOidcOrInitializationError_resolvedValue);
51
+ useEffect(() => {
52
+ if (oidcOrInitializationError !== undefined) {
53
+ return;
54
+ }
55
+ dReadyToCreate.resolve();
56
+ prOidcOrInitializationError.then(setOidcOrInitializationError);
57
+ }, []);
58
+ if (oidcOrInitializationError === undefined) {
59
+ return _jsx(_Fragment, { children: fallback === undefined ? null : fallback });
60
+ }
61
+ if (oidcOrInitializationError instanceof OidcInitializationError) {
62
+ const initializationError = oidcOrInitializationError;
63
+ return (_jsx(_Fragment, { children: ErrorFallback === undefined ? (_jsxs("h1", { style: { color: "red" }, children: ["An error occurred while initializing the OIDC client:\u00A0", initializationError.message] })) : (_jsx(ErrorFallback, { initializationError: initializationError })) }));
64
+ }
65
+ const oidc = oidcOrInitializationError;
66
+ return (_jsx(oidcContext.Provider, { value: { oidc, fallback: fallback ?? null }, children: children }));
67
+ }
68
+ const useAutoLogoutWarningCountdown = ({ warningDurationSeconds }) => {
69
+ const contextValue = useContext(oidcContext);
70
+ assert(contextValue !== undefined);
71
+ const { oidc } = contextValue;
72
+ const [secondsLeft, setSecondsLeft] = useState(undefined);
73
+ useEffect(() => {
74
+ if (!oidc.isUserLoggedIn) {
75
+ return;
76
+ }
77
+ const { unsubscribeFromAutoLogoutCountdown } = oidc.subscribeToAutoLogoutCountdown(({ secondsLeft }) => setSecondsLeft(secondsLeft === undefined || secondsLeft > warningDurationSeconds
78
+ ? undefined
79
+ : secondsLeft));
80
+ return () => {
81
+ unsubscribeFromAutoLogoutCountdown();
82
+ };
83
+ }, [warningDurationSeconds]);
84
+ return { secondsLeft };
85
+ };
86
+ function useOidc(params) {
87
+ const { assert: assert_params } = params ?? {};
88
+ const contextValue = useContext(oidcContext);
89
+ assert(contextValue !== undefined, "You must use useOidc inside the corresponding OidcProvider");
90
+ const { oidc } = contextValue;
91
+ check_assertion: {
92
+ if (assert_params === undefined) {
93
+ break check_assertion;
94
+ }
95
+ const getMessage = (v) => [
96
+ "There is a logic error in the application.",
97
+ `If this component is mounted the user is supposed ${v}.`,
98
+ "An explicit assertion was made in this sense."
99
+ ].join(" ");
100
+ switch (assert_params) {
101
+ case "user logged in":
102
+ if (!oidc.isUserLoggedIn) {
103
+ throw new Error(getMessage("to be logged in but currently they arn't"));
104
+ }
105
+ break;
106
+ case "user not logged in":
107
+ if (oidc.isUserLoggedIn) {
108
+ throw new Error(getMessage("not to be logged in but currently they are"));
109
+ }
110
+ break;
111
+ default:
112
+ assert(false);
113
+ }
114
+ }
115
+ const [, reRenderIfDecodedIdTokenChanged] = useState(!oidc.isUserLoggedIn ? undefined : oidc.getDecodedIdToken());
116
+ useEffect(() => {
117
+ if (!oidc.isUserLoggedIn) {
118
+ return;
119
+ }
120
+ const { unsubscribe } = oidc.subscribeToTokensChange(() => reRenderIfDecodedIdTokenChanged(oidc.getDecodedIdToken()));
121
+ reRenderIfDecodedIdTokenChanged(oidc.getDecodedIdToken());
122
+ return unsubscribe;
123
+ }, []);
124
+ const common = {
125
+ params: oidc.params,
126
+ useAutoLogoutWarningCountdown
127
+ };
128
+ if (!oidc.isUserLoggedIn) {
129
+ return id({
130
+ ...common,
131
+ isUserLoggedIn: false,
132
+ login: ({ doesCurrentHrefRequiresAuth = false, ...rest } = {}) => oidc.login({ doesCurrentHrefRequiresAuth, ...rest }),
133
+ initializationError: oidc.initializationError
134
+ });
135
+ }
136
+ const oidcReact = {
137
+ ...common,
138
+ isUserLoggedIn: true,
139
+ decodedIdToken: oidc.getDecodedIdToken(),
140
+ logout: oidc.logout,
141
+ renewTokens: oidc.renewTokens,
142
+ goToAuthServer: oidc.goToAuthServer,
143
+ isNewBrowserSession: oidc.isNewBrowserSession,
144
+ backFromAuthServer: oidc.backFromAuthServer
145
+ };
146
+ return oidcReact;
147
+ }
148
+ function withLoginEnforced(Component, params) {
149
+ const { onRedirecting } = params ?? {};
150
+ function ComponentWithLoginEnforced(props) {
151
+ const contextValue = useContext(oidcContext);
152
+ assert(contextValue !== undefined, "094283");
153
+ const { oidc, fallback } = contextValue;
154
+ useEffect(() => {
155
+ if (oidc.isUserLoggedIn) {
156
+ return;
157
+ }
158
+ oidc.login({ doesCurrentHrefRequiresAuth: true });
159
+ }, []);
160
+ if (!oidc.isUserLoggedIn) {
161
+ return onRedirecting === undefined ? fallback : onRedirecting();
162
+ }
163
+ return _jsx(Component, { ...props });
164
+ }
165
+ ComponentWithLoginEnforced.displayName = `${Component.displayName ?? Component.name ?? "Component"}WithLoginEnforced`;
166
+ return ComponentWithLoginEnforced;
167
+ }
168
+ async function enforceLogin(loaderParams) {
169
+ const { cause } = loaderParams;
170
+ const redirectUrl = (() => {
171
+ if (loaderParams.request?.url !== undefined) {
172
+ return toFullyQualifiedUrl({
173
+ urlish: loaderParams.request.url,
174
+ doAssertNoQueryParams: false
175
+ });
176
+ }
177
+ if (loaderParams.location?.href !== undefined) {
178
+ return toFullyQualifiedUrl({
179
+ urlish: loaderParams.location.href,
180
+ doAssertNoQueryParams: false
181
+ });
182
+ }
183
+ return location.href;
184
+ })();
185
+ const oidc = await getOidc();
186
+ if (!oidc.isUserLoggedIn) {
187
+ if (cause === "preload") {
188
+ throw new Error("oidc-spa: User is not yet logged in. This is an expected error, nothing to be addressed.");
189
+ }
190
+ const doesCurrentHrefRequiresAuth = location.href.replace(/\/$/, "") === redirectUrl.replace(/\/$/, "");
191
+ await oidc.login({
192
+ redirectUrl,
193
+ doesCurrentHrefRequiresAuth
194
+ });
195
+ }
196
+ }
197
+ async function getOidc() {
198
+ dReadyToCreate.resolve();
199
+ const oidcOrInitializationError = await prOidcOrInitializationError;
200
+ if (oidcOrInitializationError instanceof OidcInitializationError) {
201
+ const error = oidcOrInitializationError;
202
+ throw error;
203
+ }
204
+ const oidc = oidcOrInitializationError;
205
+ return oidc;
206
+ }
207
+ const oidcReact = {
208
+ OidcProvider,
209
+ useOidc: useOidc,
210
+ getOidc,
211
+ withLoginEnforced,
212
+ enforceLogin
213
+ };
214
+ // @ts-expect-error: We know what we are doing
215
+ return oidcReact;
216
+ }
217
+ /** @see: https://docs.oidc-spa.dev/v/v7/usage#react-api */
218
+ export function createReactOidc(params) {
219
+ return createOidcReactApi_dependencyInjection(params, createOidc);
220
+ }
221
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../../src/react/react.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export declare class Deferred<T> {
2
+ readonly pr: Promise<T>;
3
+ /** NOTE: Does not need to be called bound to instance*/
4
+ readonly resolve: (value: T) => void;
5
+ readonly reject: (error: any) => void;
6
+ constructor();
7
+ readonly isPending: boolean;
8
+ }
9
+ export declare namespace Deferred {
10
+ type Unpack<T extends Deferred<any>> = T extends Deferred<infer U> ? U : never;
11
+ }
12
+ export declare class VoidDeferred extends Deferred<undefined> {
13
+ readonly resolve: () => void;
14
+ }