oidc-spa 8.6.16 → 8.6.18

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oidc-spa",
3
- "version": "8.6.16",
3
+ "version": "8.6.18",
4
4
  "description": "OpenID Connect / OAuth2 solution for Centric Web Applications",
5
5
  "repository": {
6
6
  "type": "git",
@@ -124,7 +124,7 @@
124
124
  "default": "./keycloak-js.js"
125
125
  },
126
126
  "./tools/decodeJwt": {
127
- "module": "./esm/tools/decodeJwt.js",
127
+ "module": "./esm/tools/decodeJwt.mjs",
128
128
  "import": "./esm/tools/decodeJwt.mjs",
129
129
  "default": "./tools/decodeJwt.js"
130
130
  },
@@ -59,6 +59,7 @@ import {
59
59
  getIsStateDataCookieEnabled
60
60
  } from "./StateDataCookie";
61
61
  import { getIsTokenSubstitutionEnabled } from "./tokenPlaceholderSubstitution";
62
+ import { loadWebcryptoLinerShim } from "../tools/loadWebcryptoLinerShim";
62
63
 
63
64
  // NOTE: Replaced at build time
64
65
  const VERSION = "{{OIDC_SPA_VERSION}}";
@@ -388,6 +389,11 @@ export async function createOidc_nonMemoized<
388
389
 
389
390
  const { issuerUri, clientId, configId, log } = preProcessedParams;
390
391
 
392
+ if (window.crypto.subtle === undefined) {
393
+ log?.("window.crypto.subtle not present, lazily loading polyfills.");
394
+ await loadWebcryptoLinerShim();
395
+ }
396
+
391
397
  const getExtraQueryParams = (() => {
392
398
  if (extraQueryParamsOrGetter === undefined) {
393
399
  return undefined;
@@ -356,16 +356,6 @@ export function createLoginOrGoToAuthServer(params: {
356
356
  error => {
357
357
  assert(error instanceof Error, "393430");
358
358
 
359
- if (error.message.includes("Crypto.subtle is available only in secure contexts")) {
360
- throw new Error(
361
- [
362
- `oidc-spa: ${error.message}.`,
363
- "\nTo fix this error see:",
364
- "https://docs.oidc-spa.dev/v/v8/resources/fixing-crypto.subtle-is-available-only-in-secure-contexts-https"
365
- ].join(" ")
366
- );
367
- }
368
-
369
359
  assert(false, `This is a bug in oidc-spa, please report: ${error.message}`);
370
360
  }
371
361
  );
@@ -207,17 +207,6 @@ export async function loginSilent(params: {
207
207
  return;
208
208
  }
209
209
 
210
- if (error.message.includes("Crypto.subtle is available only in secure contexts")) {
211
- clearTimeouts({ wasSuccess: false });
212
- throw new Error(
213
- [
214
- `oidc-spa: ${error.message}.`,
215
- "\nTo fix this error see:",
216
- "https://docs.oidc-spa.dev/v/v8/resources/fixing-crypto.subtle-is-available-only-in-secure-contexts-https"
217
- ].join(" ")
218
- );
219
- }
220
-
221
210
  assert(false, `This is a bug in oidc-spa, please report: ${error.message}`);
222
211
  }
223
212
  );
@@ -0,0 +1,11 @@
1
+ let prLoaded: Promise<void> | undefined = undefined;
2
+
3
+ export function loadWebcryptoLinerShim() {
4
+ if (prLoaded !== undefined) {
5
+ return prLoaded;
6
+ }
7
+
8
+ prLoaded = import("../vendor/frontend/webcrypto-liner-shim").then(() => {});
9
+
10
+ return prLoaded;
11
+ }
@@ -0,0 +1,3 @@
1
+ import "webcrypto-liner-shim";
2
+
3
+ export {};
@@ -0,0 +1 @@
1
+ export declare function loadWebcryptoLinerShim(): Promise<void>;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.loadWebcryptoLinerShim = loadWebcryptoLinerShim;
37
+ let prLoaded = undefined;
38
+ function loadWebcryptoLinerShim() {
39
+ if (prLoaded !== undefined) {
40
+ return prLoaded;
41
+ }
42
+ prLoaded = Promise.resolve().then(() => __importStar(require("../vendor/frontend/webcrypto-liner-shim"))).then(() => { });
43
+ return prLoaded;
44
+ }
45
+ //# sourceMappingURL=loadWebcryptoLinerShim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadWebcryptoLinerShim.js","sourceRoot":"","sources":["../src/tools/loadWebcryptoLinerShim.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wDAQC;AAVD,IAAI,QAAQ,GAA8B,SAAS,CAAC;AAEpD,SAAgB,sBAAsB;IAClC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,QAAQ,GAAG,kDAAO,yCAAyC,IAAE,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAE5E,OAAO,QAAQ,CAAC;AACpB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import "webcrypto-liner-shim";
2
+ export {};