@medplum/core 1.0.5 → 2.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.
Files changed (99) hide show
  1. package/README.md +9 -7
  2. package/dist/cjs/client.d.ts +22 -6
  3. package/dist/cjs/format.d.ts +2 -1
  4. package/dist/cjs/{index.js → index.cjs} +355 -376
  5. package/dist/cjs/index.cjs.map +1 -0
  6. package/dist/cjs/index.min.cjs +1 -0
  7. package/dist/cjs/search.d.ts +2 -1
  8. package/dist/cjs/utils.d.ts +8 -1
  9. package/dist/esm/{base-schema.json.js → base-schema.json.mjs} +1 -1
  10. package/dist/esm/{base-schema.json.js.map → base-schema.json.mjs.map} +1 -1
  11. package/dist/esm/{cache.js → cache.mjs} +2 -2
  12. package/dist/esm/cache.mjs.map +1 -0
  13. package/dist/esm/client.d.ts +22 -6
  14. package/dist/esm/{client.js → client.mjs} +256 -260
  15. package/dist/esm/client.mjs.map +1 -0
  16. package/dist/esm/{crypto.js → crypto.mjs} +4 -7
  17. package/dist/esm/crypto.mjs.map +1 -0
  18. package/dist/esm/{eventtarget.js → eventtarget.mjs} +2 -2
  19. package/dist/esm/eventtarget.mjs.map +1 -0
  20. package/dist/esm/fhirlexer/{parse.js → parse.mjs} +5 -6
  21. package/dist/esm/fhirlexer/parse.mjs.map +1 -0
  22. package/dist/esm/fhirlexer/{tokenize.js → tokenize.mjs} +11 -11
  23. package/dist/esm/fhirlexer/tokenize.mjs.map +1 -0
  24. package/dist/esm/fhirpath/{atoms.js → atoms.mjs} +11 -12
  25. package/dist/esm/fhirpath/atoms.mjs.map +1 -0
  26. package/dist/esm/fhirpath/{date.js → date.mjs} +1 -1
  27. package/dist/esm/fhirpath/date.mjs.map +1 -0
  28. package/dist/esm/fhirpath/{functions.js → functions.mjs} +16 -22
  29. package/dist/esm/fhirpath/functions.mjs.map +1 -0
  30. package/dist/esm/fhirpath/{parse.js → parse.mjs} +9 -10
  31. package/dist/esm/fhirpath/parse.mjs.map +1 -0
  32. package/dist/esm/fhirpath/{tokenize.js → tokenize.mjs} +3 -3
  33. package/dist/esm/fhirpath/tokenize.mjs.map +1 -0
  34. package/dist/esm/fhirpath/{utils.js → utils.mjs} +6 -7
  35. package/dist/esm/fhirpath/utils.mjs.map +1 -0
  36. package/dist/esm/format.d.ts +2 -1
  37. package/dist/esm/{format.js → format.mjs} +29 -21
  38. package/dist/esm/format.mjs.map +1 -0
  39. package/dist/esm/{hl7.js → hl7.mjs} +8 -9
  40. package/dist/esm/hl7.mjs.map +1 -0
  41. package/dist/esm/index.min.mjs +1 -0
  42. package/dist/esm/{index.js → index.mjs} +17 -17
  43. package/dist/esm/index.mjs.map +1 -0
  44. package/dist/esm/{jwt.js → jwt.mjs} +1 -1
  45. package/dist/esm/jwt.mjs.map +1 -0
  46. package/dist/esm/{match.js → match.mjs} +12 -13
  47. package/dist/esm/match.mjs.map +1 -0
  48. package/dist/esm/node_modules/tslib/{tslib.es6.js → tslib.es6.mjs} +2 -12
  49. package/dist/esm/node_modules/tslib/tslib.es6.mjs.map +1 -0
  50. package/dist/esm/{outcomes.js → outcomes.mjs} +3 -5
  51. package/dist/esm/outcomes.mjs.map +1 -0
  52. package/dist/esm/{readablepromise.js → readablepromise.mjs} +2 -2
  53. package/dist/esm/readablepromise.mjs.map +1 -0
  54. package/dist/esm/search.d.ts +2 -1
  55. package/dist/esm/{search.js → search.mjs} +1 -1
  56. package/dist/esm/search.mjs.map +1 -0
  57. package/dist/esm/{searchparams.js → searchparams.mjs} +8 -9
  58. package/dist/esm/searchparams.mjs.map +1 -0
  59. package/dist/esm/{storage.js → storage.mjs} +4 -5
  60. package/dist/esm/storage.mjs.map +1 -0
  61. package/dist/esm/{types.js → types.mjs} +6 -9
  62. package/dist/esm/types.mjs.map +1 -0
  63. package/dist/esm/utils.d.ts +8 -1
  64. package/dist/esm/{utils.js → utils.mjs} +31 -27
  65. package/dist/esm/utils.mjs.map +1 -0
  66. package/package.json +5 -5
  67. package/rollup.config.mjs +6 -7
  68. package/dist/cjs/fhirmapper/testall.d.ts +0 -1
  69. package/dist/cjs/index.js.map +0 -1
  70. package/dist/cjs/index.min.js +0 -2
  71. package/dist/cjs/index.min.js.map +0 -1
  72. package/dist/esm/cache.js.map +0 -1
  73. package/dist/esm/client.js.map +0 -1
  74. package/dist/esm/crypto.js.map +0 -1
  75. package/dist/esm/eventtarget.js.map +0 -1
  76. package/dist/esm/fhirlexer/parse.js.map +0 -1
  77. package/dist/esm/fhirlexer/tokenize.js.map +0 -1
  78. package/dist/esm/fhirmapper/testall.d.ts +0 -1
  79. package/dist/esm/fhirpath/atoms.js.map +0 -1
  80. package/dist/esm/fhirpath/date.js.map +0 -1
  81. package/dist/esm/fhirpath/functions.js.map +0 -1
  82. package/dist/esm/fhirpath/parse.js.map +0 -1
  83. package/dist/esm/fhirpath/tokenize.js.map +0 -1
  84. package/dist/esm/fhirpath/utils.js.map +0 -1
  85. package/dist/esm/format.js.map +0 -1
  86. package/dist/esm/hl7.js.map +0 -1
  87. package/dist/esm/index.js.map +0 -1
  88. package/dist/esm/index.min.js +0 -2
  89. package/dist/esm/index.min.js.map +0 -1
  90. package/dist/esm/jwt.js.map +0 -1
  91. package/dist/esm/match.js.map +0 -1
  92. package/dist/esm/node_modules/tslib/tslib.es6.js.map +0 -1
  93. package/dist/esm/outcomes.js.map +0 -1
  94. package/dist/esm/readablepromise.js.map +0 -1
  95. package/dist/esm/search.js.map +0 -1
  96. package/dist/esm/searchparams.js.map +0 -1
  97. package/dist/esm/storage.js.map +0 -1
  98. package/dist/esm/types.js.map +0 -1
  99. package/dist/esm/utils.js.map +0 -1
package/README.md CHANGED
@@ -165,10 +165,12 @@ Example:
165
165
  const result = await medplum.updateResource({
166
166
  resourceType: 'Patient',
167
167
  id: '123',
168
- name: [{
169
- family: 'Smith',
170
- given: ['John']
171
- }]
168
+ name: [
169
+ {
170
+ family: 'Smith',
171
+ given: ['John'],
172
+ },
173
+ ],
172
174
  });
173
175
  console.log(result.meta.versionId);
174
176
  ```
@@ -199,7 +201,7 @@ Example:
199
201
 
200
202
  ```ts
201
203
  const result = await medplum.patchResource('Patient', '123', [
202
- {op: 'replace', path: '/name/0/family', value: 'Smith'},
204
+ { op: 'replace', path: '/name/0/family', value: 'Smith' },
203
205
  ]);
204
206
  console.log(result.meta.versionId);
205
207
  ```
@@ -219,7 +221,7 @@ const result = await graphql(`
219
221
  {
220
222
  PatientList(name: "Alice") {
221
223
  name {
222
- given,
224
+ given
223
225
  family
224
226
  }
225
227
  }
@@ -233,4 +235,4 @@ Medplum is a healthcare platform that helps you quickly develop high-quality com
233
235
 
234
236
  ## License
235
237
 
236
- Apache 2.0. Copyright © Medplum 2022
238
+ Apache 2.0. Copyright © Medplum 2023
@@ -146,6 +146,7 @@ export interface BaseLoginRequest {
146
146
  readonly codeChallengeMethod?: string;
147
147
  readonly googleClientId?: string;
148
148
  readonly launch?: string;
149
+ readonly redirectUri?: string;
149
150
  }
150
151
  export interface EmailPasswordLoginRequest extends BaseLoginRequest {
151
152
  readonly email: string;
@@ -338,6 +339,12 @@ export declare class MedplumClient extends EventTarget {
338
339
  * @category Authentication
339
340
  */
340
341
  clear(): void;
342
+ /**
343
+ * Clears the active login from local storage.
344
+ * Does not clear all local storage (such as other logins).
345
+ * @category Authentication
346
+ */
347
+ clearActiveLogin(): void;
341
348
  /**
342
349
  * Invalidates any cached values or cached requests for the given URL.
343
350
  * @category Caching
@@ -467,10 +474,15 @@ export declare class MedplumClient extends EventTarget {
467
474
  * @returns Promise to the authentication response.
468
475
  */
469
476
  startGoogleLogin(loginRequest: GoogleLoginRequest): Promise<LoginAuthenticationResponse>;
470
- getCodeChallenge(loginRequest: BaseLoginRequest): {
471
- codeChallenge?: string;
472
- codeChallengeMethod?: string;
473
- };
477
+ /**
478
+ * Returns the PKCE code challenge and method.
479
+ * If the login request already includes a code challenge, it is returned.
480
+ * Otherwise, a new PKCE code challenge is generated.
481
+ * @category Authentication
482
+ * @param loginRequest The original login request.
483
+ * @returns The PKCE code challenge and method.
484
+ */
485
+ ensureCodeChallenge<T extends BaseLoginRequest>(loginRequest: T): Promise<T>;
474
486
  /**
475
487
  * Signs out locally.
476
488
  * Does not invalidate tokens with the server.
@@ -482,8 +494,9 @@ export declare class MedplumClient extends EventTarget {
482
494
  * Returns true if the user is signed in.
483
495
  * This may result in navigating away to the sign in page.
484
496
  * @category Authentication
497
+ * @param loginParams Optional login parameters.
485
498
  */
486
- signInWithRedirect(): Promise<ProfileResource | void>;
499
+ signInWithRedirect(loginParams?: Partial<BaseLoginRequest>): Promise<ProfileResource | void>;
487
500
  /**
488
501
  * Tries to sign out the user.
489
502
  * See: https://docs.aws.amazon.com/cognito/latest/developerguide/logout-endpoint.html
@@ -1154,7 +1167,10 @@ export declare class MedplumClient extends EventTarget {
1154
1167
  * Starts a new PKCE flow.
1155
1168
  * These PKCE values are stateful, and must survive redirects and page refreshes.
1156
1169
  */
1157
- startPkce(): Promise<void>;
1170
+ startPkce(): Promise<{
1171
+ codeChallengeMethod: string;
1172
+ codeChallenge: string;
1173
+ }>;
1158
1174
  /**
1159
1175
  * Processes an OAuth authorization code.
1160
1176
  * See: https://openid.net/specs/openid-connect-core-1_0.html#TokenRequest
@@ -1,4 +1,4 @@
1
- import { Address, CodeableConcept, Coding, HumanName, Observation, ObservationComponent, Period, Quantity, Range, Timing } from '@medplum/fhirtypes';
1
+ import { Address, CodeableConcept, Coding, HumanName, Money, Observation, ObservationComponent, Period, Quantity, Range, Timing } from '@medplum/fhirtypes';
2
2
  export interface AddressFormatOptions {
3
3
  all?: boolean;
4
4
  use?: boolean;
@@ -97,6 +97,7 @@ export declare function formatRange(range: Range | undefined, precision?: number
97
97
  * @returns A human-readable string representation of the Quantity
98
98
  */
99
99
  export declare function formatQuantity(quantity: Quantity | undefined, precision?: number): string;
100
+ export declare function formatMoney(money: Money | undefined): string;
100
101
  /**
101
102
  * Formats a CodeableConcept element as a string.
102
103
  * @param codeableConcept A FHIR CodeableConcept element