@medplum/core 1.0.4 → 1.0.5

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.
@@ -181,6 +181,7 @@ export interface GoogleLoginRequest extends BaseLoginRequest {
181
181
  }
182
182
  export interface LoginAuthenticationResponse {
183
183
  readonly login: string;
184
+ readonly mfaRequired?: boolean;
184
185
  readonly code?: string;
185
186
  readonly memberships?: ProjectMembership[];
186
187
  }
@@ -10,8 +10,8 @@ import { createReference, arrayBufferToBase64 } from './utils.js';
10
10
 
11
11
  // PKCE auth based on:
12
12
  // https://aws.amazon.com/blogs/security/how-to-add-authentication-single-page-web-application-with-amazon-cognito-oauth2-implementation/
13
- var _MedplumClient_instances, _MedplumClient_fetch, _MedplumClient_createPdf, _MedplumClient_storage, _MedplumClient_requestCache, _MedplumClient_cacheTime, _MedplumClient_baseUrl, _MedplumClient_clientId, _MedplumClient_authorizeUrl, _MedplumClient_tokenUrl, _MedplumClient_logoutUrl, _MedplumClient_onUnauthenticated, _MedplumClient_accessToken, _MedplumClient_refreshToken, _MedplumClient_refreshPromise, _MedplumClient_profilePromise, _MedplumClient_profile, _MedplumClient_config, _MedplumClient_addLogin, _MedplumClient_refreshProfile, _MedplumClient_getCacheEntry, _MedplumClient_setCacheEntry, _MedplumClient_request, _MedplumClient_addFetchOptionsDefaults, _MedplumClient_setRequestContentType, _MedplumClient_setRequestBody, _MedplumClient_handleUnauthenticated, _MedplumClient_requestAuthorization, _MedplumClient_refresh, _MedplumClient_fetchTokens, _MedplumClient_verifyTokens, _MedplumClient_setupStorageListener;
14
- const MEDPLUM_VERSION = "1.0.4-6dbdb7f6";
13
+ var _MedplumClient_instances, _MedplumClient_fetch, _MedplumClient_createPdf, _MedplumClient_storage, _MedplumClient_requestCache, _MedplumClient_cacheTime, _MedplumClient_baseUrl, _MedplumClient_authorizeUrl, _MedplumClient_tokenUrl, _MedplumClient_logoutUrl, _MedplumClient_onUnauthenticated, _MedplumClient_clientId, _MedplumClient_clientSecret, _MedplumClient_accessToken, _MedplumClient_refreshToken, _MedplumClient_refreshPromise, _MedplumClient_profilePromise, _MedplumClient_profile, _MedplumClient_config, _MedplumClient_addLogin, _MedplumClient_refreshProfile, _MedplumClient_getCacheEntry, _MedplumClient_setCacheEntry, _MedplumClient_request, _MedplumClient_addFetchOptionsDefaults, _MedplumClient_setRequestContentType, _MedplumClient_setRequestBody, _MedplumClient_handleUnauthenticated, _MedplumClient_requestAuthorization, _MedplumClient_refresh, _MedplumClient_fetchTokens, _MedplumClient_verifyTokens, _MedplumClient_setupStorageListener;
14
+ const MEDPLUM_VERSION = "1.0.5-53328b63";
15
15
  const DEFAULT_BASE_URL = 'https://api.medplum.com/';
16
16
  const DEFAULT_RESOURCE_CACHE_SIZE = 1000;
17
17
  const DEFAULT_CACHE_TIME = 60000; // 60 seconds
@@ -81,11 +81,12 @@ class MedplumClient extends EventTarget {
81
81
  _MedplumClient_requestCache.set(this, void 0);
82
82
  _MedplumClient_cacheTime.set(this, void 0);
83
83
  _MedplumClient_baseUrl.set(this, void 0);
84
- _MedplumClient_clientId.set(this, void 0);
85
84
  _MedplumClient_authorizeUrl.set(this, void 0);
86
85
  _MedplumClient_tokenUrl.set(this, void 0);
87
86
  _MedplumClient_logoutUrl.set(this, void 0);
88
87
  _MedplumClient_onUnauthenticated.set(this, void 0);
88
+ _MedplumClient_clientId.set(this, void 0);
89
+ _MedplumClient_clientSecret.set(this, void 0);
89
90
  _MedplumClient_accessToken.set(this, void 0);
90
91
  _MedplumClient_refreshToken.set(this, void 0);
91
92
  _MedplumClient_refreshPromise.set(this, void 0);
@@ -1365,6 +1366,8 @@ class MedplumClient extends EventTarget {
1365
1366
  */
1366
1367
  startClientLogin(clientId, clientSecret) {
1367
1368
  return __awaiter(this, void 0, void 0, function* () {
1369
+ __classPrivateFieldSet(this, _MedplumClient_clientId, clientId, "f");
1370
+ __classPrivateFieldSet(this, _MedplumClient_clientSecret, clientSecret, "f");
1368
1371
  const formBody = new URLSearchParams();
1369
1372
  formBody.set('grant_type', 'client_credentials');
1370
1373
  formBody.set('client_id', clientId);
@@ -1373,7 +1376,7 @@ class MedplumClient extends EventTarget {
1373
1376
  });
1374
1377
  }
1375
1378
  }
1376
- _MedplumClient_fetch = new WeakMap(), _MedplumClient_createPdf = new WeakMap(), _MedplumClient_storage = new WeakMap(), _MedplumClient_requestCache = new WeakMap(), _MedplumClient_cacheTime = new WeakMap(), _MedplumClient_baseUrl = new WeakMap(), _MedplumClient_clientId = new WeakMap(), _MedplumClient_authorizeUrl = new WeakMap(), _MedplumClient_tokenUrl = new WeakMap(), _MedplumClient_logoutUrl = new WeakMap(), _MedplumClient_onUnauthenticated = new WeakMap(), _MedplumClient_accessToken = new WeakMap(), _MedplumClient_refreshToken = new WeakMap(), _MedplumClient_refreshPromise = new WeakMap(), _MedplumClient_profilePromise = new WeakMap(), _MedplumClient_profile = new WeakMap(), _MedplumClient_config = new WeakMap(), _MedplumClient_instances = new WeakSet(), _MedplumClient_addLogin = function _MedplumClient_addLogin(newLogin) {
1379
+ _MedplumClient_fetch = new WeakMap(), _MedplumClient_createPdf = new WeakMap(), _MedplumClient_storage = new WeakMap(), _MedplumClient_requestCache = new WeakMap(), _MedplumClient_cacheTime = new WeakMap(), _MedplumClient_baseUrl = new WeakMap(), _MedplumClient_authorizeUrl = new WeakMap(), _MedplumClient_tokenUrl = new WeakMap(), _MedplumClient_logoutUrl = new WeakMap(), _MedplumClient_onUnauthenticated = new WeakMap(), _MedplumClient_clientId = new WeakMap(), _MedplumClient_clientSecret = new WeakMap(), _MedplumClient_accessToken = new WeakMap(), _MedplumClient_refreshToken = new WeakMap(), _MedplumClient_refreshPromise = new WeakMap(), _MedplumClient_profilePromise = new WeakMap(), _MedplumClient_profile = new WeakMap(), _MedplumClient_config = new WeakMap(), _MedplumClient_instances = new WeakSet(), _MedplumClient_addLogin = function _MedplumClient_addLogin(newLogin) {
1377
1380
  const logins = this.getLogins().filter((login) => { var _a, _b; return ((_a = login.profile) === null || _a === void 0 ? void 0 : _a.reference) !== ((_b = newLogin.profile) === null || _b === void 0 ? void 0 : _b.reference); });
1378
1381
  logins.push(newLogin);
1379
1382
  __classPrivateFieldGet(this, _MedplumClient_storage, "f").setObject('logins', logins);
@@ -1465,17 +1468,14 @@ _MedplumClient_fetch = new WeakMap(), _MedplumClient_createPdf = new WeakMap(),
1465
1468
  options.body = JSON.stringify(data);
1466
1469
  }
1467
1470
  }, _MedplumClient_handleUnauthenticated = function _MedplumClient_handleUnauthenticated(method, url, options) {
1468
- return __awaiter(this, void 0, void 0, function* () {
1469
- return __classPrivateFieldGet(this, _MedplumClient_instances, "m", _MedplumClient_refresh).call(this)
1470
- .then(() => __classPrivateFieldGet(this, _MedplumClient_instances, "m", _MedplumClient_request).call(this, method, url, options))
1471
- .catch((error) => {
1472
- this.clear();
1473
- if (__classPrivateFieldGet(this, _MedplumClient_onUnauthenticated, "f")) {
1474
- __classPrivateFieldGet(this, _MedplumClient_onUnauthenticated, "f").call(this);
1475
- }
1476
- return Promise.reject(error);
1477
- });
1478
- });
1471
+ if (__classPrivateFieldGet(this, _MedplumClient_instances, "m", _MedplumClient_refresh).call(this)) {
1472
+ return __classPrivateFieldGet(this, _MedplumClient_instances, "m", _MedplumClient_request).call(this, method, url, options);
1473
+ }
1474
+ this.clear();
1475
+ if (__classPrivateFieldGet(this, _MedplumClient_onUnauthenticated, "f")) {
1476
+ __classPrivateFieldGet(this, _MedplumClient_onUnauthenticated, "f").call(this);
1477
+ }
1478
+ return Promise.reject(new Error('Unauthenticated'));
1479
1479
  }, _MedplumClient_requestAuthorization = function _MedplumClient_requestAuthorization() {
1480
1480
  return __awaiter(this, void 0, void 0, function* () {
1481
1481
  yield this.startPkce();
@@ -1489,21 +1489,22 @@ _MedplumClient_fetch = new WeakMap(), _MedplumClient_createPdf = new WeakMap(),
1489
1489
  window.location.assign(url.toString());
1490
1490
  });
1491
1491
  }, _MedplumClient_refresh = function _MedplumClient_refresh() {
1492
- return __awaiter(this, void 0, void 0, function* () {
1493
- if (__classPrivateFieldGet(this, _MedplumClient_refreshPromise, "f")) {
1494
- return __classPrivateFieldGet(this, _MedplumClient_refreshPromise, "f");
1495
- }
1496
- if (!__classPrivateFieldGet(this, _MedplumClient_refreshToken, "f")) {
1497
- this.clear();
1498
- throw new Error('Invalid refresh token');
1499
- }
1492
+ if (__classPrivateFieldGet(this, _MedplumClient_refreshPromise, "f")) {
1493
+ return __classPrivateFieldGet(this, _MedplumClient_refreshPromise, "f");
1494
+ }
1495
+ if (__classPrivateFieldGet(this, _MedplumClient_refreshToken, "f")) {
1500
1496
  const formBody = new URLSearchParams();
1501
1497
  formBody.set('grant_type', 'refresh_token');
1502
1498
  formBody.set('client_id', __classPrivateFieldGet(this, _MedplumClient_clientId, "f"));
1503
1499
  formBody.set('refresh_token', __classPrivateFieldGet(this, _MedplumClient_refreshToken, "f"));
1504
1500
  __classPrivateFieldSet(this, _MedplumClient_refreshPromise, __classPrivateFieldGet(this, _MedplumClient_instances, "m", _MedplumClient_fetchTokens).call(this, formBody), "f");
1505
- yield __classPrivateFieldGet(this, _MedplumClient_refreshPromise, "f");
1506
- });
1501
+ return __classPrivateFieldGet(this, _MedplumClient_refreshPromise, "f");
1502
+ }
1503
+ if (__classPrivateFieldGet(this, _MedplumClient_clientId, "f") && __classPrivateFieldGet(this, _MedplumClient_clientSecret, "f")) {
1504
+ __classPrivateFieldSet(this, _MedplumClient_refreshPromise, this.startClientLogin(__classPrivateFieldGet(this, _MedplumClient_clientId, "f"), __classPrivateFieldGet(this, _MedplumClient_clientSecret, "f")), "f");
1505
+ return __classPrivateFieldGet(this, _MedplumClient_refreshPromise, "f");
1506
+ }
1507
+ return undefined;
1507
1508
  }, _MedplumClient_fetchTokens = function _MedplumClient_fetchTokens(formBody) {
1508
1509
  return __awaiter(this, void 0, void 0, function* () {
1509
1510
  return __classPrivateFieldGet(this, _MedplumClient_fetch, "f").call(this, __classPrivateFieldGet(this, _MedplumClient_tokenUrl, "f"), {