0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-03-03 11:25:27 -05:00
penpot/frontend/resources/plugins-runtime/index.js
2025-02-05 17:43:01 +01:00

8577 lines
231 KiB
JavaScript

var qn = (t) => {
throw TypeError(t);
};
var Kn = (t, e, r) => e.has(t) || qn("Cannot " + r);
var at = (t, e, r) => (Kn(t, e, "read from private field"), r ? r.call(t) : e.get(t)), tn = (t, e, r) => e.has(t) ? qn("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, r), fr = (t, e, r, n) => (Kn(t, e, "write to private field"), n ? n.call(t, r) : e.set(t, r), r);
const x = globalThis, {
Array: na,
ArrayBuffer: To,
Date: oa,
FinalizationRegistry: $t,
Float32Array: sa,
JSON: aa,
Map: $e,
Math: ia,
Number: Io,
Object: Tn,
Promise: ca,
Proxy: Ur,
Reflect: la,
RegExp: Xe,
Set: Dt,
String: _e,
Symbol: At,
Uint8Array: mn,
WeakMap: ze,
WeakSet: Ut
} = globalThis, {
// The feral Error constructor is safe for internal use, but must not be
// revealed to post-lockdown code in any compartment including the start
// compartment since in V8 at least it bears stack inspection capabilities.
Error: le,
RangeError: ua,
ReferenceError: Wt,
SyntaxError: ir,
TypeError: _,
AggregateError: rn
} = globalThis, {
assign: jr,
create: H,
defineProperties: B,
entries: me,
freeze: y,
getOwnPropertyDescriptor: ee,
getOwnPropertyDescriptors: Be,
getOwnPropertyNames: Nt,
getPrototypeOf: G,
is: Zr,
isFrozen: uu,
isSealed: du,
isExtensible: fu,
keys: Co,
prototype: zr,
seal: pu,
preventExtensions: da,
setPrototypeOf: wr,
values: Ro,
fromEntries: bt
} = Tn, {
species: nn,
toStringTag: Qe,
iterator: De,
matchAll: $o,
unscopables: fa,
keyFor: pa,
for: ha
} = At, { isInteger: ma } = Io, { stringify: No } = aa, { defineProperty: ga } = Tn, D = (t, e, r) => {
const n = ga(t, e, r);
if (n !== t)
throw _(
`Please report that the original defineProperty silently failed to set ${No(
_e(e)
)}. (SES_DEFINE_PROPERTY_FAILED_SILENTLY)`
);
return n;
}, {
apply: ue,
construct: Sr,
get: ya,
getOwnPropertyDescriptor: _a,
has: Oo,
isExtensible: va,
ownKeys: qe,
preventExtensions: ba,
set: Mo
} = la, { isArray: pt, prototype: ve } = na, { prototype: xr } = To, { prototype: jt } = $e, { prototype: Br } = RegExp, { prototype: cr } = Dt, { prototype: Ge } = _e, { prototype: Gr } = ze, { prototype: Lo } = Ut, { prototype: Vr } = Function, { prototype: Fo } = ca, { prototype: Do } = G(
// eslint-disable-next-line no-empty-function, func-names
function* () {
}
), on = G(
// eslint-disable-next-line @endo/no-polymorphic-call
G(ve.values())
), Uo = G(mn.prototype), { bind: gn } = Vr, P = gn.bind(gn.call), Q = P(zr.hasOwnProperty), et = P(ve.filter), ht = P(ve.forEach), Hr = P(ve.includes), Zt = P(ve.join), de = (
/** @type {any} */
P(ve.map)
), jo = (
/** @type {any} */
P(ve.flatMap)
), Er = P(ve.pop), ne = P(ve.push), wa = P(ve.slice), Zo = P(ve.some), zo = P(ve.sort), Sa = P(ve[De]), xa = P(xr.slice), Ea = P(
// @ts-expect-error we know it is there on all conforming platforms
ee(xr, "byteLength").get
), ka = P(Uo.set), pe = P(jt.set), Ke = P(jt.get), Wr = P(jt.has), Pa = P(jt.delete), Aa = P(jt.entries), Ta = P(jt[De]), In = P(cr.add);
P(cr.delete);
const Yn = P(cr.forEach), Cn = P(cr.has), Ia = P(cr[De]), Rn = P(Br.test), $n = P(Br.exec), Ca = P(Br[$o]), Bo = P(Ge.endsWith), Go = P(Ge.includes), Ra = P(Ge.indexOf);
P(Ge.match);
const kr = P(Do.next), Vo = P(Do.throw), Pr = (
/** @type {any} */
P(Ge.replace)
), $a = P(Ge.search), Nn = P(Ge.slice), On = (
/** @type {(thisArg: string, splitter: string | RegExp | { [Symbol.split](string: string, limit?: number): string[]; }, limit?: number) => string[]} */
P(Ge.split)
), Ho = P(Ge.startsWith), Na = P(Ge[De]), Oa = P(Gr.delete), z = P(Gr.get), Tt = P(Gr.has), he = P(Gr.set), qr = P(Lo.add), lr = P(Lo.has), Ma = P(Vr.toString), Wo = P(gn);
P(Fo.catch);
const qo = (
/** @type {any} */
P(Fo.then)
), La = $t && P($t.prototype.register);
$t && P($t.prototype.unregister);
const Mn = y(H(null)), ke = (t) => Tn(t) === t, Kr = (t) => t instanceof le, Ko = eval, Ee = Function, Fa = () => {
throw _('Cannot eval with evalTaming set to "noEval" (SES_NO_EVAL)');
}, Je = ee(Error("er1"), "stack"), sn = ee(_("er2"), "stack");
let Yo, Jo;
if (Je && sn && Je.get)
if (
// In the v8 case as we understand it, all errors have an own stack
// accessor property, but within the same realm, all these accessor
// properties have the same getter and have the same setter.
// This is therefore the case that we repair.
typeof Je.get == "function" && Je.get === sn.get && typeof Je.set == "function" && Je.set === sn.set
)
Yo = y(Je.get), Jo = y(Je.set);
else
throw _(
"Unexpected Error own stack accessor functions (SES_UNEXPECTED_ERROR_OWN_STACK_ACCESSOR)"
);
const an = Yo, Da = Jo;
function Ua() {
return this;
}
if (Ua())
throw _("SES failed to initialize, sloppy mode (SES_NO_SLOPPY)");
const { freeze: ut } = Object, { apply: ja } = Reflect, Ln = (t) => (e, ...r) => ja(t, e, r), Za = Ln(Array.prototype.push), Jn = Ln(Array.prototype.includes), za = Ln(String.prototype.split), it = JSON.stringify, pr = (t, ...e) => {
let r = t[0];
for (let n = 0; n < e.length; n += 1)
r = `${r}${e[n]}${t[n + 1]}`;
throw Error(r);
}, Xo = (t, e = !1) => {
const r = [], n = (c, l, u = void 0) => {
typeof c == "string" || pr`Environment option name ${it(c)} must be a string.`, typeof l == "string" || pr`Environment option default setting ${it(
l
)} must be a string.`;
let d = l;
const f = t.process || void 0, h = typeof f == "object" && f.env || void 0;
if (typeof h == "object" && c in h) {
e || Za(r, c);
const p = h[c];
typeof p == "string" || pr`Environment option named ${it(
c
)}, if present, must have a corresponding string value, got ${it(
p
)}`, d = p;
}
return u === void 0 || d === l || Jn(u, d) || pr`Unrecognized ${it(c)} value ${it(
d
)}. Expected one of ${it([l, ...u])}`, d;
};
ut(n);
const o = (c) => {
const l = n(c, "");
return ut(l === "" ? [] : za(l, ","));
};
ut(o);
const s = (c, l) => Jn(o(c), l), i = () => ut([...r]);
return ut(i), ut({
getEnvironmentOption: n,
getEnvironmentOptionsList: o,
environmentOptionsListHas: s,
getCapturedEnvironmentOptionNames: i
});
};
ut(Xo);
const {
getEnvironmentOption: ce,
getEnvironmentOptionsList: hu,
environmentOptionsListHas: mu
} = Xo(globalThis, !0), Ar = (t) => (t = `${t}`, t.length >= 1 && Go("aeiouAEIOU", t[0]) ? `an ${t}` : `a ${t}`);
y(Ar);
const Qo = (t, e = void 0) => {
const r = new Dt(), n = (o, s) => {
switch (typeof s) {
case "object": {
if (s === null)
return null;
if (Cn(r, s))
return "[Seen]";
if (In(r, s), Kr(s))
return `[${s.name}: ${s.message}]`;
if (Qe in s)
return `[${s[Qe]}]`;
if (pt(s))
return s;
const i = Co(s);
if (i.length < 2)
return s;
let c = !0;
for (let u = 1; u < i.length; u += 1)
if (i[u - 1] >= i[u]) {
c = !1;
break;
}
if (c)
return s;
zo(i);
const l = de(i, (u) => [u, s[u]]);
return bt(l);
}
case "function":
return `[Function ${s.name || "<anon>"}]`;
case "string":
return Ho(s, "[") ? `[${s}]` : s;
case "undefined":
case "symbol":
return `[${_e(s)}]`;
case "bigint":
return `[${s}n]`;
case "number":
return Zr(s, NaN) ? "[NaN]" : s === 1 / 0 ? "[Infinity]" : s === -1 / 0 ? "[-Infinity]" : s;
default:
return s;
}
};
try {
return No(t, n, e);
} catch {
return "[Something that failed to stringify]";
}
};
y(Qo);
const { isSafeInteger: Ba } = Number, { freeze: Et } = Object, { toStringTag: Ga } = Symbol, Xn = (t) => {
const r = {
next: void 0,
prev: void 0,
data: t
};
return r.next = r, r.prev = r, r;
}, Qn = (t, e) => {
if (t === e)
throw TypeError("Cannot splice a cell into itself");
if (e.next !== e || e.prev !== e)
throw TypeError("Expected self-linked cell");
const r = e, n = t.next;
return r.prev = t, r.next = n, t.next = r, n.prev = r, r;
}, cn = (t) => {
const { prev: e, next: r } = t;
e.next = r, r.prev = e, t.prev = t, t.next = t;
}, es = (t) => {
if (!Ba(t) || t < 0)
throw TypeError("keysBudget must be a safe non-negative integer number");
const e = /* @__PURE__ */ new WeakMap();
let r = 0;
const n = Xn(void 0), o = (d) => {
const f = e.get(d);
if (!(f === void 0 || f.data === void 0))
return cn(f), Qn(n, f), f;
}, s = (d) => o(d) !== void 0;
Et(s);
const i = (d) => {
const f = o(d);
return f && f.data && f.data.get(d);
};
Et(i);
const c = (d, f) => {
if (t < 1)
return u;
let h = o(d);
if (h === void 0 && (h = Xn(void 0), Qn(n, h)), !h.data)
for (r += 1, h.data = /* @__PURE__ */ new WeakMap(), e.set(d, h); r > t; ) {
const p = n.prev;
cn(p), p.data = void 0, r -= 1;
}
return h.data.set(d, f), u;
};
Et(c);
const l = (d) => {
const f = e.get(d);
return f === void 0 || (cn(f), e.delete(d), f.data === void 0) ? !1 : (f.data = void 0, r -= 1, !0);
};
Et(l);
const u = Et({
has: s,
get: i,
set: c,
delete: l,
// eslint-disable-next-line jsdoc/check-types
[
/** @type {typeof Symbol.toStringTag} */
Ga
]: "LRUCacheMap"
});
return u;
};
Et(es);
const { freeze: vr } = Object, { isSafeInteger: Va } = Number, Ha = 1e3, Wa = 100, ts = (t = Ha, e = Wa) => {
if (!Va(e) || e < 1)
throw TypeError(
"argsPerErrorBudget must be a safe positive integer number"
);
const r = es(t), n = (s, i) => {
const c = r.get(s);
c !== void 0 ? (c.length >= e && c.shift(), c.push(i)) : r.set(s, [i]);
};
vr(n);
const o = (s) => {
const i = r.get(s);
return r.delete(s), i;
};
return vr(o), vr({
addLogArgs: n,
takeLogArgsArray: o
});
};
vr(ts);
const Ot = new ze(), U = (t, e = void 0) => {
const r = y({
toString: y(() => Qo(t, e))
});
return he(Ot, r, t), r;
};
y(U);
const qa = y(/^[\w:-]( ?[\w:-])*$/), Tr = (t, e = void 0) => {
if (typeof t != "string" || !Rn(qa, t))
return U(t, e);
const r = y({
toString: y(() => t)
});
return he(Ot, r, t), r;
};
y(Tr);
const Yr = new ze(), rs = ({ template: t, args: e }) => {
const r = [t[0]];
for (let n = 0; n < e.length; n += 1) {
const o = e[n];
let s;
Tt(Ot, o) ? s = `${o}` : Kr(o) ? s = `(${Ar(o.name)})` : s = `(${Ar(typeof o)})`, ne(r, s, t[n + 1]);
}
return Zt(r, "");
}, ns = y({
toString() {
const t = z(Yr, this);
return t === void 0 ? "[Not a DetailsToken]" : rs(t);
}
});
y(ns.toString);
const re = (t, ...e) => {
const r = y({ __proto__: ns });
return he(Yr, r, { template: t, args: e }), /** @type {DetailsToken} */
/** @type {unknown} */
r;
};
y(re);
const os = (t, ...e) => (e = de(
e,
(r) => Tt(Ot, r) ? r : U(r)
), re(t, ...e));
y(os);
const ss = ({ template: t, args: e }) => {
const r = [t[0]];
for (let n = 0; n < e.length; n += 1) {
let o = e[n];
Tt(Ot, o) && (o = z(Ot, o));
const s = Pr(Er(r) || "", / $/, "");
s !== "" && ne(r, s);
const i = Pr(t[n + 1], /^ /, "");
ne(r, o, i);
}
return r[r.length - 1] === "" && Er(r), r;
}, br = new ze();
let yn = 0;
const eo = new ze(), as = (t, e = t.name) => {
let r = z(eo, t);
return r !== void 0 || (yn += 1, r = `${e}#${yn}`, he(eo, t, r)), r;
}, Ka = (t) => {
const e = Be(t), {
name: r,
message: n,
errors: o = void 0,
cause: s = void 0,
stack: i = void 0,
...c
} = e, l = qe(c);
if (l.length >= 1) {
for (const d of l)
delete t[d];
const u = H(zr, c);
Jr(
t,
re`originally with properties ${U(u)}`
);
}
for (const u of qe(t)) {
const d = e[u];
d && Q(d, "get") && D(t, u, {
value: t[u]
// invoke the getter to convert to data property
});
}
y(t);
}, Ce = (t = re`Assert failed`, e = x.Error, {
errorName: r = void 0,
cause: n = void 0,
errors: o = void 0,
sanitize: s = !0
} = {}) => {
typeof t == "string" && (t = re([t]));
const i = z(Yr, t);
if (i === void 0)
throw _(`unrecognized details ${U(t)}`);
const c = rs(i), l = n && { cause: n };
let u;
return typeof rn < "u" && e === rn ? u = rn(o || [], c, l) : (u = /** @type {ErrorConstructor} */
e(
c,
l
), o !== void 0 && D(u, "errors", {
value: o,
writable: !0,
enumerable: !1,
configurable: !0
})), he(br, u, ss(i)), r !== void 0 && as(u, r), s && Ka(u), u;
};
y(Ce);
const { addLogArgs: Ya, takeLogArgsArray: Ja } = ts(), _n = new ze(), Jr = (t, e) => {
typeof e == "string" && (e = re([e]));
const r = z(Yr, e);
if (r === void 0)
throw _(`unrecognized details ${U(e)}`);
const n = ss(r), o = z(_n, t);
if (o !== void 0)
for (const s of o)
s(t, n);
else
Ya(t, n);
};
y(Jr);
const Xa = (t) => {
if (!("stack" in t))
return "";
const e = `${t.stack}`, r = Ra(e, `
`);
return Ho(e, " ") || r === -1 ? e : Nn(e, r + 1);
}, Ir = {
getStackString: x.getStackString || Xa,
tagError: (t) => as(t),
resetErrorTagNum: () => {
yn = 0;
},
getMessageLogArgs: (t) => z(br, t),
takeMessageLogArgs: (t) => {
const e = z(br, t);
return Oa(br, t), e;
},
takeNoteLogArgsArray: (t, e) => {
const r = Ja(t);
if (e !== void 0) {
const n = z(_n, t);
n ? ne(n, e) : he(_n, t, [e]);
}
return r || [];
}
};
y(Ir);
const Xr = (t = void 0, e = !1) => {
const r = e ? os : re, n = r`Check failed`, o = (f = n, h = void 0, p = void 0) => {
const m = Ce(f, h, p);
throw t !== void 0 && t(m), m;
};
y(o);
const s = (f, ...h) => o(r(f, ...h));
function i(f, h = void 0, p = void 0, m = void 0) {
f || o(h, p, m);
}
const c = (f, h, p = void 0, m = void 0, A = void 0) => {
Zr(f, h) || o(
p || r`Expected ${f} is same as ${h}`,
m || ua,
A
);
};
y(c);
const l = (f, h, p) => {
if (typeof f !== h) {
if (typeof h == "string" || s`${U(h)} must be a string`, p === void 0) {
const m = Ar(h);
p = r`${f} must be ${Tr(m)}`;
}
o(p, _);
}
};
y(l);
const d = jr(i, {
error: Ce,
fail: o,
equal: c,
typeof: l,
string: (f, h = void 0) => l(f, "string", h),
note: Jr,
details: r,
Fail: s,
quote: U,
bare: Tr,
makeAssert: Xr
});
return y(d);
};
y(Xr);
const Y = Xr(), to = Y.equal, is = ee(
Uo,
Qe
);
Y(is);
const cs = is.get;
Y(cs);
const Qa = (t) => ue(cs, t, []) !== void 0, ei = (t) => {
const e = +_e(t);
return ma(e) && _e(e) === t;
}, ti = (t) => {
da(t), ht(qe(t), (e) => {
const r = ee(t, e);
Y(r), ei(e) || D(t, e, {
...r,
writable: !1,
configurable: !1
});
});
}, ri = () => {
if (typeof x.harden == "function")
return x.harden;
const t = new Ut(), { harden: e } = {
/**
* @template T
* @param {T} root
* @returns {T}
*/
harden(r) {
const n = new Dt();
function o(d) {
if (!ke(d))
return;
const f = typeof d;
if (f !== "object" && f !== "function")
throw _(`Unexpected typeof: ${f}`);
lr(t, d) || Cn(n, d) || In(n, d);
}
const s = (d) => {
Qa(d) ? ti(d) : y(d);
const f = Be(d), h = G(d);
o(h), ht(qe(f), (p) => {
const m = f[
/** @type {string} */
p
];
Q(m, "value") ? o(m.value) : (o(m.get), o(m.set));
});
}, i = an === void 0 && Da === void 0 ? (
// On platforms without v8's error own stack accessor problem,
// don't pay for any extra overhead.
s
) : (d) => {
if (Kr(d)) {
const f = ee(d, "stack");
f && f.get === an && f.configurable && D(d, "stack", {
// NOTE: Calls getter during harden, which seems dangerous.
// But we're only calling the problematic getter whose
// hazards we think we understand.
// @ts-expect-error TS should know FERAL_STACK_GETTER
// cannot be `undefined` here.
// See https://github.com/endojs/endo/pull/2232#discussion_r1575179471
value: ue(an, d, [])
});
}
return s(d);
}, c = () => {
Yn(n, i);
}, l = (d) => {
qr(t, d);
}, u = () => {
Yn(n, l);
};
return o(r), c(), u(), r;
}
};
return e;
}, ls = (t, e, r, n, { warn: o, error: s }) => {
r || o(`Removing ${n}`);
try {
delete t[e];
} catch (i) {
if (Q(t, e)) {
if (typeof t == "function" && e === "prototype" && (t.prototype = void 0, t.prototype === void 0)) {
o(`Tolerating undeletable ${n} === undefined`);
return;
}
s(`failed to delete ${n}`, i);
} else
s(`deleting ${n} threw`, i);
throw i;
}
}, us = {
// *** Value Properties of the Global Object
Infinity: 1 / 0,
NaN: NaN,
undefined: void 0
}, ds = {
// *** Function Properties of the Global Object
isFinite: "isFinite",
isNaN: "isNaN",
parseFloat: "parseFloat",
parseInt: "parseInt",
decodeURI: "decodeURI",
decodeURIComponent: "decodeURIComponent",
encodeURI: "encodeURI",
encodeURIComponent: "encodeURIComponent",
// *** Constructor Properties of the Global Object
Array: "Array",
ArrayBuffer: "ArrayBuffer",
BigInt: "BigInt",
BigInt64Array: "BigInt64Array",
BigUint64Array: "BigUint64Array",
Boolean: "Boolean",
DataView: "DataView",
EvalError: "EvalError",
// https://github.com/tc39/proposal-float16array
Float16Array: "Float16Array",
Float32Array: "Float32Array",
Float64Array: "Float64Array",
Int8Array: "Int8Array",
Int16Array: "Int16Array",
Int32Array: "Int32Array",
Map: "Map",
Number: "Number",
Object: "Object",
Promise: "Promise",
Proxy: "Proxy",
RangeError: "RangeError",
ReferenceError: "ReferenceError",
Set: "Set",
String: "String",
SyntaxError: "SyntaxError",
TypeError: "TypeError",
Uint8Array: "Uint8Array",
Uint8ClampedArray: "Uint8ClampedArray",
Uint16Array: "Uint16Array",
Uint32Array: "Uint32Array",
URIError: "URIError",
WeakMap: "WeakMap",
WeakSet: "WeakSet",
// https://github.com/tc39/proposal-iterator-helpers
Iterator: "Iterator",
// https://github.com/tc39/proposal-async-iterator-helpers
AsyncIterator: "AsyncIterator",
// https://github.com/endojs/endo/issues/550
AggregateError: "AggregateError",
// *** Other Properties of the Global Object
JSON: "JSON",
Reflect: "Reflect",
// *** Annex B
escape: "escape",
unescape: "unescape",
// ESNext
// https://github.com/tc39/proposal-source-phase-imports?tab=readme-ov-file#js-module-source
ModuleSource: "ModuleSource",
lockdown: "lockdown",
harden: "harden",
HandledPromise: "HandledPromise"
// TODO: Until Promise.delegate (see below).
}, ro = {
// *** Constructor Properties of the Global Object
Date: "%InitialDate%",
Error: "%InitialError%",
RegExp: "%InitialRegExp%",
// Omit `Symbol`, because we want the original to appear on the
// start compartment without passing through the permits mechanism, since
// we want to preserve all its properties, even if we never heard of them.
// Symbol: '%InitialSymbol%',
// *** Other Properties of the Global Object
Math: "%InitialMath%",
// ESNext
// From Error-stack proposal
// Only on initial global. No corresponding
// powerless form for other globals.
getStackString: "%InitialGetStackString%"
// TODO https://github.com/Agoric/SES-shim/issues/551
// Need initial WeakRef and FinalizationGroup in
// start compartment only.
}, fs = {
// *** Constructor Properties of the Global Object
Date: "%SharedDate%",
Error: "%SharedError%",
RegExp: "%SharedRegExp%",
Symbol: "%SharedSymbol%",
// *** Other Properties of the Global Object
Math: "%SharedMath%"
}, ps = [
EvalError,
RangeError,
ReferenceError,
SyntaxError,
TypeError,
URIError
// https://github.com/endojs/endo/issues/550
// Commented out to accommodate platforms prior to AggregateError.
// Instead, conditional push below.
// AggregateError,
];
typeof AggregateError < "u" && ne(ps, AggregateError);
const vn = {
"[[Proto]]": "%FunctionPrototype%",
length: "number",
name: "string"
// Do not specify "prototype" here, since only Function instances that can
// be used as a constructor have a prototype property. For constructors,
// since prototype properties are instance-specific, we define it there.
}, ni = {
// This property is not mentioned in ECMA 262, but is present in V8 and
// necessary for lockdown to succeed.
"[[Proto]]": "%AsyncFunctionPrototype%"
}, a = vn, no = ni, M = {
get: a,
set: "undefined"
}, Le = {
get: a,
set: a
}, oo = (t) => t === M || t === Le;
function ct(t) {
return {
// Properties of the NativeError Constructors
"[[Proto]]": "%SharedError%",
// NativeError.prototype
prototype: t
};
}
function lt(t) {
return {
// Properties of the NativeError Prototype Objects
"[[Proto]]": "%ErrorPrototype%",
constructor: t,
message: "string",
name: "string",
// Redundantly present only on v8. Safe to remove.
toString: !1,
// Superfluously present in some versions of V8.
// https://github.com/tc39/notes/blob/master/meetings/2021-10/oct-26.md#:~:text=However%2C%20Chrome%2093,and%20node%2016.11.
cause: !1
};
}
function Se(t) {
return {
// Properties of the TypedArray Constructors
"[[Proto]]": "%TypedArray%",
BYTES_PER_ELEMENT: "number",
prototype: t
};
}
function xe(t) {
return {
// Properties of the TypedArray Prototype Objects
"[[Proto]]": "%TypedArrayPrototype%",
BYTES_PER_ELEMENT: "number",
constructor: t
};
}
const so = {
E: "number",
LN10: "number",
LN2: "number",
LOG10E: "number",
LOG2E: "number",
PI: "number",
SQRT1_2: "number",
SQRT2: "number",
"@@toStringTag": "string",
abs: a,
acos: a,
acosh: a,
asin: a,
asinh: a,
atan: a,
atanh: a,
atan2: a,
cbrt: a,
ceil: a,
clz32: a,
cos: a,
cosh: a,
exp: a,
expm1: a,
floor: a,
fround: a,
hypot: a,
imul: a,
log: a,
log1p: a,
log10: a,
log2: a,
max: a,
min: a,
pow: a,
round: a,
sign: a,
sin: a,
sinh: a,
sqrt: a,
tan: a,
tanh: a,
trunc: a,
// See https://github.com/Moddable-OpenSource/moddable/issues/523
idiv: !1,
// See https://github.com/Moddable-OpenSource/moddable/issues/523
idivmod: !1,
// See https://github.com/Moddable-OpenSource/moddable/issues/523
imod: !1,
// See https://github.com/Moddable-OpenSource/moddable/issues/523
imuldiv: !1,
// See https://github.com/Moddable-OpenSource/moddable/issues/523
irem: !1,
// See https://github.com/Moddable-OpenSource/moddable/issues/523
mod: !1,
// See https://github.com/Moddable-OpenSource/moddable/issues/523#issuecomment-1942904505
irandom: !1
}, Cr = {
// ECMA https://tc39.es/ecma262
// The intrinsics object has no prototype to avoid conflicts.
"[[Proto]]": null,
// %ThrowTypeError%
"%ThrowTypeError%": a,
// *** The Global Object
// *** Value Properties of the Global Object
Infinity: "number",
NaN: "number",
undefined: "undefined",
// *** Function Properties of the Global Object
// eval
"%UniqueEval%": a,
isFinite: a,
isNaN: a,
parseFloat: a,
parseInt: a,
decodeURI: a,
decodeURIComponent: a,
encodeURI: a,
encodeURIComponent: a,
// *** Fundamental Objects
Object: {
// Properties of the Object Constructor
"[[Proto]]": "%FunctionPrototype%",
assign: a,
create: a,
defineProperties: a,
defineProperty: a,
entries: a,
freeze: a,
fromEntries: a,
getOwnPropertyDescriptor: a,
getOwnPropertyDescriptors: a,
getOwnPropertyNames: a,
getOwnPropertySymbols: a,
getPrototypeOf: a,
hasOwn: a,
is: a,
isExtensible: a,
isFrozen: a,
isSealed: a,
keys: a,
preventExtensions: a,
prototype: "%ObjectPrototype%",
seal: a,
setPrototypeOf: a,
values: a,
// https://github.com/tc39/proposal-array-grouping
groupBy: a,
// Seen on QuickJS
__getClass: !1
},
"%ObjectPrototype%": {
// Properties of the Object Prototype Object
"[[Proto]]": null,
constructor: "Object",
hasOwnProperty: a,
isPrototypeOf: a,
propertyIsEnumerable: a,
toLocaleString: a,
toString: a,
valueOf: a,
// Annex B: Additional Properties of the Object.prototype Object
// See note in header about the difference between [[Proto]] and --proto--
// special notations.
"--proto--": Le,
__defineGetter__: a,
__defineSetter__: a,
__lookupGetter__: a,
__lookupSetter__: a
},
"%UniqueFunction%": {
// Properties of the Function Constructor
"[[Proto]]": "%FunctionPrototype%",
prototype: "%FunctionPrototype%"
},
"%InertFunction%": {
"[[Proto]]": "%FunctionPrototype%",
prototype: "%FunctionPrototype%"
},
"%FunctionPrototype%": {
apply: a,
bind: a,
call: a,
constructor: "%InertFunction%",
toString: a,
"@@hasInstance": a,
// proposed but not yet std. To be removed if there
caller: !1,
// proposed but not yet std. To be removed if there
arguments: !1,
// Seen on QuickJS. TODO grab getter for use by console
fileName: !1,
// Seen on QuickJS. TODO grab getter for use by console
lineNumber: !1
},
Boolean: {
// Properties of the Boolean Constructor
"[[Proto]]": "%FunctionPrototype%",
prototype: "%BooleanPrototype%"
},
"%BooleanPrototype%": {
constructor: "Boolean",
toString: a,
valueOf: a
},
"%SharedSymbol%": {
// Properties of the Symbol Constructor
"[[Proto]]": "%FunctionPrototype%",
asyncDispose: "symbol",
asyncIterator: "symbol",
dispose: "symbol",
for: a,
hasInstance: "symbol",
isConcatSpreadable: "symbol",
iterator: "symbol",
keyFor: a,
match: "symbol",
matchAll: "symbol",
prototype: "%SymbolPrototype%",
replace: "symbol",
search: "symbol",
species: "symbol",
split: "symbol",
toPrimitive: "symbol",
toStringTag: "symbol",
unscopables: "symbol",
// Seen at core-js https://github.com/zloirock/core-js#ecmascript-symbol
useSimple: !1,
// Seen at core-js https://github.com/zloirock/core-js#ecmascript-symbol
useSetter: !1,
// Seen on QuickJS
operatorSet: !1
},
"%SymbolPrototype%": {
// Properties of the Symbol Prototype Object
constructor: "%SharedSymbol%",
description: M,
toString: a,
valueOf: a,
"@@toPrimitive": a,
"@@toStringTag": "string"
},
"%InitialError%": {
// Properties of the Error Constructor
"[[Proto]]": "%FunctionPrototype%",
prototype: "%ErrorPrototype%",
// Non standard, v8 only, used by tap
captureStackTrace: a,
// Non standard, v8 only, used by tap, tamed to accessor
stackTraceLimit: Le,
// Non standard, v8 only, used by several, tamed to accessor
prepareStackTrace: Le
},
"%SharedError%": {
// Properties of the Error Constructor
"[[Proto]]": "%FunctionPrototype%",
prototype: "%ErrorPrototype%",
// Non standard, v8 only, used by tap
captureStackTrace: a,
// Non standard, v8 only, used by tap, tamed to accessor
stackTraceLimit: Le,
// Non standard, v8 only, used by several, tamed to accessor
prepareStackTrace: Le
},
"%ErrorPrototype%": {
constructor: "%SharedError%",
message: "string",
name: "string",
toString: a,
// proposed de-facto, assumed TODO
// Seen on FF Nightly 88.0a1
at: !1,
// Seen on FF and XS
stack: Le,
// Superfluously present in some versions of V8.
// https://github.com/tc39/notes/blob/master/meetings/2021-10/oct-26.md#:~:text=However%2C%20Chrome%2093,and%20node%2016.11.
cause: !1
},
// NativeError
EvalError: ct("%EvalErrorPrototype%"),
RangeError: ct("%RangeErrorPrototype%"),
ReferenceError: ct("%ReferenceErrorPrototype%"),
SyntaxError: ct("%SyntaxErrorPrototype%"),
TypeError: ct("%TypeErrorPrototype%"),
URIError: ct("%URIErrorPrototype%"),
// https://github.com/endojs/endo/issues/550
AggregateError: ct("%AggregateErrorPrototype%"),
"%EvalErrorPrototype%": lt("EvalError"),
"%RangeErrorPrototype%": lt("RangeError"),
"%ReferenceErrorPrototype%": lt("ReferenceError"),
"%SyntaxErrorPrototype%": lt("SyntaxError"),
"%TypeErrorPrototype%": lt("TypeError"),
"%URIErrorPrototype%": lt("URIError"),
// https://github.com/endojs/endo/issues/550
"%AggregateErrorPrototype%": lt("AggregateError"),
// *** Numbers and Dates
Number: {
// Properties of the Number Constructor
"[[Proto]]": "%FunctionPrototype%",
EPSILON: "number",
isFinite: a,
isInteger: a,
isNaN: a,
isSafeInteger: a,
MAX_SAFE_INTEGER: "number",
MAX_VALUE: "number",
MIN_SAFE_INTEGER: "number",
MIN_VALUE: "number",
NaN: "number",
NEGATIVE_INFINITY: "number",
parseFloat: a,
parseInt: a,
POSITIVE_INFINITY: "number",
prototype: "%NumberPrototype%"
},
"%NumberPrototype%": {
// Properties of the Number Prototype Object
constructor: "Number",
toExponential: a,
toFixed: a,
toLocaleString: a,
toPrecision: a,
toString: a,
valueOf: a
},
BigInt: {
// Properties of the BigInt Constructor
"[[Proto]]": "%FunctionPrototype%",
asIntN: a,
asUintN: a,
prototype: "%BigIntPrototype%",
// See https://github.com/Moddable-OpenSource/moddable/issues/523
bitLength: !1,
// See https://github.com/Moddable-OpenSource/moddable/issues/523
fromArrayBuffer: !1,
// Seen on QuickJS
tdiv: !1,
// Seen on QuickJS
fdiv: !1,
// Seen on QuickJS
cdiv: !1,
// Seen on QuickJS
ediv: !1,
// Seen on QuickJS
tdivrem: !1,
// Seen on QuickJS
fdivrem: !1,
// Seen on QuickJS
cdivrem: !1,
// Seen on QuickJS
edivrem: !1,
// Seen on QuickJS
sqrt: !1,
// Seen on QuickJS
sqrtrem: !1,
// Seen on QuickJS
floorLog2: !1,
// Seen on QuickJS
ctz: !1
},
"%BigIntPrototype%": {
constructor: "BigInt",
toLocaleString: a,
toString: a,
valueOf: a,
"@@toStringTag": "string"
},
"%InitialMath%": {
...so,
// `%InitialMath%.random()` has the standard unsafe behavior
random: a
},
"%SharedMath%": {
...so,
// `%SharedMath%.random()` is tamed to always throw
random: a
},
"%InitialDate%": {
// Properties of the Date Constructor
"[[Proto]]": "%FunctionPrototype%",
now: a,
parse: a,
prototype: "%DatePrototype%",
UTC: a
},
"%SharedDate%": {
// Properties of the Date Constructor
"[[Proto]]": "%FunctionPrototype%",
// `%SharedDate%.now()` is tamed to always throw
now: a,
parse: a,
prototype: "%DatePrototype%",
UTC: a
},
"%DatePrototype%": {
constructor: "%SharedDate%",
getDate: a,
getDay: a,
getFullYear: a,
getHours: a,
getMilliseconds: a,
getMinutes: a,
getMonth: a,
getSeconds: a,
getTime: a,
getTimezoneOffset: a,
getUTCDate: a,
getUTCDay: a,
getUTCFullYear: a,
getUTCHours: a,
getUTCMilliseconds: a,
getUTCMinutes: a,
getUTCMonth: a,
getUTCSeconds: a,
setDate: a,
setFullYear: a,
setHours: a,
setMilliseconds: a,
setMinutes: a,
setMonth: a,
setSeconds: a,
setTime: a,
setUTCDate: a,
setUTCFullYear: a,
setUTCHours: a,
setUTCMilliseconds: a,
setUTCMinutes: a,
setUTCMonth: a,
setUTCSeconds: a,
toDateString: a,
toISOString: a,
toJSON: a,
toLocaleDateString: a,
toLocaleString: a,
toLocaleTimeString: a,
toString: a,
toTimeString: a,
toUTCString: a,
valueOf: a,
"@@toPrimitive": a,
// Annex B: Additional Properties of the Date.prototype Object
getYear: a,
setYear: a,
toGMTString: a
},
// Text Processing
String: {
// Properties of the String Constructor
"[[Proto]]": "%FunctionPrototype%",
fromCharCode: a,
fromCodePoint: a,
prototype: "%StringPrototype%",
raw: a,
// See https://github.com/Moddable-OpenSource/moddable/issues/523
fromArrayBuffer: !1
},
"%StringPrototype%": {
// Properties of the String Prototype Object
length: "number",
at: a,
charAt: a,
charCodeAt: a,
codePointAt: a,
concat: a,
constructor: "String",
endsWith: a,
includes: a,
indexOf: a,
lastIndexOf: a,
localeCompare: a,
match: a,
matchAll: a,
normalize: a,
padEnd: a,
padStart: a,
repeat: a,
replace: a,
replaceAll: a,
// ES2021
search: a,
slice: a,
split: a,
startsWith: a,
substring: a,
toLocaleLowerCase: a,
toLocaleUpperCase: a,
toLowerCase: a,
toString: a,
toUpperCase: a,
trim: a,
trimEnd: a,
trimStart: a,
valueOf: a,
"@@iterator": a,
// Annex B: Additional Properties of the String.prototype Object
substr: a,
anchor: a,
big: a,
blink: a,
bold: a,
fixed: a,
fontcolor: a,
fontsize: a,
italics: a,
link: a,
small: a,
strike: a,
sub: a,
sup: a,
trimLeft: a,
trimRight: a,
// See https://github.com/Moddable-OpenSource/moddable/issues/523
compare: !1,
// https://github.com/tc39/proposal-is-usv-string
isWellFormed: a,
toWellFormed: a,
unicodeSets: a,
// Seen on QuickJS
__quote: !1
},
"%StringIteratorPrototype%": {
"[[Proto]]": "%IteratorPrototype%",
next: a,
"@@toStringTag": "string"
},
"%InitialRegExp%": {
// Properties of the RegExp Constructor
"[[Proto]]": "%FunctionPrototype%",
prototype: "%RegExpPrototype%",
"@@species": M,
// The https://github.com/tc39/proposal-regexp-legacy-features
// are all optional, unsafe, and omitted
input: !1,
$_: !1,
lastMatch: !1,
"$&": !1,
lastParen: !1,
"$+": !1,
leftContext: !1,
"$`": !1,
rightContext: !1,
"$'": !1,
$1: !1,
$2: !1,
$3: !1,
$4: !1,
$5: !1,
$6: !1,
$7: !1,
$8: !1,
$9: !1
},
"%SharedRegExp%": {
// Properties of the RegExp Constructor
"[[Proto]]": "%FunctionPrototype%",
prototype: "%RegExpPrototype%",
"@@species": M
},
"%RegExpPrototype%": {
// Properties of the RegExp Prototype Object
constructor: "%SharedRegExp%",
exec: a,
dotAll: M,
flags: M,
global: M,
hasIndices: M,
ignoreCase: M,
"@@match": a,
"@@matchAll": a,
multiline: M,
"@@replace": a,
"@@search": a,
source: M,
"@@split": a,
sticky: M,
test: a,
toString: a,
unicode: M,
unicodeSets: M,
// Annex B: Additional Properties of the RegExp.prototype Object
compile: !1
// UNSAFE and suppressed.
},
"%RegExpStringIteratorPrototype%": {
// The %RegExpStringIteratorPrototype% Object
"[[Proto]]": "%IteratorPrototype%",
next: a,
"@@toStringTag": "string"
},
// Indexed Collections
Array: {
// Properties of the Array Constructor
"[[Proto]]": "%FunctionPrototype%",
from: a,
isArray: a,
of: a,
prototype: "%ArrayPrototype%",
"@@species": M,
// Stage 3:
// https://tc39.es/proposal-relative-indexing-method/
at: a,
// https://tc39.es/proposal-array-from-async/
fromAsync: a
},
"%ArrayPrototype%": {
// Properties of the Array Prototype Object
at: a,
length: "number",
concat: a,
constructor: "Array",
copyWithin: a,
entries: a,
every: a,
fill: a,
filter: a,
find: a,
findIndex: a,
flat: a,
flatMap: a,
forEach: a,
includes: a,
indexOf: a,
join: a,
keys: a,
lastIndexOf: a,
map: a,
pop: a,
push: a,
reduce: a,
reduceRight: a,
reverse: a,
shift: a,
slice: a,
some: a,
sort: a,
splice: a,
toLocaleString: a,
toString: a,
unshift: a,
values: a,
"@@iterator": a,
"@@unscopables": {
"[[Proto]]": null,
copyWithin: "boolean",
entries: "boolean",
fill: "boolean",
find: "boolean",
findIndex: "boolean",
flat: "boolean",
flatMap: "boolean",
includes: "boolean",
keys: "boolean",
values: "boolean",
// Failed tc39 proposal
// Seen on FF Nightly 88.0a1
at: "boolean",
// See https://github.com/tc39/proposal-array-find-from-last
findLast: "boolean",
findLastIndex: "boolean",
// https://github.com/tc39/proposal-change-array-by-copy
toReversed: "boolean",
toSorted: "boolean",
toSpliced: "boolean",
with: "boolean",
// https://github.com/tc39/proposal-array-grouping
group: "boolean",
groupToMap: "boolean",
groupBy: "boolean"
},
// See https://github.com/tc39/proposal-array-find-from-last
findLast: a,
findLastIndex: a,
// https://github.com/tc39/proposal-change-array-by-copy
toReversed: a,
toSorted: a,
toSpliced: a,
with: a,
// https://github.com/tc39/proposal-array-grouping
group: a,
// Not in proposal? Where?
groupToMap: a,
// Not in proposal? Where?
groupBy: a
},
"%ArrayIteratorPrototype%": {
// The %ArrayIteratorPrototype% Object
"[[Proto]]": "%IteratorPrototype%",
next: a,
"@@toStringTag": "string"
},
// *** TypedArray Objects
"%TypedArray%": {
// Properties of the %TypedArray% Intrinsic Object
"[[Proto]]": "%FunctionPrototype%",
from: a,
of: a,
prototype: "%TypedArrayPrototype%",
"@@species": M
},
"%TypedArrayPrototype%": {
at: a,
buffer: M,
byteLength: M,
byteOffset: M,
constructor: "%TypedArray%",
copyWithin: a,
entries: a,
every: a,
fill: a,
filter: a,
find: a,
findIndex: a,
forEach: a,
includes: a,
indexOf: a,
join: a,
keys: a,
lastIndexOf: a,
length: M,
map: a,
reduce: a,
reduceRight: a,
reverse: a,
set: a,
slice: a,
some: a,
sort: a,
subarray: a,
toLocaleString: a,
toString: a,
values: a,
"@@iterator": a,
"@@toStringTag": M,
// See https://github.com/tc39/proposal-array-find-from-last
findLast: a,
findLastIndex: a,
// https://github.com/tc39/proposal-change-array-by-copy
toReversed: a,
toSorted: a,
with: a
},
// The TypedArray Constructors
BigInt64Array: Se("%BigInt64ArrayPrototype%"),
BigUint64Array: Se("%BigUint64ArrayPrototype%"),
// https://github.com/tc39/proposal-float16array
Float16Array: Se("%Float16ArrayPrototype%"),
Float32Array: Se("%Float32ArrayPrototype%"),
Float64Array: Se("%Float64ArrayPrototype%"),
Int16Array: Se("%Int16ArrayPrototype%"),
Int32Array: Se("%Int32ArrayPrototype%"),
Int8Array: Se("%Int8ArrayPrototype%"),
Uint16Array: Se("%Uint16ArrayPrototype%"),
Uint32Array: Se("%Uint32ArrayPrototype%"),
Uint8ClampedArray: Se("%Uint8ClampedArrayPrototype%"),
Uint8Array: {
...Se("%Uint8ArrayPrototype%"),
// https://github.com/tc39/proposal-arraybuffer-base64
fromBase64: a,
// https://github.com/tc39/proposal-arraybuffer-base64
fromHex: a
},
"%BigInt64ArrayPrototype%": xe("BigInt64Array"),
"%BigUint64ArrayPrototype%": xe("BigUint64Array"),
// https://github.com/tc39/proposal-float16array
"%Float16ArrayPrototype%": xe("Float16Array"),
"%Float32ArrayPrototype%": xe("Float32Array"),
"%Float64ArrayPrototype%": xe("Float64Array"),
"%Int16ArrayPrototype%": xe("Int16Array"),
"%Int32ArrayPrototype%": xe("Int32Array"),
"%Int8ArrayPrototype%": xe("Int8Array"),
"%Uint16ArrayPrototype%": xe("Uint16Array"),
"%Uint32ArrayPrototype%": xe("Uint32Array"),
"%Uint8ClampedArrayPrototype%": xe("Uint8ClampedArray"),
"%Uint8ArrayPrototype%": {
...xe("Uint8Array"),
// https://github.com/tc39/proposal-arraybuffer-base64
setFromBase64: a,
// https://github.com/tc39/proposal-arraybuffer-base64
setFromHex: a,
// https://github.com/tc39/proposal-arraybuffer-base64
toBase64: a,
// https://github.com/tc39/proposal-arraybuffer-base64
toHex: a
},
// *** Keyed Collections
Map: {
// Properties of the Map Constructor
"[[Proto]]": "%FunctionPrototype%",
"@@species": M,
prototype: "%MapPrototype%",
// https://github.com/tc39/proposal-array-grouping
groupBy: a
},
"%MapPrototype%": {
clear: a,
constructor: "Map",
delete: a,
entries: a,
forEach: a,
get: a,
has: a,
keys: a,
set: a,
size: M,
values: a,
"@@iterator": a,
"@@toStringTag": "string"
},
"%MapIteratorPrototype%": {
// The %MapIteratorPrototype% Object
"[[Proto]]": "%IteratorPrototype%",
next: a,
"@@toStringTag": "string"
},
Set: {
// Properties of the Set Constructor
"[[Proto]]": "%FunctionPrototype%",
prototype: "%SetPrototype%",
"@@species": M,
// Seen on QuickJS
groupBy: !1
},
"%SetPrototype%": {
add: a,
clear: a,
constructor: "Set",
delete: a,
entries: a,
forEach: a,
has: a,
keys: a,
size: M,
values: a,
"@@iterator": a,
"@@toStringTag": "string",
// See https://github.com/tc39/proposal-set-methods
intersection: a,
// See https://github.com/tc39/proposal-set-methods
union: a,
// See https://github.com/tc39/proposal-set-methods
difference: a,
// See https://github.com/tc39/proposal-set-methods
symmetricDifference: a,
// See https://github.com/tc39/proposal-set-methods
isSubsetOf: a,
// See https://github.com/tc39/proposal-set-methods
isSupersetOf: a,
// See https://github.com/tc39/proposal-set-methods
isDisjointFrom: a
},
"%SetIteratorPrototype%": {
// The %SetIteratorPrototype% Object
"[[Proto]]": "%IteratorPrototype%",
next: a,
"@@toStringTag": "string"
},
WeakMap: {
// Properties of the WeakMap Constructor
"[[Proto]]": "%FunctionPrototype%",
prototype: "%WeakMapPrototype%"
},
"%WeakMapPrototype%": {
constructor: "WeakMap",
delete: a,
get: a,
has: a,
set: a,
"@@toStringTag": "string"
},
WeakSet: {
// Properties of the WeakSet Constructor
"[[Proto]]": "%FunctionPrototype%",
prototype: "%WeakSetPrototype%"
},
"%WeakSetPrototype%": {
add: a,
constructor: "WeakSet",
delete: a,
has: a,
"@@toStringTag": "string"
},
// *** Structured Data
ArrayBuffer: {
// Properties of the ArrayBuffer Constructor
"[[Proto]]": "%FunctionPrototype%",
isView: a,
prototype: "%ArrayBufferPrototype%",
"@@species": M,
// See https://github.com/Moddable-OpenSource/moddable/issues/523
fromString: !1,
// See https://github.com/Moddable-OpenSource/moddable/issues/523
fromBigInt: !1
},
"%ArrayBufferPrototype%": {
byteLength: M,
constructor: "ArrayBuffer",
slice: a,
"@@toStringTag": "string",
// See https://github.com/Moddable-OpenSource/moddable/issues/523
concat: !1,
// See https://github.com/tc39/proposal-resizablearraybuffer
transfer: a,
resize: a,
resizable: M,
maxByteLength: M,
// https://github.com/tc39/proposal-arraybuffer-transfer
transferToFixedLength: a,
detached: M
},
// SharedArrayBuffer Objects
SharedArrayBuffer: !1,
// UNSAFE and purposely suppressed.
"%SharedArrayBufferPrototype%": !1,
// UNSAFE and purposely suppressed.
DataView: {
// Properties of the DataView Constructor
"[[Proto]]": "%FunctionPrototype%",
BYTES_PER_ELEMENT: "number",
// Non std but undeletable on Safari.
prototype: "%DataViewPrototype%"
},
"%DataViewPrototype%": {
buffer: M,
byteLength: M,
byteOffset: M,
constructor: "DataView",
getBigInt64: a,
getBigUint64: a,
// https://github.com/tc39/proposal-float16array
getFloat16: a,
getFloat32: a,
getFloat64: a,
getInt8: a,
getInt16: a,
getInt32: a,
getUint8: a,
getUint16: a,
getUint32: a,
setBigInt64: a,
setBigUint64: a,
// https://github.com/tc39/proposal-float16array
setFloat16: a,
setFloat32: a,
setFloat64: a,
setInt8: a,
setInt16: a,
setInt32: a,
setUint8: a,
setUint16: a,
setUint32: a,
"@@toStringTag": "string"
},
// Atomics
Atomics: !1,
// UNSAFE and suppressed.
JSON: {
parse: a,
stringify: a,
"@@toStringTag": "string",
// https://github.com/tc39/proposal-json-parse-with-source/
rawJSON: a,
isRawJSON: a
},
// *** Control Abstraction Objects
// https://github.com/tc39/proposal-iterator-helpers
Iterator: {
// Properties of the Iterator Constructor
"[[Proto]]": "%FunctionPrototype%",
prototype: "%IteratorPrototype%",
from: a
},
"%IteratorPrototype%": {
// The %IteratorPrototype% Object
"@@iterator": a,
// https://github.com/tc39/proposal-iterator-helpers
constructor: "Iterator",
map: a,
filter: a,
take: a,
drop: a,
flatMap: a,
reduce: a,
toArray: a,
forEach: a,
some: a,
every: a,
find: a,
"@@toStringTag": "string",
// https://github.com/tc39/proposal-async-iterator-helpers
toAsync: a,
// See https://github.com/Moddable-OpenSource/moddable/issues/523#issuecomment-1942904505
"@@dispose": !1
},
// https://github.com/tc39/proposal-iterator-helpers
"%WrapForValidIteratorPrototype%": {
"[[Proto]]": "%IteratorPrototype%",
next: a,
return: a
},
// https://github.com/tc39/proposal-iterator-helpers
"%IteratorHelperPrototype%": {
"[[Proto]]": "%IteratorPrototype%",
next: a,
return: a,
"@@toStringTag": "string"
},
// https://github.com/tc39/proposal-async-iterator-helpers
AsyncIterator: {
// Properties of the Iterator Constructor
"[[Proto]]": "%FunctionPrototype%",
prototype: "%AsyncIteratorPrototype%",
from: a
},
"%AsyncIteratorPrototype%": {
// The %AsyncIteratorPrototype% Object
"@@asyncIterator": a,
// https://github.com/tc39/proposal-async-iterator-helpers
constructor: "AsyncIterator",
map: a,
filter: a,
take: a,
drop: a,
flatMap: a,
reduce: a,
toArray: a,
forEach: a,
some: a,
every: a,
find: a,
"@@toStringTag": "string",
// See https://github.com/Moddable-OpenSource/moddable/issues/523#issuecomment-1942904505
"@@asyncDispose": !1
},
// https://github.com/tc39/proposal-async-iterator-helpers
"%WrapForValidAsyncIteratorPrototype%": {
"[[Proto]]": "%AsyncIteratorPrototype%",
next: a,
return: a
},
// https://github.com/tc39/proposal-async-iterator-helpers
"%AsyncIteratorHelperPrototype%": {
"[[Proto]]": "%AsyncIteratorPrototype%",
next: a,
return: a,
"@@toStringTag": "string"
},
"%InertGeneratorFunction%": {
// Properties of the GeneratorFunction Constructor
"[[Proto]]": "%InertFunction%",
prototype: "%Generator%"
},
"%Generator%": {
// Properties of the GeneratorFunction Prototype Object
"[[Proto]]": "%FunctionPrototype%",
constructor: "%InertGeneratorFunction%",
prototype: "%GeneratorPrototype%",
"@@toStringTag": "string"
},
"%InertAsyncGeneratorFunction%": {
// Properties of the AsyncGeneratorFunction Constructor
"[[Proto]]": "%InertFunction%",
prototype: "%AsyncGenerator%"
},
"%AsyncGenerator%": {
// Properties of the AsyncGeneratorFunction Prototype Object
"[[Proto]]": "%FunctionPrototype%",
constructor: "%InertAsyncGeneratorFunction%",
prototype: "%AsyncGeneratorPrototype%",
// length prop added here for React Native jsc-android
// https://github.com/endojs/endo/issues/660
// https://github.com/react-native-community/jsc-android-buildscripts/issues/181
length: "number",
"@@toStringTag": "string"
},
"%GeneratorPrototype%": {
// Properties of the Generator Prototype Object
"[[Proto]]": "%IteratorPrototype%",
constructor: "%Generator%",
next: a,
return: a,
throw: a,
"@@toStringTag": "string"
},
"%AsyncGeneratorPrototype%": {
// Properties of the AsyncGenerator Prototype Object
"[[Proto]]": "%AsyncIteratorPrototype%",
constructor: "%AsyncGenerator%",
next: a,
return: a,
throw: a,
"@@toStringTag": "string"
},
// TODO: To be replaced with Promise.delegate
//
// The HandledPromise global variable shimmed by `@agoric/eventual-send/shim`
// implements an initial version of the eventual send specification at:
// https://github.com/tc39/proposal-eventual-send
//
// We will likely change this to add a property to Promise called
// Promise.delegate and put static methods on it, which will necessitate
// another permits change to update to the current proposed standard.
HandledPromise: {
"[[Proto]]": "Promise",
applyFunction: a,
applyFunctionSendOnly: a,
applyMethod: a,
applyMethodSendOnly: a,
get: a,
getSendOnly: a,
prototype: "%PromisePrototype%",
resolve: a
},
// https://github.com/tc39/proposal-source-phase-imports?tab=readme-ov-file#js-module-source
ModuleSource: {
"[[Proto]]": "%AbstractModuleSource%",
prototype: "%ModuleSourcePrototype%"
},
"%ModuleSourcePrototype%": {
"[[Proto]]": "%AbstractModuleSourcePrototype%",
constructor: "ModuleSource",
"@@toStringTag": "string",
// https://github.com/tc39/proposal-compartments
bindings: M,
needsImport: M,
needsImportMeta: M
},
"%AbstractModuleSource%": {
"[[Proto]]": "%FunctionPrototype%",
prototype: "%AbstractModuleSourcePrototype%"
},
"%AbstractModuleSourcePrototype%": {
constructor: "%AbstractModuleSource%"
},
Promise: {
// Properties of the Promise Constructor
"[[Proto]]": "%FunctionPrototype%",
all: a,
allSettled: a,
// https://github.com/Agoric/SES-shim/issues/550
any: a,
prototype: "%PromisePrototype%",
race: a,
reject: a,
resolve: a,
// https://github.com/tc39/proposal-promise-with-resolvers
withResolvers: a,
"@@species": M,
// https://github.com/tc39/proposal-promise-try
try: a
},
"%PromisePrototype%": {
// Properties of the Promise Prototype Object
catch: a,
constructor: "Promise",
finally: a,
then: a,
"@@toStringTag": "string",
// Non-standard, used in node to prevent async_hooks from breaking
"UniqueSymbol(async_id_symbol)": Le,
"UniqueSymbol(trigger_async_id_symbol)": Le,
"UniqueSymbol(destroyed)": Le
},
"%InertAsyncFunction%": {
// Properties of the AsyncFunction Constructor
"[[Proto]]": "%InertFunction%",
prototype: "%AsyncFunctionPrototype%"
},
"%AsyncFunctionPrototype%": {
// Properties of the AsyncFunction Prototype Object
"[[Proto]]": "%FunctionPrototype%",
constructor: "%InertAsyncFunction%",
// length prop added here for React Native jsc-android
// https://github.com/endojs/endo/issues/660
// https://github.com/react-native-community/jsc-android-buildscripts/issues/181
length: "number",
"@@toStringTag": "string"
},
// Reflection
Reflect: {
// The Reflect Object
// Not a function object.
apply: a,
construct: a,
defineProperty: a,
deleteProperty: a,
get: a,
getOwnPropertyDescriptor: a,
getPrototypeOf: a,
has: a,
isExtensible: a,
ownKeys: a,
preventExtensions: a,
set: a,
setPrototypeOf: a,
"@@toStringTag": "string"
},
Proxy: {
// Properties of the Proxy Constructor
"[[Proto]]": "%FunctionPrototype%",
revocable: a
},
// Appendix B
// Annex B: Additional Properties of the Global Object
escape: a,
unescape: a,
// Proposed
"%UniqueCompartment%": {
"[[Proto]]": "%FunctionPrototype%",
prototype: "%CompartmentPrototype%",
toString: a
},
"%InertCompartment%": {
"[[Proto]]": "%FunctionPrototype%",
prototype: "%CompartmentPrototype%",
toString: a
},
"%CompartmentPrototype%": {
constructor: "%InertCompartment%",
evaluate: a,
globalThis: M,
name: M,
import: no,
load: no,
importNow: a,
module: a,
"@@toStringTag": "string"
},
lockdown: a,
harden: { ...a, isFake: "boolean" },
"%InitialGetStackString%": a
}, oi = (t) => typeof t == "function";
function si(t, e, r) {
if (Q(t, e)) {
const n = ee(t, e);
if (!n || !Zr(n.value, r.value) || n.get !== r.get || n.set !== r.set || n.writable !== r.writable || n.enumerable !== r.enumerable || n.configurable !== r.configurable)
throw _(`Conflicting definitions of ${e}`);
}
D(t, e, r);
}
function ai(t, e) {
for (const [r, n] of me(e))
si(t, r, n);
}
function hs(t, e) {
const r = { __proto__: null };
for (const [n, o] of me(e))
Q(t, n) && (r[o] = t[n]);
return r;
}
const ms = (t) => {
const e = H(null);
let r;
const n = (l) => {
ai(e, Be(l));
};
y(n);
const o = () => {
for (const [l, u] of me(e)) {
if (!ke(u) || !Q(u, "prototype"))
continue;
const d = Cr[l];
if (typeof d != "object")
throw _(`Expected permit object at permits.${l}`);
const f = d.prototype;
if (!f) {
ls(
u,
"prototype",
!1,
`${l}.prototype`,
t
);
continue;
}
if (typeof f != "string" || !Q(Cr, f))
throw _(`Unrecognized ${l}.prototype permits entry`);
const h = u.prototype;
if (Q(e, f)) {
if (e[f] !== h)
throw _(`Conflicting bindings of ${f}`);
continue;
}
e[f] = h;
}
};
y(o);
const s = () => (y(e), r = new Ut(et(Ro(e), oi)), e);
y(s);
const i = (l) => {
if (!r)
throw _(
"isPseudoNative can only be called after finalIntrinsics"
);
return lr(r, l);
};
y(i);
const c = {
addIntrinsics: n,
completePrototypes: o,
finalIntrinsics: s,
isPseudoNative: i
};
return y(c), n(us), n(hs(x, ds)), c;
}, ii = (t, e) => {
const { addIntrinsics: r, finalIntrinsics: n } = ms(e);
return r(hs(t, fs)), n();
};
function ci(t, e, r) {
const n = ["undefined", "boolean", "number", "string", "symbol"], o = new $e(
At ? de(
et(
me(Cr["%SharedSymbol%"]),
([f, h]) => h === "symbol" && typeof At[f] == "symbol"
),
([f]) => [At[f], `@@${f}`]
) : []
);
function s(f, h) {
if (typeof h == "string")
return h;
const p = Ke(o, h);
if (typeof h == "symbol") {
if (p)
return p;
{
const m = pa(h);
return m !== void 0 ? `RegisteredSymbol(${m})` : `Unique${_e(h)}`;
}
}
throw _(`Unexpected property name type ${f} ${h}`);
}
function i(f, h, p) {
if (!ke(h))
throw _(`Object expected: ${f}, ${h}, ${p}`);
const m = G(h);
if (!(m === null && p === null)) {
if (p !== void 0 && typeof p != "string")
throw _(`Malformed permit ${f}.__proto__`);
if (m !== t[p || "%ObjectPrototype%"])
throw _(
`Unexpected [[Prototype]] at ${f}.__proto__ (expected ${p || "%ObjectPrototype%"})`
);
}
}
function c(f, h, p, m) {
if (typeof m == "object")
return d(f, h, m), !0;
if (m === !1)
return !1;
if (typeof m == "string") {
if (p === "prototype" || p === "constructor") {
if (Q(t, m)) {
if (h !== t[m])
throw _(`Does not match permit for ${f}`);
return !0;
}
} else if (Hr(n, m)) {
if (typeof h !== m)
throw _(
`At ${f} expected ${m} not ${typeof h}`
);
return !0;
}
}
throw _(
`Unexpected property ${p} with permit ${m} at ${f}`
);
}
function l(f, h, p, m) {
const A = ee(h, p);
if (!A)
throw _(`Property ${p} not found at ${f}`);
if (Q(A, "value")) {
if (oo(m))
throw _(`Accessor expected at ${f}`);
return c(f, A.value, p, m);
}
if (!oo(m))
throw _(`Accessor not expected at ${f}`);
return c(`${f}<get>`, A.get, p, m.get) && c(`${f}<set>`, A.set, p, m.set);
}
function u(f, h, p) {
const m = p === "__proto__" ? "--proto--" : p;
if (Q(h, m))
return h[m];
if (typeof f == "function" && Q(vn, m))
return vn[m];
}
function d(f, h, p) {
if (h == null)
return;
const m = p["[[Proto]]"];
i(f, h, m), typeof h == "function" && e(h);
for (const A of qe(h)) {
const S = s(f, A), w = `${f}.${S}`, R = u(h, p, S);
(!R || !l(w, h, A, R)) && ls(h, A, R === !1, w, r);
}
}
d("intrinsics", t, Cr);
}
function li() {
try {
Ee.prototype.constructor("return 1");
} catch {
return y({});
}
const t = {};
function e(r, n, o) {
let s;
try {
s = (0, eval)(o);
} catch (l) {
if (l instanceof ir)
return;
throw l;
}
const i = G(s), c = function() {
throw _(
"Function.prototype.constructor is not a valid constructor."
);
};
B(c, {
prototype: { value: i },
name: {
value: r,
writable: !1,
enumerable: !1,
configurable: !0
}
}), B(i, {
constructor: { value: c }
}), c !== Ee.prototype.constructor && wr(c, Ee.prototype.constructor), t[n] = c;
}
return e("Function", "%InertFunction%", "(function(){})"), e(
"GeneratorFunction",
"%InertGeneratorFunction%",
"(function*(){})"
), e(
"AsyncFunction",
"%InertAsyncFunction%",
"(async function(){})"
), e(
"AsyncGeneratorFunction",
"%InertAsyncGeneratorFunction%",
"(async function*(){})"
), t;
}
function ui(t = "safe") {
if (t !== "safe" && t !== "unsafe")
throw _(`unrecognized dateTaming ${t}`);
const e = oa, r = e.prototype, n = {
/**
* `%SharedDate%.now()` throw a `TypeError` starting with "secure mode".
* See https://github.com/endojs/endo/issues/910#issuecomment-1581855420
*/
now() {
throw _("secure mode Calling %SharedDate%.now() throws");
}
}, o = ({ powers: c = "none" } = {}) => {
let l;
return c === "original" ? l = function(...d) {
return new.target === void 0 ? ue(e, void 0, d) : Sr(e, d, new.target);
} : l = function(...d) {
if (new.target === void 0)
throw _(
"secure mode Calling %SharedDate% constructor as a function throws"
);
if (d.length === 0)
throw _(
"secure mode Calling new %SharedDate%() with no arguments throws"
);
return Sr(e, d, new.target);
}, B(l, {
length: { value: 7 },
prototype: {
value: r,
writable: !1,
enumerable: !1,
configurable: !1
},
parse: {
value: e.parse,
writable: !0,
enumerable: !1,
configurable: !0
},
UTC: {
value: e.UTC,
writable: !0,
enumerable: !1,
configurable: !0
}
}), l;
}, s = o({ powers: "original" }), i = o({ powers: "none" });
return B(s, {
now: {
value: e.now,
writable: !0,
enumerable: !1,
configurable: !0
}
}), B(i, {
now: {
value: n.now,
writable: !0,
enumerable: !1,
configurable: !0
}
}), B(r, {
constructor: { value: i }
}), {
"%InitialDate%": s,
"%SharedDate%": i
};
}
function di(t = "safe") {
if (t !== "safe" && t !== "unsafe")
throw _(`unrecognized mathTaming ${t}`);
const e = ia, r = e, { random: n, ...o } = Be(e), i = H(zr, {
...o,
random: {
value: {
/**
* `%SharedMath%.random()` throws a TypeError starting with "secure mode".
* See https://github.com/endojs/endo/issues/910#issuecomment-1581855420
*/
random() {
throw _("secure mode %SharedMath%.random() throws");
}
}.random,
writable: !0,
enumerable: !1,
configurable: !0
}
});
return {
"%InitialMath%": r,
"%SharedMath%": i
};
}
function fi(t = "safe") {
if (t !== "safe" && t !== "unsafe")
throw _(`unrecognized regExpTaming ${t}`);
const e = Xe.prototype, r = (s = {}) => {
const i = function(...l) {
return new.target === void 0 ? Xe(...l) : Sr(Xe, l, new.target);
};
if (B(i, {
length: { value: 2 },
prototype: {
value: e,
writable: !1,
enumerable: !1,
configurable: !1
}
}), nn) {
const c = ee(
Xe,
nn
);
if (!c)
throw _("no RegExp[Symbol.species] descriptor");
B(i, {
[nn]: c
});
}
return i;
}, n = r(), o = r();
return t !== "unsafe" && delete e.compile, B(e, {
constructor: { value: o }
}), {
"%InitialRegExp%": n,
"%SharedRegExp%": o
};
}
const pi = {
"%ObjectPrototype%": {
toString: !0
},
"%FunctionPrototype%": {
toString: !0
// set by "rollup"
},
"%ErrorPrototype%": {
name: !0
// set by "precond", "ava", "node-fetch"
},
"%IteratorPrototype%": {
toString: !0,
// https://github.com/tc39/proposal-iterator-helpers
constructor: !0,
// https://github.com/tc39/proposal-iterator-helpers
[Qe]: !0
}
}, gs = {
"%ObjectPrototype%": {
toString: !0,
valueOf: !0
},
"%ArrayPrototype%": {
toString: !0,
push: !0,
// set by "Google Analytics"
concat: !0,
// set by mobx generated code (old TS compiler?)
[De]: !0
// set by mobx generated code (old TS compiler?)
},
// Function.prototype has no 'prototype' property to enable.
// Function instances have their own 'name' and 'length' properties
// which are configurable and non-writable. Thus, they are already
// non-assignable anyway.
"%FunctionPrototype%": {
constructor: !0,
// set by "regenerator-runtime"
bind: !0,
// set by "underscore", "express"
toString: !0
// set by "rollup"
},
"%ErrorPrototype%": {
constructor: !0,
// set by "fast-json-patch", "node-fetch"
message: !0,
name: !0,
// set by "precond", "ava", "node-fetch", "node 14"
toString: !0
// set by "bluebird"
},
"%TypeErrorPrototype%": {
constructor: !0,
// set by "readable-stream"
message: !0,
// set by "tape"
name: !0
// set by "readable-stream", "node 14"
},
"%SyntaxErrorPrototype%": {
message: !0,
// to match TypeErrorPrototype.message
name: !0
// set by "node 14"
},
"%RangeErrorPrototype%": {
message: !0,
// to match TypeErrorPrototype.message
name: !0
// set by "node 14"
},
"%URIErrorPrototype%": {
message: !0,
// to match TypeErrorPrototype.message
name: !0
// set by "node 14"
},
"%EvalErrorPrototype%": {
message: !0,
// to match TypeErrorPrototype.message
name: !0
// set by "node 14"
},
"%ReferenceErrorPrototype%": {
message: !0,
// to match TypeErrorPrototype.message
name: !0
// set by "node 14"
},
// https://github.com/endojs/endo/issues/550
"%AggregateErrorPrototype%": {
message: !0,
// to match TypeErrorPrototype.message
name: !0
// set by "node 14"?
},
"%PromisePrototype%": {
constructor: !0
// set by "core-js"
},
"%TypedArrayPrototype%": "*",
// set by https://github.com/feross/buffer
"%Generator%": {
constructor: !0,
name: !0,
toString: !0
},
"%IteratorPrototype%": {
toString: !0,
// https://github.com/tc39/proposal-iterator-helpers
constructor: !0,
// https://github.com/tc39/proposal-iterator-helpers
[Qe]: !0
}
}, hi = {
...gs,
/**
* Rollup (as used at least by vega) and webpack
* (as used at least by regenerator) both turn exports into assignments
* to a big `exports` object that inherits directly from
* `Object.prototype`. Some of the exported names we've seen include
* `hasOwnProperty`, `constructor`, and `toString`. But the strategy used
* by rollup and webpack potentionally turns any exported name
* into an assignment rejected by the override mistake. That's why
* the `severe` enablements takes the extreme step of enabling
* everything on `Object.prototype`.
*
* In addition, code doing inheritance manually will often override
* the `constructor` property on the new prototype by assignment. We've
* seen this several times.
*
* The cost of enabling all these is that they create a miserable debugging
* experience specifically on Node.
* https://github.com/Agoric/agoric-sdk/issues/2324
* explains how it confused the Node console.
*
* (TODO Reexamine the vscode situation. I think it may have improved
* since the following paragraph was written.)
*
* The vscode debugger's object inspector shows the own data properties of
* an object, which is typically what you want, but also shows both getter
* and setter for every accessor property whether inherited or own.
* With the `'*'` setting here, all the properties inherited from
* `Object.prototype` are accessors, creating an unusable display as seen
* at As explained at
* https://github.com/endojs/endo/blob/master/packages/ses/docs/lockdown.md#overridetaming-options
* Open the triangles at the bottom of that section.
*/
"%ObjectPrototype%": "*",
/**
* The widely used Buffer defined at https://github.com/feross/buffer
* on initialization, manually creates the equivalent of a subclass of
* `TypedArray`, which it then initializes by assignment. These assignments
* include enough of the `TypeArray` methods that here, the `severe`
* enablements just enable them all.
*/
"%TypedArrayPrototype%": "*",
/**
* Needed to work with Immer before https://github.com/immerjs/immer/pull/914
* is accepted.
*/
"%MapPrototype%": "*",
/**
* Needed to work with Immer before https://github.com/immerjs/immer/pull/914
* is accepted.
*/
"%SetPrototype%": "*"
};
function mi(t, e, { warn: r }, n = []) {
const o = new Dt(n);
function s(d, f, h, p) {
if ("value" in p && p.configurable) {
const { value: m } = p, A = Cn(o, h), { get: S, set: w } = ee(
{
get [h]() {
return m;
},
set [h](R) {
if (f === this)
throw _(
`Cannot assign to read only property '${_e(
h
)}' of '${d}'`
);
Q(this, h) ? this[h] = R : (A && r(_(`Override property ${h}`)), D(this, h, {
value: R,
writable: !0,
enumerable: !0,
configurable: !0
}));
}
},
h
);
D(S, "originalValue", {
value: m,
writable: !1,
enumerable: !1,
configurable: !1
}), D(f, h, {
get: S,
set: w,
enumerable: p.enumerable,
configurable: p.configurable
});
}
}
function i(d, f, h) {
const p = ee(f, h);
p && s(d, f, h, p);
}
function c(d, f) {
const h = Be(f);
h && ht(qe(h), (p) => s(d, f, p, h[p]));
}
function l(d, f, h) {
for (const p of qe(h)) {
const m = ee(f, p);
if (!m || m.get || m.set)
continue;
const A = `${d}.${_e(p)}`, S = h[p];
if (S === !0)
i(A, f, p);
else if (S === "*")
c(A, m.value);
else if (ke(S))
l(A, m.value, S);
else
throw _(`Unexpected override enablement plan ${A}`);
}
}
let u;
switch (e) {
case "min": {
u = pi;
break;
}
case "moderate": {
u = gs;
break;
}
case "severe": {
u = hi;
break;
}
default:
throw _(`unrecognized overrideTaming ${e}`);
}
l("root", t, u);
}
const { Fail: bn, quote: Rr } = Y, gi = /^(\w*[a-z])Locale([A-Z]\w*)$/, ys = {
// See https://tc39.es/ecma262/#sec-string.prototype.localecompare
localeCompare(t) {
if (this === null || this === void 0)
throw _(
'Cannot localeCompare with null or undefined "this" value'
);
const e = `${this}`, r = `${t}`;
return e < r ? -1 : e > r ? 1 : (e === r || bn`expected ${Rr(e)} and ${Rr(r)} to compare`, 0);
},
toString() {
return `${this}`;
}
}, yi = ys.localeCompare, _i = ys.toString;
function vi(t, e = "safe") {
if (e !== "safe" && e !== "unsafe")
throw _(`unrecognized localeTaming ${e}`);
if (e !== "unsafe") {
D(_e.prototype, "localeCompare", {
value: yi
});
for (const r of Nt(t)) {
const n = t[r];
if (ke(n))
for (const o of Nt(n)) {
const s = $n(gi, o);
if (s) {
typeof n[o] == "function" || bn`expected ${Rr(o)} to be a function`;
const i = `${s[1]}${s[2]}`, c = n[i];
typeof c == "function" || bn`function ${Rr(i)} not found`, D(n, o, { value: c });
}
}
}
D(Io.prototype, "toLocaleString", {
value: _i
});
}
}
const bi = (t) => ({
eval(r) {
return typeof r != "string" ? r : t(r);
}
}).eval, { Fail: ao } = Y, wi = (t) => {
const e = function(n) {
const o = `${Er(arguments) || ""}`, s = `${Zt(arguments, ",")}`;
new Ee(s, ""), new Ee(o);
const i = `(function anonymous(${s}
) {
${o}
})`;
return t(i);
};
return B(e, {
// Ensure that any function created in any evaluator in a realm is an
// instance of Function in any evaluator of the same realm.
prototype: {
value: Ee.prototype,
writable: !1,
enumerable: !1,
configurable: !1
}
}), G(Ee) === Ee.prototype || ao`Function prototype is the same accross compartments`, G(e) === Ee.prototype || ao`Function constructor prototype is the same accross compartments`, e;
}, Si = (t) => {
D(
t,
fa,
y(
jr(H(null), {
set: y(() => {
throw _(
"Cannot set Symbol.unscopables of a Compartment's globalThis"
);
}),
enumerable: !1,
configurable: !1
})
)
);
}, _s = (t) => {
for (const [e, r] of me(us))
D(t, e, {
value: r,
writable: !1,
enumerable: !1,
configurable: !1
});
}, vs = (t, {
intrinsics: e,
newGlobalPropertyNames: r,
makeCompartmentConstructor: n,
markVirtualizedNativeFunction: o,
parentCompartment: s
}) => {
for (const [c, l] of me(ds))
Q(e, l) && D(t, c, {
value: e[l],
writable: !0,
enumerable: !1,
configurable: !0
});
for (const [c, l] of me(r))
Q(e, l) && D(t, c, {
value: e[l],
writable: !0,
enumerable: !1,
configurable: !0
});
const i = {
globalThis: t
};
i.Compartment = y(
n(
n,
e,
o,
s
)
);
for (const [c, l] of me(i))
D(t, c, {
value: l,
writable: !0,
enumerable: !1,
configurable: !0
}), typeof l == "function" && o(l);
}, wn = (t, e, r) => {
{
const n = y(bi(e));
r(n), D(t, "eval", {
value: n,
writable: !0,
enumerable: !1,
configurable: !0
});
}
{
const n = y(wi(e));
r(n), D(t, "Function", {
value: n,
writable: !0,
enumerable: !1,
configurable: !0
});
}
}, { Fail: xi, quote: bs } = Y, ws = new Ur(
Mn,
y({
get(t, e) {
xi`Please report unexpected scope handler trap: ${bs(_e(e))}`;
}
})
), Ei = {
get(t, e) {
},
set(t, e, r) {
throw Wt(`${_e(e)} is not defined`);
},
has(t, e) {
return e in x;
},
// note: this is likely a bug of safari
// https://bugs.webkit.org/show_bug.cgi?id=195534
getPrototypeOf(t) {
return null;
},
// See https://github.com/endojs/endo/issues/1510
// TODO: report as bug to v8 or Chrome, and record issue link here.
getOwnPropertyDescriptor(t, e) {
const r = bs(_e(e));
console.warn(
`getOwnPropertyDescriptor trap on scopeTerminatorHandler for ${r}`,
_().stack
);
},
// See https://github.com/endojs/endo/issues/1490
// TODO Report bug to JSC or Safari
ownKeys(t) {
return [];
}
}, Ss = y(
H(
ws,
Be(Ei)
)
), ki = new Ur(
Mn,
Ss
), xs = (t) => {
const e = {
// inherit scopeTerminator behavior
...Ss,
// Redirect set properties to the globalObject.
set(o, s, i) {
return Mo(t, s, i);
},
// Always claim to have a potential property in order to be the recipient of a set
has(o, s) {
return !0;
}
}, r = y(
H(
ws,
Be(e)
)
);
return new Ur(
Mn,
r
);
};
y(xs);
const { Fail: Pi } = Y, Ai = () => {
const t = H(null), e = y({
eval: {
get() {
return delete t.eval, Ko;
},
enumerable: !1,
configurable: !0
}
}), r = {
evalScope: t,
allowNextEvalToBeUnsafe() {
const { revoked: n } = r;
n !== null && Pi`a handler did not reset allowNextEvalToBeUnsafe ${n.err}`, B(t, e);
},
/** @type {null | { err: any }} */
revoked: null
};
return r;
}, io = "\\s*[@#]\\s*([a-zA-Z][a-zA-Z0-9]*)\\s*=\\s*([^\\s\\*]*)", Ti = new Xe(
`(?:\\s*//${io}|/\\*${io}\\s*\\*/)\\s*$`
), Fn = (t) => {
let e = "<unknown>";
for (; t.length > 0; ) {
const r = $n(Ti, t);
if (r === null)
break;
t = Nn(t, 0, t.length - r[0].length), r[3] === "sourceURL" ? e = r[4] : r[1] === "sourceURL" && (e = r[2]);
}
return e;
};
function Dn(t, e) {
const r = $a(t, e);
if (r < 0)
return -1;
const n = t[r] === `
` ? 1 : 0;
return On(Nn(t, 0, r), `
`).length + n;
}
const Es = new Xe("(?:<!--|-->)", "g"), ks = (t) => {
const e = Dn(t, Es);
if (e < 0)
return t;
const r = Fn(t);
throw ir(
`Possible HTML comment rejected at ${r}:${e}. (SES_HTML_COMMENT_REJECTED)`
);
}, Ps = (t) => Pr(t, Es, (r) => r[0] === "<" ? "< ! --" : "-- >"), As = new Xe(
"(^|[^.]|\\.\\.\\.)\\bimport(\\s*(?:\\(|/[/*]))",
"g"
), Ts = (t) => {
const e = Dn(t, As);
if (e < 0)
return t;
const r = Fn(t);
throw ir(
`Possible import expression rejected at ${r}:${e}. (SES_IMPORT_REJECTED)`
);
}, Is = (t) => Pr(t, As, (r, n, o) => `${n}__import__${o}`), Ii = new Xe(
"(^|[^.])\\beval(\\s*\\()",
"g"
), Cs = (t) => {
const e = Dn(t, Ii);
if (e < 0)
return t;
const r = Fn(t);
throw ir(
`Possible direct eval expression rejected at ${r}:${e}. (SES_EVAL_REJECTED)`
);
}, Rs = (t) => (t = ks(t), t = Ts(t), t), $s = (t, e) => {
for (const r of e)
t = r(t);
return t;
};
y({
rejectHtmlComments: y(ks),
evadeHtmlCommentTest: y(Ps),
rejectImportExpressions: y(Ts),
evadeImportExpressionTest: y(Is),
rejectSomeDirectEvalExpressions: y(Cs),
mandatoryTransforms: y(Rs),
applyTransforms: y($s)
});
const Ci = [
// 11.6.2.1 Keywords
"await",
"break",
"case",
"catch",
"class",
"const",
"continue",
"debugger",
"default",
"delete",
"do",
"else",
"export",
"extends",
"finally",
"for",
"function",
"if",
"import",
"in",
"instanceof",
"new",
"return",
"super",
"switch",
"this",
"throw",
"try",
"typeof",
"var",
"void",
"while",
"with",
"yield",
// Also reserved when parsing strict mode code
"let",
"static",
// 11.6.2.2 Future Reserved Words
"enum",
// Also reserved when parsing strict mode code
"implements",
"package",
"protected",
"interface",
"private",
"public",
// Reserved but not mentioned in specs
"await",
"null",
"true",
"false",
"this",
"arguments"
], Ri = /^[a-zA-Z_$][\w$]*$/, co = (t) => t !== "eval" && !Hr(Ci, t) && Rn(Ri, t);
function lo(t, e) {
const r = ee(t, e);
return r && //
// The getters will not have .writable, don't let the falsyness of
// 'undefined' trick us: test with === false, not ! . However descriptors
// inherit from the (potentially poisoned) global object, so we might see
// extra properties which weren't really there. Accessor properties have
// 'get/set/enumerable/configurable', while data properties have
// 'value/writable/enumerable/configurable'.
r.configurable === !1 && r.writable === !1 && //
// Checks for data properties because they're the only ones we can
// optimize (accessors are most likely non-constant). Descriptors can't
// can't have accessors and value properties at the same time, therefore
// this check is sufficient. Using explicit own property deal with the
// case where Object.prototype has been poisoned.
Q(r, "value");
}
const $i = (t, e = {}) => {
const r = Nt(t), n = Nt(e), o = et(
n,
(i) => co(i) && lo(e, i)
);
return {
globalObjectConstants: et(
r,
(i) => (
// Can't define a constant: it would prevent a
// lookup on the endowments.
!Hr(n, i) && co(i) && lo(t, i)
)
),
moduleLexicalConstants: o
};
};
function uo(t, e) {
return t.length === 0 ? "" : `const {${Zt(t, ",")}} = this.${e};`;
}
const Ni = (t) => {
const { globalObjectConstants: e, moduleLexicalConstants: r } = $i(
t.globalObject,
t.moduleLexicals
), n = uo(
e,
"globalObject"
), o = uo(
r,
"moduleLexicals"
), s = Ee(`
with (this.scopeTerminator) {
with (this.globalObject) {
with (this.moduleLexicals) {
with (this.evalScope) {
${n}
${o}
return function() {
'use strict';
return eval(arguments[0]);
};
}
}
}
}
`);
return ue(s, t, []);
}, { Fail: Oi } = Y, Un = ({
globalObject: t,
moduleLexicals: e = {},
globalTransforms: r = [],
sloppyGlobalsMode: n = !1
}) => {
const o = n ? xs(t) : ki, s = Ai(), { evalScope: i } = s, c = y({
evalScope: i,
moduleLexicals: e,
globalObject: t,
scopeTerminator: o
});
let l;
const u = () => {
l || (l = Ni(c));
};
return { safeEvaluate: (f, h) => {
const { localTransforms: p = [] } = h || {};
u(), f = $s(f, [
...p,
...r,
Rs
]);
let m;
try {
return s.allowNextEvalToBeUnsafe(), ue(l, t, [f]);
} catch (A) {
throw m = A, A;
} finally {
const A = "eval" in i;
delete i.eval, A && (s.revoked = { err: m }, Oi`handler did not reset allowNextEvalToBeUnsafe ${m}`);
}
} };
}, Mi = ") { [native code] }";
let ln;
const Ns = () => {
if (ln === void 0) {
const t = new Ut();
D(Vr, "toString", {
value: {
toString() {
const r = Ma(this);
return Bo(r, Mi) || !lr(t, this) ? r : `function ${this.name}() { [native code] }`;
}
}.toString
}), ln = y(
(r) => qr(t, r)
);
}
return ln;
};
function Li(t = "safe") {
if (t !== "safe" && t !== "unsafe")
throw _(`unrecognized domainTaming ${t}`);
if (t === "unsafe")
return;
const e = x.process || void 0;
if (typeof e == "object") {
const r = ee(e, "domain");
if (r !== void 0 && r.get !== void 0)
throw _(
"SES failed to lockdown, Node.js domains have been initialized (SES_NO_DOMAINS)"
);
D(e, "domain", {
value: null,
configurable: !1,
writable: !1,
enumerable: !1
});
}
}
const Fi = () => {
const t = {}, e = x.ModuleSource;
if (e !== void 0) {
let n = function() {
};
var r = n;
t.ModuleSource = e;
const o = G(e);
o === Vr ? (wr(e, n), t["%AbstractModuleSource%"] = n, t["%AbstractModuleSourcePrototype%"] = n.prototype) : (t["%AbstractModuleSource%"] = o, t["%AbstractModuleSourcePrototype%"] = o.prototype);
const s = e.prototype;
s !== void 0 && (t["%ModuleSourcePrototype%"] = s, G(s) === zr && wr(e.prototype, n.prototype));
}
return t;
}, jn = y([
["debug", "debug"],
// (fmt?, ...args) verbose level on Chrome
["log", "log"],
// (fmt?, ...args) info level on Chrome
["info", "info"],
// (fmt?, ...args)
["warn", "warn"],
// (fmt?, ...args)
["error", "error"],
// (fmt?, ...args)
["trace", "log"],
// (fmt?, ...args)
["dirxml", "log"],
// (fmt?, ...args) but TS typed (...data)
["group", "log"],
// (fmt?, ...args) but TS typed (...label)
["groupCollapsed", "log"]
// (fmt?, ...args) but TS typed (...label)
]), Zn = y([
["assert", "error"],
// (value, fmt?, ...args)
["timeLog", "log"],
// (label?, ...args) no fmt string
// Insensitive to whether any argument is an error. All arguments can pass
// thru to baseConsole as is.
["clear", void 0],
// ()
["count", "info"],
// (label?)
["countReset", void 0],
// (label?)
["dir", "log"],
// (item, options?)
["groupEnd", "log"],
// ()
// In theory tabular data may be or contain an error. However, we currently
// do not detect these and may never.
["table", "log"],
// (tabularData, properties?)
["time", "info"],
// (label?)
["timeEnd", "info"],
// (label?)
// Node Inspector only, MDN, and TypeScript, but not whatwg
["profile", void 0],
// (label?)
["profileEnd", void 0],
// (label?)
["timeStamp", void 0]
// (label?)
]), Os = y([
...jn,
...Zn
]), Di = (t, { shouldResetForDebugging: e = !1 } = {}) => {
e && t.resetErrorTagNum();
let r = [];
const n = bt(
de(Os, ([i, c]) => {
const l = (...u) => {
ne(r, [i, ...u]);
};
return D(l, "name", { value: i }), [i, y(l)];
})
);
y(n);
const o = () => {
const i = y(r);
return r = [], i;
};
return y(o), y({ loggingConsole: (
/** @type {VirtualConsole} */
n
), takeLog: o });
};
y(Di);
const dt = {
NOTE: "ERROR_NOTE:",
MESSAGE: "ERROR_MESSAGE:",
CAUSE: "cause:",
ERRORS: "errors:"
};
y(dt);
const zn = (t, e) => {
if (!t)
return;
const { getStackString: r, tagError: n, takeMessageLogArgs: o, takeNoteLogArgsArray: s } = e, i = (S, w) => de(S, (T) => Kr(T) ? (ne(w, T), `(${n(T)})`) : T), c = (S, w, R, T, j) => {
const I = n(w), L = R === dt.MESSAGE ? `${I}:` : `${I} ${R}`, Z = i(T, j);
t[S](L, ...Z);
}, l = (S, w, R = void 0) => {
if (w.length === 0)
return;
if (w.length === 1 && R === void 0) {
f(S, w[0]);
return;
}
let T;
w.length === 1 ? T = "Nested error" : T = `Nested ${w.length} errors`, R !== void 0 && (T = `${T} under ${R}`), t.group(T);
try {
for (const j of w)
f(S, j);
} finally {
t.groupEnd();
}
}, u = new Ut(), d = (S) => (w, R) => {
const T = [];
c(S, w, dt.NOTE, R, T), l(S, T, n(w));
}, f = (S, w) => {
if (lr(u, w))
return;
const R = n(w);
qr(u, w);
const T = [], j = o(w), I = s(
w,
d(S)
);
j === void 0 ? t[S](`${R}:`, w.message) : c(
S,
w,
dt.MESSAGE,
j,
T
);
let L = r(w);
typeof L == "string" && L.length >= 1 && !Bo(L, `
`) && (L += `
`), t[S](L), w.cause && c(S, w, dt.CAUSE, [w.cause], T), w.errors && c(S, w, dt.ERRORS, w.errors, T);
for (const Z of I)
c(S, w, dt.NOTE, Z, T);
l(S, T, R);
}, h = de(jn, ([S, w]) => {
const R = (...T) => {
const j = [], I = i(T, j);
t[S] && t[S](...I), l(S, j);
};
return D(R, "name", { value: S }), [S, y(R)];
}), p = et(
Zn,
([S, w]) => S in t
), m = de(p, ([S, w]) => {
const R = (...T) => {
t[S](...T);
};
return D(R, "name", { value: S }), [S, y(R)];
}), A = bt([...h, ...m]);
return (
/** @type {VirtualConsole} */
y(A)
);
};
y(zn);
const Ui = (t, e, r) => {
const [n, ...o] = On(t, e), s = jo(o, (i) => [e, ...r, i]);
return ["", n, ...s];
}, Ms = (t) => y((r) => {
const n = [], o = (...l) => (n.length > 0 && (l = jo(
l,
(u) => typeof u == "string" && Go(u, `
`) ? Ui(u, `
`, n) : [u]
), l = [...n, ...l]), r(...l)), s = (l, u) => ({ [l]: (...d) => u(...d) })[l], i = bt([
...de(jn, ([l]) => [
l,
s(l, o)
]),
...de(Zn, ([l]) => [
l,
s(l, (...u) => o(l, ...u))
])
]);
for (const l of ["group", "groupCollapsed"])
i[l] ? i[l] = s(l, (...u) => {
u.length >= 1 && o(...u), ne(n, " ");
}) : i[l] = () => {
};
return i.groupEnd ? i.groupEnd = s("groupEnd", (...l) => {
Er(n);
}) : i.groupEnd = () => {
}, harden(i), zn(
/** @type {VirtualConsole} */
i,
t
);
});
y(Ms);
const ji = (t, e, r = void 0) => {
const n = et(
Os,
([i, c]) => i in t
), o = de(n, ([i, c]) => [i, y((...u) => {
(c === void 0 || e.canLog(c)) && t[i](...u);
})]), s = bt(o);
return (
/** @type {VirtualConsole} */
y(s)
);
};
y(ji);
const fo = (t) => {
if ($t === void 0)
return;
let e = 0;
const r = new $e(), n = (d) => {
Pa(r, d);
}, o = new ze(), s = (d) => {
if (Wr(r, d)) {
const f = Ke(r, d);
n(d), t(f);
}
}, i = new $t(s);
return {
rejectionHandledHandler: (d) => {
const f = z(o, d);
n(f);
},
unhandledRejectionHandler: (d, f) => {
e += 1;
const h = e;
pe(r, h, d), he(o, f, h), La(i, f, h, f);
},
processTerminationHandler: () => {
for (const [d, f] of Aa(r))
n(d), t(f);
}
};
}, un = (t) => {
throw _(t);
}, po = (t, e) => y((...r) => ue(t, e, r)), Zi = (t = "safe", e = "platform", r = "report", n = void 0) => {
t === "safe" || t === "unsafe" || un(`unrecognized consoleTaming ${t}`);
let o;
n === void 0 ? o = Ir : o = {
...Ir,
getStackString: n
};
const s = (
/** @type {VirtualConsole} */
// eslint-disable-next-line no-nested-ternary
typeof x.console < "u" ? x.console : typeof x.print == "function" ? (
// Make a good-enough console for eshost (including only functions that
// log at a specific level with no special argument interpretation).
// https://console.spec.whatwg.org/#logging
((u) => y({ debug: u, log: u, info: u, warn: u, error: u }))(
// eslint-disable-next-line no-undef
po(x.print)
)
) : void 0
);
if (s && s.log)
for (const u of ["warn", "error"])
s[u] || D(s, u, {
value: po(s.log, s)
});
const i = (
/** @type {VirtualConsole} */
t === "unsafe" ? s : zn(s, o)
), c = x.process || void 0;
if (e !== "none" && typeof c == "object" && typeof c.on == "function") {
let u;
if (e === "platform" || e === "exit") {
const { exit: d } = c;
typeof d == "function" || un("missing process.exit"), u = () => d(c.exitCode || -1);
} else e === "abort" && (u = c.abort, typeof u == "function" || un("missing process.abort"));
c.on("uncaughtException", (d) => {
i.error("SES_UNCAUGHT_EXCEPTION:", d), u && u();
});
}
if (r !== "none" && typeof c == "object" && typeof c.on == "function") {
const d = fo((f) => {
i.error("SES_UNHANDLED_REJECTION:", f);
});
d && (c.on("unhandledRejection", d.unhandledRejectionHandler), c.on("rejectionHandled", d.rejectionHandledHandler), c.on("exit", d.processTerminationHandler));
}
const l = x.window || void 0;
if (e !== "none" && typeof l == "object" && typeof l.addEventListener == "function" && l.addEventListener("error", (u) => {
u.preventDefault(), i.error("SES_UNCAUGHT_EXCEPTION:", u.error), (e === "exit" || e === "abort") && (l.location.href = "about:blank");
}), r !== "none" && typeof l == "object" && typeof l.addEventListener == "function") {
const d = fo((f) => {
i.error("SES_UNHANDLED_REJECTION:", f);
});
d && (l.addEventListener("unhandledrejection", (f) => {
f.preventDefault(), d.unhandledRejectionHandler(f.reason, f.promise);
}), l.addEventListener("rejectionhandled", (f) => {
f.preventDefault(), d.rejectionHandledHandler(f.promise);
}), l.addEventListener("beforeunload", (f) => {
d.processTerminationHandler();
}));
}
return { console: i };
}, zi = [
// suppress 'getThis' definitely
"getTypeName",
// suppress 'getFunction' definitely
"getFunctionName",
"getMethodName",
"getFileName",
"getLineNumber",
"getColumnNumber",
"getEvalOrigin",
"isToplevel",
"isEval",
"isNative",
"isConstructor",
"isAsync",
// suppress 'isPromiseAll' for now
// suppress 'getPromiseIndex' for now
// Additional names found by experiment, absent from
// https://v8.dev/docs/stack-trace-api
"getPosition",
"getScriptNameOrSourceURL",
"toString"
// TODO replace to use only permitted info
], Bi = (t) => {
const r = bt(de(zi, (n) => {
const o = t[n];
return [n, () => ue(o, t, [])];
}));
return H(r, {});
}, Gi = (t) => de(t, Bi), Vi = /\/node_modules\//, Hi = /^(?:node:)?internal\//, Wi = /\/packages\/ses\/src\/error\/assert.js$/, qi = /\/packages\/eventual-send\/src\//, Ki = [
Vi,
Hi,
Wi,
qi
], Yi = (t) => {
if (!t)
return !0;
for (const e of Ki)
if (Rn(e, t))
return !1;
return !0;
}, Ji = /^((?:.*[( ])?)[:/\w_-]*\/\.\.\.\/(.+)$/, Xi = /^((?:.*[( ])?)[:/\w_-]*\/(packages\/.+)$/, Qi = [
Ji,
Xi
], ec = (t) => {
for (const e of Qi) {
const r = $n(e, t);
if (r)
return Zt(wa(r, 1), "");
}
return t;
}, tc = (t, e, r, n) => {
if (r === "unsafe-debug")
throw _(
"internal: v8+unsafe-debug special case should already be done"
);
const o = t.captureStackTrace, s = (p) => n === "verbose" ? !0 : Yi(p.getFileName()), i = (p) => {
let m = `${p}`;
return n === "concise" && (m = ec(m)), `
at ${m}`;
}, c = (p, m) => Zt(
de(et(m, s), i),
""
), l = new ze(), u = {
// The optional `optFn` argument is for cutting off the bottom of
// the stack --- for capturing the stack only above the topmost
// call to that function. Since this isn't the "real" captureStackTrace
// but instead calls the real one, if no other cutoff is provided,
// we cut this one off.
captureStackTrace(p, m = u.captureStackTrace) {
if (typeof o == "function") {
ue(o, t, [p, m]);
return;
}
Mo(p, "stack", "");
},
// Shim of proposed special power, to reside by default only
// in the start compartment, for getting the stack traceback
// string associated with an error.
// See https://tc39.es/proposal-error-stacks/
getStackString(p) {
let m = z(l, p);
if (m === void 0 && (p.stack, m = z(l, p), m || (m = { stackString: "" }, he(l, p, m))), m.stackString !== void 0)
return m.stackString;
const A = c(p, m.callSites);
return he(l, p, { stackString: A }), A;
},
prepareStackTrace(p, m) {
if (r === "unsafe") {
const A = c(p, m);
return he(l, p, { stackString: A }), `${p}${A}`;
} else
return he(l, p, { callSites: m }), "";
}
}, d = u.prepareStackTrace;
t.prepareStackTrace = d;
const f = new Ut([d]), h = (p) => {
if (lr(f, p))
return p;
const m = {
prepareStackTrace(A, S) {
return he(l, A, { callSites: S }), p(A, Gi(S));
}
};
return qr(f, m.prepareStackTrace), m.prepareStackTrace;
};
return B(e, {
captureStackTrace: {
value: u.captureStackTrace,
writable: !0,
enumerable: !1,
configurable: !0
},
prepareStackTrace: {
get() {
return t.prepareStackTrace;
},
set(p) {
if (typeof p == "function") {
const m = h(p);
t.prepareStackTrace = m;
} else
t.prepareStackTrace = d;
},
enumerable: !1,
configurable: !0
}
}), u.getStackString;
}, ho = ee(le.prototype, "stack"), mo = ho && ho.get, rc = {
getStackString(t) {
return typeof mo == "function" ? ue(mo, t, []) : "stack" in t ? `${t.stack}` : "";
}
};
let hr = rc.getStackString;
function nc(t = "safe", e = "concise") {
if (t !== "safe" && t !== "unsafe" && t !== "unsafe-debug")
throw _(`unrecognized errorTaming ${t}`);
if (e !== "concise" && e !== "verbose")
throw _(`unrecognized stackFiltering ${e}`);
const r = le.prototype, { captureStackTrace: n } = le, o = typeof n == "function" ? "v8" : "unknown", s = (l = {}) => {
const u = function(...f) {
let h;
return new.target === void 0 ? h = ue(le, this, f) : h = Sr(le, f, new.target), o === "v8" && ue(n, le, [h, u]), h;
};
return B(u, {
length: { value: 1 },
prototype: {
value: r,
writable: !1,
enumerable: !1,
configurable: !1
}
}), u;
}, i = s({ powers: "original" }), c = s({ powers: "none" });
B(r, {
constructor: { value: c }
});
for (const l of ps)
wr(l, c);
if (B(i, {
stackTraceLimit: {
get() {
if (typeof le.stackTraceLimit == "number")
return le.stackTraceLimit;
},
set(l) {
if (typeof l == "number" && typeof le.stackTraceLimit == "number") {
le.stackTraceLimit = l;
return;
}
},
// WTF on v8 stackTraceLimit is enumerable
enumerable: !1,
configurable: !0
}
}), t === "unsafe-debug" && o === "v8") {
B(i, {
prepareStackTrace: {
get() {
return le.prepareStackTrace;
},
set(u) {
le.prepareStackTrace = u;
},
enumerable: !1,
configurable: !0
},
captureStackTrace: {
value: le.captureStackTrace,
writable: !0,
enumerable: !1,
configurable: !0
}
});
const l = Be(i);
return B(c, {
stackTraceLimit: l.stackTraceLimit,
prepareStackTrace: l.prepareStackTrace,
captureStackTrace: l.captureStackTrace
}), {
"%InitialGetStackString%": hr,
"%InitialError%": i,
"%SharedError%": c
};
}
return B(c, {
stackTraceLimit: {
get() {
},
set(l) {
},
enumerable: !1,
configurable: !0
}
}), o === "v8" && B(c, {
prepareStackTrace: {
get() {
return () => "";
},
set(l) {
},
enumerable: !1,
configurable: !0
},
captureStackTrace: {
value: (l, u) => {
D(l, "stack", {
value: ""
});
},
writable: !1,
enumerable: !1,
configurable: !0
}
}), o === "v8" ? hr = tc(
le,
i,
t,
e
) : t === "unsafe" || t === "unsafe-debug" ? B(r, {
stack: {
get() {
return hr(this);
},
set(l) {
B(this, {
stack: {
value: l,
writable: !0,
enumerable: !0,
configurable: !0
}
});
}
}
}) : B(r, {
stack: {
get() {
return `${this}`;
},
set(l) {
B(this, {
stack: {
value: l,
writable: !0,
enumerable: !0,
configurable: !0
}
});
}
}
}), {
"%InitialGetStackString%": hr,
"%InitialError%": i,
"%SharedError%": c
};
}
const oc = () => {
}, sc = async (t, e, r) => {
await null;
const n = t(...e);
let o = kr(n);
for (; !o.done; )
try {
const s = await o.value;
o = kr(n, s);
} catch (s) {
o = Vo(n, r(s));
}
return o.value;
}, ac = (t, e) => {
const r = t(...e);
let n = kr(r);
for (; !n.done; )
try {
n = kr(r, n.value);
} catch (o) {
n = Vo(r, o);
}
return n.value;
}, ic = (t, e) => y({ compartment: t, specifier: e }), cc = (t, e, r) => {
const n = H(null);
for (const o of t) {
const s = e(o, r);
n[o] = s;
}
return y(n);
}, Bt = (t, e, r, n, o, s, i, c, l) => {
const { resolveHook: u, name: d } = z(
t,
r
), { imports: f } = o;
if (!pt(f) || Zo(f, (m) => typeof m != "string"))
throw Ce(
re`Invalid module source: 'imports' must be an array of strings, got ${f} for module ${U(n)} of compartment ${U(d)}`
);
const h = cc(f, u, n), p = y({
compartment: r,
moduleSource: o,
moduleSpecifier: n,
resolvedImports: h,
importMeta: l
});
for (const m of Ro(h))
s(It, [
t,
e,
r,
m,
s,
i,
c
]);
return p;
};
function* lc(t, e, r, n, o, s, i) {
const {
importHook: c,
importNowHook: l,
moduleMap: u,
moduleMapHook: d,
moduleRecords: f,
parentCompartment: h
} = z(t, r);
if (Wr(f, n))
return Ke(f, n);
let p = u[n];
if (p === void 0 && d !== void 0 && (p = d(n)), p === void 0) {
const m = s(c, l);
if (m === void 0) {
const A = s(
"importHook",
"importNowHook"
);
throw Ce(
re`${Tr(A)} needed to load module ${U(
n
)} in compartment ${U(r.name)}`
);
}
p = m(n), Tt(e, p) || (p = yield p);
}
if (typeof p == "string")
throw Ce(
re`Cannot map module ${U(n)} to ${U(
p
)} in parent compartment, use {source} module descriptor`,
_
);
if (ke(p)) {
let m = z(e, p);
if (m !== void 0 && (p = m), p.namespace !== void 0) {
if (typeof p.namespace == "string") {
const {
compartment: w = h,
namespace: R
} = p;
if (!ke(w) || !Tt(t, w))
throw Ce(
re`Invalid compartment in module descriptor for specifier ${U(n)} in compartment ${U(r.name)}`
);
const T = yield It(
t,
e,
w,
R,
o,
s,
i
);
return pe(f, n, T), T;
}
if (ke(p.namespace)) {
const { namespace: w } = p;
if (m = z(e, w), m !== void 0)
p = m;
else {
const R = Nt(w), I = Bt(
t,
e,
r,
n,
{
imports: [],
exports: R,
execute(L) {
for (const Z of R)
L[Z] = w[Z];
}
},
o,
s,
i,
void 0
);
return pe(f, n, I), I;
}
} else
throw Ce(
re`Invalid compartment in module descriptor for specifier ${U(n)} in compartment ${U(r.name)}`
);
}
if (p.source !== void 0)
if (typeof p.source == "string") {
const {
source: w,
specifier: R = n,
compartment: T = h,
importMeta: j = void 0
} = p, I = yield It(
t,
e,
T,
w,
o,
s,
i
), { moduleSource: L } = I, Z = Bt(
t,
e,
r,
R,
L,
o,
s,
i,
j
);
return pe(f, n, Z), Z;
} else {
const {
source: w,
specifier: R = n,
importMeta: T
} = p, j = Bt(
t,
e,
r,
R,
w,
o,
s,
i,
T
);
return pe(f, n, j), j;
}
if (p.archive !== void 0)
throw Ce(
re`Unsupported archive module descriptor for specifier ${U(n)} in compartment ${U(r.name)}`
);
if (p.record !== void 0) {
const {
compartment: w = r,
specifier: R = n,
record: T,
importMeta: j
} = p, I = Bt(
t,
e,
w,
R,
T,
o,
s,
i,
j
);
return pe(f, n, I), pe(f, R, I), I;
}
if (p.compartment !== void 0 && p.specifier !== void 0) {
if (!ke(p.compartment) || !Tt(t, p.compartment) || typeof p.specifier != "string")
throw Ce(
re`Invalid compartment in module descriptor for specifier ${U(n)} in compartment ${U(r.name)}`
);
const w = yield It(
t,
e,
p.compartment,
p.specifier,
o,
s,
i
);
return pe(f, n, w), w;
}
const S = Bt(
t,
e,
r,
n,
p,
o,
s,
i
);
return pe(f, n, S), S;
} else
throw Ce(
re`module descriptor must be a string or object for specifier ${U(
n
)} in compartment ${U(r.name)}`
);
}
const It = (t, e, r, n, o, s, i) => {
const { name: c } = z(
t,
r
);
let l = Ke(i, r);
l === void 0 && (l = new $e(), pe(i, r, l));
let u = Ke(l, n);
return u !== void 0 || (u = s(sc, ac)(
lc,
[
t,
e,
r,
n,
o,
s,
i
],
(d) => {
throw Jr(
d,
re`${d.message}, loading ${U(n)} in compartment ${U(
c
)}`
), d;
}
), pe(l, n, u)), u;
}, uc = () => {
const t = new Dt(), e = [];
return { enqueueJob: (o, s) => {
In(
t,
qo(o(...s), oc, (i) => {
ne(e, i);
})
);
}, drainQueue: async () => {
await null;
for (const o of t)
await o;
return e;
} };
}, Ls = ({ errors: t, errorPrefix: e }) => {
if (t.length > 0) {
const r = ce("COMPARTMENT_LOAD_ERRORS", "", ["verbose"]) === "verbose";
throw _(
`${e} (${t.length} underlying failures: ${Zt(
de(t, (n) => n.message + (r ? n.stack : "")),
", "
)}`
);
}
}, dc = (t, e) => e, fc = (t, e) => t, go = async (t, e, r, n) => {
const { name: o } = z(
t,
r
), s = new $e(), { enqueueJob: i, drainQueue: c } = uc();
i(It, [
t,
e,
r,
n,
i,
fc,
s
]);
const l = await c();
Ls({
errors: l,
errorPrefix: `Failed to load module ${U(n)} in package ${U(
o
)}`
});
}, pc = (t, e, r, n) => {
const { name: o } = z(
t,
r
), s = new $e(), i = [], c = (l, u) => {
try {
l(...u);
} catch (d) {
ne(i, d);
}
};
c(It, [
t,
e,
r,
n,
c,
dc,
s
]), Ls({
errors: i,
errorPrefix: `Failed to load module ${U(n)} in package ${U(
o
)}`
});
}, { quote: xt } = Y, hc = () => {
let t = !1;
const e = H(null, {
// Make this appear like an ESM module namespace object.
[Qe]: {
value: "Module",
writable: !1,
enumerable: !1,
configurable: !1
}
});
return y({
activate() {
t = !0;
},
exportsTarget: e,
exportsProxy: new Ur(e, {
get(r, n, o) {
if (!t)
throw _(
`Cannot get property ${xt(
n
)} of module exports namespace, the module has not yet begun to execute`
);
return ya(e, n, o);
},
set(r, n, o) {
throw _(
`Cannot set property ${xt(n)} of module exports namespace`
);
},
has(r, n) {
if (!t)
throw _(
`Cannot check property ${xt(
n
)}, the module has not yet begun to execute`
);
return Oo(e, n);
},
deleteProperty(r, n) {
throw _(
`Cannot delete property ${xt(n)}s of module exports namespace`
);
},
ownKeys(r) {
if (!t)
throw _(
"Cannot enumerate keys, the module has not yet begun to execute"
);
return qe(e);
},
getOwnPropertyDescriptor(r, n) {
if (!t)
throw _(
`Cannot get own property descriptor ${xt(
n
)}, the module has not yet begun to execute`
);
return _a(e, n);
},
preventExtensions(r) {
if (!t)
throw _(
"Cannot prevent extensions of module exports namespace, the module has not yet begun to execute"
);
return ba(e);
},
isExtensible() {
if (!t)
throw _(
"Cannot check extensibility of module exports namespace, the module has not yet begun to execute"
);
return va(e);
},
getPrototypeOf(r) {
return null;
},
setPrototypeOf(r, n) {
throw _("Cannot set prototype of module exports namespace");
},
defineProperty(r, n, o) {
throw _(
`Cannot define property ${xt(n)} of module exports namespace`
);
},
apply(r, n, o) {
throw _(
"Cannot call module exports namespace, it is not a function"
);
},
construct(r, n) {
throw _(
"Cannot construct module exports namespace, it is not a constructor"
);
}
})
});
}, Bn = (t, e, r, n) => {
const { deferredExports: o } = e;
if (!Wr(o, n)) {
const s = hc();
he(
r,
s.exportsProxy,
ic(t, n)
), pe(o, n, s);
}
return Ke(o, n);
}, mc = (t, e) => {
const { sloppyGlobalsMode: r = !1, __moduleShimLexicals__: n = void 0 } = e;
let o;
if (n === void 0 && !r)
({ safeEvaluate: o } = t);
else {
let { globalTransforms: s } = t;
const { globalObject: i } = t;
let c;
n !== void 0 && (s = void 0, c = H(
null,
Be(n)
)), { safeEvaluate: o } = Un({
globalObject: i,
moduleLexicals: c,
globalTransforms: s,
sloppyGlobalsMode: r
});
}
return { safeEvaluate: o };
}, Fs = (t, e, r) => {
if (typeof e != "string")
throw _("first argument of evaluate() must be a string");
const {
transforms: n = [],
__evadeHtmlCommentTest__: o = !1,
__evadeImportExpressionTest__: s = !1,
__rejectSomeDirectEvalExpressions__: i = !0
// Note default on
} = r, c = [...n];
o === !0 && ne(c, Ps), s === !0 && ne(c, Is), i === !0 && ne(c, Cs);
const { safeEvaluate: l } = mc(
t,
r
);
return l(e, {
localTransforms: c
});
}, { quote: mr } = Y, gc = (t, e, r, n, o, s) => {
const { exportsProxy: i, exportsTarget: c, activate: l } = Bn(
r,
z(t, r),
n,
o
), u = H(null);
if (e.exports) {
if (!pt(e.exports) || Zo(e.exports, (f) => typeof f != "string"))
throw _(
`SES virtual module source "exports" property must be an array of strings for module ${o}`
);
ht(e.exports, (f) => {
let h = c[f];
const p = [];
D(c, f, {
get: () => h,
set: (S) => {
h = S;
for (const w of p)
w(S);
},
enumerable: !0,
configurable: !1
}), u[f] = (S) => {
ne(p, S), S(h);
};
}), u["*"] = (f) => {
f(c);
};
}
const d = {
activated: !1
};
return y({
notifiers: u,
exportsProxy: i,
execute() {
if (Oo(d, "errorFromExecute"))
throw d.errorFromExecute;
if (!d.activated) {
l(), d.activated = !0;
try {
e.execute(c, r, s);
} catch (f) {
throw d.errorFromExecute = f, f;
}
}
}
});
}, yc = (t, e, r, n) => {
const {
compartment: o,
moduleSpecifier: s,
moduleSource: i,
importMeta: c
} = r, {
reexports: l = [],
__syncModuleProgram__: u,
__fixedExportMap__: d = {},
__liveExportMap__: f = {},
__reexportMap__: h = {},
__needsImportMeta__: p = !1,
__syncModuleFunctor__: m
} = i, A = z(t, o), { __shimTransforms__: S, importMetaHook: w } = A, { exportsProxy: R, exportsTarget: T, activate: j } = Bn(
o,
A,
e,
s
), I = H(null), L = H(null), Z = H(null), se = H(null), J = H(null);
c && jr(J, c), p && w && w(s, J);
const be = H(null), Me = H(null);
ht(me(d), ([we, [W]]) => {
let q = be[W];
if (!q) {
let ae, ie = !0, ge = [];
const te = () => {
if (ie)
throw Wt(`binding ${mr(W)} not yet initialized`);
return ae;
}, Ae = y((Te) => {
if (!ie)
throw _(
`Internal: binding ${mr(W)} already initialized`
);
ae = Te;
const Wn = ge;
ge = null, ie = !1;
for (const Ie of Wn || [])
Ie(Te);
return Te;
});
q = {
get: te,
notify: (Te) => {
Te !== Ae && (ie ? ne(ge || [], Te) : Te(ae));
}
}, be[W] = q, Z[W] = Ae;
}
I[we] = {
get: q.get,
set: void 0,
enumerable: !0,
configurable: !1
}, Me[we] = q.notify;
}), ht(
me(f),
([we, [W, q]]) => {
let ae = be[W];
if (!ae) {
let ie, ge = !0;
const te = [], Ae = () => {
if (ge)
throw Wt(
`binding ${mr(we)} not yet initialized`
);
return ie;
}, St = y((Ie) => {
ie = Ie, ge = !1;
for (const en of te)
en(Ie);
}), Te = (Ie) => {
if (ge)
throw Wt(`binding ${mr(W)} not yet initialized`);
ie = Ie;
for (const en of te)
en(Ie);
};
ae = {
get: Ae,
notify: (Ie) => {
Ie !== St && (ne(te, Ie), ge || Ie(ie));
}
}, be[W] = ae, q && D(L, W, {
get: Ae,
set: Te,
enumerable: !0,
configurable: !1
}), se[W] = St;
}
I[we] = {
get: ae.get,
set: void 0,
enumerable: !0,
configurable: !1
}, Me[we] = ae.notify;
}
);
const dr = (we) => {
we(T);
};
Me["*"] = dr;
function zt(we) {
const W = H(null);
W.default = !1;
for (const [q, ae] of we) {
const ie = Ke(n, q);
ie.execute();
const { notifiers: ge } = ie;
for (const [te, Ae] of ae) {
const St = ge[te];
if (!St)
throw ir(
`The requested module '${q}' does not provide an export named '${te}'`
);
for (const Te of Ae)
St(Te);
}
if (Hr(l, q))
for (const [te, Ae] of me(
ge
))
W[te] === void 0 ? W[te] = Ae : W[te] = !1;
if (h[q])
for (const [te, Ae] of h[q])
W[Ae] = ge[te];
}
for (const [q, ae] of me(W))
if (!Me[q] && ae !== !1) {
Me[q] = ae;
let ie;
ae((te) => ie = te), I[q] = {
get() {
return ie;
},
set: void 0,
enumerable: !0,
configurable: !1
};
}
ht(
zo(Co(I)),
(q) => D(T, q, I[q])
), y(T), j();
}
let wt;
m !== void 0 ? wt = m : wt = Fs(A, u, {
globalObject: o.globalThis,
transforms: S,
__moduleShimLexicals__: L
});
let Pe = !1, st;
function ra() {
if (wt) {
const we = wt;
wt = null;
try {
we(
y({
imports: y(zt),
onceVar: y(Z),
liveVar: y(se),
importMeta: J
})
);
} catch (W) {
Pe = !0, st = W;
}
}
if (Pe)
throw st;
}
return y({
notifiers: Me,
exportsProxy: R,
execute: ra
});
}, { Fail: ft, quote: X } = Y, Ds = (t, e, r, n) => {
const { name: o, moduleRecords: s } = z(
t,
r
), i = Ke(s, n);
if (i === void 0)
throw Wt(
`Missing link to module ${X(n)} from compartment ${X(
o
)}`
);
return xc(t, e, i);
};
function _c(t) {
return typeof t.__syncModuleProgram__ == "string";
}
function vc(t, e) {
const { __fixedExportMap__: r, __liveExportMap__: n } = t;
ke(r) || ft`Property '__fixedExportMap__' of a precompiled module source must be an object, got ${X(
r
)}, for module ${X(e)}`, ke(n) || ft`Property '__liveExportMap__' of a precompiled module source must be an object, got ${X(
n
)}, for module ${X(e)}`;
}
function bc(t) {
return typeof t.execute == "function";
}
function wc(t, e) {
const { exports: r } = t;
pt(r) || ft`Invalid module source: 'exports' of a virtual module source must be an array, got ${X(
r
)}, for module ${X(e)}`;
}
function Sc(t, e) {
ke(t) || ft`Invalid module source: must be of type object, got ${X(
t
)}, for module ${X(e)}`;
const { imports: r, exports: n, reexports: o = [] } = t;
pt(r) || ft`Invalid module source: 'imports' must be an array, got ${X(
r
)}, for module ${X(e)}`, pt(n) || ft`Invalid module source: 'exports' must be an array, got ${X(
n
)}, for module ${X(e)}`, pt(o) || ft`Invalid module source: 'reexports' must be an array if present, got ${X(
o
)}, for module ${X(e)}`;
}
const xc = (t, e, r) => {
const { compartment: n, moduleSpecifier: o, resolvedImports: s, moduleSource: i } = r, { instances: c } = z(t, n);
if (Wr(c, o))
return Ke(c, o);
Sc(i, o);
const l = new $e();
let u;
if (_c(i))
vc(i, o), u = yc(
t,
e,
r,
l
);
else if (bc(i))
wc(i, o), u = gc(
t,
i,
n,
e,
o,
s
);
else
throw _(`Invalid module source, got ${X(i)}`);
pe(c, o, u);
for (const [d, f] of me(s)) {
const h = Ds(
t,
e,
n,
f
);
pe(l, d, h);
}
return u;
}, Gt = new ze(), Fe = new ze(), Gn = function(e = {}, r = {}, n = {}) {
throw _(
"Compartment.prototype.constructor is not a valid constructor."
);
}, yo = (t, e) => {
const { execute: r, exportsProxy: n } = Ds(
Fe,
Gt,
t,
e
);
return r(), n;
}, Vn = {
constructor: Gn,
get globalThis() {
return z(Fe, this).globalObject;
},
get name() {
return z(Fe, this).name;
},
/**
* @param {string} source is a JavaScript program grammar construction.
* @param {object} [options]
* @param {Array<import('./lockdown-shim').Transform>} [options.transforms]
* @param {boolean} [options.sloppyGlobalsMode]
* @param {object} [options.__moduleShimLexicals__]
* @param {boolean} [options.__evadeHtmlCommentTest__]
* @param {boolean} [options.__evadeImportExpressionTest__]
* @param {boolean} [options.__rejectSomeDirectEvalExpressions__]
*/
evaluate(t, e = {}) {
const r = z(Fe, this);
return Fs(r, t, e);
},
module(t) {
if (typeof t != "string")
throw _("first argument of module() must be a string");
const { exportsProxy: e } = Bn(
this,
z(Fe, this),
Gt,
t
);
return e;
},
async import(t) {
const { noNamespaceBox: e } = z(Fe, this);
if (typeof t != "string")
throw _("first argument of import() must be a string");
return qo(
go(Fe, Gt, this, t),
() => {
const r = yo(
/** @type {Compartment} */
this,
t
);
return e ? r : { namespace: r };
}
);
},
async load(t) {
if (typeof t != "string")
throw _("first argument of load() must be a string");
return go(Fe, Gt, this, t);
},
importNow(t) {
if (typeof t != "string")
throw _("first argument of importNow() must be a string");
return pc(Fe, Gt, this, t), yo(
/** @type {Compartment} */
this,
t
);
}
};
B(Vn, {
[Qe]: {
value: "Compartment",
writable: !1,
enumerable: !1,
configurable: !0
}
});
B(Gn, {
prototype: { value: Vn }
});
const Ec = (...t) => {
if (t.length === 0)
return {};
if (t.length === 1 && typeof t[0] == "object" && t[0] !== null && "__options__" in t[0]) {
const { __options__: e, ...r } = t[0];
return Y(
e === !0,
`Compartment constructor only supports true __options__ sigil, got ${e}`
), r;
} else {
const [
e = (
/** @type {Map<string, any>} */
{}
),
r = (
/** @type {Map<string, ModuleDescriptor>} */
{}
),
n = {}
] = t;
return to(
n.modules,
void 0,
"Compartment constructor must receive either a module map argument or modules option, not both"
), to(
n.globals,
void 0,
"Compartment constructor must receive either globals argument or option, not both"
), {
...n,
globals: e,
modules: r
};
}
}, Sn = (t, e, r, n = void 0) => {
function o(...s) {
if (new.target === void 0)
throw _(
"Class constructor Compartment cannot be invoked without 'new'"
);
const {
name: i = "<unknown>",
transforms: c = [],
__shimTransforms__: l = [],
globals: u = {},
modules: d = {},
resolveHook: f,
importHook: h,
importNowHook: p,
moduleMapHook: m,
importMetaHook: A,
__noNamespaceBox__: S = !1
} = Ec(...s), w = [...c, ...l], R = { __proto__: null, ...u }, T = { __proto__: null, ...d }, j = new $e(), I = new $e(), L = new $e(), Z = {};
Si(Z), _s(Z);
const { safeEvaluate: se } = Un({
globalObject: Z,
globalTransforms: w,
sloppyGlobalsMode: !1
});
vs(Z, {
intrinsics: e,
newGlobalPropertyNames: fs,
makeCompartmentConstructor: t,
parentCompartment: this,
markVirtualizedNativeFunction: r
}), wn(
Z,
se,
r
), jr(Z, R), he(Fe, this, {
name: `${i}`,
globalTransforms: w,
globalObject: Z,
safeEvaluate: se,
resolveHook: f,
importHook: h,
importNowHook: p,
moduleMap: T,
moduleMapHook: m,
importMetaHook: A,
moduleRecords: j,
__shimTransforms__: l,
deferredExports: L,
instances: I,
parentCompartment: n,
noNamespaceBox: S
});
}
return o.prototype = Vn, o;
};
function dn(t) {
return G(t).constructor;
}
function kc() {
return arguments;
}
const Pc = () => {
const t = Ee.prototype.constructor, e = ee(kc(), "callee"), r = e && e.get, n = Na(new _e()), o = G(n), s = Br[$o] && Ca(/./), i = s && G(s), c = Sa([]), l = G(c), u = G(sa), d = Ta(new $e()), f = G(d), h = Ia(new Dt()), p = G(h), m = G(l);
function* A() {
}
const S = dn(A), w = S.prototype;
async function* R() {
}
const T = dn(
R
), j = T.prototype, I = j.prototype, L = G(I);
async function Z() {
}
const se = dn(Z), J = {
"%InertFunction%": t,
"%ArrayIteratorPrototype%": l,
"%InertAsyncFunction%": se,
"%AsyncGenerator%": j,
"%InertAsyncGeneratorFunction%": T,
"%AsyncGeneratorPrototype%": I,
"%AsyncIteratorPrototype%": L,
"%Generator%": w,
"%InertGeneratorFunction%": S,
"%IteratorPrototype%": m,
"%MapIteratorPrototype%": f,
"%RegExpStringIteratorPrototype%": i,
"%SetIteratorPrototype%": p,
"%StringIteratorPrototype%": o,
"%ThrowTypeError%": r,
"%TypedArray%": u,
"%InertCompartment%": Gn
};
return x.Iterator && (J["%IteratorHelperPrototype%"] = G(
// eslint-disable-next-line @endo/no-polymorphic-call
x.Iterator.from([]).take(0)
), J["%WrapForValidIteratorPrototype%"] = G(
// eslint-disable-next-line @endo/no-polymorphic-call
x.Iterator.from({
next() {
return { value: void 0 };
}
})
)), x.AsyncIterator && (J["%AsyncIteratorHelperPrototype%"] = G(
// eslint-disable-next-line @endo/no-polymorphic-call
x.AsyncIterator.from([]).take(0)
), J["%WrapForValidAsyncIteratorPrototype%"] = G(
// eslint-disable-next-line @endo/no-polymorphic-call
x.AsyncIterator.from({ next() {
} })
)), J;
}, Us = (t, e) => {
if (e !== "safe" && e !== "unsafe")
throw _(`unrecognized fakeHardenOption ${e}`);
if (e === "safe" || (Object.isExtensible = () => !1, Object.isFrozen = () => !0, Object.isSealed = () => !0, Reflect.isExtensible = () => !1, t.isFake))
return t;
const r = (n) => n;
return r.isFake = !0, y(r);
};
y(Us);
const Ac = () => {
const t = At, e = t.prototype, r = Wo(At, void 0);
B(e, {
constructor: {
value: r
// leave other `constructor` attributes as is
}
});
const n = me(
Be(t)
), o = bt(
de(n, ([s, i]) => [
s,
{ ...i, configurable: !0 }
])
);
return B(r, o), { "%SharedSymbol%": r };
}, Tc = (t) => {
try {
return t(), !1;
} catch {
return !0;
}
}, _o = (t, e, r) => {
if (t === void 0)
return !1;
const n = ee(t, e);
if (!n || "value" in n)
return !1;
const { get: o, set: s } = n;
if (typeof o != "function" || typeof s != "function" || o() !== r || ue(o, t, []) !== r)
return !1;
const i = "Seems to be a setter", c = { __proto__: null };
if (ue(s, c, [i]), c[e] !== i)
return !1;
const l = { __proto__: t };
return ue(s, l, [i]), l[e] !== i || !Tc(() => ue(s, t, [r])) || "originalValue" in o || n.configurable === !1 ? !1 : (D(t, e, {
value: r,
writable: !0,
enumerable: n.enumerable,
configurable: !0
}), !0);
}, Ic = (t) => {
_o(
t["%IteratorPrototype%"],
"constructor",
t.Iterator
), _o(
t["%IteratorPrototype%"],
Qe,
"Iterator"
);
}, Cc = () => {
const t = on[De];
D(on, De, {
configurable: !0,
get() {
return t;
},
set(e) {
this !== on && (Q(this, De) && (this[De] = e), D(this, De, {
value: e,
writable: !0,
enumerable: !0,
configurable: !0
}));
}
});
}, Rc = () => {
if (typeof xr.transfer == "function")
return {};
const t = x.structuredClone;
return typeof t != "function" ? {} : (D(xr, "transfer", {
// @ts-expect-error
value: {
/**
* @param {number} [newLength]
*/
transfer(r = void 0) {
const n = Ea(this);
if (r === void 0 || r === n)
return t(this, { transfer: [this] });
if (typeof r != "number")
throw _("transfer newLength if provided must be a number");
if (r > n) {
const o = new To(r), s = new mn(this), i = new mn(o);
return ka(i, s), t(this, { transfer: [this] }), o;
} else {
const o = xa(this, 0, r);
return t(this, { transfer: [this] }), o;
}
}
}.transfer,
writable: !0,
enumerable: !1,
configurable: !0
}), {});
}, gr = (t) => {
let e = !1;
const r = (...n) => {
e ? t(" ", ...n) : t(...n);
};
return (
/** @type {GroupReporter} */
{
warn(...n) {
r(...n);
},
error(...n) {
r(...n);
},
groupCollapsed(...n) {
Y(!e), t(...n), e = !0;
},
groupEnd() {
e = !1;
}
}
);
}, vo = () => {
}, js = (t) => {
if (t === "none")
return gr(vo);
if (t !== "platform" && t !== "console")
throw new _(`Invalid lockdown reporting option: ${t}`);
if (t === "console" || x.window === x || x.importScripts !== void 0)
return console;
if (x.console !== void 0) {
const e = x.console, r = Wo(e.error, e);
return gr(r);
}
return x.print !== void 0 ? gr(x.print) : gr(vo);
}, bo = (t, e, r) => {
const { warn: n, error: o, groupCollapsed: s, groupEnd: i } = e;
let c = !1;
try {
return r({
warn(...l) {
c || (s(t), c = !0), n(...l);
},
error(...l) {
c || (s(t), c = !0), o(...l);
}
});
} finally {
c && i();
}
}, { Fail: fn, details: wo, quote: pn } = Y;
let yr, _r;
const $c = ri(), Nc = () => {
let t = !1;
try {
t = Ee(
"eval",
"SES_changed",
` eval("SES_changed = true");
return SES_changed;
`
)(Ko, !1), t || delete x.SES_changed;
} catch {
t = !0;
}
if (!t)
throw _(
"SES cannot initialize unless 'eval' is the original intrinsic 'eval', suitable for direct-eval (dynamically scoped eval) (SES_DIRECT_EVAL)"
);
}, Zs = (t = {}) => {
const {
errorTaming: e = ce("LOCKDOWN_ERROR_TAMING", "safe"),
errorTrapping: r = (
/** @type {"platform" | "none" | "report" | "abort" | "exit"} */
ce("LOCKDOWN_ERROR_TRAPPING", "platform")
),
reporting: n = (
/** @type {"platform" | "console" | "none"} */
ce("LOCKDOWN_REPORTING", "platform")
),
unhandledRejectionTrapping: o = (
/** @type {"none" | "report"} */
ce("LOCKDOWN_UNHANDLED_REJECTION_TRAPPING", "report")
),
regExpTaming: s = ce("LOCKDOWN_REGEXP_TAMING", "safe"),
localeTaming: i = ce("LOCKDOWN_LOCALE_TAMING", "safe"),
consoleTaming: c = (
/** @type {'unsafe' | 'safe'} */
ce("LOCKDOWN_CONSOLE_TAMING", "safe")
),
overrideTaming: l = (
/** @type {'moderate' | 'min' | 'severe'} */
ce("LOCKDOWN_OVERRIDE_TAMING", "moderate")
),
stackFiltering: u = ce("LOCKDOWN_STACK_FILTERING", "concise"),
domainTaming: d = ce("LOCKDOWN_DOMAIN_TAMING", "safe"),
evalTaming: f = ce("LOCKDOWN_EVAL_TAMING", "safeEval"),
overrideDebug: h = et(
On(ce("LOCKDOWN_OVERRIDE_DEBUG", ""), ","),
/** @param {string} debugName */
(Pe) => Pe !== ""
),
legacyRegeneratorRuntimeTaming: p = ce(
"LOCKDOWN_LEGACY_REGENERATOR_RUNTIME_TAMING",
"safe"
),
__hardenTaming__: m = ce("LOCKDOWN_HARDEN_TAMING", "safe"),
dateTaming: A = "safe",
// deprecated
mathTaming: S = "safe",
// deprecated
...w
} = t;
p === "safe" || p === "unsafe-ignore" || fn`lockdown(): non supported option legacyRegeneratorRuntimeTaming: ${pn(p)}`, f === "unsafeEval" || f === "safeEval" || f === "noEval" || fn`lockdown(): non supported option evalTaming: ${pn(f)}`;
const R = qe(w);
R.length === 0 || fn`lockdown(): non supported option ${pn(R)}`;
const T = js(n);
if (yr === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call
Y.fail(
wo`Already locked down at ${yr} (SES_ALREADY_LOCKED_DOWN)`,
_
), yr = _("Prior lockdown (SES_ALREADY_LOCKED_DOWN)"), yr.stack, Nc(), x.Function.prototype.constructor !== x.Function && // @ts-ignore harden is absent on globalThis type def.
typeof x.harden == "function" && // @ts-ignore lockdown is absent on globalThis type def.
typeof x.lockdown == "function" && x.Date.prototype.constructor !== x.Date && typeof x.Date.now == "function" && // @ts-ignore does not recognize that Date constructor is a special
// Function.
// eslint-disable-next-line @endo/no-polymorphic-call
Zr(x.Date.prototype.constructor.now(), NaN))
throw _(
"Already locked down but not by this SES instance (SES_MULTIPLE_INSTANCES)"
);
Li(d);
const I = Ns(), { addIntrinsics: L, completePrototypes: Z, finalIntrinsics: se } = ms(T), J = Us($c, m);
L({ harden: J }), L(li()), L(ui(A)), L(nc(e, u)), L(di(S)), L(fi(s)), L(Ac()), L(Rc()), L(Fi()), L(Pc()), Z();
const be = se(), Me = { __proto__: null };
typeof x.Buffer == "function" && (Me.Buffer = x.Buffer);
let dr;
e === "safe" && (dr = be["%InitialGetStackString%"]);
const zt = Zi(
c,
r,
o,
dr
);
if (x.console = /** @type {Console} */
zt.console, typeof /** @type {any} */
zt.console._times == "object" && (Me.SafeMap = G(
// eslint-disable-next-line no-underscore-dangle
/** @type {any} */
zt.console._times
)), (e === "unsafe" || e === "unsafe-debug") && x.assert === Y && (x.assert = Xr(void 0, !0)), vi(be, i), Ic(be), bo(
"SES Removing unpermitted intrinsics",
T,
(Pe) => ci(
be,
I,
Pe
)
), _s(x), vs(x, {
intrinsics: be,
newGlobalPropertyNames: ro,
makeCompartmentConstructor: Sn,
markVirtualizedNativeFunction: I
}), f === "noEval")
wn(
x,
Fa,
I
);
else if (f === "safeEval") {
const { safeEvaluate: Pe } = Un({ globalObject: x });
wn(
x,
Pe,
I
);
}
return () => {
_r === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call
Y.fail(
wo`Already locked down at ${_r} (SES_ALREADY_LOCKED_DOWN)`,
_
), _r = _(
"Prior lockdown (SES_ALREADY_LOCKED_DOWN)"
), _r.stack, bo(
"SES Enabling property overrides",
T,
(st) => mi(
be,
l,
st,
h
)
), p === "unsafe-ignore" && Cc();
const Pe = {
intrinsics: be,
hostIntrinsics: Me,
globals: {
// Harden evaluators
Function: x.Function,
eval: x.eval,
// @ts-ignore Compartment does exist on globalThis
Compartment: x.Compartment,
// Harden Symbol
Symbol: x.Symbol
}
};
for (const st of Nt(ro))
Pe.globals[st] = x[st];
return J(Pe), J;
};
};
x.lockdown = (t) => {
const e = Zs(t);
x.harden = e();
};
x.repairIntrinsics = (t) => {
const e = Zs(t);
x.hardenIntrinsics = () => {
x.harden = e();
};
};
const Oc = Ns(), Mc = js("none");
x.Compartment = Sn(
Sn,
// Any reporting that would need to be done should have already been done
// during `lockdown()`.
// See https://github.com/endojs/endo/pull/2624#discussion_r1840979770
ii(x, Mc),
Oc
);
x.assert = Y;
const Lc = Ms(Ir), Fc = ha(
"MAKE_CAUSAL_CONSOLE_FROM_LOGGER_KEY_FOR_SES_AVA"
);
x[Fc] = Lc;
const Dc = (t, e = t, r) => {
let n = { x: 0, y: 0 }, o = { x: 0, y: 0 }, s = { x: 0, y: 0 };
const i = (u) => {
const { clientX: d, clientY: f } = u, h = d - s.x + o.x, p = f - s.y + o.y;
n = { x: h, y: p }, e.style.transform = `translate(${h}px, ${p}px)`, r == null || r();
}, c = () => {
document.removeEventListener("mousemove", i), document.removeEventListener("mouseup", c);
}, l = (u) => {
s = { x: u.clientX, y: u.clientY }, o = { x: n.x, y: n.y }, document.addEventListener("mousemove", i), document.addEventListener("mouseup", c);
};
return t.addEventListener("mousedown", l), c;
}, Uc = `:host{--spacing-4: .25rem;--spacing-8: calc(var(--spacing-4) * 2);--spacing-12: calc(var(--spacing-4) * 3);--spacing-16: calc(var(--spacing-4) * 4);--spacing-20: calc(var(--spacing-4) * 5);--spacing-24: calc(var(--spacing-4) * 6);--spacing-28: calc(var(--spacing-4) * 7);--spacing-32: calc(var(--spacing-4) * 8);--spacing-36: calc(var(--spacing-4) * 9);--spacing-40: calc(var(--spacing-4) * 10);--font-weight-regular: 400;--font-weight-bold: 500;--font-line-height-s: 1.2;--font-line-height-m: 1.4;--font-line-height-l: 1.5;--font-size-s: 12px;--font-size-m: 14px;--font-size-l: 16px}[data-theme]{background-color:var(--color-background-primary);color:var(--color-foreground-secondary)}::-webkit-resizer{display:none}.wrapper{position:absolute;inset-block-start:var(--modal-block-start);inset-inline-start:var(--modal-inline-start);z-index:1000;padding:10px;border-radius:15px;border:2px solid var(--color-background-quaternary);box-shadow:0 0 10px #0000004d;overflow:hidden;min-inline-size:25px;min-block-size:200px;resize:both}.wrapper:after{content:"";cursor:se-resize;inline-size:1rem;block-size:1rem;background-image:url("data:image/svg+xml,%3csvg%20width='16.022'%20xmlns='http://www.w3.org/2000/svg'%20height='16.022'%20viewBox='-0.011%20-0.011%2016.022%2016.022'%20fill='none'%3e%3cg%20data-testid='Group'%3e%3cg%20data-testid='Path'%3e%3cpath%20d='M.011%2015.917%2015.937-.011'%20class='fills'/%3e%3cg%20class='strokes'%3e%3cpath%20d='M.011%2015.917%2015.937-.011'%20style='fill:%20none;%20stroke-width:%201;%20stroke:%20rgb(111,%20111,%20111);%20stroke-opacity:%201;%20stroke-linecap:%20round;'%20class='stroke-shape'/%3e%3c/g%3e%3c/g%3e%3cg%20data-testid='Path'%3e%3cpath%20d='m11.207%2014.601%203.361-3.401'%20class='fills'/%3e%3cg%20class='strokes'%3e%3cpath%20d='m11.207%2014.601%203.361-3.401'%20style='fill:%20none;%20stroke-width:%201;%20stroke:%20rgb(111,%20111,%20111);%20stroke-opacity:%201;%20stroke-linecap:%20round;'%20class='stroke-shape'/%3e%3c/g%3e%3c/g%3e%3cg%20data-testid='Path'%3e%3cpath%20d='m4.884%2016.004%2011.112-11.17'%20class='fills'/%3e%3cg%20class='strokes'%3e%3cpath%20d='m4.884%2016.004%2011.112-11.17'%20style='fill:%20none;%20stroke-width:%201;%20stroke:%20rgb(111,%20111,%20111);%20stroke-opacity:%201;%20stroke-linecap:%20round;'%20class='stroke-shape'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;right:5px;bottom:5px;pointer-events:none;position:absolute}.inner{padding:10px;cursor:grab;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;block-size:100%}.inner>*{flex:1}.inner>.header{flex:0}.header{align-items:center;display:flex;justify-content:space-between;border-block-end:2px solid var(--color-background-quaternary);padding-block-end:var(--spacing-4)}button{background:transparent;border:0;cursor:pointer;padding:0}h1{font-size:var(--font-size-s);font-weight:var(--font-weight-bold);margin:0;margin-inline-end:var(--spacing-4);-webkit-user-select:none;user-select:none}iframe{border:none;inline-size:100%;block-size:100%}`;
function jc(t, e, r, n, o) {
const s = document.createElement("plugin-modal");
s.setTheme(r);
const { width: i } = zs(s, n == null ? void 0 : n.width, n == null ? void 0 : n.height), c = {
blockStart: 40,
// To be able to resize the element as expected the position must be absolute from the right.
// This value is the length of the window minus the width of the element plus the width of the design tab.
inlineStart: window.innerWidth - i - 290
};
return s.style.setProperty(
"--modal-block-start",
`${c.blockStart}px`
), s.style.setProperty(
"--modal-inline-start",
`${c.inlineStart}px`
), s.setAttribute("title", t), s.setAttribute("iframe-src", e), o && s.setAttribute("allow-downloads", "true"), document.body.appendChild(s), s;
}
function zs(t, e = 335, r = 590) {
const s = e > window.innerWidth ? window.innerWidth - 290 : e, i = parseInt(
t.style.getPropertyValue("--modal-block-start") || "40",
10
), c = window.innerHeight - i;
return e = Math.min(e, s), r = Math.min(r, c), e = Math.max(e, 200), r = Math.max(r, 200), t.wrapper.style.width = `${e}px`, t.wrapper.style.minWidth = `${e}px`, t.wrapper.style.height = `${r}px`, t.wrapper.style.minHeight = `${r}px`, { width: e, height: r };
}
const Zc = `
<svg width="16" height="16"xmlns="http://www.w3.org/2000/svg" fill="none"><g class="fills"><rect rx="0" ry="0" width="16" height="16" class="frame-background"/></g><g class="frame-children"><path d="M11.997 3.997 8 8l-3.997 4.003m-.006-8L8 8l4.003 3.997" class="fills"/><g class="strokes"><path d="M11.997 3.997 8 8l-3.997 4.003m-.006-8L8 8l4.003 3.997" style="fill: none; stroke-width: 1; stroke: rgb(143, 157, 163); stroke-opacity: 1; stroke-linecap: round;" class="stroke-shape"/></g></g></svg>`;
var We, Rt;
class zc extends HTMLElement {
constructor() {
super();
tn(this, We);
tn(this, Rt);
this.wrapper = document.createElement("div"), fr(this, We, document.createElement("div")), fr(this, Rt, null), this.attachShadow({ mode: "open" });
}
setTheme(r) {
this.wrapper && this.wrapper.setAttribute("data-theme", r);
}
resize(r, n) {
this.wrapper && zs(this, r, n);
}
disconnectedCallback() {
var r;
(r = at(this, Rt)) == null || r.call(this);
}
calculateZIndex() {
const r = document.querySelectorAll("plugin-modal"), n = Array.from(r).filter((s) => s !== this).map((s) => Number(s.style.zIndex)), o = Math.max(...n, 0);
this.style.zIndex = (o + 1).toString();
}
connectedCallback() {
const r = this.getAttribute("title"), n = this.getAttribute("iframe-src"), o = this.getAttribute("allow-downloads") || !1;
if (!r || !n)
throw new Error("title and iframe-src attributes are required");
if (!this.shadowRoot)
throw new Error("Error creating shadow root");
at(this, We).classList.add("inner"), this.wrapper.classList.add("wrapper"), this.wrapper.style.maxInlineSize = "90vw", this.wrapper.style.maxBlockSize = "90vh", fr(this, Rt, Dc(at(this, We), this.wrapper, () => {
this.calculateZIndex();
}));
const s = document.createElement("div");
s.classList.add("header");
const i = document.createElement("h1");
i.textContent = r, s.appendChild(i);
const c = document.createElement("button");
c.setAttribute("type", "button"), c.innerHTML = `<div class="close">${Zc}</div>`, c.addEventListener("click", () => {
this.shadowRoot && this.shadowRoot.dispatchEvent(
new CustomEvent("close", {
composed: !0,
bubbles: !0
})
);
}), s.appendChild(c);
const l = document.createElement("iframe");
l.src = n, l.allow = "", l.sandbox.add(
"allow-scripts",
"allow-forms",
"allow-modals",
"allow-popups",
"allow-popups-to-escape-sandbox",
"allow-storage-access-by-user-activation"
), o && l.sandbox.add("allow-downloads"), l.addEventListener("load", () => {
var d;
(d = this.shadowRoot) == null || d.dispatchEvent(
new CustomEvent("load", {
composed: !0,
bubbles: !0
})
);
}), this.addEventListener("message", (d) => {
l.contentWindow && l.contentWindow.postMessage(d.detail, "*");
}), this.shadowRoot.appendChild(this.wrapper), this.wrapper.appendChild(at(this, We)), at(this, We).appendChild(s), at(this, We).appendChild(l);
const u = document.createElement("style");
u.textContent = Uc, this.shadowRoot.appendChild(u), this.calculateZIndex();
}
size() {
const r = Number(this.wrapper.style.width.replace("px", "") || "300"), n = Number(this.wrapper.style.height.replace("px", "") || "400");
return { width: r, height: n };
}
}
We = new WeakMap(), Rt = new WeakMap();
customElements.define("plugin-modal", zc);
var F;
(function(t) {
t.assertEqual = (o) => o;
function e(o) {
}
t.assertIs = e;
function r(o) {
throw new Error();
}
t.assertNever = r, t.arrayToEnum = (o) => {
const s = {};
for (const i of o)
s[i] = i;
return s;
}, t.getValidEnumValues = (o) => {
const s = t.objectKeys(o).filter((c) => typeof o[o[c]] != "number"), i = {};
for (const c of s)
i[c] = o[c];
return t.objectValues(i);
}, t.objectValues = (o) => t.objectKeys(o).map(function(s) {
return o[s];
}), t.objectKeys = typeof Object.keys == "function" ? (o) => Object.keys(o) : (o) => {
const s = [];
for (const i in o)
Object.prototype.hasOwnProperty.call(o, i) && s.push(i);
return s;
}, t.find = (o, s) => {
for (const i of o)
if (s(i))
return i;
}, t.isInteger = typeof Number.isInteger == "function" ? (o) => Number.isInteger(o) : (o) => typeof o == "number" && isFinite(o) && Math.floor(o) === o;
function n(o, s = " | ") {
return o.map((i) => typeof i == "string" ? `'${i}'` : i).join(s);
}
t.joinValues = n, t.jsonStringifyReplacer = (o, s) => typeof s == "bigint" ? s.toString() : s;
})(F || (F = {}));
var xn;
(function(t) {
t.mergeShapes = (e, r) => ({
...e,
...r
// second overwrites first
});
})(xn || (xn = {}));
const b = F.arrayToEnum([
"string",
"nan",
"number",
"integer",
"float",
"boolean",
"date",
"bigint",
"symbol",
"function",
"undefined",
"null",
"array",
"object",
"unknown",
"promise",
"void",
"never",
"map",
"set"
]), He = (t) => {
switch (typeof t) {
case "undefined":
return b.undefined;
case "string":
return b.string;
case "number":
return isNaN(t) ? b.nan : b.number;
case "boolean":
return b.boolean;
case "function":
return b.function;
case "bigint":
return b.bigint;
case "symbol":
return b.symbol;
case "object":
return Array.isArray(t) ? b.array : t === null ? b.null : t.then && typeof t.then == "function" && t.catch && typeof t.catch == "function" ? b.promise : typeof Map < "u" && t instanceof Map ? b.map : typeof Set < "u" && t instanceof Set ? b.set : typeof Date < "u" && t instanceof Date ? b.date : b.object;
default:
return b.unknown;
}
}, g = F.arrayToEnum([
"invalid_type",
"invalid_literal",
"custom",
"invalid_union",
"invalid_union_discriminator",
"invalid_enum_value",
"unrecognized_keys",
"invalid_arguments",
"invalid_return_type",
"invalid_date",
"invalid_string",
"too_small",
"too_big",
"invalid_intersection_types",
"not_multiple_of",
"not_finite"
]), Bc = (t) => JSON.stringify(t, null, 2).replace(/"([^"]+)":/g, "$1:");
class ye extends Error {
get errors() {
return this.issues;
}
constructor(e) {
super(), this.issues = [], this.addIssue = (n) => {
this.issues = [...this.issues, n];
}, this.addIssues = (n = []) => {
this.issues = [...this.issues, ...n];
};
const r = new.target.prototype;
Object.setPrototypeOf ? Object.setPrototypeOf(this, r) : this.__proto__ = r, this.name = "ZodError", this.issues = e;
}
format(e) {
const r = e || function(s) {
return s.message;
}, n = { _errors: [] }, o = (s) => {
for (const i of s.issues)
if (i.code === "invalid_union")
i.unionErrors.map(o);
else if (i.code === "invalid_return_type")
o(i.returnTypeError);
else if (i.code === "invalid_arguments")
o(i.argumentsError);
else if (i.path.length === 0)
n._errors.push(r(i));
else {
let c = n, l = 0;
for (; l < i.path.length; ) {
const u = i.path[l];
l === i.path.length - 1 ? (c[u] = c[u] || { _errors: [] }, c[u]._errors.push(r(i))) : c[u] = c[u] || { _errors: [] }, c = c[u], l++;
}
}
};
return o(this), n;
}
static assert(e) {
if (!(e instanceof ye))
throw new Error(`Not a ZodError: ${e}`);
}
toString() {
return this.message;
}
get message() {
return JSON.stringify(this.issues, F.jsonStringifyReplacer, 2);
}
get isEmpty() {
return this.issues.length === 0;
}
flatten(e = (r) => r.message) {
const r = {}, n = [];
for (const o of this.issues)
o.path.length > 0 ? (r[o.path[0]] = r[o.path[0]] || [], r[o.path[0]].push(e(o))) : n.push(e(o));
return { formErrors: n, fieldErrors: r };
}
get formErrors() {
return this.flatten();
}
}
ye.create = (t) => new ye(t);
const Mt = (t, e) => {
let r;
switch (t.code) {
case g.invalid_type:
t.received === b.undefined ? r = "Required" : r = `Expected ${t.expected}, received ${t.received}`;
break;
case g.invalid_literal:
r = `Invalid literal value, expected ${JSON.stringify(t.expected, F.jsonStringifyReplacer)}`;
break;
case g.unrecognized_keys:
r = `Unrecognized key(s) in object: ${F.joinValues(t.keys, ", ")}`;
break;
case g.invalid_union:
r = "Invalid input";
break;
case g.invalid_union_discriminator:
r = `Invalid discriminator value. Expected ${F.joinValues(t.options)}`;
break;
case g.invalid_enum_value:
r = `Invalid enum value. Expected ${F.joinValues(t.options)}, received '${t.received}'`;
break;
case g.invalid_arguments:
r = "Invalid function arguments";
break;
case g.invalid_return_type:
r = "Invalid function return type";
break;
case g.invalid_date:
r = "Invalid date";
break;
case g.invalid_string:
typeof t.validation == "object" ? "includes" in t.validation ? (r = `Invalid input: must include "${t.validation.includes}"`, typeof t.validation.position == "number" && (r = `${r} at one or more positions greater than or equal to ${t.validation.position}`)) : "startsWith" in t.validation ? r = `Invalid input: must start with "${t.validation.startsWith}"` : "endsWith" in t.validation ? r = `Invalid input: must end with "${t.validation.endsWith}"` : F.assertNever(t.validation) : t.validation !== "regex" ? r = `Invalid ${t.validation}` : r = "Invalid";
break;
case g.too_small:
t.type === "array" ? r = `Array must contain ${t.exact ? "exactly" : t.inclusive ? "at least" : "more than"} ${t.minimum} element(s)` : t.type === "string" ? r = `String must contain ${t.exact ? "exactly" : t.inclusive ? "at least" : "over"} ${t.minimum} character(s)` : t.type === "number" ? r = `Number must be ${t.exact ? "exactly equal to " : t.inclusive ? "greater than or equal to " : "greater than "}${t.minimum}` : t.type === "date" ? r = `Date must be ${t.exact ? "exactly equal to " : t.inclusive ? "greater than or equal to " : "greater than "}${new Date(Number(t.minimum))}` : r = "Invalid input";
break;
case g.too_big:
t.type === "array" ? r = `Array must contain ${t.exact ? "exactly" : t.inclusive ? "at most" : "less than"} ${t.maximum} element(s)` : t.type === "string" ? r = `String must contain ${t.exact ? "exactly" : t.inclusive ? "at most" : "under"} ${t.maximum} character(s)` : t.type === "number" ? r = `Number must be ${t.exact ? "exactly" : t.inclusive ? "less than or equal to" : "less than"} ${t.maximum}` : t.type === "bigint" ? r = `BigInt must be ${t.exact ? "exactly" : t.inclusive ? "less than or equal to" : "less than"} ${t.maximum}` : t.type === "date" ? r = `Date must be ${t.exact ? "exactly" : t.inclusive ? "smaller than or equal to" : "smaller than"} ${new Date(Number(t.maximum))}` : r = "Invalid input";
break;
case g.custom:
r = "Invalid input";
break;
case g.invalid_intersection_types:
r = "Intersection results could not be merged";
break;
case g.not_multiple_of:
r = `Number must be a multiple of ${t.multipleOf}`;
break;
case g.not_finite:
r = "Number must be finite";
break;
default:
r = e.defaultError, F.assertNever(t);
}
return { message: r };
};
let Bs = Mt;
function Gc(t) {
Bs = t;
}
function $r() {
return Bs;
}
const Nr = (t) => {
const { data: e, path: r, errorMaps: n, issueData: o } = t, s = [...r, ...o.path || []], i = {
...o,
path: s
};
if (o.message !== void 0)
return {
...o,
path: s,
message: o.message
};
let c = "";
const l = n.filter((u) => !!u).slice().reverse();
for (const u of l)
c = u(i, { data: e, defaultError: c }).message;
return {
...o,
path: s,
message: c
};
}, Vc = [];
function v(t, e) {
const r = $r(), n = Nr({
issueData: e,
data: t.data,
path: t.path,
errorMaps: [
t.common.contextualErrorMap,
// contextual error map is first priority
t.schemaErrorMap,
// then schema-bound map if available
r,
// then global override map
r === Mt ? void 0 : Mt
// then global default map
].filter((o) => !!o)
});
t.common.issues.push(n);
}
class oe {
constructor() {
this.value = "valid";
}
dirty() {
this.value === "valid" && (this.value = "dirty");
}
abort() {
this.value !== "aborted" && (this.value = "aborted");
}
static mergeArray(e, r) {
const n = [];
for (const o of r) {
if (o.status === "aborted")
return $;
o.status === "dirty" && e.dirty(), n.push(o.value);
}
return { status: e.value, value: n };
}
static async mergeObjectAsync(e, r) {
const n = [];
for (const o of r) {
const s = await o.key, i = await o.value;
n.push({
key: s,
value: i
});
}
return oe.mergeObjectSync(e, n);
}
static mergeObjectSync(e, r) {
const n = {};
for (const o of r) {
const { key: s, value: i } = o;
if (s.status === "aborted" || i.status === "aborted")
return $;
s.status === "dirty" && e.dirty(), i.status === "dirty" && e.dirty(), s.value !== "__proto__" && (typeof i.value < "u" || o.alwaysSet) && (n[s.value] = i.value);
}
return { status: e.value, value: n };
}
}
const $ = Object.freeze({
status: "aborted"
}), Pt = (t) => ({ status: "dirty", value: t }), fe = (t) => ({ status: "valid", value: t }), En = (t) => t.status === "aborted", kn = (t) => t.status === "dirty", yt = (t) => t.status === "valid", qt = (t) => typeof Promise < "u" && t instanceof Promise;
function Or(t, e, r, n) {
if (typeof e == "function" ? t !== e || !0 : !e.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return e.get(t);
}
function Gs(t, e, r, n, o) {
if (typeof e == "function" ? t !== e || !0 : !e.has(t)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return e.set(t, r), r;
}
var E;
(function(t) {
t.errToObj = (e) => typeof e == "string" ? { message: e } : e || {}, t.toString = (e) => typeof e == "string" ? e : e == null ? void 0 : e.message;
})(E || (E = {}));
var Vt, Ht;
class je {
constructor(e, r, n, o) {
this._cachedPath = [], this.parent = e, this.data = r, this._path = n, this._key = o;
}
get path() {
return this._cachedPath.length || (this._key instanceof Array ? this._cachedPath.push(...this._path, ...this._key) : this._cachedPath.push(...this._path, this._key)), this._cachedPath;
}
}
const So = (t, e) => {
if (yt(e))
return { success: !0, data: e.value };
if (!t.common.issues.length)
throw new Error("Validation failed but no issues detected.");
return {
success: !1,
get error() {
if (this._error)
return this._error;
const r = new ye(t.common.issues);
return this._error = r, this._error;
}
};
};
function N(t) {
if (!t)
return {};
const { errorMap: e, invalid_type_error: r, required_error: n, description: o } = t;
if (e && (r || n))
throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);
return e ? { errorMap: e, description: o } : { errorMap: (i, c) => {
var l, u;
const { message: d } = t;
return i.code === "invalid_enum_value" ? { message: d ?? c.defaultError } : typeof c.data > "u" ? { message: (l = d ?? n) !== null && l !== void 0 ? l : c.defaultError } : i.code !== "invalid_type" ? { message: c.defaultError } : { message: (u = d ?? r) !== null && u !== void 0 ? u : c.defaultError };
}, description: o };
}
class O {
get description() {
return this._def.description;
}
_getType(e) {
return He(e.data);
}
_getOrReturnCtx(e, r) {
return r || {
common: e.parent.common,
data: e.data,
parsedType: He(e.data),
schemaErrorMap: this._def.errorMap,
path: e.path,
parent: e.parent
};
}
_processInputParams(e) {
return {
status: new oe(),
ctx: {
common: e.parent.common,
data: e.data,
parsedType: He(e.data),
schemaErrorMap: this._def.errorMap,
path: e.path,
parent: e.parent
}
};
}
_parseSync(e) {
const r = this._parse(e);
if (qt(r))
throw new Error("Synchronous parse encountered promise.");
return r;
}
_parseAsync(e) {
const r = this._parse(e);
return Promise.resolve(r);
}
parse(e, r) {
const n = this.safeParse(e, r);
if (n.success)
return n.data;
throw n.error;
}
safeParse(e, r) {
var n;
const o = {
common: {
issues: [],
async: (n = r == null ? void 0 : r.async) !== null && n !== void 0 ? n : !1,
contextualErrorMap: r == null ? void 0 : r.errorMap
},
path: (r == null ? void 0 : r.path) || [],
schemaErrorMap: this._def.errorMap,
parent: null,
data: e,
parsedType: He(e)
}, s = this._parseSync({ data: e, path: o.path, parent: o });
return So(o, s);
}
"~validate"(e) {
var r, n;
const o = {
common: {
issues: [],
async: !!this["~standard"].async
},
path: [],
schemaErrorMap: this._def.errorMap,
parent: null,
data: e,
parsedType: He(e)
};
if (!this["~standard"].async)
try {
const s = this._parseSync({ data: e, path: [], parent: o });
return yt(s) ? {
value: s.value
} : {
issues: o.common.issues
};
} catch (s) {
!((n = (r = s == null ? void 0 : s.message) === null || r === void 0 ? void 0 : r.toLowerCase()) === null || n === void 0) && n.includes("encountered") && (this["~standard"].async = !0), o.common = {
issues: [],
async: !0
};
}
return this._parseAsync({ data: e, path: [], parent: o }).then((s) => yt(s) ? {
value: s.value
} : {
issues: o.common.issues
});
}
async parseAsync(e, r) {
const n = await this.safeParseAsync(e, r);
if (n.success)
return n.data;
throw n.error;
}
async safeParseAsync(e, r) {
const n = {
common: {
issues: [],
contextualErrorMap: r == null ? void 0 : r.errorMap,
async: !0
},
path: (r == null ? void 0 : r.path) || [],
schemaErrorMap: this._def.errorMap,
parent: null,
data: e,
parsedType: He(e)
}, o = this._parse({ data: e, path: n.path, parent: n }), s = await (qt(o) ? o : Promise.resolve(o));
return So(n, s);
}
refine(e, r) {
const n = (o) => typeof r == "string" || typeof r > "u" ? { message: r } : typeof r == "function" ? r(o) : r;
return this._refinement((o, s) => {
const i = e(o), c = () => s.addIssue({
code: g.custom,
...n(o)
});
return typeof Promise < "u" && i instanceof Promise ? i.then((l) => l ? !0 : (c(), !1)) : i ? !0 : (c(), !1);
});
}
refinement(e, r) {
return this._refinement((n, o) => e(n) ? !0 : (o.addIssue(typeof r == "function" ? r(n, o) : r), !1));
}
_refinement(e) {
return new Oe({
schema: this,
typeName: C.ZodEffects,
effect: { type: "refinement", refinement: e }
});
}
superRefine(e) {
return this._refinement(e);
}
constructor(e) {
this.spa = this.safeParseAsync, this._def = e, this.parse = this.parse.bind(this), this.safeParse = this.safeParse.bind(this), this.parseAsync = this.parseAsync.bind(this), this.safeParseAsync = this.safeParseAsync.bind(this), this.spa = this.spa.bind(this), this.refine = this.refine.bind(this), this.refinement = this.refinement.bind(this), this.superRefine = this.superRefine.bind(this), this.optional = this.optional.bind(this), this.nullable = this.nullable.bind(this), this.nullish = this.nullish.bind(this), this.array = this.array.bind(this), this.promise = this.promise.bind(this), this.or = this.or.bind(this), this.and = this.and.bind(this), this.transform = this.transform.bind(this), this.brand = this.brand.bind(this), this.default = this.default.bind(this), this.catch = this.catch.bind(this), this.describe = this.describe.bind(this), this.pipe = this.pipe.bind(this), this.readonly = this.readonly.bind(this), this.isNullable = this.isNullable.bind(this), this.isOptional = this.isOptional.bind(this), this["~standard"] = {
version: 1,
vendor: "zod",
validate: (r) => this["~validate"](r)
};
}
optional() {
return Ue.create(this, this._def);
}
nullable() {
return ot.create(this, this._def);
}
nullish() {
return this.nullable().optional();
}
array() {
return Ne.create(this);
}
promise() {
return Ft.create(this, this._def);
}
or(e) {
return Xt.create([this, e], this._def);
}
and(e) {
return Qt.create(this, e, this._def);
}
transform(e) {
return new Oe({
...N(this._def),
schema: this,
typeName: C.ZodEffects,
effect: { type: "transform", transform: e }
});
}
default(e) {
const r = typeof e == "function" ? e : () => e;
return new or({
...N(this._def),
innerType: this,
defaultValue: r,
typeName: C.ZodDefault
});
}
brand() {
return new Hn({
typeName: C.ZodBranded,
type: this,
...N(this._def)
});
}
catch(e) {
const r = typeof e == "function" ? e : () => e;
return new sr({
...N(this._def),
innerType: this,
catchValue: r,
typeName: C.ZodCatch
});
}
describe(e) {
const r = this.constructor;
return new r({
...this._def,
description: e
});
}
pipe(e) {
return ur.create(this, e);
}
readonly() {
return ar.create(this);
}
isOptional() {
return this.safeParse(void 0).success;
}
isNullable() {
return this.safeParse(null).success;
}
}
const Hc = /^c[^\s-]{8,}$/i, Wc = /^[0-9a-z]+$/, qc = /^[0-9A-HJKMNP-TV-Z]{26}$/i, Kc = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i, Yc = /^[a-z0-9_-]{21}$/i, Jc = /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/, Xc = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/, Qc = /^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i, el = "^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";
let hn;
const tl = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/, rl = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/, nl = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/, ol = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/, sl = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/, al = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/, Vs = "((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))", il = new RegExp(`^${Vs}$`);
function Hs(t) {
let e = "([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";
return t.precision ? e = `${e}\\.\\d{${t.precision}}` : t.precision == null && (e = `${e}(\\.\\d+)?`), e;
}
function cl(t) {
return new RegExp(`^${Hs(t)}$`);
}
function Ws(t) {
let e = `${Vs}T${Hs(t)}`;
const r = [];
return r.push(t.local ? "Z?" : "Z"), t.offset && r.push("([+-]\\d{2}:?\\d{2})"), e = `${e}(${r.join("|")})`, new RegExp(`^${e}$`);
}
function ll(t, e) {
return !!((e === "v4" || !e) && tl.test(t) || (e === "v6" || !e) && nl.test(t));
}
function ul(t, e) {
if (!Jc.test(t))
return !1;
try {
const [r] = t.split("."), n = r.replace(/-/g, "+").replace(/_/g, "/").padEnd(r.length + (4 - r.length % 4) % 4, "="), o = JSON.parse(atob(n));
return !(typeof o != "object" || o === null || !o.typ || !o.alg || e && o.alg !== e);
} catch {
return !1;
}
}
function dl(t, e) {
return !!((e === "v4" || !e) && rl.test(t) || (e === "v6" || !e) && ol.test(t));
}
class Re extends O {
_parse(e) {
if (this._def.coerce && (e.data = String(e.data)), this._getType(e) !== b.string) {
const s = this._getOrReturnCtx(e);
return v(s, {
code: g.invalid_type,
expected: b.string,
received: s.parsedType
}), $;
}
const n = new oe();
let o;
for (const s of this._def.checks)
if (s.kind === "min")
e.data.length < s.value && (o = this._getOrReturnCtx(e, o), v(o, {
code: g.too_small,
minimum: s.value,
type: "string",
inclusive: !0,
exact: !1,
message: s.message
}), n.dirty());
else if (s.kind === "max")
e.data.length > s.value && (o = this._getOrReturnCtx(e, o), v(o, {
code: g.too_big,
maximum: s.value,
type: "string",
inclusive: !0,
exact: !1,
message: s.message
}), n.dirty());
else if (s.kind === "length") {
const i = e.data.length > s.value, c = e.data.length < s.value;
(i || c) && (o = this._getOrReturnCtx(e, o), i ? v(o, {
code: g.too_big,
maximum: s.value,
type: "string",
inclusive: !0,
exact: !0,
message: s.message
}) : c && v(o, {
code: g.too_small,
minimum: s.value,
type: "string",
inclusive: !0,
exact: !0,
message: s.message
}), n.dirty());
} else if (s.kind === "email")
Qc.test(e.data) || (o = this._getOrReturnCtx(e, o), v(o, {
validation: "email",
code: g.invalid_string,
message: s.message
}), n.dirty());
else if (s.kind === "emoji")
hn || (hn = new RegExp(el, "u")), hn.test(e.data) || (o = this._getOrReturnCtx(e, o), v(o, {
validation: "emoji",
code: g.invalid_string,
message: s.message
}), n.dirty());
else if (s.kind === "uuid")
Kc.test(e.data) || (o = this._getOrReturnCtx(e, o), v(o, {
validation: "uuid",
code: g.invalid_string,
message: s.message
}), n.dirty());
else if (s.kind === "nanoid")
Yc.test(e.data) || (o = this._getOrReturnCtx(e, o), v(o, {
validation: "nanoid",
code: g.invalid_string,
message: s.message
}), n.dirty());
else if (s.kind === "cuid")
Hc.test(e.data) || (o = this._getOrReturnCtx(e, o), v(o, {
validation: "cuid",
code: g.invalid_string,
message: s.message
}), n.dirty());
else if (s.kind === "cuid2")
Wc.test(e.data) || (o = this._getOrReturnCtx(e, o), v(o, {
validation: "cuid2",
code: g.invalid_string,
message: s.message
}), n.dirty());
else if (s.kind === "ulid")
qc.test(e.data) || (o = this._getOrReturnCtx(e, o), v(o, {
validation: "ulid",
code: g.invalid_string,
message: s.message
}), n.dirty());
else if (s.kind === "url")
try {
new URL(e.data);
} catch {
o = this._getOrReturnCtx(e, o), v(o, {
validation: "url",
code: g.invalid_string,
message: s.message
}), n.dirty();
}
else s.kind === "regex" ? (s.regex.lastIndex = 0, s.regex.test(e.data) || (o = this._getOrReturnCtx(e, o), v(o, {
validation: "regex",
code: g.invalid_string,
message: s.message
}), n.dirty())) : s.kind === "trim" ? e.data = e.data.trim() : s.kind === "includes" ? e.data.includes(s.value, s.position) || (o = this._getOrReturnCtx(e, o), v(o, {
code: g.invalid_string,
validation: { includes: s.value, position: s.position },
message: s.message
}), n.dirty()) : s.kind === "toLowerCase" ? e.data = e.data.toLowerCase() : s.kind === "toUpperCase" ? e.data = e.data.toUpperCase() : s.kind === "startsWith" ? e.data.startsWith(s.value) || (o = this._getOrReturnCtx(e, o), v(o, {
code: g.invalid_string,
validation: { startsWith: s.value },
message: s.message
}), n.dirty()) : s.kind === "endsWith" ? e.data.endsWith(s.value) || (o = this._getOrReturnCtx(e, o), v(o, {
code: g.invalid_string,
validation: { endsWith: s.value },
message: s.message
}), n.dirty()) : s.kind === "datetime" ? Ws(s).test(e.data) || (o = this._getOrReturnCtx(e, o), v(o, {
code: g.invalid_string,
validation: "datetime",
message: s.message
}), n.dirty()) : s.kind === "date" ? il.test(e.data) || (o = this._getOrReturnCtx(e, o), v(o, {
code: g.invalid_string,
validation: "date",
message: s.message
}), n.dirty()) : s.kind === "time" ? cl(s).test(e.data) || (o = this._getOrReturnCtx(e, o), v(o, {
code: g.invalid_string,
validation: "time",
message: s.message
}), n.dirty()) : s.kind === "duration" ? Xc.test(e.data) || (o = this._getOrReturnCtx(e, o), v(o, {
validation: "duration",
code: g.invalid_string,
message: s.message
}), n.dirty()) : s.kind === "ip" ? ll(e.data, s.version) || (o = this._getOrReturnCtx(e, o), v(o, {
validation: "ip",
code: g.invalid_string,
message: s.message
}), n.dirty()) : s.kind === "jwt" ? ul(e.data, s.alg) || (o = this._getOrReturnCtx(e, o), v(o, {
validation: "jwt",
code: g.invalid_string,
message: s.message
}), n.dirty()) : s.kind === "cidr" ? dl(e.data, s.version) || (o = this._getOrReturnCtx(e, o), v(o, {
validation: "cidr",
code: g.invalid_string,
message: s.message
}), n.dirty()) : s.kind === "base64" ? sl.test(e.data) || (o = this._getOrReturnCtx(e, o), v(o, {
validation: "base64",
code: g.invalid_string,
message: s.message
}), n.dirty()) : s.kind === "base64url" ? al.test(e.data) || (o = this._getOrReturnCtx(e, o), v(o, {
validation: "base64url",
code: g.invalid_string,
message: s.message
}), n.dirty()) : F.assertNever(s);
return { status: n.value, value: e.data };
}
_regex(e, r, n) {
return this.refinement((o) => e.test(o), {
validation: r,
code: g.invalid_string,
...E.errToObj(n)
});
}
_addCheck(e) {
return new Re({
...this._def,
checks: [...this._def.checks, e]
});
}
email(e) {
return this._addCheck({ kind: "email", ...E.errToObj(e) });
}
url(e) {
return this._addCheck({ kind: "url", ...E.errToObj(e) });
}
emoji(e) {
return this._addCheck({ kind: "emoji", ...E.errToObj(e) });
}
uuid(e) {
return this._addCheck({ kind: "uuid", ...E.errToObj(e) });
}
nanoid(e) {
return this._addCheck({ kind: "nanoid", ...E.errToObj(e) });
}
cuid(e) {
return this._addCheck({ kind: "cuid", ...E.errToObj(e) });
}
cuid2(e) {
return this._addCheck({ kind: "cuid2", ...E.errToObj(e) });
}
ulid(e) {
return this._addCheck({ kind: "ulid", ...E.errToObj(e) });
}
base64(e) {
return this._addCheck({ kind: "base64", ...E.errToObj(e) });
}
base64url(e) {
return this._addCheck({
kind: "base64url",
...E.errToObj(e)
});
}
jwt(e) {
return this._addCheck({ kind: "jwt", ...E.errToObj(e) });
}
ip(e) {
return this._addCheck({ kind: "ip", ...E.errToObj(e) });
}
cidr(e) {
return this._addCheck({ kind: "cidr", ...E.errToObj(e) });
}
datetime(e) {
var r, n;
return typeof e == "string" ? this._addCheck({
kind: "datetime",
precision: null,
offset: !1,
local: !1,
message: e
}) : this._addCheck({
kind: "datetime",
precision: typeof (e == null ? void 0 : e.precision) > "u" ? null : e == null ? void 0 : e.precision,
offset: (r = e == null ? void 0 : e.offset) !== null && r !== void 0 ? r : !1,
local: (n = e == null ? void 0 : e.local) !== null && n !== void 0 ? n : !1,
...E.errToObj(e == null ? void 0 : e.message)
});
}
date(e) {
return this._addCheck({ kind: "date", message: e });
}
time(e) {
return typeof e == "string" ? this._addCheck({
kind: "time",
precision: null,
message: e
}) : this._addCheck({
kind: "time",
precision: typeof (e == null ? void 0 : e.precision) > "u" ? null : e == null ? void 0 : e.precision,
...E.errToObj(e == null ? void 0 : e.message)
});
}
duration(e) {
return this._addCheck({ kind: "duration", ...E.errToObj(e) });
}
regex(e, r) {
return this._addCheck({
kind: "regex",
regex: e,
...E.errToObj(r)
});
}
includes(e, r) {
return this._addCheck({
kind: "includes",
value: e,
position: r == null ? void 0 : r.position,
...E.errToObj(r == null ? void 0 : r.message)
});
}
startsWith(e, r) {
return this._addCheck({
kind: "startsWith",
value: e,
...E.errToObj(r)
});
}
endsWith(e, r) {
return this._addCheck({
kind: "endsWith",
value: e,
...E.errToObj(r)
});
}
min(e, r) {
return this._addCheck({
kind: "min",
value: e,
...E.errToObj(r)
});
}
max(e, r) {
return this._addCheck({
kind: "max",
value: e,
...E.errToObj(r)
});
}
length(e, r) {
return this._addCheck({
kind: "length",
value: e,
...E.errToObj(r)
});
}
/**
* Equivalent to `.min(1)`
*/
nonempty(e) {
return this.min(1, E.errToObj(e));
}
trim() {
return new Re({
...this._def,
checks: [...this._def.checks, { kind: "trim" }]
});
}
toLowerCase() {
return new Re({
...this._def,
checks: [...this._def.checks, { kind: "toLowerCase" }]
});
}
toUpperCase() {
return new Re({
...this._def,
checks: [...this._def.checks, { kind: "toUpperCase" }]
});
}
get isDatetime() {
return !!this._def.checks.find((e) => e.kind === "datetime");
}
get isDate() {
return !!this._def.checks.find((e) => e.kind === "date");
}
get isTime() {
return !!this._def.checks.find((e) => e.kind === "time");
}
get isDuration() {
return !!this._def.checks.find((e) => e.kind === "duration");
}
get isEmail() {
return !!this._def.checks.find((e) => e.kind === "email");
}
get isURL() {
return !!this._def.checks.find((e) => e.kind === "url");
}
get isEmoji() {
return !!this._def.checks.find((e) => e.kind === "emoji");
}
get isUUID() {
return !!this._def.checks.find((e) => e.kind === "uuid");
}
get isNANOID() {
return !!this._def.checks.find((e) => e.kind === "nanoid");
}
get isCUID() {
return !!this._def.checks.find((e) => e.kind === "cuid");
}
get isCUID2() {
return !!this._def.checks.find((e) => e.kind === "cuid2");
}
get isULID() {
return !!this._def.checks.find((e) => e.kind === "ulid");
}
get isIP() {
return !!this._def.checks.find((e) => e.kind === "ip");
}
get isCIDR() {
return !!this._def.checks.find((e) => e.kind === "cidr");
}
get isBase64() {
return !!this._def.checks.find((e) => e.kind === "base64");
}
get isBase64url() {
return !!this._def.checks.find((e) => e.kind === "base64url");
}
get minLength() {
let e = null;
for (const r of this._def.checks)
r.kind === "min" && (e === null || r.value > e) && (e = r.value);
return e;
}
get maxLength() {
let e = null;
for (const r of this._def.checks)
r.kind === "max" && (e === null || r.value < e) && (e = r.value);
return e;
}
}
Re.create = (t) => {
var e;
return new Re({
checks: [],
typeName: C.ZodString,
coerce: (e = t == null ? void 0 : t.coerce) !== null && e !== void 0 ? e : !1,
...N(t)
});
};
function fl(t, e) {
const r = (t.toString().split(".")[1] || "").length, n = (e.toString().split(".")[1] || "").length, o = r > n ? r : n, s = parseInt(t.toFixed(o).replace(".", "")), i = parseInt(e.toFixed(o).replace(".", ""));
return s % i / Math.pow(10, o);
}
class tt extends O {
constructor() {
super(...arguments), this.min = this.gte, this.max = this.lte, this.step = this.multipleOf;
}
_parse(e) {
if (this._def.coerce && (e.data = Number(e.data)), this._getType(e) !== b.number) {
const s = this._getOrReturnCtx(e);
return v(s, {
code: g.invalid_type,
expected: b.number,
received: s.parsedType
}), $;
}
let n;
const o = new oe();
for (const s of this._def.checks)
s.kind === "int" ? F.isInteger(e.data) || (n = this._getOrReturnCtx(e, n), v(n, {
code: g.invalid_type,
expected: "integer",
received: "float",
message: s.message
}), o.dirty()) : s.kind === "min" ? (s.inclusive ? e.data < s.value : e.data <= s.value) && (n = this._getOrReturnCtx(e, n), v(n, {
code: g.too_small,
minimum: s.value,
type: "number",
inclusive: s.inclusive,
exact: !1,
message: s.message
}), o.dirty()) : s.kind === "max" ? (s.inclusive ? e.data > s.value : e.data >= s.value) && (n = this._getOrReturnCtx(e, n), v(n, {
code: g.too_big,
maximum: s.value,
type: "number",
inclusive: s.inclusive,
exact: !1,
message: s.message
}), o.dirty()) : s.kind === "multipleOf" ? fl(e.data, s.value) !== 0 && (n = this._getOrReturnCtx(e, n), v(n, {
code: g.not_multiple_of,
multipleOf: s.value,
message: s.message
}), o.dirty()) : s.kind === "finite" ? Number.isFinite(e.data) || (n = this._getOrReturnCtx(e, n), v(n, {
code: g.not_finite,
message: s.message
}), o.dirty()) : F.assertNever(s);
return { status: o.value, value: e.data };
}
gte(e, r) {
return this.setLimit("min", e, !0, E.toString(r));
}
gt(e, r) {
return this.setLimit("min", e, !1, E.toString(r));
}
lte(e, r) {
return this.setLimit("max", e, !0, E.toString(r));
}
lt(e, r) {
return this.setLimit("max", e, !1, E.toString(r));
}
setLimit(e, r, n, o) {
return new tt({
...this._def,
checks: [
...this._def.checks,
{
kind: e,
value: r,
inclusive: n,
message: E.toString(o)
}
]
});
}
_addCheck(e) {
return new tt({
...this._def,
checks: [...this._def.checks, e]
});
}
int(e) {
return this._addCheck({
kind: "int",
message: E.toString(e)
});
}
positive(e) {
return this._addCheck({
kind: "min",
value: 0,
inclusive: !1,
message: E.toString(e)
});
}
negative(e) {
return this._addCheck({
kind: "max",
value: 0,
inclusive: !1,
message: E.toString(e)
});
}
nonpositive(e) {
return this._addCheck({
kind: "max",
value: 0,
inclusive: !0,
message: E.toString(e)
});
}
nonnegative(e) {
return this._addCheck({
kind: "min",
value: 0,
inclusive: !0,
message: E.toString(e)
});
}
multipleOf(e, r) {
return this._addCheck({
kind: "multipleOf",
value: e,
message: E.toString(r)
});
}
finite(e) {
return this._addCheck({
kind: "finite",
message: E.toString(e)
});
}
safe(e) {
return this._addCheck({
kind: "min",
inclusive: !0,
value: Number.MIN_SAFE_INTEGER,
message: E.toString(e)
})._addCheck({
kind: "max",
inclusive: !0,
value: Number.MAX_SAFE_INTEGER,
message: E.toString(e)
});
}
get minValue() {
let e = null;
for (const r of this._def.checks)
r.kind === "min" && (e === null || r.value > e) && (e = r.value);
return e;
}
get maxValue() {
let e = null;
for (const r of this._def.checks)
r.kind === "max" && (e === null || r.value < e) && (e = r.value);
return e;
}
get isInt() {
return !!this._def.checks.find((e) => e.kind === "int" || e.kind === "multipleOf" && F.isInteger(e.value));
}
get isFinite() {
let e = null, r = null;
for (const n of this._def.checks) {
if (n.kind === "finite" || n.kind === "int" || n.kind === "multipleOf")
return !0;
n.kind === "min" ? (r === null || n.value > r) && (r = n.value) : n.kind === "max" && (e === null || n.value < e) && (e = n.value);
}
return Number.isFinite(r) && Number.isFinite(e);
}
}
tt.create = (t) => new tt({
checks: [],
typeName: C.ZodNumber,
coerce: (t == null ? void 0 : t.coerce) || !1,
...N(t)
});
class rt extends O {
constructor() {
super(...arguments), this.min = this.gte, this.max = this.lte;
}
_parse(e) {
if (this._def.coerce)
try {
e.data = BigInt(e.data);
} catch {
return this._getInvalidInput(e);
}
if (this._getType(e) !== b.bigint)
return this._getInvalidInput(e);
let n;
const o = new oe();
for (const s of this._def.checks)
s.kind === "min" ? (s.inclusive ? e.data < s.value : e.data <= s.value) && (n = this._getOrReturnCtx(e, n), v(n, {
code: g.too_small,
type: "bigint",
minimum: s.value,
inclusive: s.inclusive,
message: s.message
}), o.dirty()) : s.kind === "max" ? (s.inclusive ? e.data > s.value : e.data >= s.value) && (n = this._getOrReturnCtx(e, n), v(n, {
code: g.too_big,
type: "bigint",
maximum: s.value,
inclusive: s.inclusive,
message: s.message
}), o.dirty()) : s.kind === "multipleOf" ? e.data % s.value !== BigInt(0) && (n = this._getOrReturnCtx(e, n), v(n, {
code: g.not_multiple_of,
multipleOf: s.value,
message: s.message
}), o.dirty()) : F.assertNever(s);
return { status: o.value, value: e.data };
}
_getInvalidInput(e) {
const r = this._getOrReturnCtx(e);
return v(r, {
code: g.invalid_type,
expected: b.bigint,
received: r.parsedType
}), $;
}
gte(e, r) {
return this.setLimit("min", e, !0, E.toString(r));
}
gt(e, r) {
return this.setLimit("min", e, !1, E.toString(r));
}
lte(e, r) {
return this.setLimit("max", e, !0, E.toString(r));
}
lt(e, r) {
return this.setLimit("max", e, !1, E.toString(r));
}
setLimit(e, r, n, o) {
return new rt({
...this._def,
checks: [
...this._def.checks,
{
kind: e,
value: r,
inclusive: n,
message: E.toString(o)
}
]
});
}
_addCheck(e) {
return new rt({
...this._def,
checks: [...this._def.checks, e]
});
}
positive(e) {
return this._addCheck({
kind: "min",
value: BigInt(0),
inclusive: !1,
message: E.toString(e)
});
}
negative(e) {
return this._addCheck({
kind: "max",
value: BigInt(0),
inclusive: !1,
message: E.toString(e)
});
}
nonpositive(e) {
return this._addCheck({
kind: "max",
value: BigInt(0),
inclusive: !0,
message: E.toString(e)
});
}
nonnegative(e) {
return this._addCheck({
kind: "min",
value: BigInt(0),
inclusive: !0,
message: E.toString(e)
});
}
multipleOf(e, r) {
return this._addCheck({
kind: "multipleOf",
value: e,
message: E.toString(r)
});
}
get minValue() {
let e = null;
for (const r of this._def.checks)
r.kind === "min" && (e === null || r.value > e) && (e = r.value);
return e;
}
get maxValue() {
let e = null;
for (const r of this._def.checks)
r.kind === "max" && (e === null || r.value < e) && (e = r.value);
return e;
}
}
rt.create = (t) => {
var e;
return new rt({
checks: [],
typeName: C.ZodBigInt,
coerce: (e = t == null ? void 0 : t.coerce) !== null && e !== void 0 ? e : !1,
...N(t)
});
};
class Kt extends O {
_parse(e) {
if (this._def.coerce && (e.data = !!e.data), this._getType(e) !== b.boolean) {
const n = this._getOrReturnCtx(e);
return v(n, {
code: g.invalid_type,
expected: b.boolean,
received: n.parsedType
}), $;
}
return fe(e.data);
}
}
Kt.create = (t) => new Kt({
typeName: C.ZodBoolean,
coerce: (t == null ? void 0 : t.coerce) || !1,
...N(t)
});
class _t extends O {
_parse(e) {
if (this._def.coerce && (e.data = new Date(e.data)), this._getType(e) !== b.date) {
const s = this._getOrReturnCtx(e);
return v(s, {
code: g.invalid_type,
expected: b.date,
received: s.parsedType
}), $;
}
if (isNaN(e.data.getTime())) {
const s = this._getOrReturnCtx(e);
return v(s, {
code: g.invalid_date
}), $;
}
const n = new oe();
let o;
for (const s of this._def.checks)
s.kind === "min" ? e.data.getTime() < s.value && (o = this._getOrReturnCtx(e, o), v(o, {
code: g.too_small,
message: s.message,
inclusive: !0,
exact: !1,
minimum: s.value,
type: "date"
}), n.dirty()) : s.kind === "max" ? e.data.getTime() > s.value && (o = this._getOrReturnCtx(e, o), v(o, {
code: g.too_big,
message: s.message,
inclusive: !0,
exact: !1,
maximum: s.value,
type: "date"
}), n.dirty()) : F.assertNever(s);
return {
status: n.value,
value: new Date(e.data.getTime())
};
}
_addCheck(e) {
return new _t({
...this._def,
checks: [...this._def.checks, e]
});
}
min(e, r) {
return this._addCheck({
kind: "min",
value: e.getTime(),
message: E.toString(r)
});
}
max(e, r) {
return this._addCheck({
kind: "max",
value: e.getTime(),
message: E.toString(r)
});
}
get minDate() {
let e = null;
for (const r of this._def.checks)
r.kind === "min" && (e === null || r.value > e) && (e = r.value);
return e != null ? new Date(e) : null;
}
get maxDate() {
let e = null;
for (const r of this._def.checks)
r.kind === "max" && (e === null || r.value < e) && (e = r.value);
return e != null ? new Date(e) : null;
}
}
_t.create = (t) => new _t({
checks: [],
coerce: (t == null ? void 0 : t.coerce) || !1,
typeName: C.ZodDate,
...N(t)
});
class Mr extends O {
_parse(e) {
if (this._getType(e) !== b.symbol) {
const n = this._getOrReturnCtx(e);
return v(n, {
code: g.invalid_type,
expected: b.symbol,
received: n.parsedType
}), $;
}
return fe(e.data);
}
}
Mr.create = (t) => new Mr({
typeName: C.ZodSymbol,
...N(t)
});
class Yt extends O {
_parse(e) {
if (this._getType(e) !== b.undefined) {
const n = this._getOrReturnCtx(e);
return v(n, {
code: g.invalid_type,
expected: b.undefined,
received: n.parsedType
}), $;
}
return fe(e.data);
}
}
Yt.create = (t) => new Yt({
typeName: C.ZodUndefined,
...N(t)
});
class Jt extends O {
_parse(e) {
if (this._getType(e) !== b.null) {
const n = this._getOrReturnCtx(e);
return v(n, {
code: g.invalid_type,
expected: b.null,
received: n.parsedType
}), $;
}
return fe(e.data);
}
}
Jt.create = (t) => new Jt({
typeName: C.ZodNull,
...N(t)
});
class Lt extends O {
constructor() {
super(...arguments), this._any = !0;
}
_parse(e) {
return fe(e.data);
}
}
Lt.create = (t) => new Lt({
typeName: C.ZodAny,
...N(t)
});
class mt extends O {
constructor() {
super(...arguments), this._unknown = !0;
}
_parse(e) {
return fe(e.data);
}
}
mt.create = (t) => new mt({
typeName: C.ZodUnknown,
...N(t)
});
class Ye extends O {
_parse(e) {
const r = this._getOrReturnCtx(e);
return v(r, {
code: g.invalid_type,
expected: b.never,
received: r.parsedType
}), $;
}
}
Ye.create = (t) => new Ye({
typeName: C.ZodNever,
...N(t)
});
class Lr extends O {
_parse(e) {
if (this._getType(e) !== b.undefined) {
const n = this._getOrReturnCtx(e);
return v(n, {
code: g.invalid_type,
expected: b.void,
received: n.parsedType
}), $;
}
return fe(e.data);
}
}
Lr.create = (t) => new Lr({
typeName: C.ZodVoid,
...N(t)
});
class Ne extends O {
_parse(e) {
const { ctx: r, status: n } = this._processInputParams(e), o = this._def;
if (r.parsedType !== b.array)
return v(r, {
code: g.invalid_type,
expected: b.array,
received: r.parsedType
}), $;
if (o.exactLength !== null) {
const i = r.data.length > o.exactLength.value, c = r.data.length < o.exactLength.value;
(i || c) && (v(r, {
code: i ? g.too_big : g.too_small,
minimum: c ? o.exactLength.value : void 0,
maximum: i ? o.exactLength.value : void 0,
type: "array",
inclusive: !0,
exact: !0,
message: o.exactLength.message
}), n.dirty());
}
if (o.minLength !== null && r.data.length < o.minLength.value && (v(r, {
code: g.too_small,
minimum: o.minLength.value,
type: "array",
inclusive: !0,
exact: !1,
message: o.minLength.message
}), n.dirty()), o.maxLength !== null && r.data.length > o.maxLength.value && (v(r, {
code: g.too_big,
maximum: o.maxLength.value,
type: "array",
inclusive: !0,
exact: !1,
message: o.maxLength.message
}), n.dirty()), r.common.async)
return Promise.all([...r.data].map((i, c) => o.type._parseAsync(new je(r, i, r.path, c)))).then((i) => oe.mergeArray(n, i));
const s = [...r.data].map((i, c) => o.type._parseSync(new je(r, i, r.path, c)));
return oe.mergeArray(n, s);
}
get element() {
return this._def.type;
}
min(e, r) {
return new Ne({
...this._def,
minLength: { value: e, message: E.toString(r) }
});
}
max(e, r) {
return new Ne({
...this._def,
maxLength: { value: e, message: E.toString(r) }
});
}
length(e, r) {
return new Ne({
...this._def,
exactLength: { value: e, message: E.toString(r) }
});
}
nonempty(e) {
return this.min(1, e);
}
}
Ne.create = (t, e) => new Ne({
type: t,
minLength: null,
maxLength: null,
exactLength: null,
typeName: C.ZodArray,
...N(e)
});
function kt(t) {
if (t instanceof V) {
const e = {};
for (const r in t.shape) {
const n = t.shape[r];
e[r] = Ue.create(kt(n));
}
return new V({
...t._def,
shape: () => e
});
} else return t instanceof Ne ? new Ne({
...t._def,
type: kt(t.element)
}) : t instanceof Ue ? Ue.create(kt(t.unwrap())) : t instanceof ot ? ot.create(kt(t.unwrap())) : t instanceof Ze ? Ze.create(t.items.map((e) => kt(e))) : t;
}
class V extends O {
constructor() {
super(...arguments), this._cached = null, this.nonstrict = this.passthrough, this.augment = this.extend;
}
_getCached() {
if (this._cached !== null)
return this._cached;
const e = this._def.shape(), r = F.objectKeys(e);
return this._cached = { shape: e, keys: r };
}
_parse(e) {
if (this._getType(e) !== b.object) {
const u = this._getOrReturnCtx(e);
return v(u, {
code: g.invalid_type,
expected: b.object,
received: u.parsedType
}), $;
}
const { status: n, ctx: o } = this._processInputParams(e), { shape: s, keys: i } = this._getCached(), c = [];
if (!(this._def.catchall instanceof Ye && this._def.unknownKeys === "strip"))
for (const u in o.data)
i.includes(u) || c.push(u);
const l = [];
for (const u of i) {
const d = s[u], f = o.data[u];
l.push({
key: { status: "valid", value: u },
value: d._parse(new je(o, f, o.path, u)),
alwaysSet: u in o.data
});
}
if (this._def.catchall instanceof Ye) {
const u = this._def.unknownKeys;
if (u === "passthrough")
for (const d of c)
l.push({
key: { status: "valid", value: d },
value: { status: "valid", value: o.data[d] }
});
else if (u === "strict")
c.length > 0 && (v(o, {
code: g.unrecognized_keys,
keys: c
}), n.dirty());
else if (u !== "strip") throw new Error("Internal ZodObject error: invalid unknownKeys value.");
} else {
const u = this._def.catchall;
for (const d of c) {
const f = o.data[d];
l.push({
key: { status: "valid", value: d },
value: u._parse(
new je(o, f, o.path, d)
//, ctx.child(key), value, getParsedType(value)
),
alwaysSet: d in o.data
});
}
}
return o.common.async ? Promise.resolve().then(async () => {
const u = [];
for (const d of l) {
const f = await d.key, h = await d.value;
u.push({
key: f,
value: h,
alwaysSet: d.alwaysSet
});
}
return u;
}).then((u) => oe.mergeObjectSync(n, u)) : oe.mergeObjectSync(n, l);
}
get shape() {
return this._def.shape();
}
strict(e) {
return E.errToObj, new V({
...this._def,
unknownKeys: "strict",
...e !== void 0 ? {
errorMap: (r, n) => {
var o, s, i, c;
const l = (i = (s = (o = this._def).errorMap) === null || s === void 0 ? void 0 : s.call(o, r, n).message) !== null && i !== void 0 ? i : n.defaultError;
return r.code === "unrecognized_keys" ? {
message: (c = E.errToObj(e).message) !== null && c !== void 0 ? c : l
} : {
message: l
};
}
} : {}
});
}
strip() {
return new V({
...this._def,
unknownKeys: "strip"
});
}
passthrough() {
return new V({
...this._def,
unknownKeys: "passthrough"
});
}
// const AugmentFactory =
// <Def extends ZodObjectDef>(def: Def) =>
// <Augmentation extends ZodRawShape>(
// augmentation: Augmentation
// ): ZodObject<
// extendShape<ReturnType<Def["shape"]>, Augmentation>,
// Def["unknownKeys"],
// Def["catchall"]
// > => {
// return new ZodObject({
// ...def,
// shape: () => ({
// ...def.shape(),
// ...augmentation,
// }),
// }) as any;
// };
extend(e) {
return new V({
...this._def,
shape: () => ({
...this._def.shape(),
...e
})
});
}
/**
* Prior to zod@1.0.12 there was a bug in the
* inferred type of merged objects. Please
* upgrade if you are experiencing issues.
*/
merge(e) {
return new V({
unknownKeys: e._def.unknownKeys,
catchall: e._def.catchall,
shape: () => ({
...this._def.shape(),
...e._def.shape()
}),
typeName: C.ZodObject
});
}
// merge<
// Incoming extends AnyZodObject,
// Augmentation extends Incoming["shape"],
// NewOutput extends {
// [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation
// ? Augmentation[k]["_output"]
// : k extends keyof Output
// ? Output[k]
// : never;
// },
// NewInput extends {
// [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation
// ? Augmentation[k]["_input"]
// : k extends keyof Input
// ? Input[k]
// : never;
// }
// >(
// merging: Incoming
// ): ZodObject<
// extendShape<T, ReturnType<Incoming["_def"]["shape"]>>,
// Incoming["_def"]["unknownKeys"],
// Incoming["_def"]["catchall"],
// NewOutput,
// NewInput
// > {
// const merged: any = new ZodObject({
// unknownKeys: merging._def.unknownKeys,
// catchall: merging._def.catchall,
// shape: () =>
// objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),
// typeName: ZodFirstPartyTypeKind.ZodObject,
// }) as any;
// return merged;
// }
setKey(e, r) {
return this.augment({ [e]: r });
}
// merge<Incoming extends AnyZodObject>(
// merging: Incoming
// ): //ZodObject<T & Incoming["_shape"], UnknownKeys, Catchall> = (merging) => {
// ZodObject<
// extendShape<T, ReturnType<Incoming["_def"]["shape"]>>,
// Incoming["_def"]["unknownKeys"],
// Incoming["_def"]["catchall"]
// > {
// // const mergedShape = objectUtil.mergeShapes(
// // this._def.shape(),
// // merging._def.shape()
// // );
// const merged: any = new ZodObject({
// unknownKeys: merging._def.unknownKeys,
// catchall: merging._def.catchall,
// shape: () =>
// objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),
// typeName: ZodFirstPartyTypeKind.ZodObject,
// }) as any;
// return merged;
// }
catchall(e) {
return new V({
...this._def,
catchall: e
});
}
pick(e) {
const r = {};
return F.objectKeys(e).forEach((n) => {
e[n] && this.shape[n] && (r[n] = this.shape[n]);
}), new V({
...this._def,
shape: () => r
});
}
omit(e) {
const r = {};
return F.objectKeys(this.shape).forEach((n) => {
e[n] || (r[n] = this.shape[n]);
}), new V({
...this._def,
shape: () => r
});
}
/**
* @deprecated
*/
deepPartial() {
return kt(this);
}
partial(e) {
const r = {};
return F.objectKeys(this.shape).forEach((n) => {
const o = this.shape[n];
e && !e[n] ? r[n] = o : r[n] = o.optional();
}), new V({
...this._def,
shape: () => r
});
}
required(e) {
const r = {};
return F.objectKeys(this.shape).forEach((n) => {
if (e && !e[n])
r[n] = this.shape[n];
else {
let s = this.shape[n];
for (; s instanceof Ue; )
s = s._def.innerType;
r[n] = s;
}
}), new V({
...this._def,
shape: () => r
});
}
keyof() {
return qs(F.objectKeys(this.shape));
}
}
V.create = (t, e) => new V({
shape: () => t,
unknownKeys: "strip",
catchall: Ye.create(),
typeName: C.ZodObject,
...N(e)
});
V.strictCreate = (t, e) => new V({
shape: () => t,
unknownKeys: "strict",
catchall: Ye.create(),
typeName: C.ZodObject,
...N(e)
});
V.lazycreate = (t, e) => new V({
shape: t,
unknownKeys: "strip",
catchall: Ye.create(),
typeName: C.ZodObject,
...N(e)
});
class Xt extends O {
_parse(e) {
const { ctx: r } = this._processInputParams(e), n = this._def.options;
function o(s) {
for (const c of s)
if (c.result.status === "valid")
return c.result;
for (const c of s)
if (c.result.status === "dirty")
return r.common.issues.push(...c.ctx.common.issues), c.result;
const i = s.map((c) => new ye(c.ctx.common.issues));
return v(r, {
code: g.invalid_union,
unionErrors: i
}), $;
}
if (r.common.async)
return Promise.all(n.map(async (s) => {
const i = {
...r,
common: {
...r.common,
issues: []
},
parent: null
};
return {
result: await s._parseAsync({
data: r.data,
path: r.path,
parent: i
}),
ctx: i
};
})).then(o);
{
let s;
const i = [];
for (const l of n) {
const u = {
...r,
common: {
...r.common,
issues: []
},
parent: null
}, d = l._parseSync({
data: r.data,
path: r.path,
parent: u
});
if (d.status === "valid")
return d;
d.status === "dirty" && !s && (s = { result: d, ctx: u }), u.common.issues.length && i.push(u.common.issues);
}
if (s)
return r.common.issues.push(...s.ctx.common.issues), s.result;
const c = i.map((l) => new ye(l));
return v(r, {
code: g.invalid_union,
unionErrors: c
}), $;
}
}
get options() {
return this._def.options;
}
}
Xt.create = (t, e) => new Xt({
options: t,
typeName: C.ZodUnion,
...N(e)
});
const Ve = (t) => t instanceof tr ? Ve(t.schema) : t instanceof Oe ? Ve(t.innerType()) : t instanceof rr ? [t.value] : t instanceof nt ? t.options : t instanceof nr ? F.objectValues(t.enum) : t instanceof or ? Ve(t._def.innerType) : t instanceof Yt ? [void 0] : t instanceof Jt ? [null] : t instanceof Ue ? [void 0, ...Ve(t.unwrap())] : t instanceof ot ? [null, ...Ve(t.unwrap())] : t instanceof Hn || t instanceof ar ? Ve(t.unwrap()) : t instanceof sr ? Ve(t._def.innerType) : [];
class Qr extends O {
_parse(e) {
const { ctx: r } = this._processInputParams(e);
if (r.parsedType !== b.object)
return v(r, {
code: g.invalid_type,
expected: b.object,
received: r.parsedType
}), $;
const n = this.discriminator, o = r.data[n], s = this.optionsMap.get(o);
return s ? r.common.async ? s._parseAsync({
data: r.data,
path: r.path,
parent: r
}) : s._parseSync({
data: r.data,
path: r.path,
parent: r
}) : (v(r, {
code: g.invalid_union_discriminator,
options: Array.from(this.optionsMap.keys()),
path: [n]
}), $);
}
get discriminator() {
return this._def.discriminator;
}
get options() {
return this._def.options;
}
get optionsMap() {
return this._def.optionsMap;
}
/**
* The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.
* However, it only allows a union of objects, all of which need to share a discriminator property. This property must
* have a different value for each object in the union.
* @param discriminator the name of the discriminator property
* @param types an array of object schemas
* @param params
*/
static create(e, r, n) {
const o = /* @__PURE__ */ new Map();
for (const s of r) {
const i = Ve(s.shape[e]);
if (!i.length)
throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);
for (const c of i) {
if (o.has(c))
throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(c)}`);
o.set(c, s);
}
}
return new Qr({
typeName: C.ZodDiscriminatedUnion,
discriminator: e,
options: r,
optionsMap: o,
...N(n)
});
}
}
function Pn(t, e) {
const r = He(t), n = He(e);
if (t === e)
return { valid: !0, data: t };
if (r === b.object && n === b.object) {
const o = F.objectKeys(e), s = F.objectKeys(t).filter((c) => o.indexOf(c) !== -1), i = { ...t, ...e };
for (const c of s) {
const l = Pn(t[c], e[c]);
if (!l.valid)
return { valid: !1 };
i[c] = l.data;
}
return { valid: !0, data: i };
} else if (r === b.array && n === b.array) {
if (t.length !== e.length)
return { valid: !1 };
const o = [];
for (let s = 0; s < t.length; s++) {
const i = t[s], c = e[s], l = Pn(i, c);
if (!l.valid)
return { valid: !1 };
o.push(l.data);
}
return { valid: !0, data: o };
} else return r === b.date && n === b.date && +t == +e ? { valid: !0, data: t } : { valid: !1 };
}
class Qt extends O {
_parse(e) {
const { status: r, ctx: n } = this._processInputParams(e), o = (s, i) => {
if (En(s) || En(i))
return $;
const c = Pn(s.value, i.value);
return c.valid ? ((kn(s) || kn(i)) && r.dirty(), { status: r.value, value: c.data }) : (v(n, {
code: g.invalid_intersection_types
}), $);
};
return n.common.async ? Promise.all([
this._def.left._parseAsync({
data: n.data,
path: n.path,
parent: n
}),
this._def.right._parseAsync({
data: n.data,
path: n.path,
parent: n
})
]).then(([s, i]) => o(s, i)) : o(this._def.left._parseSync({
data: n.data,
path: n.path,
parent: n
}), this._def.right._parseSync({
data: n.data,
path: n.path,
parent: n
}));
}
}
Qt.create = (t, e, r) => new Qt({
left: t,
right: e,
typeName: C.ZodIntersection,
...N(r)
});
class Ze extends O {
_parse(e) {
const { status: r, ctx: n } = this._processInputParams(e);
if (n.parsedType !== b.array)
return v(n, {
code: g.invalid_type,
expected: b.array,
received: n.parsedType
}), $;
if (n.data.length < this._def.items.length)
return v(n, {
code: g.too_small,
minimum: this._def.items.length,
inclusive: !0,
exact: !1,
type: "array"
}), $;
!this._def.rest && n.data.length > this._def.items.length && (v(n, {
code: g.too_big,
maximum: this._def.items.length,
inclusive: !0,
exact: !1,
type: "array"
}), r.dirty());
const s = [...n.data].map((i, c) => {
const l = this._def.items[c] || this._def.rest;
return l ? l._parse(new je(n, i, n.path, c)) : null;
}).filter((i) => !!i);
return n.common.async ? Promise.all(s).then((i) => oe.mergeArray(r, i)) : oe.mergeArray(r, s);
}
get items() {
return this._def.items;
}
rest(e) {
return new Ze({
...this._def,
rest: e
});
}
}
Ze.create = (t, e) => {
if (!Array.isArray(t))
throw new Error("You must pass an array of schemas to z.tuple([ ... ])");
return new Ze({
items: t,
typeName: C.ZodTuple,
rest: null,
...N(e)
});
};
class er extends O {
get keySchema() {
return this._def.keyType;
}
get valueSchema() {
return this._def.valueType;
}
_parse(e) {
const { status: r, ctx: n } = this._processInputParams(e);
if (n.parsedType !== b.object)
return v(n, {
code: g.invalid_type,
expected: b.object,
received: n.parsedType
}), $;
const o = [], s = this._def.keyType, i = this._def.valueType;
for (const c in n.data)
o.push({
key: s._parse(new je(n, c, n.path, c)),
value: i._parse(new je(n, n.data[c], n.path, c)),
alwaysSet: c in n.data
});
return n.common.async ? oe.mergeObjectAsync(r, o) : oe.mergeObjectSync(r, o);
}
get element() {
return this._def.valueType;
}
static create(e, r, n) {
return r instanceof O ? new er({
keyType: e,
valueType: r,
typeName: C.ZodRecord,
...N(n)
}) : new er({
keyType: Re.create(),
valueType: e,
typeName: C.ZodRecord,
...N(r)
});
}
}
class Fr extends O {
get keySchema() {
return this._def.keyType;
}
get valueSchema() {
return this._def.valueType;
}
_parse(e) {
const { status: r, ctx: n } = this._processInputParams(e);
if (n.parsedType !== b.map)
return v(n, {
code: g.invalid_type,
expected: b.map,
received: n.parsedType
}), $;
const o = this._def.keyType, s = this._def.valueType, i = [...n.data.entries()].map(([c, l], u) => ({
key: o._parse(new je(n, c, n.path, [u, "key"])),
value: s._parse(new je(n, l, n.path, [u, "value"]))
}));
if (n.common.async) {
const c = /* @__PURE__ */ new Map();
return Promise.resolve().then(async () => {
for (const l of i) {
const u = await l.key, d = await l.value;
if (u.status === "aborted" || d.status === "aborted")
return $;
(u.status === "dirty" || d.status === "dirty") && r.dirty(), c.set(u.value, d.value);
}
return { status: r.value, value: c };
});
} else {
const c = /* @__PURE__ */ new Map();
for (const l of i) {
const u = l.key, d = l.value;
if (u.status === "aborted" || d.status === "aborted")
return $;
(u.status === "dirty" || d.status === "dirty") && r.dirty(), c.set(u.value, d.value);
}
return { status: r.value, value: c };
}
}
}
Fr.create = (t, e, r) => new Fr({
valueType: e,
keyType: t,
typeName: C.ZodMap,
...N(r)
});
class vt extends O {
_parse(e) {
const { status: r, ctx: n } = this._processInputParams(e);
if (n.parsedType !== b.set)
return v(n, {
code: g.invalid_type,
expected: b.set,
received: n.parsedType
}), $;
const o = this._def;
o.minSize !== null && n.data.size < o.minSize.value && (v(n, {
code: g.too_small,
minimum: o.minSize.value,
type: "set",
inclusive: !0,
exact: !1,
message: o.minSize.message
}), r.dirty()), o.maxSize !== null && n.data.size > o.maxSize.value && (v(n, {
code: g.too_big,
maximum: o.maxSize.value,
type: "set",
inclusive: !0,
exact: !1,
message: o.maxSize.message
}), r.dirty());
const s = this._def.valueType;
function i(l) {
const u = /* @__PURE__ */ new Set();
for (const d of l) {
if (d.status === "aborted")
return $;
d.status === "dirty" && r.dirty(), u.add(d.value);
}
return { status: r.value, value: u };
}
const c = [...n.data.values()].map((l, u) => s._parse(new je(n, l, n.path, u)));
return n.common.async ? Promise.all(c).then((l) => i(l)) : i(c);
}
min(e, r) {
return new vt({
...this._def,
minSize: { value: e, message: E.toString(r) }
});
}
max(e, r) {
return new vt({
...this._def,
maxSize: { value: e, message: E.toString(r) }
});
}
size(e, r) {
return this.min(e, r).max(e, r);
}
nonempty(e) {
return this.min(1, e);
}
}
vt.create = (t, e) => new vt({
valueType: t,
minSize: null,
maxSize: null,
typeName: C.ZodSet,
...N(e)
});
class Ct extends O {
constructor() {
super(...arguments), this.validate = this.implement;
}
_parse(e) {
const { ctx: r } = this._processInputParams(e);
if (r.parsedType !== b.function)
return v(r, {
code: g.invalid_type,
expected: b.function,
received: r.parsedType
}), $;
function n(c, l) {
return Nr({
data: c,
path: r.path,
errorMaps: [
r.common.contextualErrorMap,
r.schemaErrorMap,
$r(),
Mt
].filter((u) => !!u),
issueData: {
code: g.invalid_arguments,
argumentsError: l
}
});
}
function o(c, l) {
return Nr({
data: c,
path: r.path,
errorMaps: [
r.common.contextualErrorMap,
r.schemaErrorMap,
$r(),
Mt
].filter((u) => !!u),
issueData: {
code: g.invalid_return_type,
returnTypeError: l
}
});
}
const s = { errorMap: r.common.contextualErrorMap }, i = r.data;
if (this._def.returns instanceof Ft) {
const c = this;
return fe(async function(...l) {
const u = new ye([]), d = await c._def.args.parseAsync(l, s).catch((p) => {
throw u.addIssue(n(l, p)), u;
}), f = await Reflect.apply(i, this, d);
return await c._def.returns._def.type.parseAsync(f, s).catch((p) => {
throw u.addIssue(o(f, p)), u;
});
});
} else {
const c = this;
return fe(function(...l) {
const u = c._def.args.safeParse(l, s);
if (!u.success)
throw new ye([n(l, u.error)]);
const d = Reflect.apply(i, this, u.data), f = c._def.returns.safeParse(d, s);
if (!f.success)
throw new ye([o(d, f.error)]);
return f.data;
});
}
}
parameters() {
return this._def.args;
}
returnType() {
return this._def.returns;
}
args(...e) {
return new Ct({
...this._def,
args: Ze.create(e).rest(mt.create())
});
}
returns(e) {
return new Ct({
...this._def,
returns: e
});
}
implement(e) {
return this.parse(e);
}
strictImplement(e) {
return this.parse(e);
}
static create(e, r, n) {
return new Ct({
args: e || Ze.create([]).rest(mt.create()),
returns: r || mt.create(),
typeName: C.ZodFunction,
...N(n)
});
}
}
class tr extends O {
get schema() {
return this._def.getter();
}
_parse(e) {
const { ctx: r } = this._processInputParams(e);
return this._def.getter()._parse({ data: r.data, path: r.path, parent: r });
}
}
tr.create = (t, e) => new tr({
getter: t,
typeName: C.ZodLazy,
...N(e)
});
class rr extends O {
_parse(e) {
if (e.data !== this._def.value) {
const r = this._getOrReturnCtx(e);
return v(r, {
received: r.data,
code: g.invalid_literal,
expected: this._def.value
}), $;
}
return { status: "valid", value: e.data };
}
get value() {
return this._def.value;
}
}
rr.create = (t, e) => new rr({
value: t,
typeName: C.ZodLiteral,
...N(e)
});
function qs(t, e) {
return new nt({
values: t,
typeName: C.ZodEnum,
...N(e)
});
}
class nt extends O {
constructor() {
super(...arguments), Vt.set(this, void 0);
}
_parse(e) {
if (typeof e.data != "string") {
const r = this._getOrReturnCtx(e), n = this._def.values;
return v(r, {
expected: F.joinValues(n),
received: r.parsedType,
code: g.invalid_type
}), $;
}
if (Or(this, Vt) || Gs(this, Vt, new Set(this._def.values)), !Or(this, Vt).has(e.data)) {
const r = this._getOrReturnCtx(e), n = this._def.values;
return v(r, {
received: r.data,
code: g.invalid_enum_value,
options: n
}), $;
}
return fe(e.data);
}
get options() {
return this._def.values;
}
get enum() {
const e = {};
for (const r of this._def.values)
e[r] = r;
return e;
}
get Values() {
const e = {};
for (const r of this._def.values)
e[r] = r;
return e;
}
get Enum() {
const e = {};
for (const r of this._def.values)
e[r] = r;
return e;
}
extract(e, r = this._def) {
return nt.create(e, {
...this._def,
...r
});
}
exclude(e, r = this._def) {
return nt.create(this.options.filter((n) => !e.includes(n)), {
...this._def,
...r
});
}
}
Vt = /* @__PURE__ */ new WeakMap();
nt.create = qs;
class nr extends O {
constructor() {
super(...arguments), Ht.set(this, void 0);
}
_parse(e) {
const r = F.getValidEnumValues(this._def.values), n = this._getOrReturnCtx(e);
if (n.parsedType !== b.string && n.parsedType !== b.number) {
const o = F.objectValues(r);
return v(n, {
expected: F.joinValues(o),
received: n.parsedType,
code: g.invalid_type
}), $;
}
if (Or(this, Ht) || Gs(this, Ht, new Set(F.getValidEnumValues(this._def.values))), !Or(this, Ht).has(e.data)) {
const o = F.objectValues(r);
return v(n, {
received: n.data,
code: g.invalid_enum_value,
options: o
}), $;
}
return fe(e.data);
}
get enum() {
return this._def.values;
}
}
Ht = /* @__PURE__ */ new WeakMap();
nr.create = (t, e) => new nr({
values: t,
typeName: C.ZodNativeEnum,
...N(e)
});
class Ft extends O {
unwrap() {
return this._def.type;
}
_parse(e) {
const { ctx: r } = this._processInputParams(e);
if (r.parsedType !== b.promise && r.common.async === !1)
return v(r, {
code: g.invalid_type,
expected: b.promise,
received: r.parsedType
}), $;
const n = r.parsedType === b.promise ? r.data : Promise.resolve(r.data);
return fe(n.then((o) => this._def.type.parseAsync(o, {
path: r.path,
errorMap: r.common.contextualErrorMap
})));
}
}
Ft.create = (t, e) => new Ft({
type: t,
typeName: C.ZodPromise,
...N(e)
});
class Oe extends O {
innerType() {
return this._def.schema;
}
sourceType() {
return this._def.schema._def.typeName === C.ZodEffects ? this._def.schema.sourceType() : this._def.schema;
}
_parse(e) {
const { status: r, ctx: n } = this._processInputParams(e), o = this._def.effect || null, s = {
addIssue: (i) => {
v(n, i), i.fatal ? r.abort() : r.dirty();
},
get path() {
return n.path;
}
};
if (s.addIssue = s.addIssue.bind(s), o.type === "preprocess") {
const i = o.transform(n.data, s);
if (n.common.async)
return Promise.resolve(i).then(async (c) => {
if (r.value === "aborted")
return $;
const l = await this._def.schema._parseAsync({
data: c,
path: n.path,
parent: n
});
return l.status === "aborted" ? $ : l.status === "dirty" || r.value === "dirty" ? Pt(l.value) : l;
});
{
if (r.value === "aborted")
return $;
const c = this._def.schema._parseSync({
data: i,
path: n.path,
parent: n
});
return c.status === "aborted" ? $ : c.status === "dirty" || r.value === "dirty" ? Pt(c.value) : c;
}
}
if (o.type === "refinement") {
const i = (c) => {
const l = o.refinement(c, s);
if (n.common.async)
return Promise.resolve(l);
if (l instanceof Promise)
throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");
return c;
};
if (n.common.async === !1) {
const c = this._def.schema._parseSync({
data: n.data,
path: n.path,
parent: n
});
return c.status === "aborted" ? $ : (c.status === "dirty" && r.dirty(), i(c.value), { status: r.value, value: c.value });
} else
return this._def.schema._parseAsync({ data: n.data, path: n.path, parent: n }).then((c) => c.status === "aborted" ? $ : (c.status === "dirty" && r.dirty(), i(c.value).then(() => ({ status: r.value, value: c.value }))));
}
if (o.type === "transform")
if (n.common.async === !1) {
const i = this._def.schema._parseSync({
data: n.data,
path: n.path,
parent: n
});
if (!yt(i))
return i;
const c = o.transform(i.value, s);
if (c instanceof Promise)
throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");
return { status: r.value, value: c };
} else
return this._def.schema._parseAsync({ data: n.data, path: n.path, parent: n }).then((i) => yt(i) ? Promise.resolve(o.transform(i.value, s)).then((c) => ({ status: r.value, value: c })) : i);
F.assertNever(o);
}
}
Oe.create = (t, e, r) => new Oe({
schema: t,
typeName: C.ZodEffects,
effect: e,
...N(r)
});
Oe.createWithPreprocess = (t, e, r) => new Oe({
schema: e,
effect: { type: "preprocess", transform: t },
typeName: C.ZodEffects,
...N(r)
});
class Ue extends O {
_parse(e) {
return this._getType(e) === b.undefined ? fe(void 0) : this._def.innerType._parse(e);
}
unwrap() {
return this._def.innerType;
}
}
Ue.create = (t, e) => new Ue({
innerType: t,
typeName: C.ZodOptional,
...N(e)
});
class ot extends O {
_parse(e) {
return this._getType(e) === b.null ? fe(null) : this._def.innerType._parse(e);
}
unwrap() {
return this._def.innerType;
}
}
ot.create = (t, e) => new ot({
innerType: t,
typeName: C.ZodNullable,
...N(e)
});
class or extends O {
_parse(e) {
const { ctx: r } = this._processInputParams(e);
let n = r.data;
return r.parsedType === b.undefined && (n = this._def.defaultValue()), this._def.innerType._parse({
data: n,
path: r.path,
parent: r
});
}
removeDefault() {
return this._def.innerType;
}
}
or.create = (t, e) => new or({
innerType: t,
typeName: C.ZodDefault,
defaultValue: typeof e.default == "function" ? e.default : () => e.default,
...N(e)
});
class sr extends O {
_parse(e) {
const { ctx: r } = this._processInputParams(e), n = {
...r,
common: {
...r.common,
issues: []
}
}, o = this._def.innerType._parse({
data: n.data,
path: n.path,
parent: {
...n
}
});
return qt(o) ? o.then((s) => ({
status: "valid",
value: s.status === "valid" ? s.value : this._def.catchValue({
get error() {
return new ye(n.common.issues);
},
input: n.data
})
})) : {
status: "valid",
value: o.status === "valid" ? o.value : this._def.catchValue({
get error() {
return new ye(n.common.issues);
},
input: n.data
})
};
}
removeCatch() {
return this._def.innerType;
}
}
sr.create = (t, e) => new sr({
innerType: t,
typeName: C.ZodCatch,
catchValue: typeof e.catch == "function" ? e.catch : () => e.catch,
...N(e)
});
class Dr extends O {
_parse(e) {
if (this._getType(e) !== b.nan) {
const n = this._getOrReturnCtx(e);
return v(n, {
code: g.invalid_type,
expected: b.nan,
received: n.parsedType
}), $;
}
return { status: "valid", value: e.data };
}
}
Dr.create = (t) => new Dr({
typeName: C.ZodNaN,
...N(t)
});
const pl = Symbol("zod_brand");
class Hn extends O {
_parse(e) {
const { ctx: r } = this._processInputParams(e), n = r.data;
return this._def.type._parse({
data: n,
path: r.path,
parent: r
});
}
unwrap() {
return this._def.type;
}
}
class ur extends O {
_parse(e) {
const { status: r, ctx: n } = this._processInputParams(e);
if (n.common.async)
return (async () => {
const s = await this._def.in._parseAsync({
data: n.data,
path: n.path,
parent: n
});
return s.status === "aborted" ? $ : s.status === "dirty" ? (r.dirty(), Pt(s.value)) : this._def.out._parseAsync({
data: s.value,
path: n.path,
parent: n
});
})();
{
const o = this._def.in._parseSync({
data: n.data,
path: n.path,
parent: n
});
return o.status === "aborted" ? $ : o.status === "dirty" ? (r.dirty(), {
status: "dirty",
value: o.value
}) : this._def.out._parseSync({
data: o.value,
path: n.path,
parent: n
});
}
}
static create(e, r) {
return new ur({
in: e,
out: r,
typeName: C.ZodPipeline
});
}
}
class ar extends O {
_parse(e) {
const r = this._def.innerType._parse(e), n = (o) => (yt(o) && (o.value = Object.freeze(o.value)), o);
return qt(r) ? r.then((o) => n(o)) : n(r);
}
unwrap() {
return this._def.innerType;
}
}
ar.create = (t, e) => new ar({
innerType: t,
typeName: C.ZodReadonly,
...N(e)
});
function Ks(t, e = {}, r) {
return t ? Lt.create().superRefine((n, o) => {
var s, i;
if (!t(n)) {
const c = typeof e == "function" ? e(n) : typeof e == "string" ? { message: e } : e, l = (i = (s = c.fatal) !== null && s !== void 0 ? s : r) !== null && i !== void 0 ? i : !0, u = typeof c == "string" ? { message: c } : c;
o.addIssue({ code: "custom", ...u, fatal: l });
}
}) : Lt.create();
}
const hl = {
object: V.lazycreate
};
var C;
(function(t) {
t.ZodString = "ZodString", t.ZodNumber = "ZodNumber", t.ZodNaN = "ZodNaN", t.ZodBigInt = "ZodBigInt", t.ZodBoolean = "ZodBoolean", t.ZodDate = "ZodDate", t.ZodSymbol = "ZodSymbol", t.ZodUndefined = "ZodUndefined", t.ZodNull = "ZodNull", t.ZodAny = "ZodAny", t.ZodUnknown = "ZodUnknown", t.ZodNever = "ZodNever", t.ZodVoid = "ZodVoid", t.ZodArray = "ZodArray", t.ZodObject = "ZodObject", t.ZodUnion = "ZodUnion", t.ZodDiscriminatedUnion = "ZodDiscriminatedUnion", t.ZodIntersection = "ZodIntersection", t.ZodTuple = "ZodTuple", t.ZodRecord = "ZodRecord", t.ZodMap = "ZodMap", t.ZodSet = "ZodSet", t.ZodFunction = "ZodFunction", t.ZodLazy = "ZodLazy", t.ZodLiteral = "ZodLiteral", t.ZodEnum = "ZodEnum", t.ZodEffects = "ZodEffects", t.ZodNativeEnum = "ZodNativeEnum", t.ZodOptional = "ZodOptional", t.ZodNullable = "ZodNullable", t.ZodDefault = "ZodDefault", t.ZodCatch = "ZodCatch", t.ZodPromise = "ZodPromise", t.ZodBranded = "ZodBranded", t.ZodPipeline = "ZodPipeline", t.ZodReadonly = "ZodReadonly";
})(C || (C = {}));
const ml = (t, e = {
message: `Input not instance of ${t.name}`
}) => Ks((r) => r instanceof t, e), Ys = Re.create, Js = tt.create, gl = Dr.create, yl = rt.create, Xs = Kt.create, _l = _t.create, vl = Mr.create, bl = Yt.create, wl = Jt.create, Sl = Lt.create, xl = mt.create, El = Ye.create, kl = Lr.create, Pl = Ne.create, Al = V.create, Tl = V.strictCreate, Il = Xt.create, Cl = Qr.create, Rl = Qt.create, $l = Ze.create, Nl = er.create, Ol = Fr.create, Ml = vt.create, Ll = Ct.create, Fl = tr.create, Dl = rr.create, Ul = nt.create, jl = nr.create, Zl = Ft.create, xo = Oe.create, zl = Ue.create, Bl = ot.create, Gl = Oe.createWithPreprocess, Vl = ur.create, Hl = () => Ys().optional(), Wl = () => Js().optional(), ql = () => Xs().optional(), Kl = {
string: (t) => Re.create({ ...t, coerce: !0 }),
number: (t) => tt.create({ ...t, coerce: !0 }),
boolean: (t) => Kt.create({
...t,
coerce: !0
}),
bigint: (t) => rt.create({ ...t, coerce: !0 }),
date: (t) => _t.create({ ...t, coerce: !0 })
}, Yl = $;
var K = /* @__PURE__ */ Object.freeze({
__proto__: null,
defaultErrorMap: Mt,
setErrorMap: Gc,
getErrorMap: $r,
makeIssue: Nr,
EMPTY_PATH: Vc,
addIssueToContext: v,
ParseStatus: oe,
INVALID: $,
DIRTY: Pt,
OK: fe,
isAborted: En,
isDirty: kn,
isValid: yt,
isAsync: qt,
get util() {
return F;
},
get objectUtil() {
return xn;
},
ZodParsedType: b,
getParsedType: He,
ZodType: O,
datetimeRegex: Ws,
ZodString: Re,
ZodNumber: tt,
ZodBigInt: rt,
ZodBoolean: Kt,
ZodDate: _t,
ZodSymbol: Mr,
ZodUndefined: Yt,
ZodNull: Jt,
ZodAny: Lt,
ZodUnknown: mt,
ZodNever: Ye,
ZodVoid: Lr,
ZodArray: Ne,
ZodObject: V,
ZodUnion: Xt,
ZodDiscriminatedUnion: Qr,
ZodIntersection: Qt,
ZodTuple: Ze,
ZodRecord: er,
ZodMap: Fr,
ZodSet: vt,
ZodFunction: Ct,
ZodLazy: tr,
ZodLiteral: rr,
ZodEnum: nt,
ZodNativeEnum: nr,
ZodPromise: Ft,
ZodEffects: Oe,
ZodTransformer: Oe,
ZodOptional: Ue,
ZodNullable: ot,
ZodDefault: or,
ZodCatch: sr,
ZodNaN: Dr,
BRAND: pl,
ZodBranded: Hn,
ZodPipeline: ur,
ZodReadonly: ar,
custom: Ks,
Schema: O,
ZodSchema: O,
late: hl,
get ZodFirstPartyTypeKind() {
return C;
},
coerce: Kl,
any: Sl,
array: Pl,
bigint: yl,
boolean: Xs,
date: _l,
discriminatedUnion: Cl,
effect: xo,
enum: Ul,
function: Ll,
instanceof: ml,
intersection: Rl,
lazy: Fl,
literal: Dl,
map: Ol,
nan: gl,
nativeEnum: jl,
never: El,
null: wl,
nullable: Bl,
number: Js,
object: Al,
oboolean: ql,
onumber: Wl,
optional: zl,
ostring: Hl,
pipeline: Vl,
preprocess: Gl,
promise: Zl,
record: Nl,
set: Ml,
strictObject: Tl,
string: Ys,
symbol: vl,
transformer: xo,
tuple: $l,
undefined: bl,
union: Il,
unknown: xl,
void: kl,
NEVER: Yl,
ZodIssueCode: g,
quotelessJson: Bc,
ZodError: ye
});
const Jl = K.object({
pluginId: K.string(),
name: K.string(),
host: K.string().url(),
code: K.string(),
icon: K.string().optional(),
description: K.string().max(200).optional(),
permissions: K.array(
K.enum([
"content:read",
"content:write",
"library:read",
"library:write",
"user:read",
"comment:read",
"comment:write",
"allow:downloads"
])
)
});
function Qs(t, e) {
return new URL(e, t).toString();
}
function Xl(t) {
return fetch(t).then((e) => e.json()).then((e) => {
if (!Jl.safeParse(e).success)
throw new Error("Invalid plugin manifest");
return e;
}).catch((e) => {
throw console.error(e), e;
});
}
function Eo(t) {
return !t.host && !t.code.startsWith("http") ? Promise.resolve(t.code) : fetch(Qs(t.host, t.code)).then((e) => {
if (e.ok)
return e.text();
throw new Error("Failed to load plugin code");
});
}
const ea = K.object({
width: K.number().positive(),
height: K.number().positive()
}), Ql = K.function().args(
K.string(),
K.string(),
K.enum(["dark", "light"]),
ea.optional(),
K.boolean().optional()
).implement((t, e, r, n, o) => jc(t, e, r, n, o));
async function eu(t, e, r, n) {
let o = await Eo(e), s = !1, i = !1, c = null, l = [];
const u = /* @__PURE__ */ new Set(), d = !!e.permissions.find(
(I) => I === "allow:downloads"
), f = t.addListener("themechange", (I) => {
c == null || c.setTheme(I);
}), h = t.addListener("finish", () => {
A(), t == null || t.removeListener(h);
});
let p = [];
const m = () => {
j(f), p.forEach((I) => {
j(I);
}), l = [], p = [];
}, A = () => {
m(), u.forEach(clearTimeout), u.clear(), c && (c.removeEventListener("close", A), c.remove(), c = null), i = !0, r();
}, S = async () => {
if (!s) {
s = !0;
return;
}
m(), o = await Eo(e), n(o);
}, w = (I, L, Z) => {
const se = t.theme, J = Qs(e.host, L);
(c == null ? void 0 : c.getAttribute("iframe-src")) !== J && (c = Ql(I, J, se, Z, d), c.setTheme(se), c.addEventListener("close", A, {
once: !0
}), c.addEventListener("load", S));
}, R = (I) => {
l.push(I);
}, T = (I, L, Z) => {
const se = t.addListener(
I,
(...J) => {
i || L(...J);
},
Z
);
return p.push(se), se;
}, j = (I) => {
t.removeListener(I);
};
return {
close: A,
destroyListener: j,
openModal: w,
resizeModal: (I, L) => {
ea.parse({ width: I, height: L }), c && c.resize(I, L);
},
getModal: () => c,
registerListener: T,
registerMessageCallback: R,
sendMessage: (I) => {
l.forEach((L) => L(I));
},
get manifest() {
return e;
},
get context() {
return t;
},
get timeouts() {
return u;
},
get code() {
return o;
}
};
}
const tu = [
"finish",
"pagechange",
"filechange",
"selectionchange",
"themechange",
"shapechange",
"contentsave"
];
function ru(t) {
const e = (n) => {
if (!t.manifest.permissions.includes(n))
throw new Error(`Permission ${n} is not granted`);
};
return {
penpot: {
ui: {
open: (n, o, s) => {
t.openModal(n, o, s);
},
get size() {
var n;
return ((n = t.getModal()) == null ? void 0 : n.size()) || null;
},
resize: (n, o) => t.resizeModal(n, o),
sendMessage(n) {
var s;
const o = new CustomEvent("message", {
detail: n
});
(s = t.getModal()) == null || s.dispatchEvent(o);
},
onMessage: (n) => {
K.function().parse(n), t.registerMessageCallback(n);
}
},
utils: {
geometry: {
center(n) {
return window.app.plugins.public_utils.centerShapes(n);
}
},
types: {
isBoard(n) {
return n.type === "board";
},
isGroup(n) {
return n.type === "group";
},
isMask(n) {
return n.type === "group" && n.isMask();
},
isBool(n) {
return n.type === "boolean";
},
isRectangle(n) {
return n.type === "rectangle";
},
isPath(n) {
return n.type === "path";
},
isText(n) {
return n.type === "text";
},
isEllipse(n) {
return n.type === "ellipse";
},
isSVG(n) {
return n.type === "svg-raw";
}
}
},
closePlugin: () => {
t.close();
},
on(n, o, s) {
return K.enum(tu).parse(n), K.function().parse(o), e("content:read"), t.registerListener(n, o, s);
},
off(n) {
t.destroyListener(n);
},
// Penpot State API
get root() {
return e("content:read"), t.context.root;
},
get currentFile() {
return e("content:read"), t.context.currentFile;
},
get currentPage() {
return e("content:read"), t.context.currentPage;
},
get selection() {
return e("content:read"), t.context.selection;
},
set selection(n) {
e("content:read"), t.context.selection = n;
},
get viewport() {
return t.context.viewport;
},
get history() {
return t.context.history;
},
get library() {
return e("library:read"), t.context.library;
},
get fonts() {
return e("content:read"), t.context.fonts;
},
get currentUser() {
return e("user:read"), t.context.currentUser;
},
get activeUsers() {
return e("user:read"), t.context.activeUsers;
},
shapesColors(n) {
return e("content:read"), t.context.shapesColors(n);
},
replaceColor(n, o, s) {
return e("content:write"), t.context.replaceColor(n, o, s);
},
get theme() {
return t.context.theme;
},
createBoard() {
return e("content:write"), t.context.createBoard();
},
createRectangle() {
return e("content:write"), t.context.createRectangle();
},
createEllipse() {
return e("content:write"), t.context.createEllipse();
},
createText(n) {
return e("content:write"), t.context.createText(n);
},
createPath() {
return e("content:write"), t.context.createPath();
},
createBoolean(n, o) {
return e("content:write"), t.context.createBoolean(n, o);
},
createShapeFromSvg(n) {
return e("content:write"), t.context.createShapeFromSvg(n);
},
createShapeFromSvgWithImages(n) {
return e("content:write"), t.context.createShapeFromSvgWithImages(n);
},
group(n) {
return e("content:write"), t.context.group(n);
},
ungroup(n, ...o) {
e("content:write"), t.context.ungroup(n, ...o);
},
uploadMediaUrl(n, o) {
return e("content:write"), t.context.uploadMediaUrl(n, o);
},
uploadMediaData(n, o, s) {
return e("content:write"), t.context.uploadMediaData(n, o, s);
},
generateMarkup(n, o) {
return e("content:read"), t.context.generateMarkup(n, o);
},
generateStyle(n, o) {
return e("content:read"), t.context.generateStyle(n, o);
},
openViewer() {
e("content:read"), t.context.openViewer();
},
createPage() {
return e("content:write"), t.context.createPage();
},
openPage(n) {
e("content:read"), t.context.openPage(n);
},
alignHorizontal(n, o) {
e("content:write"), t.context.alignHorizontal(n, o);
},
alignVertical(n, o) {
e("content:write"), t.context.alignVertical(n, o);
},
distributeHorizontal(n) {
e("content:write"), t.context.distributeHorizontal(n);
},
distributeVertical(n) {
e("content:write"), t.context.distributeVertical(n);
},
flatten(n) {
return e("content:write"), t.context.flatten(n);
}
}
};
}
let ko = !1;
const k = {
hardenIntrinsics: () => {
ko || (ko = !0, hardenIntrinsics());
},
createCompartment: (t) => new Compartment(t),
harden: (t) => harden(t),
safeReturn(t) {
return t == null ? t : harden(t);
}
};
function nu(t) {
k.hardenIntrinsics();
const e = ru(t), r = {
get(c, l, u) {
const d = Reflect.get(c, l, u);
return typeof d == "function" ? function(...f) {
const h = d.apply(c, f);
return k.safeReturn(h);
} : k.safeReturn(d);
}
}, n = new Proxy(e.penpot, r), o = (c, l) => {
const u = {
...l,
credentials: "omit",
headers: {
...l == null ? void 0 : l.headers,
Authorization: ""
}
};
return fetch(c, u).then((d) => {
const f = {
ok: d.ok,
status: d.status,
statusText: d.statusText,
url: d.url,
text: d.text.bind(d),
json: d.json.bind(d)
};
return k.safeReturn(f);
});
}, s = {
penpot: n,
fetch: k.harden(o),
setTimeout: k.harden(
(...[c, l]) => {
const u = setTimeout(() => {
c();
}, l);
return t.timeouts.add(u), k.safeReturn(u);
}
),
clearTimeout: k.harden((c) => {
clearTimeout(c), t.timeouts.delete(c);
}),
/**
* GLOBAL FUNCTIONS ACCESIBLE TO PLUGINS
**/
isFinite: k.harden(isFinite),
isNaN: k.harden(isNaN),
parseFloat: k.harden(parseFloat),
parseInt: k.harden(parseInt),
decodeURI: k.harden(decodeURI),
decodeURIComponent: k.harden(decodeURIComponent),
encodeURI: k.harden(encodeURI),
encodeURIComponent: k.harden(encodeURIComponent),
Object: k.harden(Object),
Boolean: k.harden(Boolean),
Symbol: k.harden(Symbol),
Number: k.harden(Number),
BigInt: k.harden(BigInt),
Math: k.harden(Math),
Date: k.harden(Date),
String: k.harden(String),
RegExp: k.harden(RegExp),
Array: k.harden(Array),
Int8Array: k.harden(Int8Array),
Uint8Array: k.harden(Uint8Array),
Uint8ClampedArray: k.harden(Uint8ClampedArray),
Int16Array: k.harden(Int16Array),
Uint16Array: k.harden(Uint16Array),
Int32Array: k.harden(Int32Array),
Uint32Array: k.harden(Uint32Array),
BigInt64Array: k.harden(BigInt64Array),
BigUint64Array: k.harden(BigUint64Array),
Float32Array: k.harden(Float32Array),
Float64Array: k.harden(Float64Array),
Map: k.harden(Map),
Set: k.harden(Set),
WeakMap: k.harden(WeakMap),
WeakSet: k.harden(WeakSet),
ArrayBuffer: k.harden(ArrayBuffer),
DataView: k.harden(DataView),
Atomics: k.harden(Atomics),
JSON: k.harden(JSON),
Promise: k.harden(Promise),
Proxy: k.harden(Proxy),
Intl: k.harden(Intl),
// Window properties
console: k.harden(window.console),
devicePixelRatio: k.harden(window.devicePixelRatio),
atob: k.harden(window.atob),
btoa: k.harden(window.btoa),
structuredClone: k.harden(window.structuredClone)
}, i = k.createCompartment(s);
return {
evaluate: () => {
i.evaluate(t.code);
},
cleanGlobalThis: () => {
Object.keys(s).forEach((c) => {
delete i.globalThis[c];
});
},
compartment: i
};
}
async function ou(t, e, r) {
const n = async () => {
try {
s.evaluate();
} catch (i) {
console.error(i), o.close();
}
}, o = await eu(
t,
e,
function() {
s.cleanGlobalThis(), r();
},
function() {
n();
}
), s = nu(o);
return n(), {
plugin: o,
manifest: e,
compartment: s
};
}
let gt = [], An = null;
function su(t) {
An = t;
}
const Po = () => {
gt.forEach((t) => {
t.plugin.close();
}), gt = [];
};
window.addEventListener("message", (t) => {
try {
for (const e of gt)
e.plugin.sendMessage(t.data);
} catch (e) {
console.error(e);
}
});
const au = async function(t, e) {
try {
const r = An && An(t.pluginId);
if (!r)
return;
Po();
const n = await ou(
k.harden(r),
t,
() => {
gt = gt.filter((o) => o !== n), e && e();
}
);
gt.push(n);
} catch (r) {
Po(), console.error(r);
}
}, ta = async function(t, e) {
au(t, e);
}, iu = async function(t) {
const e = await Xl(t);
ta(e);
}, cu = function(t) {
const e = gt.find((r) => r.manifest.pluginId === t);
e && e.plugin.close();
};
console.log("%c[PLUGINS] Loading plugin system", "color: #008d7c");
repairIntrinsics({
evalTaming: "unsafeEval",
stackFiltering: "verbose",
errorTaming: "unsafe",
consoleTaming: "unsafe",
errorTrapping: "none",
unhandledRejectionTrapping: "none"
});
const Ao = globalThis;
Ao.initPluginsRuntime = (t) => {
try {
console.log("%c[PLUGINS] Initialize runtime", "color: #008d7c"), su(t), Ao.ɵcontext = t("TEST"), globalThis.ɵloadPlugin = ta, globalThis.ɵloadPluginByUrl = iu, globalThis.ɵunloadPlugin = cu;
} catch (e) {
console.error(e);
}
};
//# sourceMappingURL=index.js.map