oidc-spa 8.1.10 → 8.1.12

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 (186) hide show
  1. package/backend.d.ts +27 -6
  2. package/backend.js +124 -139
  3. package/backend.js.map +1 -1
  4. package/core/Oidc.d.ts +28 -4
  5. package/core/createOidc.d.ts +12 -3
  6. package/core/createOidc.js +1 -1
  7. package/core/createOidc.js.map +1 -1
  8. package/core/earlyInit.d.ts +1 -0
  9. package/core/earlyInit.js +11 -4
  10. package/core/earlyInit.js.map +1 -1
  11. package/core/loginOrGoToAuthServer.js +8 -3
  12. package/core/loginOrGoToAuthServer.js.map +1 -1
  13. package/core/oidcClientTsUserToTokens.d.ts +1 -1
  14. package/core/oidcClientTsUserToTokens.js.map +1 -1
  15. package/core/requiredPostHydrationReplaceNavigationUrl.d.ts +6 -0
  16. package/core/requiredPostHydrationReplaceNavigationUrl.js +12 -0
  17. package/core/requiredPostHydrationReplaceNavigationUrl.js.map +1 -0
  18. package/entrypoint.d.ts +1 -0
  19. package/entrypoint.js +3 -1
  20. package/entrypoint.js.map +1 -1
  21. package/esm/angular.d.ts +14 -4
  22. package/esm/angular.js +155 -10
  23. package/esm/angular.js.map +1 -1
  24. package/esm/backend.d.ts +48 -0
  25. package/esm/backend.js +259 -0
  26. package/esm/backend.js.map +1 -0
  27. package/esm/core/Oidc.d.ts +28 -4
  28. package/esm/core/createOidc.d.ts +12 -3
  29. package/esm/core/createOidc.js +1 -1
  30. package/esm/core/createOidc.js.map +1 -1
  31. package/esm/core/earlyInit.d.ts +1 -0
  32. package/esm/core/earlyInit.js +11 -4
  33. package/esm/core/earlyInit.js.map +1 -1
  34. package/esm/core/loginOrGoToAuthServer.js +8 -3
  35. package/esm/core/loginOrGoToAuthServer.js.map +1 -1
  36. package/esm/core/oidcClientTsUserToTokens.d.ts +1 -1
  37. package/esm/core/oidcClientTsUserToTokens.js.map +1 -1
  38. package/esm/core/requiredPostHydrationReplaceNavigationUrl.d.ts +6 -0
  39. package/esm/core/requiredPostHydrationReplaceNavigationUrl.js +8 -0
  40. package/esm/core/requiredPostHydrationReplaceNavigationUrl.js.map +1 -0
  41. package/esm/entrypoint.d.ts +1 -0
  42. package/esm/entrypoint.js +1 -0
  43. package/esm/entrypoint.js.map +1 -1
  44. package/esm/mock/oidc.d.ts +1 -1
  45. package/esm/mock/oidc.js.map +1 -1
  46. package/esm/react/react.d.ts +1 -1
  47. package/esm/tanstack-start/react/accessTokenValidation_rfc9068.d.ts +12 -0
  48. package/esm/tanstack-start/react/accessTokenValidation_rfc9068.js +95 -0
  49. package/esm/tanstack-start/react/accessTokenValidation_rfc9068.js.map +1 -0
  50. package/esm/tanstack-start/react/apiBuilder.d.ts +27 -0
  51. package/esm/tanstack-start/react/apiBuilder.js +58 -0
  52. package/esm/tanstack-start/react/apiBuilder.js.map +1 -0
  53. package/esm/tanstack-start/react/createOidcSpaApi.d.ts +9 -0
  54. package/esm/tanstack-start/react/createOidcSpaApi.js +679 -0
  55. package/esm/tanstack-start/react/createOidcSpaApi.js.map +1 -0
  56. package/esm/tanstack-start/react/index.d.ts +3 -0
  57. package/esm/tanstack-start/react/index.js +4 -0
  58. package/esm/tanstack-start/react/index.js.map +1 -0
  59. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/UnifiedClientRetryForSsrLoadersError.d.ts +4 -0
  60. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/UnifiedClientRetryForSsrLoadersError.js +8 -0
  61. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/UnifiedClientRetryForSsrLoadersError.js.map +1 -0
  62. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/enableUnifiedClientRetryForSsrLoaders.d.ts +4 -0
  63. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/enableUnifiedClientRetryForSsrLoaders.js +86 -0
  64. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/enableUnifiedClientRetryForSsrLoaders.js.map +1 -0
  65. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/entrypoint.d.ts +1 -0
  66. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/entrypoint.js +13 -0
  67. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/entrypoint.js.map +1 -0
  68. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/index.d.ts +2 -0
  69. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/index.js +3 -0
  70. package/esm/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/index.js.map +1 -0
  71. package/esm/tanstack-start/react/types.d.ts +355 -0
  72. package/esm/tanstack-start/react/types.js +2 -0
  73. package/esm/tanstack-start/react/types.js.map +1 -0
  74. package/esm/tanstack-start/react/withHandlingOidcPostLoginNavigation.d.ts +2 -0
  75. package/esm/tanstack-start/react/withHandlingOidcPostLoginNavigation.js +25 -0
  76. package/esm/tanstack-start/react/withHandlingOidcPostLoginNavigation.js.map +1 -0
  77. package/esm/tools/GetterOrDirectValue.d.ts +1 -0
  78. package/esm/tools/GetterOrDirectValue.js +2 -0
  79. package/esm/tools/GetterOrDirectValue.js.map +1 -0
  80. package/esm/tools/ZodSchemaLike.d.ts +3 -0
  81. package/esm/tools/ZodSchemaLike.js +2 -0
  82. package/esm/tools/ZodSchemaLike.js.map +1 -0
  83. package/esm/tools/inferIsViteDev.d.ts +1 -0
  84. package/esm/tools/inferIsViteDev.js +6 -0
  85. package/esm/tools/inferIsViteDev.js.map +1 -0
  86. package/esm/tools/infer_import_meta_env_BASE_URL.d.ts +1 -0
  87. package/esm/tools/infer_import_meta_env_BASE_URL.js +15 -0
  88. package/esm/tools/infer_import_meta_env_BASE_URL.js.map +1 -0
  89. package/esm/tools/tsafe/uncapitalize.d.ts +2 -0
  90. package/esm/tools/tsafe/uncapitalize.js +5 -0
  91. package/esm/tools/tsafe/uncapitalize.js.map +1 -0
  92. package/esm/vendor/backend/evt.d.ts +2 -0
  93. package/esm/vendor/backend/evt.js +3286 -0
  94. package/esm/vendor/backend/jose.d.ts +1 -0
  95. package/esm/vendor/backend/jose.js +3546 -0
  96. package/esm/vendor/backend/tsafe.d.ts +5 -0
  97. package/esm/vendor/backend/tsafe.js +68 -0
  98. package/esm/vendor/backend/zod.d.ts +1 -0
  99. package/esm/vendor/backend/zod.js +4023 -0
  100. package/esm/vendor/frontend/worker-timers.js +261 -1
  101. package/mock/oidc.d.ts +1 -1
  102. package/mock/oidc.js.map +1 -1
  103. package/package.json +40 -4
  104. package/react/react.d.ts +1 -1
  105. package/src/angular.ts +224 -9
  106. package/src/backend.ts +201 -166
  107. package/src/core/Oidc.ts +41 -11
  108. package/src/core/createOidc.ts +12 -3
  109. package/src/core/earlyInit.ts +19 -4
  110. package/src/core/loginOrGoToAuthServer.ts +11 -3
  111. package/src/core/oidcClientTsUserToTokens.ts +2 -2
  112. package/src/core/requiredPostHydrationReplaceNavigationUrl.ts +11 -0
  113. package/src/entrypoint.ts +1 -0
  114. package/src/mock/oidc.ts +2 -2
  115. package/src/react/react.tsx +1 -1
  116. package/src/tanstack-start/react/accessTokenValidation_rfc9068.ts +135 -0
  117. package/src/tanstack-start/react/apiBuilder.ts +151 -0
  118. package/src/tanstack-start/react/createOidcSpaApi.tsx +1011 -0
  119. package/src/tanstack-start/react/index.ts +5 -0
  120. package/src/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/UnifiedClientRetryForSsrLoadersError.ts +8 -0
  121. package/src/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/enableUnifiedClientRetryForSsrLoaders.tsx +127 -0
  122. package/src/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/entrypoint.ts +15 -0
  123. package/src/tanstack-start/react/rfcUnifiedClientRetryForSsrLoaders/index.ts +2 -0
  124. package/src/tanstack-start/react/types.tsx +415 -0
  125. package/src/tanstack-start/react/withHandlingOidcPostLoginNavigation.tsx +35 -0
  126. package/src/tools/GetterOrDirectValue.ts +1 -0
  127. package/src/tools/ZodSchemaLike.ts +3 -0
  128. package/src/tools/getThisCodebaseRootDirPath_cjs.ts +19 -0
  129. package/src/tools/inferIsViteDev.ts +6 -0
  130. package/src/tools/infer_import_meta_env_BASE_URL.ts +19 -0
  131. package/src/tools/tsafe/uncapitalize.ts +4 -0
  132. package/src/vendor/backend/jose.ts +1 -0
  133. package/src/vendor/build-runtime/babel.ts +6 -0
  134. package/src/vendor/build-runtime/magic-string.ts +3 -0
  135. package/src/vite-plugin/detectProjectType.ts +20 -0
  136. package/src/vite-plugin/excludeModuleExportFromOptimizedDeps.ts +20 -0
  137. package/src/vite-plugin/handleClientEntrypoint.ts +260 -0
  138. package/src/vite-plugin/index.ts +1 -0
  139. package/src/vite-plugin/transformCreateFileRoute.ts +240 -0
  140. package/src/vite-plugin/vite-plugin.ts +54 -0
  141. package/tools/GetterOrDirectValue.d.ts +1 -0
  142. package/tools/GetterOrDirectValue.js +3 -0
  143. package/tools/GetterOrDirectValue.js.map +1 -0
  144. package/tools/ZodSchemaLike.d.ts +3 -0
  145. package/tools/ZodSchemaLike.js +3 -0
  146. package/tools/ZodSchemaLike.js.map +1 -0
  147. package/tools/getThisCodebaseRootDirPath_cjs.d.ts +2 -0
  148. package/tools/getThisCodebaseRootDirPath_cjs.js +53 -0
  149. package/tools/getThisCodebaseRootDirPath_cjs.js.map +1 -0
  150. package/tools/tsafe/uncapitalize.d.ts +2 -0
  151. package/tools/tsafe/uncapitalize.js +8 -0
  152. package/tools/tsafe/uncapitalize.js.map +1 -0
  153. package/vendor/backend/jose.d.ts +1 -0
  154. package/vendor/backend/jose.js +3 -0
  155. package/vendor/build-runtime/babel.d.ts +6 -0
  156. package/vendor/build-runtime/babel.js +3 -0
  157. package/vendor/build-runtime/magic-string.d.ts +2 -0
  158. package/vendor/build-runtime/magic-string.js +2 -0
  159. package/vendor/frontend/oidc-client-ts.js +0 -2
  160. package/vite-plugin/detectProjectType.d.ts +10 -0
  161. package/vite-plugin/detectProjectType.js +15 -0
  162. package/vite-plugin/detectProjectType.js.map +1 -0
  163. package/vite-plugin/excludeModuleExportFromOptimizedDeps.d.ts +4 -0
  164. package/vite-plugin/excludeModuleExportFromOptimizedDeps.js +50 -0
  165. package/vite-plugin/excludeModuleExportFromOptimizedDeps.js.map +1 -0
  166. package/vite-plugin/handleClientEntrypoint.d.ts +10 -0
  167. package/vite-plugin/handleClientEntrypoint.js +211 -0
  168. package/vite-plugin/handleClientEntrypoint.js.map +1 -0
  169. package/vite-plugin/index.d.ts +1 -0
  170. package/vite-plugin/index.js +6 -0
  171. package/vite-plugin/index.js.map +1 -0
  172. package/vite-plugin/transformCreateFileRoute.d.ts +10 -0
  173. package/vite-plugin/transformCreateFileRoute.js +173 -0
  174. package/vite-plugin/transformCreateFileRoute.js.map +1 -0
  175. package/vite-plugin/vite-plugin.d.ts +5 -0
  176. package/vite-plugin/vite-plugin.js +46 -0
  177. package/vite-plugin/vite-plugin.js.map +1 -0
  178. package/src/vendor/backend/jsonwebtoken.ts +0 -1
  179. package/src/vendor/backend/node-fetch.ts +0 -2
  180. package/src/vendor/backend/node-jose.ts +0 -1
  181. package/vendor/backend/jsonwebtoken.d.ts +0 -1
  182. package/vendor/backend/jsonwebtoken.js +0 -3
  183. package/vendor/backend/node-fetch.d.ts +0 -2
  184. package/vendor/backend/node-fetch.js +0 -2
  185. package/vendor/backend/node-jose.d.ts +0 -1
  186. package/vendor/backend/node-jose.js +0 -3
package/esm/angular.js CHANGED
@@ -9,11 +9,12 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
9
9
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
10
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
11
  };
12
- var _AbstractOidcService_instances, _AbstractOidcService_autoLogoutWarningDurationSeconds, _AbstractOidcService_dState, _AbstractOidcService_initialize, _AbstractOidcService_getPrInitializedNotResolvedErrorMessage, _AbstractOidcService_getState, _AbstractOidcService_getAutoLoginAndInitializationErrorAccessErrorMessage, _AbstractOidcService_getOidc;
13
- import { BehaviorSubject } from "rxjs";
12
+ var _AbstractOidcService_instances, _AbstractOidcService_autoLogoutWarningDurationSeconds, _AbstractOidcService_isRunningGetParams, _AbstractOidcService_deadlockDetectionTimer, _AbstractOidcService_dState, _AbstractOidcService_initialize, _AbstractOidcService_getPrInitializedNotResolvedErrorMessage, _AbstractOidcService_getState, _AbstractOidcService_getAutoLoginAndInitializationErrorAccessErrorMessage, _AbstractOidcService_getOidc, _AbstractOidcService_isUserLoggedIn_override, _AbstractOidcService_decodedIdToken$, _AbstractOidcService_$decodedIdToken, _AbstractOidcService_isNewBrowserSession_override;
13
+ import { BehaviorSubject, from, switchMap, Subject } from "rxjs";
14
14
  import { Deferred } from "./tools/Deferred";
15
15
  import { assert, is } from "./tools/tsafe/assert";
16
- import { createObjectThatThrowsIfAccessed } from "./tools/createObjectThatThrowsIfAccessed";
16
+ import { uncapitalize } from "./tools/tsafe/uncapitalize";
17
+ import { createObjectThatThrowsIfAccessed, AccessError } from "./tools/createObjectThatThrowsIfAccessed";
17
18
  import { inject, makeEnvironmentProviders, provideAppInitializer } from "@angular/core";
18
19
  import { toSignal } from "@angular/core/rxjs-interop";
19
20
  import { Router } from "@angular/router";
@@ -27,9 +28,14 @@ export class AbstractOidcService {
27
28
  this.decodedIdTokenSchema = undefined;
28
29
  this.mockDecodedIdToken = undefined;
29
30
  _AbstractOidcService_autoLogoutWarningDurationSeconds.set(this, 45);
31
+ _AbstractOidcService_isRunningGetParams.set(this, false);
32
+ this.allowDecodedIdTokenAccessInShouldInjectAccessToken = false;
33
+ _AbstractOidcService_deadlockDetectionTimer.set(this, undefined);
30
34
  _AbstractOidcService_dState.set(this, new Deferred());
31
35
  this.prInitialized = __classPrivateFieldGet(this, _AbstractOidcService_dState, "f").pr.then(() => true);
32
- this.decodedIdToken$ = (() => {
36
+ _AbstractOidcService_isUserLoggedIn_override.set(this, undefined);
37
+ this.decodedIdTokenAccess = undefined;
38
+ _AbstractOidcService_decodedIdToken$.set(this, (() => {
33
39
  const decodedIdToken$ = new BehaviorSubject(createObjectThatThrowsIfAccessed({
34
40
  debugMessage: __classPrivateFieldGet(this, _AbstractOidcService_instances, "m", _AbstractOidcService_getPrInitializedNotResolvedErrorMessage).call(this, {
35
41
  callerName: "decodedIdToken"
@@ -68,8 +74,8 @@ export class AbstractOidcService {
68
74
  });
69
75
  })();
70
76
  return decodedIdToken$;
71
- })();
72
- this.$decodedIdToken = toSignal(this.decodedIdToken$, { requireSync: true });
77
+ })());
78
+ _AbstractOidcService_$decodedIdToken.set(this, toSignal(this.decodedIdToken$, { requireSync: true }));
73
79
  this.$secondsLeftBeforeAutoLogout = (() => {
74
80
  const secondsLeftBeforeAutoLogout$ = new BehaviorSubject(null);
75
81
  (async () => {
@@ -92,6 +98,7 @@ export class AbstractOidcService {
92
98
  })();
93
99
  return toSignal(secondsLeftBeforeAutoLogout$, { requireSync: true });
94
100
  })();
101
+ _AbstractOidcService_isNewBrowserSession_override.set(this, undefined);
95
102
  }
96
103
  static provide(params) {
97
104
  const paramsOrGetParams = params;
@@ -105,7 +112,12 @@ export class AbstractOidcService {
105
112
  const [{ createOidc }, { autoLogoutWarningDurationSeconds, ...params }] = await Promise.all([
106
113
  import("./core"),
107
114
  typeof paramsOrGetParams === "function"
108
- ? paramsOrGetParams()
115
+ ? (async () => {
116
+ __classPrivateFieldSet(instance, _AbstractOidcService_isRunningGetParams, true, "f");
117
+ const params = await paramsOrGetParams();
118
+ __classPrivateFieldSet(instance, _AbstractOidcService_isRunningGetParams, false, "f");
119
+ return params;
120
+ })()
109
121
  : paramsOrGetParams
110
122
  ]);
111
123
  if (autoLogoutWarningDurationSeconds !== undefined) {
@@ -169,6 +181,121 @@ export class AbstractOidcService {
169
181
  })
170
182
  ]);
171
183
  }
184
+ static createBearerInterceptor(params) {
185
+ const { shouldInjectAccessToken: getShouldInjectAccessToken } = params;
186
+ return (req, next) => {
187
+ const instance = inject(this);
188
+ let shouldInjectAccessToken = undefined;
189
+ const shouldInjectAccessTokenByState = [];
190
+ let isDecodedIdTokenAccessed = false;
191
+ (instance.decodedIdTokenAccess = new Subject()).subscribe(() => (isDecodedIdTokenAccessed = true));
192
+ try {
193
+ shouldInjectAccessToken = getShouldInjectAccessToken(req);
194
+ }
195
+ catch (error) {
196
+ if (!(error instanceof OidcAccessedTooEarlyError) && !(error instanceof AccessError)) {
197
+ throw error;
198
+ }
199
+ }
200
+ if (shouldInjectAccessToken === undefined) {
201
+ for (const isUserLoggedIn of [false, true]) {
202
+ for (const isNewBrowserSession of isUserLoggedIn ? [false, true] : [undefined]) {
203
+ let shouldInjectAccessTokenOrError;
204
+ __classPrivateFieldSet(instance, _AbstractOidcService_isUserLoggedIn_override, isUserLoggedIn, "f");
205
+ __classPrivateFieldSet(instance, _AbstractOidcService_isNewBrowserSession_override, isNewBrowserSession, "f");
206
+ try {
207
+ shouldInjectAccessTokenOrError = getShouldInjectAccessToken(req);
208
+ }
209
+ catch (error) {
210
+ shouldInjectAccessTokenOrError = { error };
211
+ }
212
+ __classPrivateFieldSet(instance, _AbstractOidcService_isUserLoggedIn_override, undefined, "f");
213
+ __classPrivateFieldSet(instance, _AbstractOidcService_isNewBrowserSession_override, undefined, "f");
214
+ shouldInjectAccessTokenByState.push({
215
+ isUserLoggedIn,
216
+ isNewBrowserSession,
217
+ shouldInjectAccessTokenOrError
218
+ });
219
+ }
220
+ }
221
+ }
222
+ instance.decodedIdTokenAccess = undefined;
223
+ if (!instance.providerAwaitsInitialization &&
224
+ isDecodedIdTokenAccessed &&
225
+ !instance.allowDecodedIdTokenAccessInShouldInjectAccessToken) {
226
+ throw new Error("oidc-spa: See https://docs.oidc-spa.dev/release-notes/reading-decodedaccesstoken-within-shouldinjectaccesstoken");
227
+ }
228
+ if (shouldInjectAccessToken === false ||
229
+ (shouldInjectAccessToken === undefined &&
230
+ shouldInjectAccessTokenByState.every(({ shouldInjectAccessTokenOrError }) => shouldInjectAccessTokenOrError === false))) {
231
+ return next(req);
232
+ }
233
+ if (__classPrivateFieldGet(instance, _AbstractOidcService_isRunningGetParams, "f") && __classPrivateFieldGet(instance, _AbstractOidcService_deadlockDetectionTimer, "f") === undefined) {
234
+ __classPrivateFieldSet(instance, _AbstractOidcService_deadlockDetectionTimer, setTimeout(() => {
235
+ const name = this.name.replace(/^_/, "");
236
+ switch (shouldInjectAccessToken) {
237
+ case false:
238
+ assert(false);
239
+ case true:
240
+ console.warn([
241
+ "oidc-spa: Probable deadlock detected!",
242
+ `Request ${req.method} ${req.urlWithParams} requires an access token,`,
243
+ `but this request is probably being made inside the async callback of`,
244
+ `${name}.provide(async () => {...}).`,
245
+ "At this point the access token cannot exist yet, initialization depends on this request itself."
246
+ ].join(" "));
247
+ break;
248
+ case undefined:
249
+ console.warn([
250
+ "oidc-spa: Probable deadlock detected!",
251
+ `While evaluating shouldInjectAccessToken(req) for ${req.method} ${req.urlWithParams},`,
252
+ "you accessed synchronous properties of",
253
+ `\`${uncapitalize(name)} = inject(${name})\` that`,
254
+ "are only available after initialization completes.",
255
+ `Requests made inside the ${name}.provide(async () => {...}) callback`,
256
+ `(typically to fetch the params), should not trigger a read of `,
257
+ `${uncapitalize(name)}.isUserLoggedIn or other properties inside shouldInjectAccessToken()`,
258
+ "This creates a causality violation.",
259
+ "Reorganize your shouldInjectAccessToken implementation to exit early with `false` in those case,",
260
+ "before accessing the property."
261
+ ].join(" "));
262
+ break;
263
+ }
264
+ }, 4000), "f");
265
+ }
266
+ return from(instance.getAccessToken()).pipe(switchMap(({ accessToken }) => {
267
+ if (__classPrivateFieldGet(instance, _AbstractOidcService_deadlockDetectionTimer, "f") !== undefined) {
268
+ clearTimeout(__classPrivateFieldGet(instance, _AbstractOidcService_deadlockDetectionTimer, "f"));
269
+ __classPrivateFieldSet(instance, _AbstractOidcService_deadlockDetectionTimer, undefined, "f");
270
+ }
271
+ if (shouldInjectAccessToken === undefined) {
272
+ const match = shouldInjectAccessTokenByState.find(({ isUserLoggedIn, isNewBrowserSession }) => isUserLoggedIn === instance.isUserLoggedIn &&
273
+ isNewBrowserSession ===
274
+ (instance.isUserLoggedIn ? instance.isNewBrowserSession : undefined));
275
+ assert(match !== undefined);
276
+ const { shouldInjectAccessTokenOrError } = match;
277
+ if (typeof shouldInjectAccessTokenOrError !== "boolean") {
278
+ const { error } = shouldInjectAccessTokenOrError;
279
+ throw error;
280
+ }
281
+ shouldInjectAccessToken = shouldInjectAccessTokenOrError;
282
+ }
283
+ if (!shouldInjectAccessToken) {
284
+ return next(req);
285
+ }
286
+ if (!instance.isUserLoggedIn) {
287
+ throw new OidcAccessedTooEarlyError([
288
+ `oidc-spa: attempted to inject an Authorization bearer token`,
289
+ `for ${req.method} ${req.urlWithParams} but the user is not logged in.`,
290
+ `You shouldn't be attempting to call API endpoint that require authentication`,
291
+ `when the user isn't logged in.`
292
+ ].join(" "));
293
+ }
294
+ assert(accessToken !== undefined);
295
+ return next(req.clone({ setHeaders: { Authorization: `Bearer ${accessToken}` } }));
296
+ }));
297
+ };
298
+ }
172
299
  static get enforceLoginGuard() {
173
300
  const canActivateFn = (async (route) => {
174
301
  const instance = inject(this);
@@ -201,7 +328,8 @@ export class AbstractOidcService {
201
328
  return __classPrivateFieldGet(this, _AbstractOidcService_instances, "m", _AbstractOidcService_getOidc).call(this, { callerName: "clientId" }).params.clientId;
202
329
  }
203
330
  get isUserLoggedIn() {
204
- return __classPrivateFieldGet(this, _AbstractOidcService_instances, "m", _AbstractOidcService_getOidc).call(this, { callerName: "isUserLoggedIn" }).isUserLoggedIn;
331
+ return (__classPrivateFieldGet(this, _AbstractOidcService_isUserLoggedIn_override, "f") ??
332
+ __classPrivateFieldGet(this, _AbstractOidcService_instances, "m", _AbstractOidcService_getOidc).call(this, { callerName: "isUserLoggedIn" }).isUserLoggedIn);
205
333
  }
206
334
  async login(params) {
207
335
  await this.prInitialized;
@@ -242,6 +370,14 @@ export class AbstractOidcService {
242
370
  }
243
371
  return oidc.goToAuthServer(params);
244
372
  }
373
+ get decodedIdToken$() {
374
+ this.decodedIdTokenAccess?.next();
375
+ return __classPrivateFieldGet(this, _AbstractOidcService_decodedIdToken$, "f");
376
+ }
377
+ get $decodedIdToken() {
378
+ this.decodedIdTokenAccess?.next();
379
+ return __classPrivateFieldGet(this, _AbstractOidcService_$decodedIdToken, "f");
380
+ }
245
381
  async getAccessToken() {
246
382
  await this.prInitialized;
247
383
  const oidc = __classPrivateFieldGet(this, _AbstractOidcService_instances, "m", _AbstractOidcService_getOidc).call(this, { callerName: "getAccessToken" });
@@ -252,6 +388,9 @@ export class AbstractOidcService {
252
388
  };
253
389
  }
254
390
  get isNewBrowserSession() {
391
+ if (__classPrivateFieldGet(this, _AbstractOidcService_isNewBrowserSession_override, "f") !== undefined) {
392
+ return __classPrivateFieldGet(this, _AbstractOidcService_isNewBrowserSession_override, "f");
393
+ }
255
394
  const oidc = __classPrivateFieldGet(this, _AbstractOidcService_instances, "m", _AbstractOidcService_getOidc).call(this, { callerName: "isNewBrowserSession" });
256
395
  if (!oidc.isUserLoggedIn) {
257
396
  throw new Error("oidc-spa: isNewBrowserSession was used but the used is not logged in");
@@ -259,7 +398,7 @@ export class AbstractOidcService {
259
398
  return oidc.isNewBrowserSession;
260
399
  }
261
400
  }
262
- _AbstractOidcService_autoLogoutWarningDurationSeconds = new WeakMap(), _AbstractOidcService_dState = new WeakMap(), _AbstractOidcService_instances = new WeakSet(), _AbstractOidcService_initialize = function _AbstractOidcService_initialize(params) {
401
+ _AbstractOidcService_autoLogoutWarningDurationSeconds = new WeakMap(), _AbstractOidcService_isRunningGetParams = new WeakMap(), _AbstractOidcService_deadlockDetectionTimer = new WeakMap(), _AbstractOidcService_dState = new WeakMap(), _AbstractOidcService_isUserLoggedIn_override = new WeakMap(), _AbstractOidcService_decodedIdToken$ = new WeakMap(), _AbstractOidcService_$decodedIdToken = new WeakMap(), _AbstractOidcService_isNewBrowserSession_override = new WeakMap(), _AbstractOidcService_instances = new WeakSet(), _AbstractOidcService_initialize = function _AbstractOidcService_initialize(params) {
263
402
  const { prOidcOrInitializationError } = params;
264
403
  prOidcOrInitializationError.then(oidcOrInitializationError => {
265
404
  let initializationError = undefined;
@@ -290,7 +429,7 @@ _AbstractOidcService_autoLogoutWarningDurationSeconds = new WeakMap(), _Abstract
290
429
  const { callerName } = params;
291
430
  const { hasResolved, value } = __classPrivateFieldGet(this, _AbstractOidcService_dState, "f").getState();
292
431
  if (!hasResolved) {
293
- throw new Error(__classPrivateFieldGet(this, _AbstractOidcService_instances, "m", _AbstractOidcService_getPrInitializedNotResolvedErrorMessage).call(this, { callerName }));
432
+ throw new OidcAccessedTooEarlyError(__classPrivateFieldGet(this, _AbstractOidcService_instances, "m", _AbstractOidcService_getPrInitializedNotResolvedErrorMessage).call(this, { callerName }));
294
433
  }
295
434
  return value;
296
435
  }, _AbstractOidcService_getAutoLoginAndInitializationErrorAccessErrorMessage = function _AbstractOidcService_getAutoLoginAndInitializationErrorAccessErrorMessage(params) {
@@ -311,4 +450,10 @@ _AbstractOidcService_autoLogoutWarningDurationSeconds = new WeakMap(), _Abstract
311
450
  }
312
451
  return state.oidc;
313
452
  };
453
+ export class OidcAccessedTooEarlyError extends Error {
454
+ constructor(message) {
455
+ super(message);
456
+ Object.setPrototypeOf(this, new.target.prototype);
457
+ }
458
+ }
314
459
  //# sourceMappingURL=angular.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"angular.js","sourceRoot":"","sources":["../src/angular.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"angular.js","sourceRoot":"","sources":["../src/angular.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { ZodSchemaLike } from "./tools/ZodSchemaLike";
2
+ /**
3
+ * Claims defined by RFC 9068: "JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens"
4
+ * https://datatracker.ietf.org/doc/html/rfc9068
5
+ *
6
+ * These tokens are intended for consumption by resource servers.
7
+ */
8
+ export type DecodedAccessToken_RFC9068 = {
9
+ iss: string;
10
+ sub: string;
11
+ aud: string | string[];
12
+ exp: number;
13
+ iat: number;
14
+ client_id?: string;
15
+ scope?: string;
16
+ jti?: string;
17
+ nbf?: number;
18
+ auth_time?: number;
19
+ cnf?: Record<string, unknown>;
20
+ [key: string]: unknown;
21
+ };
22
+ export type ParamsOfCreateOidcBackend<DecodedAccessToken> = {
23
+ issuerUri: string;
24
+ decodedAccessTokenSchema?: ZodSchemaLike<DecodedAccessToken_RFC9068, DecodedAccessToken>;
25
+ };
26
+ export type OidcBackend<DecodedAccessToken extends Record<string, unknown>> = {
27
+ verifyAndDecodeAccessToken(params: {
28
+ accessToken: string;
29
+ }): Promise<ResultOfAccessTokenVerify<DecodedAccessToken>>;
30
+ };
31
+ export type ResultOfAccessTokenVerify<DecodedAccessToken> = ResultOfAccessTokenVerify.Valid<DecodedAccessToken> | ResultOfAccessTokenVerify.Invalid;
32
+ export declare namespace ResultOfAccessTokenVerify {
33
+ type Valid<DecodedAccessToken> = {
34
+ isValid: true;
35
+ decodedAccessToken: DecodedAccessToken;
36
+ decodedAccessToken_original: DecodedAccessToken_RFC9068;
37
+ errorCase?: never;
38
+ errorMessage?: never;
39
+ };
40
+ type Invalid = {
41
+ isValid: false;
42
+ errorCase: "expired" | "invalid signature" | "does not respect schema";
43
+ errorMessage: string;
44
+ decodedAccessToken?: never;
45
+ decodedAccessToken_original?: never;
46
+ };
47
+ }
48
+ export declare function createOidcBackend<DecodedAccessToken extends Record<string, unknown> = DecodedAccessToken_RFC9068>(params: ParamsOfCreateOidcBackend<DecodedAccessToken>): Promise<OidcBackend<DecodedAccessToken>>;
package/esm/backend.js ADDED
@@ -0,0 +1,259 @@
1
+ import { assert, isAmong, id, is } from "./vendor/backend/tsafe";
2
+ import { decodeProtectedHeader, jwtVerify, createLocalJWKSet, errors } from "./vendor/backend/jose";
3
+ import { z } from "./vendor/backend/zod";
4
+ import { Evt, throttleTime } from "./vendor/backend/evt";
5
+ const zDecodedAccessToken_RFC9068 = (() => {
6
+ const zTargetType = z
7
+ .object({
8
+ iss: z.string(),
9
+ sub: z.string(),
10
+ aud: z.union([z.string(), z.array(z.string())]),
11
+ exp: z.number(),
12
+ iat: z.number(),
13
+ client_id: z.string().optional(),
14
+ scope: z.string().optional(),
15
+ jti: z.string().optional(),
16
+ nbf: z.number().optional(),
17
+ auth_time: z.number().optional(),
18
+ cnf: z.record(z.unknown()).optional()
19
+ })
20
+ .catchall(z.unknown());
21
+ assert;
22
+ return id(zTargetType);
23
+ })();
24
+ export async function createOidcBackend(params) {
25
+ const { issuerUri, decodedAccessTokenSchema } = params;
26
+ let publicSigningKeys = await fetchPublicSigningKeys({ issuerUri });
27
+ const evtInvalidSignature = Evt.create();
28
+ evtInvalidSignature.pipe(throttleTime(3600000)).attach(async () => {
29
+ const publicSigningKeys_new = await (async function callee(count) {
30
+ let wrap;
31
+ try {
32
+ wrap = await fetchPublicSigningKeys({ issuerUri });
33
+ }
34
+ catch (error) {
35
+ if (count === 9) {
36
+ console.warn(`Failed to refresh public key and signing algorithm after ${count + 1} attempts`);
37
+ return undefined;
38
+ }
39
+ const delayMs = 1000 * Math.pow(2, count);
40
+ console.warn(`Failed to refresh public key and signing algorithm: ${String(error)}, retrying in ${delayMs}ms`);
41
+ await new Promise(resolve => setTimeout(resolve, delayMs));
42
+ return callee(count + 1);
43
+ }
44
+ return wrap;
45
+ })(0);
46
+ if (publicSigningKeys_new === undefined) {
47
+ return;
48
+ }
49
+ publicSigningKeys = publicSigningKeys_new;
50
+ });
51
+ return {
52
+ verifyAndDecodeAccessToken: async ({ accessToken }) => {
53
+ let kid;
54
+ let alg;
55
+ {
56
+ let header;
57
+ try {
58
+ header = decodeProtectedHeader(accessToken);
59
+ }
60
+ catch {
61
+ return {
62
+ isValid: false,
63
+ errorCase: "invalid signature",
64
+ errorMessage: "Failed to decode the JWT header"
65
+ };
66
+ }
67
+ const { kid: kidFromHeader, alg: algFromHeader } = header;
68
+ if (typeof kidFromHeader !== "string" || kidFromHeader.length === 0) {
69
+ return {
70
+ isValid: false,
71
+ errorCase: "invalid signature",
72
+ errorMessage: "The decoded JWT header does not have a kid property"
73
+ };
74
+ }
75
+ if (typeof algFromHeader !== "string") {
76
+ return {
77
+ isValid: false,
78
+ errorCase: "invalid signature",
79
+ errorMessage: "The decoded JWT header does not specify an algorithm"
80
+ };
81
+ }
82
+ const supportedAlgs = [
83
+ "RS256",
84
+ "RS384",
85
+ "RS512",
86
+ "ES256",
87
+ "ES384",
88
+ "ES512",
89
+ "PS256",
90
+ "PS384",
91
+ "PS512"
92
+ ];
93
+ if (!isAmong(supportedAlgs, algFromHeader)) {
94
+ return {
95
+ isValid: false,
96
+ errorCase: "invalid signature",
97
+ errorMessage: `Unsupported or too weak algorithm ${algFromHeader}`
98
+ };
99
+ }
100
+ kid = kidFromHeader;
101
+ alg = algFromHeader;
102
+ }
103
+ if (!publicSigningKeys.kidSet.has(kid)) {
104
+ return {
105
+ isValid: false,
106
+ errorCase: "invalid signature",
107
+ errorMessage: `No public signing key found with kid ${kid}`
108
+ };
109
+ }
110
+ let payload;
111
+ try {
112
+ const verification = await jwtVerify(accessToken, publicSigningKeys.keyResolver, {
113
+ algorithms: [alg]
114
+ });
115
+ payload = verification.payload;
116
+ }
117
+ catch (error) {
118
+ if (error instanceof errors.JWTExpired) {
119
+ return id({
120
+ isValid: false,
121
+ errorCase: "expired",
122
+ errorMessage: error.message
123
+ });
124
+ }
125
+ evtInvalidSignature.post();
126
+ return id({
127
+ isValid: false,
128
+ errorCase: "invalid signature",
129
+ errorMessage: error instanceof Error ? error.message : String(error)
130
+ });
131
+ }
132
+ const decodedAccessToken_unknown = payload;
133
+ try {
134
+ zDecodedAccessToken_RFC9068.parse(decodedAccessToken_unknown);
135
+ }
136
+ catch (error) {
137
+ return id({
138
+ isValid: false,
139
+ errorCase: "does not respect schema",
140
+ errorMessage: [
141
+ `The decoded access token does not satisfies`,
142
+ `the shape mandated by RFC9068: ${String(error)}`
143
+ ].join(" ")
144
+ });
145
+ }
146
+ assert(is(decodedAccessToken_unknown));
147
+ const decodedAccessToken_original = decodedAccessToken_unknown;
148
+ let decodedAccessToken;
149
+ if (decodedAccessTokenSchema === undefined) {
150
+ decodedAccessToken = decodedAccessToken_original;
151
+ }
152
+ else {
153
+ try {
154
+ decodedAccessToken = decodedAccessTokenSchema.parse(decodedAccessToken_original);
155
+ }
156
+ catch (error) {
157
+ return id({
158
+ isValid: false,
159
+ errorCase: "does not respect schema",
160
+ errorMessage: String(error)
161
+ });
162
+ }
163
+ }
164
+ return id({
165
+ isValid: true,
166
+ decodedAccessToken,
167
+ decodedAccessToken_original
168
+ });
169
+ }
170
+ };
171
+ }
172
+ async function fetchPublicSigningKeys(params) {
173
+ const { issuerUri } = params;
174
+ const { jwks_uri } = await (async () => {
175
+ const url = `${issuerUri.replace(/\/$/, "")}/.well-known/openid-configuration`;
176
+ const response = await fetch(url);
177
+ if (!response.ok) {
178
+ throw new Error(`Failed to fetch openid configuration of the issuerUri: ${issuerUri} (${url}): ${response.statusText}`);
179
+ }
180
+ let data;
181
+ try {
182
+ data = await response.json();
183
+ }
184
+ catch (error) {
185
+ throw new Error(`Failed to parse json from ${url}: ${String(error)}`);
186
+ }
187
+ {
188
+ const zWellKnownConfiguration = z.object({
189
+ jwks_uri: z.string()
190
+ });
191
+ assert();
192
+ try {
193
+ zWellKnownConfiguration.parse(data);
194
+ }
195
+ catch {
196
+ throw new Error(`${url} does not have a jwks_uri property`);
197
+ }
198
+ assert(is(data));
199
+ }
200
+ const { jwks_uri } = data;
201
+ return { jwks_uri };
202
+ })();
203
+ const { jwks } = await (async () => {
204
+ const response = await fetch(jwks_uri);
205
+ if (!response.ok) {
206
+ throw new Error(`Failed to fetch public key and algorithm from ${jwks_uri}: ${response.statusText}`);
207
+ }
208
+ let jwks;
209
+ try {
210
+ jwks = await response.json();
211
+ }
212
+ catch (error) {
213
+ throw new Error(`Failed to parse json from ${jwks_uri}: ${String(error)}`);
214
+ }
215
+ {
216
+ const zJwks = z.object({
217
+ keys: z.array(z.object({
218
+ kid: z.string(),
219
+ kty: z.string(),
220
+ use: z.string().optional(),
221
+ alg: z.string().optional()
222
+ }))
223
+ });
224
+ assert();
225
+ try {
226
+ zJwks.parse(jwks);
227
+ }
228
+ catch {
229
+ throw new Error(`${jwks_uri} does not have the expected shape`);
230
+ }
231
+ assert(is(jwks));
232
+ }
233
+ return { jwks };
234
+ })();
235
+ //const signatureKeys = jwks.keys.filter((key): key is JWKS["keys"][number] & { kid: string } => {
236
+ const signatureKeys = jwks.keys.filter(key => {
237
+ if (typeof key.kid !== "string" || key.kid.length === 0) {
238
+ return false;
239
+ }
240
+ if (key.use !== undefined && key.use !== "sig") {
241
+ return false;
242
+ }
243
+ const supportedKty = ["RSA", "EC"];
244
+ if (!supportedKty.includes(key.kty)) {
245
+ return false;
246
+ }
247
+ return true;
248
+ });
249
+ assert(signatureKeys.length !== 0, `No public signing key found at ${jwks_uri}, ${JSON.stringify(jwks, null, 2)}`);
250
+ const kidSet = new Set(signatureKeys.map(({ kid }) => kid));
251
+ const keyResolver = createLocalJWKSet({
252
+ keys: signatureKeys
253
+ });
254
+ return {
255
+ keyResolver,
256
+ kidSet
257
+ };
258
+ }
259
+ //# sourceMappingURL=backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}