oidc-spa 6.1.8 → 6.1.10

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/backend.js CHANGED
@@ -173,39 +173,90 @@ function createOidcBackend(params) {
173
173
  }
174
174
  function fetchPublicKeyAndSigningAlgorithm(params) {
175
175
  return __awaiter(this, void 0, void 0, function () {
176
- var issuerUri, certUri, response, data, error_2, keys, signatureKey, signingAlgorithm, publicKey;
176
+ var issuerUri, jwks_uri, response, data, error_2, zJwks, signatureKey, signingAlgorithm, publicKey;
177
+ var _this = this;
177
178
  return __generator(this, function (_a) {
178
179
  switch (_a.label) {
179
180
  case 0:
180
181
  issuerUri = params.issuerUri;
181
- certUri = "".concat(issuerUri.replace(/\/$/, ""), "/protocol/openid-connect/certs");
182
- return [4 /*yield*/, (0, node_fetch_1.fetch)(certUri)];
182
+ return [4 /*yield*/, (function () { return __awaiter(_this, void 0, void 0, function () {
183
+ var url, response, data, error_3, zWellKnownConfiguration, jwks_uri;
184
+ return __generator(this, function (_a) {
185
+ switch (_a.label) {
186
+ case 0:
187
+ url = "".concat(issuerUri.replace(/\/$/, ""), "/.well-known/openid-configuration");
188
+ return [4 /*yield*/, (0, node_fetch_1.fetch)(url)];
189
+ case 1:
190
+ response = _a.sent();
191
+ if (!response.ok) {
192
+ throw new Error("Failed to fetch openid configuration of the issuerUri: ".concat(issuerUri, " (").concat(url, "): ").concat(response.statusText));
193
+ }
194
+ _a.label = 2;
195
+ case 2:
196
+ _a.trys.push([2, 4, , 5]);
197
+ return [4 /*yield*/, response.json()];
198
+ case 3:
199
+ data = _a.sent();
200
+ return [3 /*break*/, 5];
201
+ case 4:
202
+ error_3 = _a.sent();
203
+ throw new Error("Failed to parse json from ".concat(url, ": ").concat(String(error_3)));
204
+ case 5:
205
+ {
206
+ zWellKnownConfiguration = zod_1.z.object({
207
+ jwks_uri: zod_1.z.string()
208
+ });
209
+ (0, tsafe_1.assert)();
210
+ try {
211
+ zWellKnownConfiguration.parse(data);
212
+ }
213
+ catch (_b) {
214
+ throw new Error("".concat(url, " does not have a jwks_uri property"));
215
+ }
216
+ (0, tsafe_1.assert)((0, tsafe_1.is)(data));
217
+ }
218
+ jwks_uri = data.jwks_uri;
219
+ return [2 /*return*/, { jwks_uri: jwks_uri }];
220
+ }
221
+ });
222
+ }); })()];
183
223
  case 1:
224
+ jwks_uri = (_a.sent()).jwks_uri;
225
+ return [4 /*yield*/, (0, node_fetch_1.fetch)(jwks_uri)];
226
+ case 2:
184
227
  response = _a.sent();
185
228
  if (!response.ok) {
186
- throw new Error("Failed to fetch public key and algorithm from ".concat(certUri, ": ").concat(response.statusText));
229
+ throw new Error("Failed to fetch public key and algorithm from ".concat(jwks_uri, ": ").concat(response.statusText));
187
230
  }
188
- _a.label = 2;
189
- case 2:
190
- _a.trys.push([2, 4, , 5]);
191
- return [4 /*yield*/, response.json()];
231
+ _a.label = 3;
192
232
  case 3:
193
- data = _a.sent();
194
- return [3 /*break*/, 5];
233
+ _a.trys.push([3, 5, , 6]);
234
+ return [4 /*yield*/, response.json()];
195
235
  case 4:
196
- error_2 = _a.sent();
197
- throw new Error("Failed to parse json from ".concat(certUri, ": ").concat(String(error_2)));
236
+ data = _a.sent();
237
+ return [3 /*break*/, 6];
198
238
  case 5:
199
- keys = zod_1.z
200
- .object({
201
- keys: zod_1.z.array(zod_1.z.object({
202
- use: zod_1.z.string(),
203
- alg: zod_1.z.string(),
204
- x5c: zod_1.z.tuple([zod_1.z.string()])
205
- }))
206
- })
207
- .parse(data).keys;
208
- signatureKey = keys.find(function (_a) {
239
+ error_2 = _a.sent();
240
+ throw new Error("Failed to parse json from ".concat(jwks_uri, ": ").concat(String(error_2)));
241
+ case 6:
242
+ {
243
+ zJwks = zod_1.z.object({
244
+ keys: zod_1.z.array(zod_1.z.object({
245
+ use: zod_1.z.string(),
246
+ alg: zod_1.z.string(),
247
+ x5c: zod_1.z.tuple([zod_1.z.string()]).rest(zod_1.z.string())
248
+ }))
249
+ });
250
+ (0, tsafe_1.assert)();
251
+ try {
252
+ zJwks.parse(data);
253
+ }
254
+ catch (_b) {
255
+ throw new Error("".concat(jwks_uri, " does not have the expected shape"));
256
+ }
257
+ (0, tsafe_1.assert)((0, tsafe_1.is)(data));
258
+ }
259
+ signatureKey = data.keys.find(function (_a) {
209
260
  var use = _a.use;
210
261
  return use === "sig";
211
262
  });
package/backend.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"backend.js","sourceRoot":"","sources":["src/backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend.js","sourceRoot":"","sources":["src/backend.ts"],"names":[],"mappings":"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"}
@@ -116,7 +116,7 @@ var loginSilent_1 = require("./loginSilent");
116
116
  var handleOidcCallback_1 = require("./handleOidcCallback");
117
117
  var AwaitableEventEmitter_1 = require("../tools/AwaitableEventEmitter");
118
118
  // NOTE: Replaced at build time
119
- var VERSION = "6.1.8";
119
+ var VERSION = "6.1.10";
120
120
  (0, handleOidcCallback_1.handleOidcCallback)();
121
121
  (_a = window["__oidc-spa.createOidc.GlobalContext"]) !== null && _a !== void 0 ? _a : (window["__oidc-spa.createOidc.GlobalContext"] = {
122
122
  prOidcByConfigId: new Map(),
@@ -67,6 +67,21 @@ function handleOidcCallback_nonMemoized() {
67
67
  if (!(0, StateData_1.getIsStatQueryParamValue)({ maybeStateQueryParamValue: result.value })) {
68
68
  return undefined;
69
69
  }
70
+ if ((0, urlQueryParams_1.retrieveQueryParamFromUrl)({
71
+ url: window.location.href,
72
+ name: "client_id"
73
+ }).wasPresent &&
74
+ (0, urlQueryParams_1.retrieveQueryParamFromUrl)({
75
+ url: window.location.href,
76
+ name: "response_type"
77
+ }).wasPresent &&
78
+ (0, urlQueryParams_1.retrieveQueryParamFromUrl)({
79
+ url: window.location.href,
80
+ name: "redirect_uri"
81
+ }).wasPresent) {
82
+ // NOTE: We are probably in a Keycloakify theme and oidc-spa was loaded by mistake.
83
+ return undefined;
84
+ }
70
85
  return result.value;
71
86
  })();
72
87
  if (stateQueryParamValue === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"handleOidcCallback.js","sourceRoot":"","sources":["../src/oidc/handleOidcCallback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handleOidcCallback.js","sourceRoot":"","sources":["../src/oidc/handleOidcCallback.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oidc-spa",
3
- "version": "6.1.8",
3
+ "version": "6.1.10",
4
4
  "description": "Openidconnect client for Single Page Applications",
5
5
  "repository": {
6
6
  "type": "git",
package/src/backend.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { fetch } from "./vendor/backend/node-fetch";
2
- import { assert, isAmong, id } from "./vendor/backend/tsafe";
2
+ import { assert, isAmong, id, type Equals, is } from "./vendor/backend/tsafe";
3
3
  import * as jwt from "./vendor/backend/jsonwebtoken";
4
4
  import { z } from "./vendor/backend/zod";
5
5
  import { Evt } from "./vendor/backend/evt";
@@ -148,37 +148,97 @@ export async function createOidcBackend<DecodedAccessToken extends Record<string
148
148
  async function fetchPublicKeyAndSigningAlgorithm(params: { issuerUri: string }) {
149
149
  const { issuerUri } = params;
150
150
 
151
- const certUri = `${issuerUri.replace(/\/$/, "")}/protocol/openid-connect/certs`;
151
+ const { jwks_uri } = await (async () => {
152
+ const url = `${issuerUri.replace(/\/$/, "")}/.well-known/openid-configuration`;
152
153
 
153
- const response = await fetch(certUri);
154
+ const response = await fetch(url);
155
+
156
+ if (!response.ok) {
157
+ throw new Error(
158
+ `Failed to fetch openid configuration of the issuerUri: ${issuerUri} (${url}): ${response.statusText}`
159
+ );
160
+ }
161
+
162
+ let data: unknown;
163
+
164
+ try {
165
+ data = await response.json();
166
+ } catch (error) {
167
+ throw new Error(`Failed to parse json from ${url}: ${String(error)}`);
168
+ }
169
+
170
+ {
171
+ type WellKnownConfiguration = {
172
+ jwks_uri: string;
173
+ };
174
+
175
+ const zWellKnownConfiguration = z.object({
176
+ jwks_uri: z.string()
177
+ });
178
+
179
+ assert<Equals<WellKnownConfiguration, z.infer<typeof zWellKnownConfiguration>>>();
180
+
181
+ try {
182
+ zWellKnownConfiguration.parse(data);
183
+ } catch {
184
+ throw new Error(`${url} does not have a jwks_uri property`);
185
+ }
186
+
187
+ assert(is<WellKnownConfiguration>(data));
188
+ }
189
+
190
+ const { jwks_uri } = data;
191
+
192
+ return { jwks_uri };
193
+ })();
194
+
195
+ const response = await fetch(jwks_uri);
154
196
 
155
197
  if (!response.ok) {
156
198
  throw new Error(
157
- `Failed to fetch public key and algorithm from ${certUri}: ${response.statusText}`
199
+ `Failed to fetch public key and algorithm from ${jwks_uri}: ${response.statusText}`
158
200
  );
159
201
  }
160
202
 
161
- let data;
203
+ let data: unknown;
162
204
 
163
205
  try {
164
206
  data = await response.json();
165
207
  } catch (error) {
166
- throw new Error(`Failed to parse json from ${certUri}: ${String(error)}`);
208
+ throw new Error(`Failed to parse json from ${jwks_uri}: ${String(error)}`);
167
209
  }
168
210
 
169
- const { keys } = z
170
- .object({
211
+ {
212
+ type Jwks = {
213
+ keys: {
214
+ use: string;
215
+ alg: string;
216
+ x5c: [string, ...string[]];
217
+ }[];
218
+ };
219
+
220
+ const zJwks = z.object({
171
221
  keys: z.array(
172
222
  z.object({
173
223
  use: z.string(),
174
224
  alg: z.string(),
175
- x5c: z.tuple([z.string()])
225
+ x5c: z.tuple([z.string()]).rest(z.string())
176
226
  })
177
227
  )
178
- })
179
- .parse(data);
228
+ });
229
+
230
+ assert<Equals<Jwks, z.infer<typeof zJwks>>>();
231
+
232
+ try {
233
+ zJwks.parse(data);
234
+ } catch {
235
+ throw new Error(`${jwks_uri} does not have the expected shape`);
236
+ }
237
+
238
+ assert(is<Jwks>(data));
239
+ }
180
240
 
181
- const signatureKey = keys.find(({ use }) => use === "sig");
241
+ const signatureKey = data.keys.find(({ use }) => use === "sig");
182
242
 
183
243
  assert(signatureKey !== undefined, "No signature key found");
184
244
 
@@ -40,6 +40,24 @@ function handleOidcCallback_nonMemoized(): { isHandled: boolean } {
40
40
  return undefined;
41
41
  }
42
42
 
43
+ if (
44
+ retrieveQueryParamFromUrl({
45
+ url: window.location.href,
46
+ name: "client_id"
47
+ }).wasPresent &&
48
+ retrieveQueryParamFromUrl({
49
+ url: window.location.href,
50
+ name: "response_type"
51
+ }).wasPresent &&
52
+ retrieveQueryParamFromUrl({
53
+ url: window.location.href,
54
+ name: "redirect_uri"
55
+ }).wasPresent
56
+ ) {
57
+ // NOTE: We are probably in a Keycloakify theme and oidc-spa was loaded by mistake.
58
+ return undefined;
59
+ }
60
+
43
61
  return result.value;
44
62
  })();
45
63
 
@@ -1,3 +1,4 @@
1
- export { assert } from "tsafe/assert";
1
+ export { assert, is } from "tsafe/assert";
2
2
  export { id } from "tsafe/id";
3
3
  export { isAmong } from "tsafe/isAmong";
4
+ export type { Equals } from "tsafe";
@@ -1,3 +1,4 @@
1
- export { assert } from "tsafe/assert";
1
+ export { assert, is } from "tsafe/assert";
2
2
  export { id } from "tsafe/id";
3
3
  export { isAmong } from "tsafe/isAmong";
4
+ export type { Equals } from "tsafe";
@@ -1,2 +1,2 @@
1
- (()=>{"use strict";var r={720:function(r,e,t){var o,n=this&&this.__extends||(o=function(r,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,e){r.__proto__=e}||function(r,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])},o(r,e)},function(r,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function t(){this.constructor=r}o(r,e),r.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)}),i=this&&this.__read||function(r,e){var t="function"==typeof Symbol&&r[Symbol.iterator];if(!t)return r;var o,n,i=t.call(r),a=[];try{for(;(void 0===e||e-- >0)&&!(o=i.next()).done;)a.push(o.value)}catch(r){n={error:r}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(n)throw n.error}}return a};Object.defineProperty(e,"__esModule",{value:!0}),e.AssertionError=void 0,e.assert=function(r,e){if(0===arguments.length&&(r=!0),void 0===c){if(!r)throw new u("function"==typeof e?e():e)}else c=void 0},e.is=function(r){var e={};if(void 0!==c)throw c=void 0,new Error(s);return c=e,Promise.resolve().then((function(){if(c===e)throw new Error(s)})),null};var a=t(522),u=function(r){function e(e){var t=this.constructor,o=r.call(this,"Wrong assertion encountered"+(e?': "'.concat(e,'"'):""))||this;if(o.originalMessage=e,Object.setPrototypeOf(o,t.prototype),!o.stack)return o;try{(0,a.overwriteReadonlyProp)(o,"stack",o.stack.split("\n").filter((function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];var t=i(r,2)[1];return 1!==t&&2!==t})).join("\n"))}catch(r){}return o}return n(e,r),e}(Error);e.AssertionError=u;var c=void 0,s="Wrong usage of the `is` function refer to https://docs.tsafe.dev/is"},135:(r,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.id=void 0,e.id=function(r){return r}},952:function(r,e){var t=this&&this.__values||function(r){var e="function"==typeof Symbol&&Symbol.iterator,t=e&&r[e],o=0;if(t)return t.call(r);if(r&&"number"==typeof r.length)return{next:function(){return r&&o>=r.length&&(r=void 0),{value:r&&r[o++],done:!r}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:!0}),e.isAmong=function(r,e){var o,n;try{for(var i=t(r),a=i.next();!a.done;a=i.next())if(a.value===e)return!0}catch(r){o={error:r}}finally{try{a&&!a.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return!1}},522:function(r,e){var t=this&&this.__assign||function(){return t=Object.assign||function(r){for(var e,t=1,o=arguments.length;t<o;t++)for(var n in e=arguments[t])Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r},t.apply(this,arguments)};Object.defineProperty(e,"__esModule",{value:!0}),e.overwriteReadonlyProp=void 0,e.overwriteReadonlyProp=function(r,e,o){try{r[e]=o}catch(r){}if(r[e]===o)return o;var n=void 0,i=Object.getOwnPropertyDescriptor(r,e)||{enumerable:!0,configurable:!0};if(i.get)throw new Error("Probably a wrong ides to overwrite ".concat(String(e)," getter"));try{Object.defineProperty(r,e,t(t({},i),{value:o}))}catch(r){n=r}if(r[e]!==o)throw n||new Error("Can't assign");return o}}},e={};function t(o){var n=e[o];if(void 0!==n)return n.exports;var i=e[o]={exports:{}};return r[o].call(i.exports,i,i.exports,t),i.exports}var o={};(()=>{var r=o;Object.defineProperty(r,"__esModule",{value:!0}),r.isAmong=r.id=r.assert=void 0;var e=t(720);Object.defineProperty(r,"assert",{enumerable:!0,get:function(){return e.assert}});var n=t(135);Object.defineProperty(r,"id",{enumerable:!0,get:function(){return n.id}});var i=t(952);Object.defineProperty(r,"isAmong",{enumerable:!0,get:function(){return i.isAmong}})})(),module.exports=o})();
1
+ (()=>{"use strict";var r={720:function(r,e,t){var n,o=this&&this.__extends||(n=function(r,e){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,e){r.__proto__=e}||function(r,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])},n(r,e)},function(r,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function t(){this.constructor=r}n(r,e),r.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)}),i=this&&this.__read||function(r,e){var t="function"==typeof Symbol&&r[Symbol.iterator];if(!t)return r;var n,o,i=t.call(r),a=[];try{for(;(void 0===e||e-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(r){o={error:r}}finally{try{n&&!n.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(e,"__esModule",{value:!0}),e.AssertionError=void 0,e.assert=function(r,e){if(0===arguments.length&&(r=!0),void 0===c){if(!r)throw new u("function"==typeof e?e():e)}else c=void 0},e.is=function(r){var e={};if(void 0!==c)throw c=void 0,new Error(s);return c=e,Promise.resolve().then((function(){if(c===e)throw new Error(s)})),null};var a=t(522),u=function(r){function e(e){var t=this.constructor,n=r.call(this,"Wrong assertion encountered"+(e?': "'.concat(e,'"'):""))||this;if(n.originalMessage=e,Object.setPrototypeOf(n,t.prototype),!n.stack)return n;try{(0,a.overwriteReadonlyProp)(n,"stack",n.stack.split("\n").filter((function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];var t=i(r,2)[1];return 1!==t&&2!==t})).join("\n"))}catch(r){}return n}return o(e,r),e}(Error);e.AssertionError=u;var c=void 0,s="Wrong usage of the `is` function refer to https://docs.tsafe.dev/is"},135:(r,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.id=void 0,e.id=function(r){return r}},952:function(r,e){var t=this&&this.__values||function(r){var e="function"==typeof Symbol&&Symbol.iterator,t=e&&r[e],n=0;if(t)return t.call(r);if(r&&"number"==typeof r.length)return{next:function(){return r&&n>=r.length&&(r=void 0),{value:r&&r[n++],done:!r}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:!0}),e.isAmong=function(r,e){var n,o;try{for(var i=t(r),a=i.next();!a.done;a=i.next())if(a.value===e)return!0}catch(r){n={error:r}}finally{try{a&&!a.done&&(o=i.return)&&o.call(i)}finally{if(n)throw n.error}}return!1}},522:function(r,e){var t=this&&this.__assign||function(){return t=Object.assign||function(r){for(var e,t=1,n=arguments.length;t<n;t++)for(var o in e=arguments[t])Object.prototype.hasOwnProperty.call(e,o)&&(r[o]=e[o]);return r},t.apply(this,arguments)};Object.defineProperty(e,"__esModule",{value:!0}),e.overwriteReadonlyProp=void 0,e.overwriteReadonlyProp=function(r,e,n){try{r[e]=n}catch(r){}if(r[e]===n)return n;var o=void 0,i=Object.getOwnPropertyDescriptor(r,e)||{enumerable:!0,configurable:!0};if(i.get)throw new Error("Probably a wrong ides to overwrite ".concat(String(e)," getter"));try{Object.defineProperty(r,e,t(t({},i),{value:n}))}catch(r){o=r}if(r[e]!==n)throw o||new Error("Can't assign");return n}}},e={};function t(n){var o=e[n];if(void 0!==o)return o.exports;var i=e[n]={exports:{}};return r[n].call(i.exports,i,i.exports,t),i.exports}var n={};(()=>{var r=n;Object.defineProperty(r,"__esModule",{value:!0}),r.isAmong=r.id=r.is=r.assert=void 0;var e=t(720);Object.defineProperty(r,"assert",{enumerable:!0,get:function(){return e.assert}}),Object.defineProperty(r,"is",{enumerable:!0,get:function(){return e.is}});var o=t(135);Object.defineProperty(r,"id",{enumerable:!0,get:function(){return o.id}});var i=t(952);Object.defineProperty(r,"isAmong",{enumerable:!0,get:function(){return i.isAmong}})})(),module.exports=n})();
2
2
  exports.__oidcSpaBundle = true;