@medplum/agent 2.1.11 → 2.1.12
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/dist/cjs/index.cjs +36 -33
- package/package.json +1 -1
package/dist/cjs/index.cjs
CHANGED
|
@@ -3687,10 +3687,10 @@ function Te(r4, e) {
|
|
|
3687
3687
|
t.setUTCHours(0, 0, 0, 0);
|
|
3688
3688
|
let n = e ? new Date(e) : /* @__PURE__ */ new Date();
|
|
3689
3689
|
n.setUTCHours(0, 0, 0, 0);
|
|
3690
|
-
let i2 = t.getUTCFullYear(), o = t.getUTCMonth(), s = t.getUTCDate(), a = n.getUTCFullYear(), c2 = n.getUTCMonth(),
|
|
3691
|
-
(c2 < o || c2 === o &&
|
|
3690
|
+
let i2 = t.getUTCFullYear(), o = t.getUTCMonth(), s = t.getUTCDate(), a = n.getUTCFullYear(), c2 = n.getUTCMonth(), f = n.getUTCDate(), p2 = a - i2;
|
|
3691
|
+
(c2 < o || c2 === o && f < s) && p2--;
|
|
3692
3692
|
let q = a * 12 + c2 - (i2 * 12 + o);
|
|
3693
|
-
|
|
3693
|
+
f < s && q--;
|
|
3694
3694
|
let fn = Math.floor((n.getTime() - t.getTime()) / (1e3 * 60 * 60 * 24));
|
|
3695
3695
|
return { years: p2, months: q, days: fn };
|
|
3696
3696
|
}
|
|
@@ -4295,8 +4295,8 @@ function _(r4, e, t, ...n) {
|
|
|
4295
4295
|
let [{ value: i2 }] = U(t, 1), o = b(i2), s = o ? i2.value : i2;
|
|
4296
4296
|
if (typeof s != "number")
|
|
4297
4297
|
throw new Error("Math function cannot be called with non-number");
|
|
4298
|
-
let a = r4(s, ...n.map((p2) => p2.eval(e, t)[0]?.value)), c2 = o ? u.Quantity : t[0].type,
|
|
4299
|
-
return [{ type: c2, value:
|
|
4298
|
+
let a = r4(s, ...n.map((p2) => p2.eval(e, t)[0]?.value)), c2 = o ? u.Quantity : t[0].type, f = o ? { ...i2, value: a } : a;
|
|
4299
|
+
return [{ type: c2, value: f }];
|
|
4300
4300
|
}
|
|
4301
4301
|
function U(r4, e) {
|
|
4302
4302
|
if (r4.length !== e)
|
|
@@ -4384,7 +4384,7 @@ var R = class extends v {
|
|
|
4384
4384
|
let o = this.right.eval(t, n);
|
|
4385
4385
|
if (o.length !== 1)
|
|
4386
4386
|
return [];
|
|
4387
|
-
let s = i2[0].value, a = o[0].value, c2 = b(s) ? s.value : s,
|
|
4387
|
+
let s = i2[0].value, a = o[0].value, c2 = b(s) ? s.value : s, f = b(a) ? a.value : a, p2 = this.impl(c2, f);
|
|
4388
4388
|
return typeof p2 == "boolean" ? l(p2) : b(s) ? [{ type: u.Quantity, value: { ...s, value: p2 } }] : [T(p2)];
|
|
4389
4389
|
}
|
|
4390
4390
|
};
|
|
@@ -4554,7 +4554,7 @@ var X = class {
|
|
|
4554
4554
|
}
|
|
4555
4555
|
};
|
|
4556
4556
|
var le = ["!=", "!~", "<=", ">=", "{}", "->"];
|
|
4557
|
-
var
|
|
4557
|
+
var m = { FunctionCall: 0, Dot: 1, Indexer: 2, UnaryAdd: 3, UnarySubtract: 3, Multiply: 4, Divide: 4, IntegerDivide: 4, Modulo: 4, Add: 5, Subtract: 5, Ampersand: 5, Is: 6, As: 6, Union: 7, GreaterThan: 8, GreaterThanOrEquals: 8, LessThan: 8, LessThanOrEquals: 8, Equals: 9, Equivalent: 9, NotEquals: 9, NotEquivalent: 9, In: 10, Contains: 10, And: 11, Xor: 12, Or: 12, Implies: 13, Arrow: 100, Semicolon: 200 };
|
|
4558
4558
|
var ii = { parse(r4) {
|
|
4559
4559
|
let e = r4.consumeAndParse();
|
|
4560
4560
|
if (!r4.match(")"))
|
|
@@ -4566,7 +4566,7 @@ var oi = { parse(r4, e) {
|
|
|
4566
4566
|
if (!r4.match("]"))
|
|
4567
4567
|
throw new Error("Parse error: expected `]`");
|
|
4568
4568
|
return new X(e, t);
|
|
4569
|
-
}, precedence:
|
|
4569
|
+
}, precedence: m.Indexer };
|
|
4570
4570
|
var si = { parse(r4, e) {
|
|
4571
4571
|
if (!(e instanceof M))
|
|
4572
4572
|
throw new Error("Unexpected parentheses");
|
|
@@ -4574,13 +4574,13 @@ var si = { parse(r4, e) {
|
|
|
4574
4574
|
for (; !r4.match(")"); )
|
|
4575
4575
|
t.push(r4.consumeAndParse()), r4.match(",");
|
|
4576
4576
|
return new B(e.name, t);
|
|
4577
|
-
}, precedence:
|
|
4577
|
+
}, precedence: m.FunctionCall };
|
|
4578
4578
|
function ai(r4) {
|
|
4579
4579
|
let e = r4.split(" "), t = parseFloat(e[0]), n = e[1];
|
|
4580
4580
|
return n?.startsWith("'") && n.endsWith("'") ? n = n.substring(1, n.length - 1) : n = "{" + n + "}", { value: t, unit: n };
|
|
4581
4581
|
}
|
|
4582
4582
|
function de() {
|
|
4583
|
-
return new xe().registerPrefix("String", { parse: (r4, e) => new O({ type: u.string, value: e.value }) }).registerPrefix("DateTime", { parse: (r4, e) => new O({ type: u.dateTime, value: re(e.value) }) }).registerPrefix("Quantity", { parse: (r4, e) => new O({ type: u.Quantity, value: ai(e.value) }) }).registerPrefix("Number", { parse: (r4, e) => new O({ type: u.decimal, value: parseFloat(e.value) }) }).registerPrefix("true", { parse: () => new O({ type: u.boolean, value: true }) }).registerPrefix("false", { parse: () => new O({ type: u.boolean, value: false }) }).registerPrefix("Symbol", { parse: (r4, e) => new M(e.value) }).registerPrefix("{}", { parse: () => new De() }).registerPrefix("(", ii).registerInfix("[", oi).registerInfix("(", si).prefix("+",
|
|
4583
|
+
return new xe().registerPrefix("String", { parse: (r4, e) => new O({ type: u.string, value: e.value }) }).registerPrefix("DateTime", { parse: (r4, e) => new O({ type: u.dateTime, value: re(e.value) }) }).registerPrefix("Quantity", { parse: (r4, e) => new O({ type: u.Quantity, value: ai(e.value) }) }).registerPrefix("Number", { parse: (r4, e) => new O({ type: u.decimal, value: parseFloat(e.value) }) }).registerPrefix("true", { parse: () => new O({ type: u.boolean, value: true }) }).registerPrefix("false", { parse: () => new O({ type: u.boolean, value: false }) }).registerPrefix("Symbol", { parse: (r4, e) => new M(e.value) }).registerPrefix("{}", { parse: () => new De() }).registerPrefix("(", ii).registerInfix("[", oi).registerInfix("(", si).prefix("+", m.UnaryAdd, (r4, e) => new Ne("+", e, (t) => t)).prefix("-", m.UnarySubtract, (r4, e) => new R("-", e, e, (t, n) => -n)).infixLeft(".", m.Dot, (r4, e, t) => new H(r4, t)).infixLeft("/", m.Divide, (r4, e, t) => new R("/", r4, t, (n, i2) => n / i2)).infixLeft("*", m.Multiply, (r4, e, t) => new R("*", r4, t, (n, i2) => n * i2)).infixLeft("+", m.Add, (r4, e, t) => new R("+", r4, t, (n, i2) => n + i2)).infixLeft("-", m.Subtract, (r4, e, t) => new R("-", r4, t, (n, i2) => n - i2)).infixLeft("|", m.Union, (r4, e, t) => new ne(r4, t)).infixLeft("=", m.Equals, (r4, e, t) => new Le(r4, t)).infixLeft("!=", m.NotEquals, (r4, e, t) => new Me(r4, t)).infixLeft("~", m.Equivalent, (r4, e, t) => new Be(r4, t)).infixLeft("!~", m.NotEquivalent, (r4, e, t) => new qe(r4, t)).infixLeft("<", m.LessThan, (r4, e, t) => new R("<", r4, t, (n, i2) => n < i2)).infixLeft("<=", m.LessThanOrEquals, (r4, e, t) => new R("<=", r4, t, (n, i2) => n <= i2)).infixLeft(">", m.GreaterThan, (r4, e, t) => new R(">", r4, t, (n, i2) => n > i2)).infixLeft(">=", m.GreaterThanOrEquals, (r4, e, t) => new R(">=", r4, t, (n, i2) => n >= i2)).infixLeft("&", m.Ampersand, (r4, e, t) => new Fe(r4, t)).infixLeft("and", m.And, (r4, e, t) => new $e(r4, t)).infixLeft("as", m.As, (r4, e, t) => new J(r4, t)).infixLeft("contains", m.Contains, (r4, e, t) => new _e(r4, t)).infixLeft("div", m.Divide, (r4, e, t) => new R("div", r4, t, (n, i2) => n / i2 | 0)).infixLeft("in", m.In, (r4, e, t) => new Ue(r4, t)).infixLeft("is", m.Is, (r4, e, t) => new Y(r4, t)).infixLeft("mod", m.Modulo, (r4, e, t) => new R("mod", r4, t, (n, i2) => n % i2)).infixLeft("or", m.Or, (r4, e, t) => new je(r4, t)).infixLeft("xor", m.Xor, (r4, e, t) => new Qe(r4, t)).infixLeft("implies", m.Implies, (r4, e, t) => new He(r4, t));
|
|
4584
4584
|
}
|
|
4585
4585
|
var ci = de();
|
|
4586
4586
|
var kr = ((p2) => (p2.BOOLEAN = "BOOLEAN", p2.NUMBER = "NUMBER", p2.QUANTITY = "QUANTITY", p2.TEXT = "TEXT", p2.REFERENCE = "REFERENCE", p2.CANONICAL = "CANONICAL", p2.DATE = "DATE", p2.DATETIME = "DATETIME", p2.PERIOD = "PERIOD", p2.UUID = "UUID", p2))(kr || {});
|
|
@@ -4997,9 +4997,9 @@ var en = class extends he {
|
|
|
4997
4997
|
signOutWithRedirect() {
|
|
4998
4998
|
window.location.assign(this.logoutUrl);
|
|
4999
4999
|
}
|
|
5000
|
-
async signInWithExternalAuth(t, n, i2, o) {
|
|
5001
|
-
let
|
|
5002
|
-
window.location.assign(this.getExternalAuthRedirectUri(t, n, i2, s));
|
|
5000
|
+
async signInWithExternalAuth(t, n, i2, o, s = true) {
|
|
5001
|
+
let a = o;
|
|
5002
|
+
s && (a = await this.ensureCodeChallenge(o)), window.location.assign(this.getExternalAuthRedirectUri(t, n, i2, a, s));
|
|
5003
5003
|
}
|
|
5004
5004
|
async exchangeExternalAccessToken(t, n) {
|
|
5005
5005
|
if (n = n ?? this.clientId, !n)
|
|
@@ -5007,14 +5007,17 @@ var en = class extends he {
|
|
|
5007
5007
|
let i2 = new URLSearchParams();
|
|
5008
5008
|
return i2.set("grant_type", "urn:ietf:params:oauth:grant-type:token-exchange"), i2.set("subject_token_type", "urn:ietf:params:oauth:token-type:access_token"), i2.set("client_id", n), i2.set("subject_token", t), this.fetchTokens(i2);
|
|
5009
5009
|
}
|
|
5010
|
-
getExternalAuthRedirectUri(t, n, i2, o) {
|
|
5011
|
-
let
|
|
5012
|
-
if (
|
|
5013
|
-
|
|
5014
|
-
|
|
5015
|
-
|
|
5016
|
-
|
|
5017
|
-
|
|
5010
|
+
getExternalAuthRedirectUri(t, n, i2, o, s = true) {
|
|
5011
|
+
let a = new URL(t);
|
|
5012
|
+
if (a.searchParams.set("response_type", "code"), a.searchParams.set("client_id", n), a.searchParams.set("redirect_uri", i2), a.searchParams.set("scope", "openid profile email"), a.searchParams.set("state", JSON.stringify(o)), s) {
|
|
5013
|
+
let { codeChallenge: c2, codeChallengeMethod: f } = o;
|
|
5014
|
+
if (!f)
|
|
5015
|
+
throw new Error("`LoginRequest` for external auth must include a `codeChallengeMethod`.");
|
|
5016
|
+
if (!c2)
|
|
5017
|
+
throw new Error("`LoginRequest` for external auth must include a `codeChallenge`.");
|
|
5018
|
+
a.searchParams.set("code_challenge_method", f), a.searchParams.set("code_challenge", c2);
|
|
5019
|
+
}
|
|
5020
|
+
return a.toString();
|
|
5018
5021
|
}
|
|
5019
5022
|
fhirUrl(...t) {
|
|
5020
5023
|
return new URL(t.join("/"), this.fhirBaseUrl);
|
|
@@ -5028,11 +5031,11 @@ var en = class extends he {
|
|
|
5028
5031
|
if (a)
|
|
5029
5032
|
return a.value;
|
|
5030
5033
|
let c2 = new w((async () => {
|
|
5031
|
-
let
|
|
5032
|
-
if (
|
|
5033
|
-
for (let p2 of
|
|
5034
|
+
let f = await this.get(o, i2);
|
|
5035
|
+
if (f.entry)
|
|
5036
|
+
for (let p2 of f.entry)
|
|
5034
5037
|
this.cacheResource(p2.resource);
|
|
5035
|
-
return
|
|
5038
|
+
return f;
|
|
5036
5039
|
})());
|
|
5037
5040
|
return this.setCacheEntry(s, c2), c2;
|
|
5038
5041
|
}
|
|
@@ -5042,7 +5045,7 @@ var en = class extends he {
|
|
|
5042
5045
|
let s = o.toString() + "-searchOne", a = this.getCacheEntry(s, i2);
|
|
5043
5046
|
if (a)
|
|
5044
5047
|
return a.value;
|
|
5045
|
-
let c2 = new w(this.search(t, o.searchParams, i2).then((
|
|
5048
|
+
let c2 = new w(this.search(t, o.searchParams, i2).then((f) => f.entry?.[0]?.resource));
|
|
5046
5049
|
return this.setCacheEntry(s, c2), c2;
|
|
5047
5050
|
}
|
|
5048
5051
|
searchResources(t, n, i2) {
|
|
@@ -5055,7 +5058,7 @@ var en = class extends he {
|
|
|
5055
5058
|
async *searchResourcePages(t, n, i2) {
|
|
5056
5059
|
let o = this.fhirSearchUrl(t, n);
|
|
5057
5060
|
for (; o; ) {
|
|
5058
|
-
let s = new URL(o).searchParams, a = await this.search(t, s, i2), c2 = a.link?.find((
|
|
5061
|
+
let s = new URL(o).searchParams, a = await this.search(t, s, i2), c2 = a.link?.find((f) => f.relation === "next");
|
|
5059
5062
|
if (!a.entry?.length && !c2)
|
|
5060
5063
|
break;
|
|
5061
5064
|
yield on(a), o = c2?.url ? new URL(c2.url) : void 0;
|
|
@@ -5170,7 +5173,7 @@ var en = class extends he {
|
|
|
5170
5173
|
uploadwithProgress(t, n, i2, o) {
|
|
5171
5174
|
return new Promise((s, a) => {
|
|
5172
5175
|
let c2 = new XMLHttpRequest();
|
|
5173
|
-
c2.responseType = "json", c2.onabort = () => a(new Error("Request aborted")), c2.onerror = () => a(new Error("Request error")), o && (c2.upload.onprogress = (
|
|
5176
|
+
c2.responseType = "json", c2.onabort = () => a(new Error("Request aborted")), c2.onerror = () => a(new Error("Request error")), o && (c2.upload.onprogress = (f) => o(f), c2.upload.onload = (f) => o(f)), c2.onload = () => {
|
|
5174
5177
|
c2.status >= 200 && c2.status < 300 ? s(c2.response) : a(new d(Oe(c2.response || c2.statusText)));
|
|
5175
5178
|
}, c2.open("POST", t), c2.withCredentials = true, c2.setRequestHeader("Authorization", "Bearer " + this.accessToken), c2.setRequestHeader("Cache-Control", "no-cache, no-store, max-age=0"), c2.setRequestHeader("Content-Type", i2), c2.setRequestHeader("X-Medplum", "extended"), c2.send(n);
|
|
5176
5179
|
});
|
|
@@ -5338,8 +5341,8 @@ var en = class extends he {
|
|
|
5338
5341
|
let a = t.headers.get("content-type")?.includes("json");
|
|
5339
5342
|
if (t.status === 404 && !a)
|
|
5340
5343
|
throw new d(mr);
|
|
5341
|
-
let c2 = t.headers.get("content-location"),
|
|
5342
|
-
if (t.status === 201 && c2 &&
|
|
5344
|
+
let c2 = t.headers.get("content-location"), f = o.redirect ?? this.options.redirect;
|
|
5345
|
+
if (t.status === 201 && c2 && f === "follow")
|
|
5343
5346
|
return this.request("GET", c2, { ...o, body: void 0 });
|
|
5344
5347
|
let p2;
|
|
5345
5348
|
if (a)
|
|
@@ -5570,7 +5573,7 @@ function on(r4) {
|
|
|
5570
5573
|
return Object.assign(e, { bundle: r4 });
|
|
5571
5574
|
}
|
|
5572
5575
|
var ao = [...le, "->", "<<", ">>"];
|
|
5573
|
-
var co = de().registerInfix("->", { precedence:
|
|
5576
|
+
var co = de().registerInfix("->", { precedence: m.Arrow }).registerInfix(";", { precedence: m.Semicolon });
|
|
5574
5577
|
var uo = [...le, "eq", "ne", "co"];
|
|
5575
5578
|
var fo = de();
|
|
5576
5579
|
var W = class {
|
|
@@ -5690,7 +5693,7 @@ var i = class extends EventTarget {
|
|
|
5690
5693
|
super.removeEventListener(n, e, t);
|
|
5691
5694
|
}
|
|
5692
5695
|
};
|
|
5693
|
-
var
|
|
5696
|
+
var m2 = String.fromCharCode(11);
|
|
5694
5697
|
var p = String.fromCharCode(28);
|
|
5695
5698
|
var v2 = String.fromCharCode(13);
|
|
5696
5699
|
var d2 = class extends Event {
|
|
@@ -5726,7 +5729,7 @@ var c = class extends i {
|
|
|
5726
5729
|
});
|
|
5727
5730
|
}
|
|
5728
5731
|
send(e) {
|
|
5729
|
-
this.socket.write(
|
|
5732
|
+
this.socket.write(m2 + e.toString() + p + v2);
|
|
5730
5733
|
}
|
|
5731
5734
|
async sendAndWait(e) {
|
|
5732
5735
|
let t = new Promise((o) => {
|