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,58 +1,49 @@
1
- import {
2
- getStateData,
3
- markStateDataAsProcessedByCallback,
4
- getIsStatQueryParamValue,
5
- type StateData
6
- } from "./StateData";
1
+ import { getStateData, markStateDataAsProcessedByCallback, getIsStatQueryParamValue } from "./StateData";
7
2
  import { assert, id } from "../vendor/frontend/tsafe";
8
- import type { AuthResponse } from "./AuthResponse";
9
3
  import { initialLocationHref } from "./initialLocationHref";
10
- import { captureFetch } from "./trustedFetch";
11
4
  import { encryptAuthResponse } from "./iframeMessageProtection";
12
-
13
- captureFetch();
14
-
15
5
  const globalContext = {
16
- previousCall: id<{ isHandled: boolean } | undefined>(undefined)
6
+ previousCall: id(undefined)
17
7
  };
18
-
19
- export function handleOidcCallback(): { isHandled: boolean } {
8
+ export function handleOidcCallback() {
20
9
  if (globalContext.previousCall !== undefined) {
21
10
  return globalContext.previousCall;
22
11
  }
23
-
24
12
  return (globalContext.previousCall = handleOidcCallback_nonMemoized());
25
13
  }
26
-
27
- function handleOidcCallback_nonMemoized(): { isHandled: boolean } {
14
+ function handleOidcCallback_nonMemoized() {
28
15
  const location_urlObj = new URL(initialLocationHref);
29
-
30
- const stateQueryParamValue = (() => {
31
- const stateQueryParamValue = location_urlObj.searchParams.get("state");
32
-
33
- if (stateQueryParamValue === null) {
34
- return undefined;
35
- }
36
-
37
- if (!getIsStatQueryParamValue({ maybeStateQueryParamValue: stateQueryParamValue })) {
38
- return undefined;
16
+ const stateUrlParamValue_wrap = (() => {
17
+ fragment: {
18
+ const stateUrlParamValue = new URLSearchParams(location_urlObj.hash.replace(/^#/, "")).get("state");
19
+ if (stateUrlParamValue === null) {
20
+ break fragment;
21
+ }
22
+ if (!getIsStatQueryParamValue({ maybeStateUrlParamValue: stateUrlParamValue })) {
23
+ break fragment;
24
+ }
25
+ return { stateUrlParamValue, isFragment: true };
39
26
  }
40
-
41
- if (
42
- location_urlObj.searchParams.get("client_id") !== null &&
43
- location_urlObj.searchParams.get("response_type") !== null &&
44
- location_urlObj.searchParams.get("redirect_uri") !== null
45
- ) {
46
- // NOTE: We are probably in a Keycloakify theme and oidc-spa was loaded by mistake.
47
- return undefined;
27
+ query: {
28
+ const stateUrlParamValue = location_urlObj.searchParams.get("state");
29
+ if (stateUrlParamValue === null) {
30
+ break query;
31
+ }
32
+ if (!getIsStatQueryParamValue({ maybeStateUrlParamValue: stateUrlParamValue })) {
33
+ break query;
34
+ }
35
+ if (location_urlObj.searchParams.get("client_id") !== null &&
36
+ location_urlObj.searchParams.get("response_type") !== null &&
37
+ location_urlObj.searchParams.get("redirect_uri") !== null) {
38
+ // NOTE: We are probably in a Keycloakify theme and oidc-spa was loaded by mistake.
39
+ break query;
40
+ }
41
+ return { stateUrlParamValue, isFragment: false };
48
42
  }
49
-
50
- return stateQueryParamValue;
43
+ return undefined;
51
44
  })();
52
-
53
- if (stateQueryParamValue === undefined) {
45
+ if (stateUrlParamValue_wrap === undefined) {
54
46
  const backForwardTracker = readBackForwardTracker();
55
-
56
47
  if (backForwardTracker !== undefined) {
57
48
  writeBackForwardTracker({
58
49
  backForwardTracker: {
@@ -61,34 +52,25 @@ function handleOidcCallback_nonMemoized(): { isHandled: boolean } {
61
52
  }
62
53
  });
63
54
  }
64
-
65
55
  return { isHandled: false };
66
56
  }
67
-
68
57
  const isHandled = true;
69
-
70
- console.log = () => {};
71
- console.warn = () => {};
72
- console.error = () => {};
73
- console.debug = () => {};
74
-
75
- const stateData = getStateData({ stateQueryParamValue });
76
-
77
- if (
78
- stateData === undefined ||
79
- (stateData.context === "redirect" && stateData.hasBeenProcessedByCallback)
80
- ) {
81
- const historyMethod: "back" | "forward" = (() => {
58
+ const { stateUrlParamValue, isFragment } = stateUrlParamValue_wrap;
59
+ console.log = () => { };
60
+ console.warn = () => { };
61
+ console.error = () => { };
62
+ console.debug = () => { };
63
+ const stateData = getStateData({ stateUrlParamValue });
64
+ if (stateData === undefined ||
65
+ (stateData.context === "redirect" && stateData.hasBeenProcessedByCallback)) {
66
+ const historyMethod = (() => {
82
67
  const backForwardTracker = readBackForwardTracker();
83
-
84
68
  if (backForwardTracker === undefined) {
85
69
  return "back";
86
70
  }
87
-
88
71
  if (!backForwardTracker.hasExitedCallback) {
89
72
  return backForwardTracker.previousHistoryMethod;
90
73
  }
91
-
92
74
  switch (backForwardTracker.previousHistoryMethod) {
93
75
  case "back":
94
76
  return "forward";
@@ -96,19 +78,15 @@ function handleOidcCallback_nonMemoized(): { isHandled: boolean } {
96
78
  return "back";
97
79
  }
98
80
  })();
99
-
100
81
  writeBackForwardTracker({
101
82
  backForwardTracker: {
102
83
  previousHistoryMethod: historyMethod,
103
84
  hasExitedCallback: false
104
85
  }
105
86
  });
106
-
107
87
  setTimeout(() => {
108
88
  reloadOnBfCacheNavigation();
109
-
110
89
  window.history[historyMethod]();
111
-
112
90
  // NOTE: This is a "better than nothing" approach.
113
91
  // Under some circumstances it's possible to get stuck on this url
114
92
  // if there is no "next" page in the history for example, navigating
@@ -119,18 +97,15 @@ function handleOidcCallback_nonMemoized(): { isHandled: boolean } {
119
97
  window.location.href = `${protocol}//${host}${pathname}${hash}`;
120
98
  }, 350);
121
99
  }, 0);
122
-
123
100
  return { isHandled };
124
101
  }
125
-
126
- const authResponse: AuthResponse = { state: "" };
127
-
128
- for (const [key, value] of location_urlObj.searchParams) {
102
+ const authResponse = { state: "" };
103
+ for (const [key, value] of isFragment
104
+ ? new URLSearchParams(location_urlObj.hash.replace(/^#/, ""))
105
+ : location_urlObj.searchParams) {
129
106
  authResponse[key] = value;
130
107
  }
131
-
132
108
  assert(authResponse.state !== "", "063965");
133
-
134
109
  switch (stateData.context) {
135
110
  case "iframe":
136
111
  encryptAuthResponse({
@@ -138,7 +113,7 @@ function handleOidcCallback_nonMemoized(): { isHandled: boolean } {
138
113
  }).then(({ encryptedMessage }) => parent.postMessage(encryptedMessage, location.origin));
139
114
  break;
140
115
  case "redirect":
141
- markStateDataAsProcessedByCallback({ stateQueryParamValue });
116
+ markStateDataAsProcessedByCallback({ stateUrlParamValue });
142
117
  clearBackForwardTracker();
143
118
  writeRedirectAuthResponses({
144
119
  authResponses: [...readRedirectAuthResponses(), authResponse]
@@ -149,27 +124,17 @@ function handleOidcCallback_nonMemoized(): { isHandled: boolean } {
149
124
  if (stateData.action === "login" && authResponse.error === "consent_required") {
150
125
  return stateData.redirectUrl_consentRequiredCase;
151
126
  }
152
-
153
127
  return stateData.redirectUrl;
154
128
  })();
155
-
156
129
  location.href = href;
157
130
  }, 0);
158
131
  break;
159
132
  }
160
-
161
133
  return { isHandled };
162
134
  }
163
-
164
- const {
165
- readRedirectAuthResponses,
166
- writeRedirectAuthResponses,
167
- moveRedirectAuthResponseFromSessionStorageToMemory
168
- } = (() => {
135
+ const { readRedirectAuthResponses, writeRedirectAuthResponses, moveRedirectAuthResponseFromSessionStorageToMemory } = (() => {
169
136
  const AUTH_RESPONSES_KEY = "oidc-spa:authResponses";
170
-
171
- let authResponses_movedToMemoryFromSessionStorage: AuthResponse[] | undefined = undefined;
172
-
137
+ let authResponses_movedToMemoryFromSessionStorage = undefined;
173
138
  // NOTE: Here we note that we can re-write on session storage some auth response
174
139
  // after earlyInit in retrieveRedirectAuthResponseAndStateData
175
140
  // In situation where there are more than one client in the same app and we can't use iframe,
@@ -177,124 +142,84 @@ const {
177
142
  // In most case it won't happen if the init sequence is deterministic but the client
178
143
  // can be instantiated at any time really.
179
144
  // So the move to memory of the response is fully effective only when theres one client.
180
- function writeRedirectAuthResponses(params: { authResponses: AuthResponse[] }): void {
145
+ function writeRedirectAuthResponses(params) {
181
146
  const { authResponses } = params;
182
-
183
147
  authResponses_movedToMemoryFromSessionStorage = undefined;
184
-
185
148
  if (authResponses.length === 0) {
186
149
  sessionStorage.removeItem(AUTH_RESPONSES_KEY);
187
150
  return;
188
151
  }
189
152
  sessionStorage.setItem(AUTH_RESPONSES_KEY, JSON.stringify(authResponses));
190
153
  }
191
-
192
- function readRedirectAuthResponses(): AuthResponse[] {
154
+ function readRedirectAuthResponses() {
193
155
  if (authResponses_movedToMemoryFromSessionStorage !== undefined) {
194
156
  return authResponses_movedToMemoryFromSessionStorage;
195
157
  }
196
-
197
158
  const raw = sessionStorage.getItem(AUTH_RESPONSES_KEY);
198
-
199
159
  if (raw === null) {
200
160
  return [];
201
161
  }
202
-
203
162
  return JSON.parse(raw);
204
163
  }
205
-
206
164
  function moveRedirectAuthResponseFromSessionStorageToMemory() {
207
165
  const authResponses = readRedirectAuthResponses();
208
-
209
166
  writeRedirectAuthResponses({ authResponses: [] });
210
-
211
167
  authResponses_movedToMemoryFromSessionStorage = authResponses;
212
168
  }
213
-
214
169
  return {
215
170
  writeRedirectAuthResponses,
216
171
  readRedirectAuthResponses,
217
172
  moveRedirectAuthResponseFromSessionStorageToMemory
218
173
  };
219
174
  })();
220
-
221
175
  export { moveRedirectAuthResponseFromSessionStorageToMemory };
222
-
223
- export function retrieveRedirectAuthResponseAndStateData(params: {
224
- configId: string;
225
- }): { authResponse: AuthResponse; stateData: StateData.Redirect } | undefined {
176
+ export function retrieveRedirectAuthResponseAndStateData(params) {
226
177
  const { configId } = params;
227
-
228
178
  const authResponses = readRedirectAuthResponses();
229
-
230
- let authResponseAndStateData:
231
- | { authResponse: AuthResponse; stateData: StateData.Redirect }
232
- | undefined = undefined;
233
-
179
+ let authResponseAndStateData = undefined;
234
180
  for (const authResponse of [...authResponses]) {
235
- const stateData = getStateData({ stateQueryParamValue: authResponse.state });
236
-
181
+ const stateData = getStateData({ stateUrlParamValue: authResponse.state });
237
182
  if (stateData === undefined) {
238
183
  // NOTE: We do not understand how this can happen but it can.
239
184
  authResponses.splice(authResponses.indexOf(authResponse), 1);
240
185
  continue;
241
186
  }
242
-
243
187
  assert(stateData.context === "redirect", "474728");
244
-
245
188
  if (stateData.configId !== configId) {
246
189
  continue;
247
190
  }
248
-
249
191
  authResponses.splice(authResponses.indexOf(authResponse), 1);
250
-
251
192
  authResponseAndStateData = { authResponse, stateData };
252
193
  }
253
-
254
194
  writeRedirectAuthResponses({ authResponses });
255
-
256
195
  return authResponseAndStateData;
257
196
  }
258
-
259
197
  function reloadOnBfCacheNavigation() {
260
198
  const start = Date.now();
261
199
  window.addEventListener("pageshow", () => {
262
200
  const elapsed = Date.now() - start;
263
-
264
201
  if (elapsed < 100) {
265
202
  return;
266
203
  }
267
204
  location.reload();
268
205
  });
269
206
  }
270
-
271
207
  const { writeBackForwardTracker, readBackForwardTracker, clearBackForwardTracker } = (() => {
272
208
  const BACK_NAVIGATION_TRACKER_KEY = "oidc-spa:callback-back-forward-tracker";
273
-
274
- type BackForwardTracker = {
275
- previousHistoryMethod: "back" | "forward";
276
- hasExitedCallback: boolean;
277
- };
278
-
279
- function writeBackForwardTracker(params: { backForwardTracker: BackForwardTracker }): void {
209
+ function writeBackForwardTracker(params) {
280
210
  const { backForwardTracker } = params;
281
-
282
211
  sessionStorage.setItem(BACK_NAVIGATION_TRACKER_KEY, JSON.stringify(backForwardTracker));
283
212
  }
284
-
285
- function readBackForwardTracker(): BackForwardTracker | undefined {
213
+ function readBackForwardTracker() {
286
214
  const raw = sessionStorage.getItem(BACK_NAVIGATION_TRACKER_KEY);
287
-
288
215
  if (raw === null) {
289
216
  return undefined;
290
217
  }
291
-
292
218
  return JSON.parse(raw);
293
219
  }
294
-
295
- function clearBackForwardTracker(): void {
220
+ function clearBackForwardTracker() {
296
221
  sessionStorage.removeItem(BACK_NAVIGATION_TRACKER_KEY);
297
222
  }
298
-
299
223
  return { writeBackForwardTracker, readBackForwardTracker, clearBackForwardTracker };
300
224
  })();
225
+ //# sourceMappingURL=handleOidcCallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleOidcCallback.js","sourceRoot":"","sources":["../../../src/core/handleOidcCallback.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { type AuthResponse } from "./AuthResponse";
2
+ export declare function preventSessionStorageSetItemOfPublicKeyByThirdParty(): void;
3
+ export declare function initIframeMessageProtection(params: {
4
+ stateUrlParamValue: string;
5
+ }): Promise<{
6
+ getIsEncryptedAuthResponse: (params: {
7
+ message: unknown;
8
+ }) => boolean;
9
+ decodeEncryptedAuth: (params: {
10
+ encryptedAuthResponse: string;
11
+ }) => Promise<{
12
+ authResponse: AuthResponse;
13
+ }>;
14
+ clearSessionStoragePublicKey: () => void;
15
+ }>;
16
+ export declare function encryptAuthResponse(params: {
17
+ authResponse: AuthResponse;
18
+ }): Promise<{
19
+ encryptedMessage: string;
20
+ }>;
@@ -1,32 +1,21 @@
1
1
  import { assert } from "../vendor/frontend/tsafe";
2
2
  import { asymmetricEncrypt, asymmetricDecrypt, generateKeys } from "../tools/asymmetricEncryption";
3
- import { type AuthResponse } from "./AuthResponse";
4
-
5
3
  const sessionStorage_original = window.sessionStorage;
6
4
  const setItem_real = Storage.prototype.setItem;
7
-
8
5
  const SESSION_STORAGE_PREFIX = "oidc-spa_iframe_authResponse_publicKey_";
9
-
10
6
  export function preventSessionStorageSetItemOfPublicKeyByThirdParty() {
11
- const setItem_protected = function setItem(this: any, key: string, value: string): void {
7
+ const setItem_protected = function setItem(key, value) {
12
8
  if (this !== sessionStorage_original) {
13
9
  return setItem_real.call(this, key, value);
14
10
  }
15
-
16
11
  if (key.startsWith(SESSION_STORAGE_PREFIX)) {
17
- throw new Error(
18
- "Attack prevented by oidc-spa. You have malicious code running in your system"
19
- );
12
+ throw new Error("Attack prevented by oidc-spa. You have malicious code running in your system");
20
13
  }
21
-
22
14
  return setItem_real.call(sessionStorage_original, key, value);
23
15
  };
24
-
25
16
  {
26
17
  const pd = Object.getOwnPropertyDescriptor(Storage.prototype, "setItem");
27
-
28
18
  assert(pd !== undefined);
29
-
30
19
  Object.defineProperty(Storage.prototype, "setItem", {
31
20
  enumerable: pd.enumerable,
32
21
  writable: pd.writable,
@@ -34,67 +23,43 @@ export function preventSessionStorageSetItemOfPublicKeyByThirdParty() {
34
23
  });
35
24
  }
36
25
  }
37
-
38
26
  const ENCRYPTED_AUTH_RESPONSES_PREFIX = "oidc-spa_encrypted_authResponse_";
39
-
40
- function getSessionStorageKey(params: { stateQueryParamValue: string }) {
41
- const { stateQueryParamValue } = params;
42
-
43
- return `${SESSION_STORAGE_PREFIX}${stateQueryParamValue}`;
27
+ function getSessionStorageKey(params) {
28
+ const { stateUrlParamValue } = params;
29
+ return `${SESSION_STORAGE_PREFIX}${stateUrlParamValue}`;
44
30
  }
45
-
46
- export async function initIframeMessageProtection(params: { stateQueryParamValue: string }) {
47
- const { stateQueryParamValue } = params;
48
-
31
+ export async function initIframeMessageProtection(params) {
32
+ const { stateUrlParamValue } = params;
49
33
  const { publicKey, privateKey } = await generateKeys();
50
-
51
- const sessionStorageKey = getSessionStorageKey({ stateQueryParamValue });
52
-
34
+ const sessionStorageKey = getSessionStorageKey({ stateUrlParamValue });
53
35
  setItem_real.call(sessionStorage, sessionStorageKey, publicKey);
54
-
55
- function getIsEncryptedAuthResponse(params: { message: unknown }): boolean {
36
+ function getIsEncryptedAuthResponse(params) {
56
37
  const { message } = params;
57
-
58
38
  return typeof message === "string" && message.startsWith(ENCRYPTED_AUTH_RESPONSES_PREFIX);
59
39
  }
60
-
61
- async function decodeEncryptedAuth(params: {
62
- encryptedAuthResponse: string;
63
- }): Promise<{ authResponse: AuthResponse }> {
40
+ async function decodeEncryptedAuth(params) {
64
41
  const { encryptedAuthResponse } = params;
65
-
66
42
  const { message: authResponse_str } = await asymmetricDecrypt({
67
43
  encryptedMessage: encryptedAuthResponse.slice(ENCRYPTED_AUTH_RESPONSES_PREFIX.length),
68
44
  privateKey
69
45
  });
70
-
71
- const authResponse: AuthResponse = JSON.parse(authResponse_str);
72
-
46
+ const authResponse = JSON.parse(authResponse_str);
73
47
  return { authResponse };
74
48
  }
75
-
76
49
  function clearSessionStoragePublicKey() {
77
50
  sessionStorage.removeItem(sessionStorageKey);
78
51
  }
79
-
80
52
  return { getIsEncryptedAuthResponse, decodeEncryptedAuth, clearSessionStoragePublicKey };
81
53
  }
82
-
83
- export async function encryptAuthResponse(params: { authResponse: AuthResponse }) {
54
+ export async function encryptAuthResponse(params) {
84
55
  const { authResponse } = params;
85
-
86
- const publicKey = sessionStorage.getItem(
87
- getSessionStorageKey({ stateQueryParamValue: authResponse.state })
88
- );
89
-
56
+ const publicKey = sessionStorage.getItem(getSessionStorageKey({ stateUrlParamValue: authResponse.state }));
90
57
  assert(publicKey !== null, "2293302");
91
-
92
58
  const { encryptedMessage: encryptedMessage_withoutPrefix } = await asymmetricEncrypt({
93
59
  publicKey,
94
60
  message: JSON.stringify(authResponse)
95
61
  });
96
-
97
62
  const encryptedMessage = `${ENCRYPTED_AUTH_RESPONSES_PREFIX}${encryptedMessage_withoutPrefix}`;
98
-
99
63
  return { encryptedMessage };
100
64
  }
65
+ //# sourceMappingURL=iframeMessageProtection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iframeMessageProtection.js","sourceRoot":"","sources":["../../../src/core/iframeMessageProtection.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  export type { Oidc } from "./Oidc";
2
2
  export { createOidc, type ParamsOfCreateOidc } from "./createOidc";
3
3
  export { OidcInitializationError } from "./OidcInitializationError";
4
- export { trustedFetch } from "./trustedFetch";
4
+ export { handleOidcCallback } from "./handleOidcCallback";
@@ -0,0 +1,4 @@
1
+ export { createOidc } from "./createOidc";
2
+ export { OidcInitializationError } from "./OidcInitializationError";
3
+ export { handleOidcCallback } from "./handleOidcCallback";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAA2B,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const initialLocationHref: string;
@@ -1,5 +1,5 @@
1
1
  const globalContext = {
2
2
  initialLocationHref: window.location.href
3
3
  };
4
-
5
4
  export const { initialLocationHref } = globalContext;
5
+ //# sourceMappingURL=initialLocationHref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialLocationHref.js","sourceRoot":"","sources":["../../../src/core/initialLocationHref.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GAAG;IAClB,mBAAmB,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;CAC5C,CAAC;AAEF,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,aAAa,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { NonPostableEvt } from "../tools/Evt";
2
+ export declare function createGetIsNewBrowserSession(params: {
3
+ configId: string;
4
+ evtUserNotLoggedIn: NonPostableEvt<void>;
5
+ }): {
6
+ getIsNewBrowserSession: (params: {
7
+ subjectId: string;
8
+ }) => boolean;
9
+ };
@@ -1,37 +1,25 @@
1
- import type { NonPostableEvt } from "../tools/Evt";
2
-
3
- export function createGetIsNewBrowserSession(params: {
4
- configId: string;
5
- evtUserNotLoggedIn: NonPostableEvt<void>;
6
- }) {
1
+ export function createGetIsNewBrowserSession(params) {
7
2
  const { configId, evtUserNotLoggedIn } = params;
8
-
9
3
  const SESSION_STORAGE_KEY = `oidc-spa.subject-id:${configId}`;
10
-
11
4
  {
12
5
  const { unsubscribe } = evtUserNotLoggedIn.subscribe(() => {
13
6
  unsubscribe();
14
7
  sessionStorage.removeItem(SESSION_STORAGE_KEY);
15
8
  });
16
9
  }
17
-
18
- function getIsNewBrowserSession(params: { subjectId: string }): boolean {
10
+ function getIsNewBrowserSession(params) {
19
11
  const { subjectId } = params;
20
-
21
12
  const subjectId_sessionStorage = sessionStorage.getItem(SESSION_STORAGE_KEY);
22
-
23
13
  if (subjectId_sessionStorage === null) {
24
14
  sessionStorage.setItem(SESSION_STORAGE_KEY, subjectId);
25
15
  return true;
26
16
  }
27
-
28
17
  if (subjectId !== subjectId_sessionStorage) {
29
18
  sessionStorage.setItem(SESSION_STORAGE_KEY, subjectId);
30
19
  return true;
31
20
  }
32
-
33
21
  return false;
34
22
  }
35
-
36
23
  return { getIsNewBrowserSession };
37
24
  }
25
+ //# sourceMappingURL=isNewBrowserSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isNewBrowserSession.js","sourceRoot":"","sources":["../../../src/core/isNewBrowserSession.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,4BAA4B,CAAC,MAG5C;IACG,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC;IAEhD,MAAM,mBAAmB,GAAG,uBAAuB,QAAQ,EAAE,CAAC;IAE9D,CAAC;QACG,MAAM,EAAE,WAAW,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,GAAG,EAAE;YACtD,WAAW,EAAE,CAAC;YACd,cAAc,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS,sBAAsB,CAAC,MAA6B;QACzD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QAE7B,MAAM,wBAAwB,GAAG,cAAc,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAE7E,IAAI,wBAAwB,KAAK,IAAI,EAAE,CAAC;YACpC,cAAc,CAAC,OAAO,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,SAAS,KAAK,wBAAwB,EAAE,CAAC;YACzC,cAAc,CAAC,OAAO,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,EAAE,sBAAsB,EAAE,CAAC;AACtC,CAAC"}
@@ -0,0 +1,40 @@
1
+ import type { UserManager as OidcClientTsUserManager } from "../vendor/frontend/oidc-client-ts";
2
+ import type { NonPostableEvt } from "../tools/Evt";
3
+ type Params = Params.Login | Params.GoToAuthServer;
4
+ declare namespace Params {
5
+ type Common = {
6
+ redirectUrl: string;
7
+ extraQueryParams_local: Record<string, string | undefined> | undefined;
8
+ transformUrlBeforeRedirect_local: ((url: string) => string) | undefined;
9
+ };
10
+ export type Login = Common & {
11
+ action: "login";
12
+ doNavigateBackToLastPublicUrlIfTheTheUserNavigateBack: boolean;
13
+ doForceReloadOnBfCache: boolean;
14
+ interaction: "ensure no interaction" | "ensure interaction" | "directly redirect if active session show login otherwise";
15
+ };
16
+ export type GoToAuthServer = Common & {
17
+ action: "go to auth server";
18
+ };
19
+ export {};
20
+ }
21
+ export declare function getPrSafelyRestoredFromBfCacheAfterLoginBackNavigation(): Promise<void>;
22
+ export declare function createLoginOrGoToAuthServer(params: {
23
+ configId: string;
24
+ oidcClientTsUserManager: OidcClientTsUserManager;
25
+ transformUrlBeforeRedirect: ((params: {
26
+ authorizationUrl: string;
27
+ isSilent: boolean;
28
+ }) => string) | undefined;
29
+ getExtraQueryParams: ((params: {
30
+ isSilent: boolean;
31
+ url: string;
32
+ }) => Record<string, string | undefined>) | undefined;
33
+ getExtraTokenParams: (() => Record<string, string | undefined>) | undefined;
34
+ homeUrl: string;
35
+ evtIsUserLoggedIn: NonPostableEvt<boolean>;
36
+ log: typeof console.log | undefined;
37
+ }): {
38
+ loginOrGoToAuthServer: (params: Params) => Promise<never>;
39
+ };
40
+ export {};