idmission-web-sdk 1.0.100 → 1.0.101

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.
@@ -4,7 +4,7 @@ import { UploadedDocument } from '../additional_document_capture/AdditionalDocum
4
4
  import { SignatureData } from '../signature_capture/data';
5
5
  import { NetworkError, SubmissionError } from './Errors';
6
6
  import { CapturedDocuments } from '../id_capture/CapturedDocuments';
7
- export type TokenState = 'NOT_PARSED' | 'PARSING' | 'GOOD' | 'EXPIRED' | 'INVALID_FORMAT' | 'INVALID_SIGNATURE' | 'MISSING' | 'PUBLIC_KEY_LOAD_FAILED';
7
+ export type TokenState = 'NOT_PARSED' | 'PARSING' | 'GOOD' | 'MISSING' | 'EXPIRED' | 'INVALID_FORMAT' | 'INVALID_SIGNATURE' | 'ISSUER_NOT_ALLOWED' | 'PUBLIC_KEY_LOAD_FAILED';
8
8
  export type SubmissionState = {
9
9
  submit: () => Promise<SubmissionResponse | null>;
10
10
  submissionStatus: SubmissionStatus;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const TokenIssuerNotAllowedErrorOverlay: () => React.JSX.Element;
@@ -46,7 +46,7 @@ var LanguageDetector__default = /*#__PURE__*/_interopDefaultLegacy(LanguageDetec
46
46
  var i18n__default = /*#__PURE__*/_interopDefaultLegacy(i18n);
47
47
  var SignatureCanvas__default = /*#__PURE__*/_interopDefaultLegacy(SignatureCanvas);
48
48
 
49
- var webSdkVersion = '1.0.100';
49
+ var webSdkVersion = '1.0.101';
50
50
 
51
51
  function getPlatform() {
52
52
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -576,6 +576,40 @@ var TokenPublicKeyErrorOverlay = function TokenPublicKeyErrorOverlay(_a) {
576
576
  }, "support@idmission.com"), ".")));
577
577
  };
578
578
 
579
+ var TokenIssuerNotAllowedErrorOverlay = function TokenIssuerNotAllowedErrorOverlay() {
580
+ return /*#__PURE__*/React__default['default'].createElement(OverlayContainer, null, /*#__PURE__*/React__default['default'].createElement(OverlayInner, {
581
+ style: {
582
+ justifyContent: 'center'
583
+ }
584
+ }, /*#__PURE__*/React__default['default'].createElement("h3", {
585
+ style: {
586
+ marginBottom: 8
587
+ }
588
+ }, "IDmission WebSDK failed to load"), /*#__PURE__*/React__default['default'].createElement("p", {
589
+ style: {
590
+ marginBottom: 0
591
+ }
592
+ }, "Required property ", /*#__PURE__*/React__default['default'].createElement("code", null, "submissionToken"), " comes from an unrecognized issuer."), /*#__PURE__*/React__default['default'].createElement("p", {
593
+ style: {
594
+ marginBottom: 0,
595
+ lineHeight: '1.5rem'
596
+ }
597
+ }, "Ensure you are generating a fresh token for each request to the IDmission WebSDK."), /*#__PURE__*/React__default['default'].createElement("p", {
598
+ style: {
599
+ lineHeight: '1.5rem'
600
+ }
601
+ }, "Please refer to the", ' ', /*#__PURE__*/React__default['default'].createElement("a", {
602
+ href: "https://www.npmjs.com/package/idmission-web-sdk#getting-started",
603
+ target: "_blank",
604
+ rel: "noreferrer"
605
+ }, "Getting Started"), ' ', "section of the documentation for information on how to use your credentials to generate a valid", ' ', /*#__PURE__*/React__default['default'].createElement("a", {
606
+ href: "https://jwt.io",
607
+ target: "_blank",
608
+ rel: "noreferrer"
609
+ }, "JSON Web Token"), ' ', "for your IDmission account. Every usage of the IDmission WebSDK must be authorized with a valid JWT from IDmission's servers.")));
610
+ };
611
+
612
+ var allowedTokenIssuers = ['https://demoauth.idmission.com/', 'https://auth.idmission.com/'];
579
613
  var SubmissionContext = /*#__PURE__*/React.createContext({
580
614
  submit: function submit() {
581
615
  return tslib.__awaiter(void 0, void 0, void 0, function () {
@@ -1148,6 +1182,12 @@ var SubmissionProvider = function SubmissionProvider(_a) {
1148
1182
  return [2 /*return*/, setTokenState('INVALID_FORMAT')];
1149
1183
  }
1150
1184
  iss = parsed.iss;
1185
+ if (!allowedTokenIssuers.some(function (allowedIss) {
1186
+ return iss.startsWith(allowedIss);
1187
+ })) {
1188
+ console.error('issuer is not allowed', iss);
1189
+ return [2 /*return*/, setTokenState('ISSUER_NOT_ALLOWED')];
1190
+ }
1151
1191
  _a.label = 1;
1152
1192
  case 1:
1153
1193
  _a.trys.push([1, 4,, 5]);
@@ -1250,6 +1290,9 @@ var SubmissionProvider = function SubmissionProvider(_a) {
1250
1290
  error: tokenError
1251
1291
  });
1252
1292
  }
1293
+ if (tokenState === 'ISSUER_NOT_ALLOWED') {
1294
+ return /*#__PURE__*/React__default['default'].createElement(TokenIssuerNotAllowedErrorOverlay, null);
1295
+ }
1253
1296
  return /*#__PURE__*/React__default['default'].createElement(SubmissionContext.Provider, {
1254
1297
  value: value
1255
1298
  }, geolocationRequired && geolocationBlocked ? ( /*#__PURE__*/React__default['default'].createElement(GeolocationAccessDeniedOverlay, null)) : children, submissionError && ( /*#__PURE__*/React__default['default'].createElement(SubmissionErrorOverlay, {