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
@@ -0,0 +1,23 @@
1
+ import { overwriteReadonlyProp } from "../vendor/frontend/tsafe";
2
+ export class Deferred {
3
+ constructor() {
4
+ this.isPending = true;
5
+ let resolve;
6
+ let reject;
7
+ this.pr = new Promise((resolve_, reject_) => {
8
+ resolve = value => {
9
+ overwriteReadonlyProp(this, "isPending", false);
10
+ resolve_(value);
11
+ };
12
+ reject = error => {
13
+ overwriteReadonlyProp(this, "isPending", false);
14
+ reject_(error);
15
+ };
16
+ });
17
+ this.resolve = resolve;
18
+ this.reject = reject;
19
+ }
20
+ }
21
+ export class VoidDeferred extends Deferred {
22
+ }
23
+ //# sourceMappingURL=Deferred.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Deferred.js","sourceRoot":"","sources":["../../../src/tools/Deferred.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,MAAM,OAAO,QAAQ;IAOjB;QAoBgB,cAAS,GAAY,IAAI,CAAC;QAnBtC,IAAI,OAA4B,CAAC;QACjC,IAAI,MAA6B,CAAC;QAElC,IAAI,CAAC,EAAE,GAAG,IAAI,OAAO,CAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;YAC3C,OAAO,GAAG,KAAK,CAAC,EAAE;gBACd,qBAAqB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;gBAChD,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC,CAAC;YAEF,MAAM,GAAG,KAAK,CAAC,EAAE;gBACb,qBAAqB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;gBAChD,OAAO,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CAGJ;AAMD,MAAM,OAAO,YAAa,SAAQ,QAAmB;CAEpD"}
@@ -0,0 +1,12 @@
1
+ export type EphemeralSessionStorage = {
2
+ readonly length: number;
3
+ clear(): void;
4
+ getItem(key: string): string | null;
5
+ key(index: number): string | null;
6
+ removeItem(key: string): void;
7
+ setItem(key: string, value: string): void;
8
+ persistCurrentStateAndSubsequentChanges: () => void;
9
+ };
10
+ export declare function createEphemeralSessionStorage(params: {
11
+ sessionStorageTtlMs: number;
12
+ }): EphemeralSessionStorage;
@@ -1,150 +1,77 @@
1
1
  import { assert, typeGuard, id } from "../vendor/frontend/tsafe";
2
-
3
- type SessionStorageItem_Parsed = {
4
- __brand: "SessionStorageItem_Parsed-v1";
5
- value: string;
6
- expiresAtTime: number;
7
- };
8
-
9
- function parseSessionStorageItem(
10
- sessionStorageItemValue: string
11
- ): SessionStorageItem_Parsed | undefined {
12
- let json: unknown;
13
-
2
+ function parseSessionStorageItem(sessionStorageItemValue) {
3
+ let json;
14
4
  try {
15
5
  json = JSON.parse(sessionStorageItemValue);
16
- } catch {
6
+ }
7
+ catch {
17
8
  return undefined;
18
9
  }
19
-
20
- if (
21
- !typeGuard<SessionStorageItem_Parsed>(
22
- json,
23
- json instanceof Object &&
24
- "__brand" in json &&
25
- json.__brand === id<SessionStorageItem_Parsed["__brand"]>("SessionStorageItem_Parsed-v1")
26
- )
27
- ) {
10
+ if (!typeGuard(json, json instanceof Object &&
11
+ "__brand" in json &&
12
+ json.__brand === id("SessionStorageItem_Parsed-v1"))) {
28
13
  return undefined;
29
14
  }
30
-
31
15
  return json;
32
16
  }
33
-
34
- type InMemoryItem = {
35
- key: string;
36
- value: string;
37
- removeFromSessionStorage: (() => void) | undefined;
38
- };
39
-
40
17
  const SESSION_STORAGE_PREFIX = "ephemeral:";
41
-
42
- function createStoreInSessionStorageAndScheduleRemovalInMemoryItem(params: {
43
- key: string;
44
- value: string;
45
- remainingTtlMs: number;
46
- }): InMemoryItem {
18
+ function createStoreInSessionStorageAndScheduleRemovalInMemoryItem(params) {
47
19
  const { key, value, remainingTtlMs } = params;
48
-
49
20
  const sessionStorageKey = `${SESSION_STORAGE_PREFIX}${key}`;
50
-
51
21
  const removeFromSessionStorage = () => {
52
22
  inMemoryItem.removeFromSessionStorage = undefined;
53
23
  clearTimeout(timer);
54
24
  sessionStorage.removeItem(sessionStorageKey);
55
25
  };
56
-
57
26
  const timer = setTimeout(() => removeFromSessionStorage(), remainingTtlMs);
58
-
59
- const inMemoryItem: InMemoryItem = {
27
+ const inMemoryItem = {
60
28
  key,
61
29
  value,
62
30
  removeFromSessionStorage
63
31
  };
64
-
65
32
  sessionStorage.removeItem(sessionStorageKey);
66
-
67
- sessionStorage.setItem(
68
- sessionStorageKey,
69
- JSON.stringify(
70
- id<SessionStorageItem_Parsed>({
71
- __brand: "SessionStorageItem_Parsed-v1",
72
- value,
73
- expiresAtTime: Date.now() + remainingTtlMs
74
- })
75
- )
76
- );
77
-
33
+ sessionStorage.setItem(sessionStorageKey, JSON.stringify(id({
34
+ __brand: "SessionStorageItem_Parsed-v1",
35
+ value,
36
+ expiresAtTime: Date.now() + remainingTtlMs
37
+ })));
78
38
  return inMemoryItem;
79
39
  }
80
-
81
- export type EphemeralSessionStorage = {
82
- // `Storage` methods, we don't use the type directly because it has [name: string]: any;
83
- readonly length: number;
84
- clear(): void;
85
- getItem(key: string): string | null;
86
- key(index: number): string | null;
87
- removeItem(key: string): void;
88
- setItem(key: string, value: string): void;
89
-
90
- // Custom method
91
- persistCurrentStateAndSubsequentChanges: () => void;
92
- };
93
-
94
- export function createEphemeralSessionStorage(params: {
95
- sessionStorageTtlMs: number;
96
- }): EphemeralSessionStorage {
40
+ export function createEphemeralSessionStorage(params) {
97
41
  const { sessionStorageTtlMs } = params;
98
-
99
- const inMemoryItems: InMemoryItem[] = [];
100
-
42
+ const inMemoryItems = [];
101
43
  for (let i = 0; i < sessionStorage.length; i++) {
102
44
  const sessionStorageKey = sessionStorage.key(i);
103
45
  assert(sessionStorageKey !== null, "470498");
104
-
105
46
  if (!sessionStorageKey.startsWith(SESSION_STORAGE_PREFIX)) {
106
47
  continue;
107
48
  }
108
-
109
49
  const sessionStorageItem = sessionStorage.getItem(sessionStorageKey);
110
-
111
50
  assert(sessionStorageItem !== null, "846771");
112
-
113
51
  const sessionStorageItem_parsed = parseSessionStorageItem(sessionStorageItem);
114
-
115
52
  if (sessionStorageItem_parsed === undefined) {
116
53
  continue;
117
54
  }
118
-
119
55
  const remainingTtlMs = sessionStorageItem_parsed.expiresAtTime - Date.now();
120
-
121
56
  sessionStorage.removeItem(sessionStorageKey);
122
-
123
57
  if (remainingTtlMs <= 0) {
124
58
  continue;
125
59
  }
126
-
127
60
  inMemoryItems.push({
128
61
  key: sessionStorageKey.slice(SESSION_STORAGE_PREFIX.length),
129
62
  value: sessionStorageItem_parsed.value,
130
63
  removeFromSessionStorage: undefined
131
64
  });
132
65
  }
133
-
134
66
  let isPersistenceEnabled = false;
135
-
136
- const storage: EphemeralSessionStorage = {
67
+ const storage = {
137
68
  persistCurrentStateAndSubsequentChanges: () => {
138
69
  isPersistenceEnabled = true;
139
-
140
70
  for (let i = 0; i < storage.length; i++) {
141
71
  const key = storage.key(i);
142
72
  assert(key !== null, "803385");
143
-
144
73
  const value = storage.getItem(key);
145
-
146
74
  assert(value !== null, "777098");
147
-
148
75
  storage.setItem(key, value);
149
76
  }
150
77
  },
@@ -153,24 +80,18 @@ export function createEphemeralSessionStorage(params: {
153
80
  },
154
81
  key: index => {
155
82
  const inMemoryItem = inMemoryItems[index];
156
-
157
83
  if (inMemoryItem === undefined) {
158
84
  return null;
159
85
  }
160
-
161
86
  return inMemoryItem.key;
162
87
  },
163
88
  removeItem: key => {
164
89
  const inMemoryItem = inMemoryItems.find(item => item.key === key);
165
-
166
90
  if (inMemoryItem === undefined) {
167
91
  return;
168
92
  }
169
-
170
93
  inMemoryItem.removeFromSessionStorage?.();
171
-
172
94
  const index = inMemoryItems.indexOf(inMemoryItem);
173
-
174
95
  inMemoryItems.splice(index, 1);
175
96
  },
176
97
  clear: () => {
@@ -188,36 +109,33 @@ export function createEphemeralSessionStorage(params: {
188
109
  return inMemoryItem.value;
189
110
  },
190
111
  setItem: (key, value) => {
191
- let existingInMemoryItemIndex: number | undefined = undefined;
192
-
112
+ let existingInMemoryItemIndex = undefined;
193
113
  {
194
114
  const inMemoryItem = inMemoryItems.find(item => item.key === key);
195
-
196
115
  if (inMemoryItem !== undefined) {
197
116
  inMemoryItem.removeFromSessionStorage?.();
198
117
  existingInMemoryItemIndex = inMemoryItems.indexOf(inMemoryItem);
199
118
  }
200
119
  }
201
-
202
120
  const inMemoryItem_new = isPersistenceEnabled
203
121
  ? createStoreInSessionStorageAndScheduleRemovalInMemoryItem({
204
- key,
205
- value,
206
- remainingTtlMs: sessionStorageTtlMs
207
- })
208
- : id<InMemoryItem>({
209
- key,
210
- value,
211
- removeFromSessionStorage: undefined
212
- });
213
-
122
+ key,
123
+ value,
124
+ remainingTtlMs: sessionStorageTtlMs
125
+ })
126
+ : id({
127
+ key,
128
+ value,
129
+ removeFromSessionStorage: undefined
130
+ });
214
131
  if (existingInMemoryItemIndex !== undefined) {
215
132
  inMemoryItems[existingInMemoryItemIndex] = inMemoryItem_new;
216
- } else {
133
+ }
134
+ else {
217
135
  inMemoryItems.push(inMemoryItem_new);
218
136
  }
219
137
  }
220
138
  };
221
-
222
139
  return storage;
223
140
  }
141
+ //# sourceMappingURL=EphemeralSessionStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EphemeralSessionStorage.js","sourceRoot":"","sources":["../../../src/tools/EphemeralSessionStorage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export type NonPostableEvt<T> = {
2
+ waitFor: () => Promise<T>;
3
+ subscribe: (next: (data: T) => void) => {
4
+ unsubscribe: () => void;
5
+ };
6
+ postCount: number;
7
+ };
8
+ export type Evt<T> = NonPostableEvt<T> & {
9
+ post: (data: T) => void;
10
+ };
11
+ export declare function createEvt<T>(): Evt<T>;
@@ -1,32 +1,16 @@
1
1
  import { Deferred } from "./Deferred";
2
2
  import { assert, is } from "../vendor/frontend/tsafe";
3
-
4
- export type NonPostableEvt<T> = {
5
- waitFor: () => Promise<T>;
6
- subscribe: (next: (data: T) => void) => { unsubscribe: () => void };
7
- postCount: number;
8
- };
9
-
10
- export type Evt<T> = NonPostableEvt<T> & {
11
- post: (data: T) => void;
12
- };
13
-
14
- export function createEvt<T>(): Evt<T> {
3
+ export function createEvt() {
15
4
  const eventTarget = new EventTarget();
16
5
  const KEY = "event";
17
-
18
6
  let postCount = 0;
19
-
20
- const evt: Evt<T> = {
7
+ const evt = {
21
8
  subscribe: next => {
22
- const listener = (e: Event) => {
23
- assert(is<CustomEvent<T>>(e));
24
-
9
+ const listener = (e) => {
10
+ assert(is(e));
25
11
  next(e.detail);
26
12
  };
27
-
28
13
  eventTarget.addEventListener(KEY, listener);
29
-
30
14
  return {
31
15
  unsubscribe: () => {
32
16
  eventTarget.removeEventListener(KEY, listener);
@@ -34,16 +18,14 @@ export function createEvt<T>(): Evt<T> {
34
18
  };
35
19
  },
36
20
  waitFor: () => {
37
- const d = new Deferred<T>();
38
-
21
+ const d = new Deferred();
39
22
  const { unsubscribe } = evt.subscribe(data => {
40
23
  unsubscribe();
41
24
  d.resolve(data);
42
25
  });
43
-
44
26
  return d.pr;
45
27
  },
46
- post: (data: T) => {
28
+ post: (data) => {
47
29
  postCount++;
48
30
  eventTarget.dispatchEvent(new CustomEvent(KEY, { detail: data }));
49
31
  },
@@ -51,6 +33,6 @@ export function createEvt<T>(): Evt<T> {
51
33
  return postCount;
52
34
  }
53
35
  };
54
-
55
36
  return evt;
56
37
  }
38
+ //# sourceMappingURL=Evt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Evt.js","sourceRoot":"","sources":["../../../src/tools/Evt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAYtD,MAAM,UAAU,SAAS;IACrB,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,OAAO,CAAC;IAEpB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,MAAM,GAAG,GAAW;QAChB,SAAS,EAAE,IAAI,CAAC,EAAE;YACd,MAAM,QAAQ,GAAG,CAAC,CAAQ,EAAE,EAAE;gBAC1B,MAAM,CAAC,EAAE,CAAiB,CAAC,CAAC,CAAC,CAAC;gBAE9B,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC,CAAC;YAEF,WAAW,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAE5C,OAAO;gBACH,WAAW,EAAE,GAAG,EAAE;oBACd,WAAW,CAAC,mBAAmB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBACnD,CAAC;aACJ,CAAC;QACN,CAAC;QACD,OAAO,EAAE,GAAG,EAAE;YACV,MAAM,CAAC,GAAG,IAAI,QAAQ,EAAK,CAAC;YAE5B,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACzC,WAAW,EAAE,CAAC;gBACd,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,CAAC,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,EAAE,CAAC,IAAO,EAAE,EAAE;YACd,SAAS,EAAE,CAAC;YACZ,WAAW,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,SAAS;YACT,OAAO,SAAS,CAAC;QACrB,CAAC;KACJ,CAAC;IAEF,OAAO,GAAG,CAAC;AACf,CAAC"}
@@ -0,0 +1,12 @@
1
+ export type StatefulEvt<T> = {
2
+ current: T;
3
+ subscribe: (next: (data: T) => void) => Subscription;
4
+ };
5
+ export type StatefulReadonlyEvt<T> = {
6
+ readonly current: T;
7
+ subscribe: (next: (data: T) => void) => Subscription;
8
+ };
9
+ export type Subscription = {
10
+ unsubscribe: () => void;
11
+ };
12
+ export declare function createStatefulEvt<T>(getInitialValue: () => T): StatefulEvt<T>;
@@ -0,0 +1,21 @@
1
+ export function createStatefulEvt(getInitialValue) {
2
+ let nextFunctions = [];
3
+ let wrappedState = undefined;
4
+ return {
5
+ get current() {
6
+ if (wrappedState === undefined) {
7
+ wrappedState = [getInitialValue()];
8
+ }
9
+ return wrappedState[0];
10
+ },
11
+ set current(data) {
12
+ wrappedState = [data];
13
+ nextFunctions.forEach(next => next(data));
14
+ },
15
+ subscribe: (next) => {
16
+ nextFunctions.push(next);
17
+ return { unsubscribe: () => nextFunctions.splice(nextFunctions.indexOf(next), 1) };
18
+ }
19
+ };
20
+ }
21
+ //# sourceMappingURL=StatefulEvt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatefulEvt.js","sourceRoot":"","sources":["../../../src/tools/StatefulEvt.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,iBAAiB,CAAI,eAAwB;IACzD,IAAI,aAAa,GAA0B,EAAE,CAAC;IAE9C,IAAI,YAAY,GAAoB,SAAS,CAAC;IAE9C,OAAO;QACH,IAAI,OAAO;YACP,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC7B,YAAY,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;YACvC,CAAC;YACD,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,OAAO,CAAC,IAAO;YACf,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC;YAEtB,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,SAAS,EAAE,CAAC,IAAuB,EAAE,EAAE;YACnC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEzB,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACvF,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ValueOrAsyncGetter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValueOrAsyncGetter.js","sourceRoot":"","sources":["../../../src/tools/ValueOrAsyncGetter.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ type AsymmetricKeys = {
2
+ publicKey: string;
3
+ privateKey: string;
4
+ };
5
+ export declare function generateKeys(): Promise<AsymmetricKeys>;
6
+ export declare function asymmetricEncrypt(params: {
7
+ publicKey: string;
8
+ message: string;
9
+ }): Promise<{
10
+ encryptedMessage: string;
11
+ }>;
12
+ export declare function asymmetricDecrypt(params: {
13
+ privateKey: string;
14
+ encryptedMessage: string;
15
+ }): Promise<{
16
+ message: string;
17
+ }>;
18
+ export {};
@@ -0,0 +1,85 @@
1
+ const INFO_LABEL = "oidc-spa/tools/asymmetricEncryption";
2
+ export async function generateKeys() {
3
+ const keyPair = await crypto.subtle.generateKey({
4
+ name: "ECDH",
5
+ namedCurve: "P-256"
6
+ }, true, ["deriveKey", "deriveBits"]);
7
+ const publicKeyRaw = await crypto.subtle.exportKey("jwk", keyPair.publicKey);
8
+ const privateKeyRaw = await crypto.subtle.exportKey("jwk", keyPair.privateKey);
9
+ return {
10
+ publicKey: btoa(JSON.stringify(publicKeyRaw)),
11
+ privateKey: btoa(JSON.stringify(privateKeyRaw))
12
+ };
13
+ }
14
+ export async function asymmetricEncrypt(params) {
15
+ const { publicKey, message } = params;
16
+ const importedPublicKey = await crypto.subtle.importKey("jwk", JSON.parse(atob(publicKey)), {
17
+ name: "ECDH",
18
+ namedCurve: "P-256"
19
+ }, false, []);
20
+ const ephemeralKeyPair = await crypto.subtle.generateKey({
21
+ name: "ECDH",
22
+ namedCurve: "P-256"
23
+ }, true, ["deriveKey", "deriveBits"]);
24
+ const sharedSecret = await crypto.subtle.deriveBits({
25
+ name: "ECDH",
26
+ public: importedPublicKey
27
+ }, ephemeralKeyPair.privateKey, 256);
28
+ const salt = crypto.getRandomValues(new Uint8Array(16));
29
+ const infoBytes = new TextEncoder().encode(INFO_LABEL);
30
+ const hkdfKey = await crypto.subtle.importKey("raw", sharedSecret, "HKDF", false, ["deriveKey"]);
31
+ const derivedKey = await crypto.subtle.deriveKey({
32
+ name: "HKDF",
33
+ hash: "SHA-256",
34
+ salt,
35
+ info: infoBytes
36
+ }, hkdfKey, { name: "AES-GCM", length: 256 }, false, ["encrypt"]);
37
+ const iv = crypto.getRandomValues(new Uint8Array(12));
38
+ const encodedMessage = new TextEncoder().encode(message);
39
+ const ciphertext = await crypto.subtle.encrypt({
40
+ name: "AES-GCM",
41
+ iv
42
+ }, derivedKey, encodedMessage);
43
+ const ephemeralPubKeyRaw = await crypto.subtle.exportKey("jwk", ephemeralKeyPair.publicKey);
44
+ const payload = {
45
+ ephemeralPubKey: ephemeralPubKeyRaw,
46
+ iv: Array.from(iv),
47
+ salt: Array.from(salt),
48
+ ciphertext: Array.from(new Uint8Array(ciphertext))
49
+ };
50
+ return {
51
+ encryptedMessage: btoa(JSON.stringify(payload))
52
+ };
53
+ }
54
+ export async function asymmetricDecrypt(params) {
55
+ const { privateKey, encryptedMessage } = params;
56
+ const { ephemeralPubKey, iv, salt, ciphertext } = JSON.parse(atob(encryptedMessage));
57
+ const importedPrivateKey = await crypto.subtle.importKey("jwk", JSON.parse(atob(privateKey)), {
58
+ name: "ECDH",
59
+ namedCurve: "P-256"
60
+ }, false, ["deriveKey", "deriveBits"]);
61
+ const importedEphemeralPubKey = await crypto.subtle.importKey("jwk", ephemeralPubKey, {
62
+ name: "ECDH",
63
+ namedCurve: "P-256"
64
+ }, false, []);
65
+ const sharedSecret = await crypto.subtle.deriveBits({
66
+ name: "ECDH",
67
+ public: importedEphemeralPubKey
68
+ }, importedPrivateKey, 256);
69
+ const infoBytes = new TextEncoder().encode(INFO_LABEL);
70
+ const hkdfKey = await crypto.subtle.importKey("raw", sharedSecret, "HKDF", false, ["deriveKey"]);
71
+ const derivedKey = await crypto.subtle.deriveKey({
72
+ name: "HKDF",
73
+ hash: "SHA-256",
74
+ salt: new Uint8Array(salt),
75
+ info: infoBytes
76
+ }, hkdfKey, { name: "AES-GCM", length: 256 }, false, ["decrypt"]);
77
+ const decryptedBuffer = await crypto.subtle.decrypt({
78
+ name: "AES-GCM",
79
+ iv: new Uint8Array(iv)
80
+ }, derivedKey, new Uint8Array(ciphertext));
81
+ return {
82
+ message: new TextDecoder().decode(decryptedBuffer)
83
+ };
84
+ }
85
+ //# sourceMappingURL=asymmetricEncryption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asymmetricEncryption.js","sourceRoot":"","sources":["../../../src/tools/asymmetricEncryption.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function decodeBase64(encoded: string): string;
2
+ export declare function encodeBase64(decoded: string): string;
@@ -1,7 +1,7 @@
1
- export function decodeBase64(encoded: string): string {
1
+ export function decodeBase64(encoded) {
2
2
  return new TextDecoder().decode(Uint8Array.from(atob(encoded), c => c.charCodeAt(0)));
3
3
  }
4
-
5
- export function encodeBase64(decoded: string): string {
4
+ export function encodeBase64(decoded) {
6
5
  return btoa(new TextEncoder().encode(decoded).reduce((acc, c) => acc + String.fromCharCode(c), ""));
7
6
  }
7
+ //# sourceMappingURL=base64.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../../src/tools/base64.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,OAAe;IACxC,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe;IACxC,OAAO,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACxG,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare class AccessError extends Error {
2
+ constructor(message: string);
3
+ }
4
+ export declare function createObjectThatThrowsIfAccessed<T extends object>(params?: {
5
+ debugMessage?: string;
6
+ isPropertyWhitelisted?: (prop: string | number | symbol) => boolean;
7
+ }): T;
8
+ export declare function isObjectThatThrowIfAccessed(obj: object): boolean;
@@ -1,40 +1,29 @@
1
1
  const keyIsTrapped = "isTrapped_zSskDe9d";
2
-
3
2
  export class AccessError extends Error {
4
- constructor(message: string) {
3
+ constructor(message) {
5
4
  super(message);
6
5
  Object.setPrototypeOf(this, new.target.prototype);
7
6
  }
8
7
  }
9
-
10
- export function createObjectThatThrowsIfAccessed<T extends object>(params?: {
11
- debugMessage?: string;
12
- isPropertyWhitelisted?: (prop: string | number | symbol) => boolean;
13
- }): T {
8
+ export function createObjectThatThrowsIfAccessed(params) {
14
9
  const { debugMessage = "", isPropertyWhitelisted = () => false } = params ?? {};
15
-
16
- const get: NonNullable<ProxyHandler<T>["get"]> = (...args) => {
10
+ const get = (...args) => {
17
11
  const [, prop] = args;
18
-
19
12
  if (isPropertyWhitelisted(prop)) {
20
13
  return Reflect.get(...args);
21
14
  }
22
-
23
15
  if (prop === keyIsTrapped) {
24
16
  return true;
25
17
  }
26
-
27
18
  throw new AccessError(`Cannot access ${String(prop)} yet ${debugMessage}`);
28
19
  };
29
-
30
- const trappedObject = new Proxy<T>({} as any, {
20
+ const trappedObject = new Proxy({}, {
31
21
  get,
32
22
  set: get
33
23
  });
34
-
35
24
  return trappedObject;
36
25
  }
37
-
38
- export function isObjectThatThrowIfAccessed(obj: object) {
39
- return (obj as any)[keyIsTrapped] === true;
26
+ export function isObjectThatThrowIfAccessed(obj) {
27
+ return obj[keyIsTrapped] === true;
40
28
  }
29
+ //# sourceMappingURL=createObjectThatThrowsIfAccessed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createObjectThatThrowsIfAccessed.js","sourceRoot":"","sources":["../../../src/tools/createObjectThatThrowsIfAccessed.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG,oBAAoB,CAAC;AAE1C,MAAM,OAAO,WAAY,SAAQ,KAAK;IAClC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;CACJ;AAED,MAAM,UAAU,gCAAgC,CAAmB,MAGlE;IACG,MAAM,EAAE,YAAY,GAAG,EAAE,EAAE,qBAAqB,GAAG,GAAG,EAAE,CAAC,KAAK,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;IAEhF,MAAM,GAAG,GAAwC,CAAC,GAAG,IAAI,EAAE,EAAE;QACzD,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;QAEtB,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,IAAI,WAAW,CAAC,iBAAiB,MAAM,CAAC,IAAI,CAAC,QAAQ,YAAY,EAAE,CAAC,CAAC;IAC/E,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,IAAI,KAAK,CAAI,EAAS,EAAE;QAC1C,GAAG;QACH,GAAG,EAAE,GAAG;KACX,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,GAAW;IACnD,OAAQ,GAAW,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,25 @@
1
+ export interface JwtDecodeOptions {
2
+ header?: boolean;
3
+ }
4
+ export interface JwtHeader {
5
+ typ?: string;
6
+ alg?: string;
7
+ kid?: string;
8
+ }
9
+ export interface JwtPayload {
10
+ iss?: string;
11
+ sub?: string;
12
+ aud?: string[] | string;
13
+ exp?: number;
14
+ nbf?: number;
15
+ iat?: number;
16
+ jti?: string;
17
+ }
18
+ export declare class InvalidTokenError extends Error {
19
+ }
20
+ declare function jwtDecode<T = JwtHeader>(token: string, options: JwtDecodeOptions & {
21
+ header: true;
22
+ }): T;
23
+ declare function jwtDecode<T = JwtPayload>(token: string, options?: JwtDecodeOptions): T;
24
+ export declare const decodeJwt: typeof jwtDecode;
25
+ export {};