oidc-spa 3.0.2 → 4.0.0

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.
package/README.md CHANGED
@@ -22,9 +22,17 @@
22
22
  <a href="https://docs.oidc-spa.dev">Documentation</a>
23
23
  </p>
24
24
 
25
- An OIDC client tailored for Single Page Applications, particularly suitable for [Vite](https://vitejs.dev/) projects.
26
- This library is intended for scenarios such as integrating your application with Keycloak.
27
- `oidc-spa` is designed to be **very easy to set up and use**, even for those who are not familiar with the OIDC protocol.
25
+ An OIDC client tailored for Single Page Applications, particularly suitable for [Vite](https://vitejs.dev/) projects.\
26
+ This library is intended for scenarios such as integrating your application with [Keycloak](https://www.keycloak.org/). &#x20;
27
+
28
+ In straightforward terms, this library is ideal for those seeking to enable user login/registration in their web application. When used in conjunction with Keycloak (for example), it enables you to offer a modern and secure authentication experience with minimal coding effort. This includes options for signing in via Google, X, GitHub, or other social media platforms. We provide comprehensive guidance from beginning to end.
29
+
30
+ - 🎓 Accessible to all skill levels; no need to be an OIDC expert.
31
+ - 🛠️ Easy to set up; eliminates the need for creating special `/login` `/logout` routes.
32
+ - 🎛️ Minimal API surface for ease of use.
33
+ - ✨ Robust yet optional React integration.
34
+ - 📖 Comprehensive documentation and project examples: End-to-end solutions for authenticating your app.
35
+ - ✅ Best in class type safety: Enhanced API response types based on usage context.
28
36
 
29
37
  ## Comparison with Existing Libraries
30
38
 
package/oidc.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare type Oidc = Oidc.LoggedIn | Oidc.NotLoggedIn;
1
+ export declare type Oidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>> = Oidc.LoggedIn<DecodedIdToken> | Oidc.NotLoggedIn;
2
2
  export declare namespace Oidc {
3
3
  type Common = {
4
4
  params: {
@@ -13,10 +13,10 @@ export declare namespace Oidc {
13
13
  extraQueryParams?: Record<string, string>;
14
14
  }) => Promise<never>;
15
15
  };
16
- type LoggedIn = Common & {
16
+ type LoggedIn<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>> = Common & {
17
17
  isUserLoggedIn: true;
18
18
  renewTokens(): Promise<void>;
19
- getTokens: () => Tokens;
19
+ getTokens: () => Tokens<DecodedIdToken>;
20
20
  subscribeToTokensChange: (onTokenChange: () => void) => {
21
21
  unsubscribe: () => void;
22
22
  };
@@ -27,20 +27,27 @@ export declare namespace Oidc {
27
27
  url: string;
28
28
  }) => Promise<never>;
29
29
  };
30
- type Tokens = {
30
+ type Tokens<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>> = Readonly<{
31
31
  accessToken: string;
32
32
  accessTokenExpirationTime: number;
33
33
  idToken: string;
34
34
  refreshToken: string;
35
35
  refreshTokenExpirationTime: number;
36
- };
36
+ decodedIdToken: DecodedIdToken;
37
+ }>;
37
38
  }
38
- /** @see: https://github.com/garronej/oidc-spa#option-1-usage-without-involving-the-ui-framework */
39
- export declare function createOidc(params: {
39
+ export type ParamsOfCreateOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>> = {
40
40
  issuerUri: string;
41
41
  clientId: string;
42
42
  transformUrlBeforeRedirect?: (url: string) => string;
43
- getExtraQueryParams?: () => Record<string, string>;
43
+ /**
44
+ * Extra query params to be added on the login url.
45
+ * You can provide a function that returns those extra query params, it will be called
46
+ * when login() is called.
47
+ *
48
+ * Example: extraQueryParams: ()=> ({ ui_locales: "fr" })
49
+ */
50
+ extraQueryParams?: Record<string, string> | (() => Record<string, string>);
44
51
  /**
45
52
  * This parameter have to be provided if your App is not hosted at the origin of the subdomain.
46
53
  * For example if your site is hosted by navigating to `https://www.example.com`
@@ -54,4 +61,9 @@ export declare function createOidc(params: {
54
61
  * you are supposed to have created in your `public/` directory.
55
62
  */
56
63
  publicUrl?: string;
57
- }): Promise<Oidc>;
64
+ decodedIdTokenSchema?: {
65
+ parse: (data: unknown) => DecodedIdToken;
66
+ };
67
+ };
68
+ /** @see: https://github.com/garronej/oidc-spa#option-1-usage-without-involving-the-ui-framework */
69
+ export declare function createOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>>(params: ParamsOfCreateOidc<DecodedIdToken>): Promise<Oidc<DecodedIdToken>>;
package/oidc.js CHANGED
@@ -91,16 +91,26 @@ var assert_1 = require("tsafe/assert");
91
91
  var urlQueryParams_1 = require("./tools/urlQueryParams");
92
92
  var fnv1aHashToHex_1 = require("./tools/fnv1aHashToHex");
93
93
  var Deferred_1 = require("./tools/Deferred");
94
+ var decodeJwt_1 = require("./tools/decodeJwt");
94
95
  var paramsToRetrieveFromSuccessfulLogin = ["code", "state", "session_state", "iss"];
95
96
  /** @see: https://github.com/garronej/oidc-spa#option-1-usage-without-involving-the-ui-framework */
96
97
  function createOidc(params) {
97
98
  return __awaiter(this, void 0, void 0, function () {
98
- var issuerUri, clientId, _a, transformUrlBeforeRedirect, getExtraQueryParams, publicUrl_params, publicUrl, configHash, configHashKey, userManager, lastPublicRoute, realPushState_1, hasLoginBeenCalled, login, currentTokens, common, error, onTokenChanges, oidc;
99
+ var issuerUri, clientId, _a, transformUrlBeforeRedirect, extraQueryParamsOrGetter, publicUrl_params, decodedIdTokenSchema, getExtraQueryParams, publicUrl, configHash, configHashKey, oidcClientTsUserManager, lastPublicRoute, realPushState_1, hasLoginBeenCalled, login, initialTokens, common, error, currentTokens, onTokenChanges, oidc;
99
100
  var _this = this;
100
101
  return __generator(this, function (_b) {
101
102
  switch (_b.label) {
102
103
  case 0:
103
- issuerUri = params.issuerUri, clientId = params.clientId, _a = params.transformUrlBeforeRedirect, transformUrlBeforeRedirect = _a === void 0 ? function (url) { return url; } : _a, getExtraQueryParams = params.getExtraQueryParams, publicUrl_params = params.publicUrl;
104
+ issuerUri = params.issuerUri, clientId = params.clientId, _a = params.transformUrlBeforeRedirect, transformUrlBeforeRedirect = _a === void 0 ? function (url) { return url; } : _a, extraQueryParamsOrGetter = params.extraQueryParams, publicUrl_params = params.publicUrl, decodedIdTokenSchema = params.decodedIdTokenSchema;
105
+ getExtraQueryParams = (function () {
106
+ if (typeof extraQueryParamsOrGetter === "function") {
107
+ return extraQueryParamsOrGetter;
108
+ }
109
+ if (extraQueryParamsOrGetter !== undefined) {
110
+ return function () { return extraQueryParamsOrGetter; };
111
+ }
112
+ return undefined;
113
+ })();
104
114
  publicUrl = (function () {
105
115
  if (publicUrl_params === undefined) {
106
116
  return window.location.origin;
@@ -111,7 +121,7 @@ function createOidc(params) {
111
121
  })();
112
122
  configHash = (0, fnv1aHashToHex_1.fnv1aHashToHex)("".concat(issuerUri, " ").concat(clientId));
113
123
  configHashKey = "configHash";
114
- userManager = new oidc_client_ts_1.UserManager({
124
+ oidcClientTsUserManager = new oidc_client_ts_1.UserManager({
115
125
  "authority": issuerUri,
116
126
  "client_id": clientId,
117
127
  "redirect_uri": "" /* provided when calling login */,
@@ -195,7 +205,7 @@ function createOidc(params) {
195
205
  };
196
206
  document.addEventListener("visibilitychange", callback_1);
197
207
  }
198
- return [4 /*yield*/, userManager.signinRedirect({
208
+ return [4 /*yield*/, oidcClientTsUserManager.signinRedirect({
199
209
  redirect_uri: redirect_uri,
200
210
  "redirectMethod": doesCurrentHrefRequiresAuth ? "replace" : "assign"
201
211
  })];
@@ -208,7 +218,7 @@ function createOidc(params) {
208
218
  };
209
219
  return [4 /*yield*/, (function getUser() {
210
220
  return __awaiter(this, void 0, void 0, function () {
211
- var url, result, result, loginSuccessUrl, paramsToRetrieveFromSuccessfulLogin_1, paramsToRetrieveFromSuccessfulLogin_1_1, name_1, result, user, _a, user, _b, dLoginSuccessUrl_1, timeoutDelayMs, timeout_1, listener_1, loginSuccessUrl, user;
221
+ var url, result, result, loginSuccessUrl, paramsToRetrieveFromSuccessfulLogin_1, paramsToRetrieveFromSuccessfulLogin_1_1, name_1, result, oidcClientTsUser, _a, oidcClientTsUser, _b, dLoginSuccessUrl_1, timeoutDelayMs, timeout_1, listener_1, loginSuccessUrl, oidcClientTsUser;
212
222
  var e_1, _c;
213
223
  return __generator(this, function (_d) {
214
224
  switch (_d.label) {
@@ -232,7 +242,12 @@ function createOidc(params) {
232
242
  for (paramsToRetrieveFromSuccessfulLogin_1 = __values(paramsToRetrieveFromSuccessfulLogin), paramsToRetrieveFromSuccessfulLogin_1_1 = paramsToRetrieveFromSuccessfulLogin_1.next(); !paramsToRetrieveFromSuccessfulLogin_1_1.done; paramsToRetrieveFromSuccessfulLogin_1_1 = paramsToRetrieveFromSuccessfulLogin_1.next()) {
233
243
  name_1 = paramsToRetrieveFromSuccessfulLogin_1_1.value;
234
244
  result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({ name: name_1, url: url });
235
- (0, assert_1.assert)(result.wasPresent);
245
+ if (!result.wasPresent) {
246
+ if (name_1 === "iss") {
247
+ continue;
248
+ }
249
+ throw new Error("Missing query param: ".concat(name_1));
250
+ }
236
251
  loginSuccessUrl = (0, urlQueryParams_1.addQueryParamToUrl)({
237
252
  "url": loginSuccessUrl,
238
253
  "name": name_1,
@@ -249,36 +264,36 @@ function createOidc(params) {
249
264
  finally { if (e_1) throw e_1.error; }
250
265
  }
251
266
  window.history.pushState(null, "", url);
252
- user = undefined;
267
+ oidcClientTsUser = undefined;
253
268
  _d.label = 1;
254
269
  case 1:
255
270
  _d.trys.push([1, 3, , 4]);
256
- return [4 /*yield*/, userManager.signinRedirectCallback(loginSuccessUrl)];
271
+ return [4 /*yield*/, oidcClientTsUserManager.signinRedirectCallback(loginSuccessUrl)];
257
272
  case 2:
258
- user = _d.sent();
273
+ oidcClientTsUser = _d.sent();
259
274
  return [3 /*break*/, 4];
260
275
  case 3:
261
276
  _a = _d.sent();
262
277
  //NOTE: The user has likely pressed the back button just after logging in.
263
278
  return [2 /*return*/, undefined];
264
- case 4: return [2 /*return*/, user];
265
- case 5: return [4 /*yield*/, userManager.getUser()];
279
+ case 4: return [2 /*return*/, oidcClientTsUser];
280
+ case 5: return [4 /*yield*/, oidcClientTsUserManager.getUser()];
266
281
  case 6:
267
- user = _d.sent();
268
- if (user === null) {
282
+ oidcClientTsUser = _d.sent();
283
+ if (oidcClientTsUser === null) {
269
284
  return [3 /*break*/, 11];
270
285
  }
271
286
  _d.label = 7;
272
287
  case 7:
273
288
  _d.trys.push([7, 9, , 10]);
274
- return [4 /*yield*/, userManager.signinSilent()];
289
+ return [4 /*yield*/, oidcClientTsUserManager.signinSilent()];
275
290
  case 8:
276
291
  _d.sent();
277
292
  return [3 /*break*/, 10];
278
293
  case 9:
279
294
  _b = _d.sent();
280
295
  return [2 /*return*/, undefined];
281
- case 10: return [2 /*return*/, user];
296
+ case 10: return [2 /*return*/, oidcClientTsUser];
282
297
  case 11:
283
298
  dLoginSuccessUrl_1 = new Deferred_1.Deferred();
284
299
  timeoutDelayMs = 2500;
@@ -318,7 +333,12 @@ function createOidc(params) {
318
333
  for (var paramsToRetrieveFromSuccessfulLogin_2 = __values(paramsToRetrieveFromSuccessfulLogin), paramsToRetrieveFromSuccessfulLogin_2_1 = paramsToRetrieveFromSuccessfulLogin_2.next(); !paramsToRetrieveFromSuccessfulLogin_2_1.done; paramsToRetrieveFromSuccessfulLogin_2_1 = paramsToRetrieveFromSuccessfulLogin_2.next()) {
319
334
  var name_2 = paramsToRetrieveFromSuccessfulLogin_2_1.value;
320
335
  var result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({ name: name_2, url: url });
321
- (0, assert_1.assert)(result.wasPresent);
336
+ if (!result.wasPresent) {
337
+ if (name_2 === "iss") {
338
+ continue;
339
+ }
340
+ throw new Error("Missing query param: ".concat(name_2));
341
+ }
322
342
  loginSuccessUrl = (0, urlQueryParams_1.addQueryParamToUrl)({
323
343
  "url": loginSuccessUrl,
324
344
  "name": name_2,
@@ -336,7 +356,7 @@ function createOidc(params) {
336
356
  dLoginSuccessUrl_1.resolve(loginSuccessUrl);
337
357
  };
338
358
  window.addEventListener("message", listener_1, false);
339
- userManager
359
+ oidcClientTsUserManager
340
360
  .signinSilent({ "silentRequestTimeoutInSeconds": timeoutDelayMs / 1000 })
341
361
  .catch(function () {
342
362
  /* error expected */
@@ -347,19 +367,22 @@ function createOidc(params) {
347
367
  if (loginSuccessUrl === undefined) {
348
368
  return [3 /*break*/, 14];
349
369
  }
350
- return [4 /*yield*/, userManager.signinRedirectCallback(loginSuccessUrl)];
370
+ return [4 /*yield*/, oidcClientTsUserManager.signinRedirectCallback(loginSuccessUrl)];
351
371
  case 13:
352
- user = _d.sent();
353
- return [2 /*return*/, user];
372
+ oidcClientTsUser = _d.sent();
373
+ return [2 /*return*/, oidcClientTsUser];
354
374
  case 14: return [2 /*return*/, undefined];
355
375
  }
356
376
  });
357
377
  });
358
- })().then(function (user) {
359
- if (user === undefined) {
378
+ })().then(function (oidcClientTsUser) {
379
+ if (oidcClientTsUser === undefined) {
360
380
  return undefined;
361
381
  }
362
- var tokens = userToTokens(user);
382
+ var tokens = oidcClientTsUserToTokens({
383
+ oidcClientTsUser: oidcClientTsUser,
384
+ decodedIdTokenSchema: decodedIdTokenSchema
385
+ });
363
386
  if (tokens.refreshTokenExpirationTime < tokens.accessTokenExpirationTime) {
364
387
  console.warn([
365
388
  "The OIDC refresh token shorter than the one of the access token.",
@@ -373,15 +396,15 @@ function createOidc(params) {
373
396
  return error;
374
397
  })];
375
398
  case 1:
376
- currentTokens = _b.sent();
399
+ initialTokens = _b.sent();
377
400
  common = {
378
401
  "params": {
379
402
  issuerUri: issuerUri,
380
403
  clientId: clientId
381
404
  }
382
405
  };
383
- if (currentTokens instanceof Error) {
384
- error = currentTokens;
406
+ if (initialTokens instanceof Error) {
407
+ error = initialTokens;
385
408
  console.error("The OIDC server is down or misconfigured: ".concat(error.message));
386
409
  return [2 /*return*/, (0, id_1.id)(__assign(__assign({}, common), { "isUserLoggedIn": false, "login": function () { return __awaiter(_this, void 0, void 0, function () {
387
410
  return __generator(this, function (_a) {
@@ -390,20 +413,15 @@ function createOidc(params) {
390
413
  });
391
414
  }); } }))];
392
415
  }
393
- if (currentTokens === undefined) {
416
+ if (initialTokens === undefined) {
394
417
  return [2 /*return*/, (0, id_1.id)(__assign(__assign({}, common), { "isUserLoggedIn": false, login: login }))];
395
418
  }
419
+ currentTokens = initialTokens;
396
420
  onTokenChanges = new Set();
397
- oidc = (0, id_1.id)(__assign(__assign({}, common), { "isUserLoggedIn": true, "getTokens": function () { return ({
398
- "accessToken": currentTokens.accessToken,
399
- "idToken": currentTokens.idToken,
400
- "refreshToken": currentTokens.refreshToken,
401
- "refreshTokenExpirationTime": currentTokens.refreshTokenExpirationTime,
402
- "accessTokenExpirationTime": currentTokens.accessTokenExpirationTime
403
- }); }, "logout": function (params) { return __awaiter(_this, void 0, void 0, function () {
421
+ oidc = (0, id_1.id)(__assign(__assign({}, common), { "isUserLoggedIn": true, "getTokens": function () { return currentTokens; }, "logout": function (params) { return __awaiter(_this, void 0, void 0, function () {
404
422
  return __generator(this, function (_a) {
405
423
  switch (_a.label) {
406
- case 0: return [4 /*yield*/, userManager.signoutRedirect({
424
+ case 0: return [4 /*yield*/, oidcClientTsUserManager.signoutRedirect({
407
425
  "post_logout_redirect_uri": (function () {
408
426
  switch (params.redirectTo) {
409
427
  case "current page":
@@ -422,14 +440,21 @@ function createOidc(params) {
422
440
  }
423
441
  });
424
442
  }); }, "renewTokens": function () { return __awaiter(_this, void 0, void 0, function () {
425
- var user;
443
+ var oidcClientTsUser, decodedIdTokenPropertyDescriptor;
426
444
  return __generator(this, function (_a) {
427
445
  switch (_a.label) {
428
- case 0: return [4 /*yield*/, userManager.signinSilent()];
446
+ case 0: return [4 /*yield*/, oidcClientTsUserManager.signinSilent()];
429
447
  case 1:
430
- user = _a.sent();
431
- (0, assert_1.assert)(user !== null);
432
- Object.assign(currentTokens, userToTokens(user));
448
+ oidcClientTsUser = _a.sent();
449
+ (0, assert_1.assert)(oidcClientTsUser !== null);
450
+ decodedIdTokenPropertyDescriptor = Object.getOwnPropertyDescriptor(currentTokens, "decodedIdToken");
451
+ (0, assert_1.assert)(decodedIdTokenPropertyDescriptor !== undefined);
452
+ currentTokens = oidcClientTsUserToTokens({
453
+ oidcClientTsUser: oidcClientTsUser,
454
+ decodedIdTokenSchema: decodedIdTokenSchema
455
+ });
456
+ // NOTE: We do that to preserve the cache and the object reference.
457
+ Object.defineProperty(currentTokens, "decodedIdToken", decodedIdTokenPropertyDescriptor);
433
458
  onTokenChanges.forEach(function (onTokenChange) { return onTokenChange(); });
434
459
  return [2 /*return*/];
435
460
  }
@@ -475,11 +500,12 @@ function createOidc(params) {
475
500
  });
476
501
  }
477
502
  exports.createOidc = createOidc;
478
- function userToTokens(user) {
479
- var accessToken = user.access_token;
503
+ function oidcClientTsUserToTokens(params) {
504
+ var oidcClientTsUser = params.oidcClientTsUser, decodedIdTokenSchema = params.decodedIdTokenSchema;
505
+ var accessToken = oidcClientTsUser.access_token;
480
506
  var accessTokenExpirationTime = (function () {
481
507
  read_from_metadata: {
482
- var expires_at = user.expires_at;
508
+ var expires_at = oidcClientTsUser.expires_at;
483
509
  if (expires_at === undefined) {
484
510
  break read_from_metadata;
485
511
  }
@@ -494,7 +520,7 @@ function userToTokens(user) {
494
520
  }
495
521
  (0, assert_1.assert)(false, "Failed to get access token expiration time");
496
522
  })();
497
- var refreshToken = user.refresh_token;
523
+ var refreshToken = oidcClientTsUser.refresh_token;
498
524
  (0, assert_1.assert)(refreshToken !== undefined, "No refresh token provided by the oidc server");
499
525
  var refreshTokenExpirationTime = (function () {
500
526
  read_from_jwt: {
@@ -506,14 +532,35 @@ function userToTokens(user) {
506
532
  }
507
533
  (0, assert_1.assert)(false, "Failed to get refresh token expiration time");
508
534
  })();
509
- var idToken = user.id_token;
535
+ var idToken = oidcClientTsUser.id_token;
510
536
  (0, assert_1.assert)(idToken !== undefined, "No id token provided by the oidc server");
511
- return {
537
+ var tokens = {
512
538
  accessToken: accessToken,
513
539
  accessTokenExpirationTime: accessTokenExpirationTime,
514
540
  refreshToken: refreshToken,
515
541
  refreshTokenExpirationTime: refreshTokenExpirationTime,
516
- idToken: idToken
542
+ idToken: idToken,
543
+ "decodedIdToken": null
517
544
  };
545
+ var cache = undefined;
546
+ Object.defineProperty(tokens, "decodedIdToken", {
547
+ "get": function () {
548
+ if (cache !== undefined && cache.idToken === this.idToken) {
549
+ return cache.decodedIdToken;
550
+ }
551
+ var decodedIdToken = (0, decodeJwt_1.decodeJwt)(this.idToken);
552
+ if (decodedIdTokenSchema !== undefined) {
553
+ decodedIdToken = decodedIdTokenSchema.parse(decodedIdToken);
554
+ }
555
+ cache = {
556
+ "idToken": this.idToken,
557
+ decodedIdToken: decodedIdToken
558
+ };
559
+ return decodedIdToken;
560
+ },
561
+ "configurable": true,
562
+ "enumerable": true
563
+ });
564
+ return tokens;
518
565
  }
519
566
  //# sourceMappingURL=oidc.js.map
package/oidc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"oidc.js","sourceRoot":"","sources":["src/oidc.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAwD;AACxD,+BAA8B;AAC9B,2EAA0E;AAC1E,uCAAmD;AACnD,yDAAuF;AACvF,yDAAwD;AACxD,6CAA4C;AAuC5C,IAAM,mCAAmC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,CAAU,CAAC;AAE/F,mGAAmG;AACnG,SAAsB,UAAU,CAAC,MAkBhC;;;;;;;oBAEO,SAAS,GAKT,MAAM,UALG,EACT,QAAQ,GAIR,MAAM,SAJE,EACR,KAGA,MAAM,2BAHiC,EAAvC,0BAA0B,mBAAG,UAAA,GAAG,IAAI,OAAA,GAAG,EAAH,CAAG,KAAA,EACvC,mBAAmB,GAEnB,MAAM,oBAFa,EACR,gBAAgB,GAC3B,MAAM,UADqB,CACpB;oBAEL,SAAS,GAAG,CAAC;wBACf,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;4BACjC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAClC,CAAC;wBAED,OAAO,CACH,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC;4BAC/B,CAAC,CAAC,gBAAgB;4BAClB,CAAC,CAAC,UAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,SAAG,gBAAgB,CAAE,CACvD,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACzB,CAAC,CAAC,EAAE,CAAC;oBAEC,UAAU,GAAG,IAAA,+BAAc,EAAC,UAAG,SAAS,cAAI,QAAQ,CAAE,CAAC,CAAC;oBACxD,aAAa,GAAG,YAAY,CAAC;oBAE7B,WAAW,GAAG,IAAI,4BAAW,CAAC;wBAChC,WAAW,EAAE,SAAS;wBACtB,WAAW,EAAE,QAAQ;wBACrB,cAAc,EAAE,EAAE,CAAC,iCAAiC;wBACpD,eAAe,EAAE,MAAM;wBACvB,OAAO,EAAE,gBAAgB;wBACzB,sBAAsB,EAAE,KAAK;wBAC7B,qBAAqB,EAAE,UAAG,SAAS,8BAAoB,aAAa,cAAI,UAAU,CAAE;qBACvF,CAAC,CAAC;oBAEC,eAAe,GAAuB,SAAS,CAAC;oBAEpD,CAAC;wBACS,kBAAgB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACtD,OAAO,CAAC,SAAS,GAAG,SAAS,SAAS;4BAAC,cAAO;iCAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;gCAAP,yBAAO;;4BAC1C,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;4BACvC,OAAO,eAAa,wCAAI,IAAI,WAAE;wBAClC,CAAC,CAAC;oBACN,CAAC;oBAEG,kBAAkB,GAAG,KAAK,CAAC;oBAEzB,KAAK,GAA8B,UAAO,EAG/C;4BAFG,2BAA2B,iCAAA,EAC3B,gBAAgB,sBAAA;;4BAehB,SAAS,GAAG;gCAAC,cAA+C;qCAA/C,UAA+C,EAA/C,qBAA+C,EAA/C,IAA+C;oCAA/C,yBAA+C;;gCACxD,IAAM,WAAW,QAAO,QAAQ,YAAR,QAAQ,iCAAI,IAAI,aAAC,CAAC;gCAE1C,OAAO,IAAI,KAAK,CAAC,WAAW,EAAE;oCAC1B,KAAK,EAAE,UAAC,MAAM,EAAE,IAAI;wCAChB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;4CAClB,IAAI,KAAG,GAAG,WAAW,CAAC,IAAI,CAAC;4CAE3B,MAAM,CAAC,OAAO,uBACP,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,EAAI,GACvB,gBAAgB,EACrB,CAAC,OAAO,CACN,UAAC,EAAa;oDAAb,KAAA,aAAa,EAAZ,IAAI,QAAA,EAAE,KAAK,QAAA;gDACT,OAAA,CAAC,KAAG,GAAG,IAAA,mCAAkB,EAAC;oDACtB,GAAG,OAAA;oDACH,IAAI,MAAA;oDACJ,KAAK,OAAA;iDACR,CAAC,CAAC,MAAM,CAAC;4CAJV,CAIU,CACjB,CAAC;4CAEF,KAAG,GAAG,0BAA0B,CAAC,KAAG,CAAC,CAAC;4CAEtC,OAAO,KAAG,CAAC;wCACf,CAAC;wCAED,kBAAkB;wCAClB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;oCACxB,CAAC;iCACJ,CAAC,CAAC;4BACP,CAAC;;;;;wCA1CD,0EAA0E;wCAC1E,0EAA0E;wCAC1E,0EAA0E;wCAC1E,oDAAoD;wCAEpD,IAAI,kBAAkB,EAAE,CAAC;4CACrB,sBAAO,IAAI,OAAO,CAAQ,cAAO,CAAC,CAAC,EAAC;wCACxC,CAAC;wCAED,kBAAkB,GAAG,IAAI,CAAC;wCAEpB,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC;wCAiC5B,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;wCAEvC,YAAY,GAAK,IAAA,mCAAkB,EAAC;4CAChD,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;4CAC3B,MAAM,EAAE,aAAa;4CACrB,OAAO,EAAE,UAAU;yCACtB,CAAC,OAJ0B,CAIzB;wCAEH,IAAI,2BAA2B,EAAE,CAAC;4CACxB,aAAW;gDACb,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;oDACzC,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,UAAQ,CAAC,CAAC;oDAE3D,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;wDAChC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,eAAe,CAAC;oDAC3C,CAAC;yDAAM,CAAC;wDACJ,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oDAC1B,CAAC;gDACL,CAAC;4CACL,CAAC,CAAC;4CACF,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,UAAQ,CAAC,CAAC;wCAC5D,CAAC;wCAED,qBAAM,WAAW,CAAC,cAAc,CAAC;gDAC7B,YAAY,cAAA;gDACZ,gBAAgB,EAAE,2BAA2B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;6CACvE,CAAC,EAAA;;wCAHF,SAGE,CAAC;wCACH,sBAAO,IAAI,OAAO,CAAQ,cAAO,CAAC,CAAC,EAAC;;;;qBACvC,CAAC;oBAEoB,qBAAM,CAAC,SAAe,OAAO;;;;;;;4CAEvC,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;4CAE/B,CAAC;gDACS,MAAM,GAAG,IAAA,0CAAyB,EAAC,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC;gDAEzE,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;oDACpD,wBAAyC;gDAC7C,CAAC;gDAED,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;4CACxB,CAAC;4CAED,CAAC;gDACS,MAAM,GAAG,IAAA,0CAAyB,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC;gDAEnE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oDACpB,MAAM,IAAI,KAAK,CAAC,sBAAe,MAAM,CAAC,KAAK,CAAE,CAAC,CAAC;gDACnD,CAAC;4CACL,CAAC;4CAEG,eAAe,GAAG,mBAAmB,CAAC;;gDAE1C,KAAmB,wCAAA,SAAA,mCAAmC,CAAA,iOAAE,CAAC;oDAApD;oDACK,MAAM,GAAG,IAAA,0CAAyB,EAAC,EAAE,IAAI,QAAA,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC;oDAExD,IAAA,eAAM,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oDAE1B,eAAe,GAAG,IAAA,mCAAkB,EAAC;wDACjC,KAAK,EAAE,eAAe;wDACtB,MAAM,EAAE,MAAI;wDACZ,OAAO,EAAE,MAAM,CAAC,KAAK;qDACxB,CAAC,CAAC,MAAM,CAAC;oDAEV,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;gDACxB,CAAC;;;;;;;;;4CAED,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;4CAEpC,IAAI,GAAqB,SAAS,CAAC;;;;4CAG5B,qBAAM,WAAW,CAAC,sBAAsB,CAAC,eAAe,CAAC,EAAA;;4CAAhE,IAAI,GAAG,SAAyD,CAAC;;;;4CAEjE,0EAA0E;4CAC1E,sBAAO,SAAS,EAAC;gDAGrB,sBAAO,IAAI,EAAC;gDAIC,qBAAM,WAAW,CAAC,OAAO,EAAE,EAAA;;4CAAlC,IAAI,GAAG,SAA2B;4CAExC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gDAChB,yBAA2B;4CAC/B,CAAC;;;;4CAIG,qBAAM,WAAW,CAAC,YAAY,EAAE,EAAA;;4CAAhC,SAAgC,CAAC;;;;4CAEjC,sBAAO,SAAS,EAAC;iDAGrB,sBAAO,IAAI,EAAC;;4CAIN,qBAAmB,IAAI,mBAAQ,EAAsB,CAAC;4CAEtD,cAAc,GAAG,IAAI,CAAC;4CAEtB,YAAU,UAAU,CACtB;gDACI,OAAA,kBAAgB,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,kDAA2C,QAAQ,CAAE,CAAC,CACnE;4CAFD,CAEC,EACL,cAAc,CACjB,CAAC;4CAEI,aAAW,UAAC,KAAmB;;gDACjC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oDACjC,OAAO;gDACX,CAAC;gDAED,IAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC;gDAEvB,CAAC;oDACG,IAAI,MAAM,SAA8C,CAAC;oDAEzD,IAAI,CAAC;wDACD,MAAM,GAAG,IAAA,0CAAyB,EAAC,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC;oDACvE,CAAC;oDAAC,WAAM,CAAC;wDACL,wDAAwD;wDACxD,OAAO;oDACX,CAAC;oDAED,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;wDACpD,OAAO;oDACX,CAAC;gDACL,CAAC;gDAED,YAAY,CAAC,SAAO,CAAC,CAAC;gDAEtB,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,UAAQ,CAAC,CAAC;gDAEhD,CAAC;oDACG,IAAM,MAAM,GAAG,IAAA,0CAAyB,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC;oDAEnE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;wDACpB,kBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;wDACpC,OAAO;oDACX,CAAC;gDACL,CAAC;gDAED,IAAI,eAAe,GAAG,mBAAmB,CAAC;;oDAE1C,KAAmB,IAAA,wCAAA,SAAA,mCAAmC,CAAA,wFAAA,yIAAE,CAAC;wDAApD,IAAM,MAAI,gDAAA;wDACX,IAAM,MAAM,GAAG,IAAA,0CAAyB,EAAC,EAAE,IAAI,QAAA,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC;wDAExD,IAAA,eAAM,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC;wDAE1B,eAAe,GAAG,IAAA,mCAAkB,EAAC;4DACjC,KAAK,EAAE,eAAe;4DACtB,MAAM,EAAE,MAAI;4DACZ,OAAO,EAAE,MAAM,CAAC,KAAK;yDACxB,CAAC,CAAC,MAAM,CAAC;oDACd,CAAC;;;;;;;;;gDAED,kBAAgB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;4CAC9C,CAAC,CAAC;4CAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAQ,EAAE,KAAK,CAAC,CAAC;4CAEpD,WAAW;iDACN,YAAY,CAAC,EAAE,+BAA+B,EAAE,cAAc,GAAG,IAAI,EAAE,CAAC;iDACxE,KAAK,CAAC;gDACH,oBAAoB;4CACxB,CAAC,CAAC,CAAC;4CAEiB,qBAAM,kBAAgB,CAAC,EAAE,EAAA;;4CAA3C,eAAe,GAAG,SAAyB;4CAEjD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;gDAChC,yBAAoC;4CACxC,CAAC;4CAEY,qBAAM,WAAW,CAAC,sBAAsB,CAAC,eAAe,CAAC,EAAA;;4CAAhE,IAAI,GAAG,SAAyD;4CAEtE,sBAAO,IAAI,EAAC;iDAGhB,sBAAO,SAAS,EAAC;;;;yBACpB,CAAC,EAAE,CAAC,IAAI,CACL,UAAA,IAAI;4BACA,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gCACrB,OAAO,SAAS,CAAC;4BACrB,CAAC;4BAED,IAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;4BAElC,IAAI,MAAM,CAAC,0BAA0B,GAAG,MAAM,CAAC,yBAAyB,EAAE,CAAC;gCACvE,OAAO,CAAC,IAAI,CACR;oCACI,kEAAkE;oCAClE,uDAAuD;oCACvD,mDAA4C,QAAQ,cAAI,SAAS,CAAE;iCACtE,CAAC,IAAI,CAAC,GAAG,CAAC,CACd,CAAC;4BACN,CAAC;4BAED,OAAO,MAAM,CAAC;wBAClB,CAAC,EACD,UAAA,KAAK;4BACD,IAAA,eAAM,EAAC,KAAK,YAAY,KAAK,CAAC,CAAC;4BAC/B,OAAO,KAAK,CAAC;wBACjB,CAAC,CACJ,EAAA;;oBAlLK,aAAa,GAAG,SAkLrB;oBAEK,MAAM,GAAgB;wBACxB,QAAQ,EAAE;4BACN,SAAS,WAAA;4BACT,QAAQ,UAAA;yBACX;qBACJ,CAAC;oBAEF,IAAI,aAAa,YAAY,KAAK,EAAE,CAAC;wBAC3B,KAAK,GAAG,aAAa,CAAC;wBAE5B,OAAO,CAAC,KAAK,CAAC,oDAA6C,KAAK,CAAC,OAAO,CAAE,CAAC,CAAC;wBAE5E,sBAAO,IAAA,OAAE,wBACF,MAAM,KACT,gBAAgB,EAAE,KAAK,EACvB,OAAO,EAAE;;wCACL,KAAK,CAAC,kEAAkE,CAAC,CAAC;wCAC1E,sBAAO,IAAI,OAAO,CAAQ,cAAO,CAAC,CAAC,EAAC;;qCACvC,IACH,EAAC;oBACP,CAAC;oBAED,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;wBAC9B,sBAAO,IAAA,OAAE,wBACF,MAAM,KACT,gBAAgB,EAAE,KAAK,EACvB,KAAK,OAAA,IACP,EAAC;oBACP,CAAC;oBAEK,cAAc,GAAG,IAAI,GAAG,EAAc,CAAC;oBAEvC,IAAI,GAAG,IAAA,OAAE,wBACR,MAAM,KACT,gBAAgB,EAAE,IAAI,EACtB,WAAW,EAAE,cAAM,OAAA,CAAC;4BAChB,aAAa,EAAE,aAAa,CAAC,WAAW;4BACxC,SAAS,EAAE,aAAa,CAAC,OAAO;4BAChC,cAAc,EAAE,aAAa,CAAC,YAAY;4BAC1C,4BAA4B,EAAE,aAAa,CAAC,0BAA0B;4BACtE,2BAA2B,EAAE,aAAa,CAAC,yBAAyB;yBACvE,CAAC,EANiB,CAMjB,EACF,QAAQ,EAAE,UAAM,MAAM;;;4CAClB,qBAAM,WAAW,CAAC,eAAe,CAAC;4CAC9B,0BAA0B,EAAE,CAAC;gDACzB,QAAQ,MAAM,CAAC,UAAU,EAAE,CAAC;oDACxB,KAAK,cAAc;wDACf,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;oDAChC,KAAK,MAAM;wDACP,OAAO,SAAS,CAAC;oDACrB,KAAK,cAAc;wDACf,OAAO,MAAM,CAAC,GAAG,CAAC;gDAC1B,CAAC;gDACD,IAAA,eAAM,EAA+B,KAAK,CAAC,CAAC;4CAChD,CAAC,CAAC,EAAE;yCACP,CAAC,EAAA;;wCAZF,SAYE,CAAC;wCACH,sBAAO,IAAI,OAAO,CAAQ,cAAO,CAAC,CAAC,EAAC;;;6BACvC,EACD,aAAa,EAAE;;;;4CACE,qBAAM,WAAW,CAAC,YAAY,EAAE,EAAA;;wCAAvC,IAAI,GAAG,SAAgC;wCAE7C,IAAA,eAAM,EAAC,IAAI,KAAK,IAAI,CAAC,CAAC;wCAEtB,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;wCAEjD,cAAc,CAAC,OAAO,CAAC,UAAA,aAAa,IAAI,OAAA,aAAa,EAAE,EAAf,CAAe,CAAC,CAAC;;;;6BAC5D,EACD,yBAAyB,EAAE,UAAA,aAAa;4BACpC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;4BAElC,OAAO;gCACH,aAAa,EAAE;oCACX,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gCACzC,CAAC;6BACJ,CAAC;wBACN,CAAC,IACH,CAAC;oBAEH,CAAC,SAAS,sBAAsB;wBAA/B,iBAcA;wBAbG,IAAM,kBAAkB,GACpB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,yBAAyB,EAAE,aAAa,CAAC,0BAA0B,CAAC;4BAC3F,IAAI,CAAC,GAAG,EAAE,CAAC;wBAEf,UAAU,CAAC;;;;;;wCAEH,qBAAM,IAAI,CAAC,WAAW,EAAE,EAAA;;wCAAxB,SAAwB,CAAC;;;;wCAEzB,qBAAM,KAAK,CAAC,EAAE,6BAA6B,EAAE,IAAI,EAAE,CAAC,EAAA;;wCAApD,SAAoD,CAAC;;;wCAGzD,sBAAsB,EAAE,CAAC;;;;6BAC5B,EAAE,kBAAkB,GAAG,6BAA6B,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;oBACrE,CAAC,CAAC,EAAE,CAAC;oBAEL,sBAAO,IAAI,EAAC;;;;CACf;AAjaD,gCAiaC;AAED,SAAS,YAAY,CAAC,IAAU;IAC5B,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;IAEtC,IAAM,yBAAyB,GAAG,CAAC;QAC/B,kBAAkB,EAAE,CAAC;YACT,IAAA,UAAU,GAAK,IAAI,WAAT,CAAU;YAE5B,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,kBAAkB,CAAC;YAC7B,CAAC;YAED,OAAO,UAAU,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,aAAa,EAAE,CAAC;YACZ,IAAM,cAAc,GAAG,IAAA,iDAAuB,EAAC,WAAW,CAAC,CAAC;YAE5D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,aAAa,CAAC;YACxB,CAAC;YAED,OAAO,cAAc,CAAC;QAC1B,CAAC;QAED,IAAA,eAAM,EAAC,KAAK,EAAE,4CAA4C,CAAC,CAAC;IAChE,CAAC,CAAC,EAAE,CAAC;IAEL,IAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;IAExC,IAAA,eAAM,EAAC,YAAY,KAAK,SAAS,EAAE,8CAA8C,CAAC,CAAC;IAEnF,IAAM,0BAA0B,GAAG,CAAC;QAChC,aAAa,EAAE,CAAC;YACZ,IAAM,cAAc,GAAG,IAAA,iDAAuB,EAAC,YAAY,CAAC,CAAC;YAE7D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,aAAa,CAAC;YACxB,CAAC;YAED,OAAO,cAAc,CAAC;QAC1B,CAAC;QAED,IAAA,eAAM,EAAC,KAAK,EAAE,6CAA6C,CAAC,CAAC;IACjE,CAAC,CAAC,EAAE,CAAC;IAEL,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;IAE9B,IAAA,eAAM,EAAC,OAAO,KAAK,SAAS,EAAE,yCAAyC,CAAC,CAAC;IAEzE,OAAO;QACH,WAAW,aAAA;QACX,yBAAyB,2BAAA;QACzB,YAAY,cAAA;QACZ,0BAA0B,4BAAA;QAC1B,OAAO,SAAA;KACV,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"oidc.js","sourceRoot":"","sources":["src/oidc.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "oidc-spa",
3
- "version": "3.0.2",
3
+ "version": "4.0.0",
4
4
  "description": "Openidconnect client for Single Page Applications",
5
5
  "repository": {
6
6
  "type": "git",
7
- "url": "git://github.com/garronej/oidc-spa.git"
7
+ "url": "git://github.com/keycloakify/oidc-spa.git"
8
8
  },
9
9
  "main": "./index.js",
10
10
  "types": "./index.d.ts",
@@ -16,6 +16,7 @@
16
16
  "./tools/decodeJwt": "./tools/decodeJwt.js",
17
17
  "./tools/Deferred": "./tools/Deferred.js",
18
18
  "./tools/fnv1aHashToHex": "./tools/fnv1aHashToHex.js",
19
+ "./tools/powerhooks/useGuaranteedMemo": "./tools/powerhooks/useGuaranteedMemo.js",
19
20
  "./tools/readExpirationTimeInJwt": "./tools/readExpirationTimeInJwt.js",
20
21
  "./tools/urlQueryParams": "./tools/urlQueryParams.js"
21
22
  },
@@ -29,7 +30,7 @@
29
30
  "pre-commit": "lint-staged -v"
30
31
  }
31
32
  },
32
- "author": "u/garronej",
33
+ "author": "u/garronej & u/ddecrulle",
33
34
  "license": "MIT",
34
35
  "files": [
35
36
  "./src/index.ts",
@@ -38,6 +39,7 @@
38
39
  "./src/tools/Deferred.ts",
39
40
  "./src/tools/decodeJwt.ts",
40
41
  "./src/tools/fnv1aHashToHex.ts",
42
+ "./src/tools/powerhooks/useGuaranteedMemo.ts",
41
43
  "./src/tools/readExpirationTimeInJwt.ts",
42
44
  "./src/tools/urlQueryParams.ts",
43
45
  "./index.d.ts",
@@ -58,6 +60,9 @@
58
60
  "./tools/fnv1aHashToHex.d.ts",
59
61
  "./tools/fnv1aHashToHex.js",
60
62
  "./tools/fnv1aHashToHex.js.map",
63
+ "./tools/powerhooks/useGuaranteedMemo.d.ts",
64
+ "./tools/powerhooks/useGuaranteedMemo.js",
65
+ "./tools/powerhooks/useGuaranteedMemo.js.map",
61
66
  "./tools/readExpirationTimeInJwt.d.ts",
62
67
  "./tools/readExpirationTimeInJwt.js",
63
68
  "./tools/readExpirationTimeInJwt.js.map",
@@ -66,7 +71,12 @@
66
71
  "./tools/urlQueryParams.js.map"
67
72
  ],
68
73
  "keywords": [],
69
- "homepage": "https://github.com/garronej/oidc-spa",
74
+ "homepage": "https://docs.oidc-spa.dev/",
75
+ "dependencies": {
76
+ "jwt-decode": "^3.1.2",
77
+ "oidc-client-ts": "^2.3.0",
78
+ "tsafe": "^1.6.5"
79
+ },
70
80
  "devDependencies": {
71
81
  "@types/node": "^20.2.1",
72
82
  "@types/react": "^18.2.6",
@@ -80,10 +90,5 @@
80
90
  },
81
91
  "publishConfig": {
82
92
  "access": "public"
83
- },
84
- "dependencies": {
85
- "jwt-decode": "^3.1.2",
86
- "oidc-client-ts": "^2.3.0",
87
- "tsafe": "^1.6.5"
88
93
  }
89
94
  }
package/react.d.ts CHANGED
@@ -1,43 +1,35 @@
1
1
  import { type ReactNode } from "react";
2
- import { createOidc, type Oidc } from "./oidc";
3
- /** @see: https://github.com/garronej/oidc-spa#option-2-usage-directly-within-react */
4
- export declare function createOidcProvider(params: Parameters<typeof createOidc>[0]): {
5
- OidcProvider: (props: {
6
- fallback?: ReactNode;
7
- children: ReactNode;
8
- }) => import("react/jsx-runtime").JSX.Element;
9
- prOidc: Promise<Oidc>;
10
- };
11
- export type ReactiveOidc<DecodedIdToken extends Record<string, unknown>> = ReactiveOidc.NotLoggedIn | ReactiveOidc.LoggedIn<DecodedIdToken>;
12
- export declare namespace ReactiveOidc {
2
+ import { type ParamsOfCreateOidc, type Oidc } from "./oidc";
3
+ export type OidcReact<DecodedIdToken extends Record<string, unknown>> = OidcReact.NotLoggedIn | OidcReact.LoggedIn<DecodedIdToken>;
4
+ export declare namespace OidcReact {
13
5
  type Common = Oidc.Common;
14
6
  type NotLoggedIn = Common & {
15
7
  isUserLoggedIn: false;
16
8
  login: Oidc.NotLoggedIn["login"];
17
- oidcTokens: undefined;
18
- logout: undefined;
9
+ oidcTokens?: never;
10
+ logout?: never;
19
11
  };
20
12
  type LoggedIn<DecodedIdToken extends Record<string, unknown>> = Common & {
21
13
  isUserLoggedIn: true;
22
- oidcTokens: ReturnType<Oidc.LoggedIn["getTokens"]> & {
23
- decodedIdToken: DecodedIdToken;
24
- };
14
+ oidcTokens: Oidc.Tokens<DecodedIdToken>;
25
15
  logout: Oidc.LoggedIn["logout"];
26
16
  renewTokens: Oidc.LoggedIn["renewTokens"];
27
- login: undefined;
17
+ login?: never;
28
18
  };
29
19
  }
30
- export declare function createUseOidc<DecodedOidcIdToken extends Record<string, unknown> = Record<string, unknown>>(params?: {
31
- decodedIdTokenSchema?: {
32
- parse: (data: unknown) => DecodedOidcIdToken;
33
- };
34
- }): {
20
+ /** @see: https://github.com/garronej/oidc-spa#option-2-usage-directly-within-react */
21
+ export declare function createReactOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>>(params: ParamsOfCreateOidc<DecodedIdToken>): {
22
+ OidcProvider: (props: {
23
+ fallback?: ReactNode;
24
+ children: ReactNode;
25
+ }) => import("react/jsx-runtime").JSX.Element;
35
26
  useOidc: {
36
27
  (params?: {
37
28
  assertUserLoggedIn: false;
38
- }): ReactiveOidc<DecodedOidcIdToken>;
29
+ }): OidcReact<DecodedIdToken>;
39
30
  (params: {
40
31
  assertUserLoggedIn: true;
41
- }): ReactiveOidc.LoggedIn<DecodedOidcIdToken>;
32
+ }): OidcReact.LoggedIn<DecodedIdToken>;
42
33
  };
34
+ prOidc: Promise<Oidc<DecodedIdToken>>;
43
35
  };