From 9b5c187aaca0f4f97b4807d7d56864dae37b7bc0 Mon Sep 17 00:00:00 2001 From: legop3 Date: Mon, 14 Sep 2026 13:27:48 -0400 Subject: [PATCH] cardframing again --- docs/server-admin-container-migration.md | 3 +- server/public/assets/AdminApp-BUJMt-M5.css | 1 - server/public/assets/AdminApp-BdcpFmKl.css | 1 + ...inApp-B89XZuLF.js => AdminApp-TTa85DeJ.js} | 90 +++++++++---------- ...9XZuLF.js.map => AdminApp-TTa85DeJ.js.map} | 2 +- ...0ASy3FH.js => FleetReportsApp-Uxtf9sUZ.js} | 4 +- ...js.map => FleetReportsApp-Uxtf9sUZ.js.map} | 2 +- ...upApp-BTQ-8jXK.js => SetupApp-Ng2sxryp.js} | 4 +- ...Q-8jXK.js.map => SetupApp-Ng2sxryp.js.map} | 2 +- server/public/assets/index-1O6avznD.css | 1 + .../{index-D5baJIet.js => index-CnHL-xtk.js} | 24 ++--- server/public/assets/index-CnHL-xtk.js.map | 1 + server/public/assets/index-D5baJIet.js.map | 1 - server/public/assets/index-DlNVuQB1.css | 1 - server/public/index.html | 4 +- .../components/SchemaConfigurationForm.jsx | 58 ++++++++++-- webui/src/admin/styles.css | 20 +++-- webui/src/components/CardFrame/index.jsx | 20 ++--- 18 files changed, 145 insertions(+), 94 deletions(-) delete mode 100644 server/public/assets/AdminApp-BUJMt-M5.css create mode 100644 server/public/assets/AdminApp-BdcpFmKl.css rename server/public/assets/{AdminApp-B89XZuLF.js => AdminApp-TTa85DeJ.js} (57%) rename server/public/assets/{AdminApp-B89XZuLF.js.map => AdminApp-TTa85DeJ.js.map} (68%) rename server/public/assets/{FleetReportsApp-D0ASy3FH.js => FleetReportsApp-Uxtf9sUZ.js} (99%) rename server/public/assets/{FleetReportsApp-D0ASy3FH.js.map => FleetReportsApp-Uxtf9sUZ.js.map} (99%) rename server/public/assets/{SetupApp-BTQ-8jXK.js => SetupApp-Ng2sxryp.js} (94%) rename server/public/assets/{SetupApp-BTQ-8jXK.js.map => SetupApp-Ng2sxryp.js.map} (99%) create mode 100644 server/public/assets/index-1O6avznD.css rename server/public/assets/{index-D5baJIet.js => index-CnHL-xtk.js} (96%) create mode 100644 server/public/assets/index-CnHL-xtk.js.map delete mode 100644 server/public/assets/index-D5baJIet.js.map delete mode 100644 server/public/assets/index-DlNVuQB1.css diff --git a/docs/server-admin-container-migration.md b/docs/server-admin-container-migration.md index 7eadbd41..c832754a 100644 --- a/docs/server-admin-container-migration.md +++ b/docs/server-admin-container-migration.md @@ -446,7 +446,8 @@ Implemented on 2026-09-14: - Replaced the editor's custom section borders, header backgrounds, and indentation guides with the application's shared `CardFrame` at every object, array, and array-item layer. Scalar settings remain compact key/value rows, descriptions use the wider value column, and collection actions stay beside their content instead of moving to the far edge. - Disabled RJSF's internal checkbox label and description generically, leaving the shared field row as the single owner of each boolean setting's name, required marker, and description. - Restored the former example YAML's installation-specific values as both schema-owned input examples and the actual initial values for non-secret settings and collection shapes. The only intentionally empty defaults are the three credentials and active driver HTML; their placeholders still explain the expected input without falsely marking credentials as configured or publishing sample content. -- Strengthened top-level hierarchy with a 1.5-rem sibling gap, distinct dark-blue top-level `CardFrame` headers, and repeated indentation for each nested card's contents. +- Strengthened top-level hierarchy with a 1.5-rem sibling gap while retaining compact spacing within each configuration section. +- Extended `CardFrame` with an optional explicit accent while preserving its assigned-rover default, then gave every configuration nesting level its own complete header-and-border accent. Nested CardFrames themselves now carry the YAML-like indentation, scalar contents remain aligned with their owning card, and descriptions use a larger, higher-contrast treatment. - Traced all 156 schema nodes to their runtime consumers and added operator-facing descriptions for every root, section, collection, array item, and scalar option. A recursive configuration test now rejects any future schema node without a description; currently reserved settings explicitly state that they have no runtime effect. - Converged feature control into service-owned configuration: each public feature opts in beside its own schema, and the configuration system derives those exact `enabled` switches for sessions and command discovery. The former server feature registry was removed; configuration completeness and hardware availability remain visible as runtime status instead of becoming hidden enablement rules. - Lazy-loaded setup and administration so the schema-form dependency is not included in ordinary driver-page downloads. diff --git a/server/public/assets/AdminApp-BUJMt-M5.css b/server/public/assets/AdminApp-BUJMt-M5.css deleted file mode 100644 index d258d96d..00000000 --- a/server/public/assets/AdminApp-BUJMt-M5.css +++ /dev/null @@ -1 +0,0 @@ -.configuration-tree{margin-top:.25rem}.configuration-tree>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.configuration-card{min-width:0px}.configuration-card-body>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.configuration-card-body{padding:.125rem}.configuration-children{margin-left:.5rem}.configuration-children>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.configuration-line{display:grid;min-width:0px;grid-template-columns:repeat(1,minmax(0,1fr));align-items:flex-start;gap:.125rem;border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity));padding:.125rem}@media(min-width:640px){.configuration-line{grid-template-columns:minmax(9rem,16rem) minmax(12rem,40rem)}}.configuration-line{justify-content:start}.configuration-key,.configuration-value{min-width:0px}.configuration-root-description,.configuration-branch-description,.configuration-item-description,.configuration-value-description{display:block;font-size:.7rem;line-height:1.25;--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity));margin-top:.125rem}.configuration-root-description{margin-bottom:.25rem}.configuration-branch-description,.configuration-item-description{max-width:56rem}.configuration-value-description{margin-bottom:.125rem;max-width:40rem}.configuration-value input:not([type=checkbox]),.configuration-value select,.configuration-value textarea{width:100%;border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(82 82 82 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity));padding:.125rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.configuration-value input:not([type=checkbox])::-moz-placeholder,.configuration-value select::-moz-placeholder,.configuration-value textarea::-moz-placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.configuration-value input:not([type=checkbox])::placeholder,.configuration-value select::placeholder,.configuration-value textarea::placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.configuration-value input:not([type=checkbox]):focus,.configuration-value select:focus,.configuration-value textarea:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgb(14 165 233 / var(--tw-ring-opacity))}.configuration-value input[type=checkbox]{height:1rem;width:1rem;vertical-align:middle;accent-color:#0ea5e9}.configuration-value .checkbox label{display:flex;min-height:1.75rem;align-items:center;--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity))}.configuration-value .error-detail{margin-top:.125rem;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity))}.configuration-value .help-block{margin-top:.125rem;display:block;font-size:.7rem;--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity))}.configuration-secret{min-width:0px}.configuration-item-actions,.configuration-array-actions{display:flex;flex-wrap:wrap;gap:.125rem} diff --git a/server/public/assets/AdminApp-BdcpFmKl.css b/server/public/assets/AdminApp-BdcpFmKl.css new file mode 100644 index 00000000..a752e9d4 --- /dev/null +++ b/server/public/assets/AdminApp-BdcpFmKl.css @@ -0,0 +1 @@ +.configuration-tree{margin-top:.25rem}.configuration-tree>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.configuration-card{min-width:0px}.configuration-card .configuration-card{margin-left:1rem;width:calc(100% - 1rem)}.configuration-card-body>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.configuration-card-body{padding:.125rem}.configuration-children>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.configuration-line{display:grid;min-width:0px;grid-template-columns:repeat(1,minmax(0,1fr));align-items:flex-start;gap:.125rem;border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity));padding:.125rem}@media(min-width:640px){.configuration-line{grid-template-columns:minmax(9rem,16rem) minmax(12rem,40rem)}}.configuration-line{justify-content:start}.configuration-key,.configuration-value{min-width:0px}.configuration-root-description,.configuration-branch-description,.configuration-item-description,.configuration-value-description{display:block;font-size:.875rem;line-height:1.25rem;line-height:1.375;--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity));margin-top:.125rem}.configuration-root-description{margin-bottom:.25rem}.configuration-branch-description,.configuration-item-description{max-width:56rem}.configuration-value-description{margin-bottom:.125rem;max-width:40rem}.configuration-value input:not([type=checkbox]),.configuration-value select,.configuration-value textarea{width:100%;border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(82 82 82 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity));padding:.125rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.configuration-value input:not([type=checkbox])::-moz-placeholder,.configuration-value select::-moz-placeholder,.configuration-value textarea::-moz-placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.configuration-value input:not([type=checkbox])::placeholder,.configuration-value select::placeholder,.configuration-value textarea::placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.configuration-value input:not([type=checkbox]):focus,.configuration-value select:focus,.configuration-value textarea:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgb(14 165 233 / var(--tw-ring-opacity))}.configuration-value input[type=checkbox]{height:1rem;width:1rem;vertical-align:middle;accent-color:#0ea5e9}.configuration-value .checkbox label{display:flex;min-height:1.75rem;align-items:center;--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity))}.configuration-value .error-detail{margin-top:.125rem;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity))}.configuration-value .help-block{margin-top:.125rem;display:block;font-size:.7rem;--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity))}.configuration-secret{min-width:0px}.configuration-item-actions,.configuration-array-actions{display:flex;flex-wrap:wrap;gap:.125rem} diff --git a/server/public/assets/AdminApp-B89XZuLF.js b/server/public/assets/AdminApp-TTa85DeJ.js similarity index 57% rename from server/public/assets/AdminApp-B89XZuLF.js rename to server/public/assets/AdminApp-TTa85DeJ.js index 67872752..f52e30c7 100644 --- a/server/public/assets/AdminApp-B89XZuLF.js +++ b/server/public/assets/AdminApp-TTa85DeJ.js @@ -1,66 +1,66 @@ -import{e as kh,r as Z,j as R,C as ot,T as Ih,f as Nh,h as Kn,k as Rh,l as hi,L as Ol,g as $i,u as jp,a as jl,m as kp,b as Ip,D as Np,c as Rp,S as $p,A as Fp,n as Dp}from"./index-D5baJIet.js";import{c as Tp,d as Mp,u as qp,r as Up,a as Lp,g as Vp,b as zp}from"./api-C0PIt_OP.js";function br(e,t,r={}){return new Promise((n,i)=>{e.emit(t,r,(s={})=>{if(s.error){i(new Error(s.error));return}n(s)})})}function Bp(e){return br(e,"identityAdmin:listUsers")}function kl(e,t){return br(e,"identityAdmin:getUser",{userId:t})}function Hp(e,t,r,n){return br(e,"identityAdmin:addSignal",{userId:t,type:r,value:n})}function Kp(e,t,r,n){return br(e,"identityAdmin:removeSignal",{userId:t,type:r,value:n})}function Gp(e,t,r){return br(e,"identityAdmin:setVerified",{userId:t,enabled:r})}function Wp(e,t,r,n){return br(e,"identityAdmin:setDeterrence",{userId:t,enabled:r,reason:n})}function Jp(e,t,r){return br(e,"identityAdmin:setMuted",{userId:t,enabled:r})}function Yp(e,t,r,n){return br(e,"identityAdmin:setPermission",{userId:t,permissionKey:r,enabled:n})}function Xp(e,t,r,n){return br(e,"identityAdmin:updateFeatureState",{userId:t,namespace:r,value:n})}function Zp(e,t,r){return br(e,"identityAdmin:deleteFeatureState",{userId:t,namespace:r})}const dc={cookieUserId:"Cookie keys",fingerprintId:"Fingerprints",nickname:"Nicknames",knownIp:"Known IPs"},Qp={cookieUserId:"cookieUserIds",fingerprintId:"fingerprintIds",nickname:"nicknames",knownIp:"knownIps"};function Il(e){const t=String(e||"").trim();return t?t.length<=14?t:`${t.slice(0,8)}...${t.slice(-6)}`:"n/a"}function Oa(e){const t=Number(e||0);if(!Number.isFinite(t)||t<=0)return"never";try{return new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(new Date(t))}catch{return new Date(t).toLocaleString()}}function ey(e,t){const r=String(t||"").trim().toLowerCase();return r?[e?.id,e?.nickname,...e?.cookieUserIds||[],...e?.fingerprintIds||[],...e?.nicknames||[],...e?.knownIps||[],...e?.featureNamespaces||[],...(e?.permissions||[]).map(i=>i.key)].join(" ").toLowerCase().includes(r):!0}function ty(e,t){return t==="verified"?!!e?.verified?.enabled:t==="deterred"?!!e?.deterrence?.enabled:t==="muted"?!!e?.deterrence?.muted:t==="unverified"?!e?.verified?.enabled:!0}function fc(e){return JSON.stringify(e??{},null,2)}function ry(e){const t=JSON.parse(String(e||"").trim()||"{}");if(!t||typeof t!="object")throw new Error("JSON must be an object or array.");return t}const ny=[{key:"all",label:"All"},{key:"verified",label:"Verified"},{key:"deterred",label:"Deterred"},{key:"muted",label:"Muted"},{key:"unverified",label:"Unverified"}];function go({active:e,children:t}){return R.jsx("span",{className:`rounded px-1 py-0.25 text-[0.68rem] font-semibold ${e?"bg-emerald-700 text-emerald-50":"bg-neutral-800 text-neutral-300"}`,children:t})}function iy({users:e,selectedUserId:t,query:r,filter:n,loading:i,onQuery:s,onFilter:a,onRefresh:o,onSelect:c}){const l=Z.useMemo(()=>e.filter(m=>ty(m,n)&&ey(m,r)),[n,r,e]),u=R.jsx("button",{type:"button",className:"button-dark text-xs",onClick:o,disabled:i,children:i?"Loading":"Refresh"});return R.jsxs(ot,{title:"Identity database",meta:l.length,actions:u,bodyClassName:"flex min-h-0 flex-col gap-0.5 p-0.5 text-sm",children:[R.jsxs("div",{className:"grid gap-0.5 md:grid-cols-[minmax(0,1fr)_10rem]",children:[R.jsx("input",{className:"field-input text-sm",type:"search",placeholder:"Search users, keys, fingerprints, IPs",value:r,onChange:m=>s(m.target.value)}),R.jsx("select",{className:"field-input text-sm",value:n,onChange:m=>a(m.target.value),children:ny.map(m=>R.jsx("option",{value:m.key,children:m.label},m.key))})]}),R.jsx("div",{className:"min-h-[18rem] flex-1 overflow-y-auto",children:l.length?l.map(m=>R.jsxs("button",{type:"button",className:`surface mb-0.5 grid w-full grid-cols-[minmax(0,1fr)_auto] gap-0.5 px-1 py-0.75 text-left text-xs ${t===m.id?"border border-sky-400/70":""}`,onClick:()=>c(m.id),children:[R.jsxs("span",{className:"min-w-0",children:[R.jsx("span",{className:"block truncate text-sm font-semibold text-slate-100",children:m.nickname||"unknown user"}),R.jsx("span",{className:"block truncate font-mono text-[0.68rem] text-slate-400",children:m.id}),R.jsxs("span",{className:"block truncate text-[0.68rem] text-slate-400",children:[Il(m.cookieUserIds?.[0])," / ",Il(m.fingerprintIds?.[0])]})]}),R.jsxs("span",{className:"flex flex-col items-end gap-0.25",children:[R.jsx(go,{active:m.verified?.enabled,children:"verified"}),R.jsx(go,{active:m.deterrence?.enabled,children:"deterred"}),R.jsx(go,{active:m.deterrence?.muted,children:"muted"})]})]},m.id)):R.jsx("p",{className:"surface p-1 text-center text-xs text-slate-400",children:"No users match this view."})})]})}function sy({user:e}){return R.jsxs(ot,{title:"User details",bodyClassName:"grid gap-0.5 p-0.5 text-sm md:grid-cols-2",children:[R.jsxs("div",{className:"surface px-1 py-0.75",children:[R.jsx("p",{className:"text-xs text-slate-400",children:"Canonical user id"}),R.jsx("p",{className:"break-all font-mono text-xs text-lime-300",children:e.id})]}),R.jsxs("div",{className:"surface px-1 py-0.75",children:[R.jsx("p",{className:"text-xs text-slate-400",children:"Primary nickname"}),R.jsx("p",{className:"font-semibold text-slate-100",children:e.nickname||"unknown user"})]}),R.jsxs("div",{className:"surface px-1 py-0.75",children:[R.jsx("p",{className:"text-xs text-slate-400",children:"Created"}),R.jsx("p",{children:Oa(e.createdAt)})]}),R.jsxs("div",{className:"surface px-1 py-0.75",children:[R.jsx("p",{className:"text-xs text-slate-400",children:"Last seen"}),R.jsx("p",{children:Oa(e.lastSeenAt)})]})]})}function ay({user:e,type:t,onAdd:r,onRemove:n}){const[i,s]=Z.useState(""),a=e?.[Qp[t]]||[],o=async c=>{c.preventDefault();const l=i.trim();l&&(await r(t,l),s(""))};return R.jsxs("div",{className:"surface space-y-0.5 px-1 py-0.75",children:[R.jsx("p",{className:"text-xs font-semibold text-slate-200",children:dc[t]}),R.jsx("div",{className:"space-y-0.5",children:a.length?a.map(c=>R.jsxs("div",{className:"surface-muted grid grid-cols-[minmax(0,1fr)_auto] items-center gap-0.5 px-1 py-0.5",children:[R.jsx("span",{className:"min-w-0 break-all font-mono text-[0.7rem] text-slate-200",children:c}),R.jsx("button",{type:"button",className:"button-dark text-xs",onClick:()=>n(t,c),children:"Remove"})]},c)):R.jsx("p",{className:"text-xs text-slate-500",children:"No values."})}),R.jsxs("form",{className:"grid gap-0.5 md:grid-cols-[minmax(0,1fr)_auto]",onSubmit:o,children:[R.jsx("input",{className:"field-input text-xs",value:i,placeholder:`Add ${dc[t].toLowerCase()}`,onChange:c=>s(c.target.value)}),R.jsx("button",{type:"submit",className:"button-dark text-xs",disabled:!i.trim(),children:"Add"})]})]})}function oy({user:e,onAddSignal:t,onRemoveSignal:r}){return R.jsx(ot,{title:"Identity signals",bodyClassName:"grid gap-0.5 p-0.5 text-sm xl:grid-cols-2",children:Object.keys(dc).map(n=>R.jsx(ay,{user:e,type:n,onAdd:t,onRemove:r},n))})}function cy({user:e,onVerified:t,onDeterrence:r,onMuted:n}){const[i,s]=Z.useState(e?.deterrence?.reason||"");return R.jsxs(ot,{title:"Status",bodyClassName:"grid gap-0.5 p-0.5 text-sm md:grid-cols-2",children:[R.jsxs("div",{className:"surface space-y-0.5 px-1 py-0.75",children:[R.jsx("p",{className:"text-xs text-slate-400",children:"Verification"}),R.jsxs("label",{className:"flex items-center gap-0.5 text-slate-100",children:[R.jsx("input",{type:"checkbox",className:"h-3.5 w-3.5 accent-emerald-500",checked:!!e?.verified?.enabled,onChange:a=>t(a.target.checked)}),R.jsx("span",{children:"Verified"})]}),R.jsxs("p",{className:"text-xs text-slate-500",children:["Updated ",Oa(e?.verified?.at)]})]}),R.jsxs("div",{className:"surface space-y-0.5 px-1 py-0.75",children:[R.jsx("p",{className:"text-xs text-slate-400",children:"Deterrence"}),R.jsxs("label",{className:"flex items-center gap-0.5 text-slate-100",children:[R.jsx("input",{type:"checkbox",className:"h-3.5 w-3.5 accent-red-500",checked:!!e?.deterrence?.enabled,onChange:a=>r(a.target.checked,i)}),R.jsx("span",{children:"Deterred"})]}),R.jsx("textarea",{className:"field-input min-h-[4rem] w-full text-xs",value:i,placeholder:"Deterrence reason",onChange:a=>s(a.target.value)}),R.jsx("button",{type:"button",className:"button-dark text-xs",onClick:()=>r(!!e?.deterrence?.enabled,i),children:"Save Reason"}),R.jsxs("div",{className:"border-t border-slate-700/70 pt-0.5",children:[R.jsxs("label",{className:"flex items-center gap-0.5 text-slate-100",children:[R.jsx("input",{type:"checkbox",className:"h-3.5 w-3.5 accent-amber-500",checked:!!e?.deterrence?.muted,onChange:a=>n(a.target.checked)}),R.jsx("span",{children:"Muted"})]}),R.jsxs("p",{className:"text-xs text-slate-500",children:["Updated ",Oa(e?.deterrence?.mutedAt)]})]})]})]})}function ly({user:e,onSaveFeature:t,onDeleteFeature:r}){const n=Object.keys(e?.features||{}).sort(),i=n[0]||"",[s,a]=Z.useState(i),[o,c]=Z.useState(fc(i?e.features[i]:{})),[l,u]=Z.useState(""),m=async()=>{const v=s.trim();if(!v){u("Namespace required.");return}try{const S=ry(o);await t(v,S),u("")}catch(S){u(S.message||"Invalid JSON.")}},_=async()=>{const v=s.trim();v&&window.confirm(`Delete feature state "${v}" from ${e.id}?`)&&(await r(v),a(""),c("{}"),u(""))};return R.jsxs(ot,{title:"Feature state",bodyClassName:"space-y-0.5 p-0.5 text-sm",children:[R.jsxs("div",{className:"grid gap-0.5 md:grid-cols-[minmax(0,1fr)_auto_auto]",children:[R.jsx("input",{className:"field-input text-sm",value:s,placeholder:"Namespace",list:"identity-feature-namespaces",onChange:v=>{const S=v.target.value;a(S),c(fc(e.features?.[S]||{}))}}),R.jsx("datalist",{id:"identity-feature-namespaces",children:n.map(v=>R.jsx("option",{value:v},v))}),R.jsx("button",{type:"button",className:"button-dark text-xs",onClick:m,children:"Save"}),R.jsx("button",{type:"button",className:"button-dark text-xs",onClick:_,disabled:!s.trim(),children:"Delete"})]}),R.jsx("textarea",{className:"field-input min-h-[18rem] w-full font-mono text-xs",value:o,spellCheck:!1,onChange:v=>c(v.target.value)}),l?R.jsx("p",{className:"surface text-xs text-red-300",children:l}):null]})}function uy({user:e}){return R.jsx(ot,{title:"Raw record",bodyClassName:"p-0.5 text-xs",children:R.jsx("pre",{className:"surface max-h-[36rem] overflow-auto whitespace-pre-wrap break-words font-mono text-[0.7rem] text-lime-300",children:fc(e)})})}function dy({user:e,permissions:t,onPermission:r}){const n=new Set((e?.permissions||[]).map(i=>i.key));return R.jsx(ot,{title:"Permissions",bodyClassName:"grid gap-0.5 p-0.5 text-sm md:grid-cols-2",children:t.map(i=>R.jsxs("label",{className:"surface space-y-0.5 px-1 py-0.75 text-slate-100",children:[R.jsxs("span",{className:"flex items-center gap-0.5 font-semibold",children:[R.jsx("input",{type:"checkbox",className:"h-3.5 w-3.5 accent-emerald-500",checked:n.has(i.key),onChange:s=>r(i.key,s.target.checked)}),i.label]}),R.jsx("span",{className:"block text-xs text-slate-400",children:i.description}),R.jsx("code",{className:"block text-[0.68rem] text-lime-300",children:i.key})]},i.key))})}function fy(){const e=kh(),[t,r]=Z.useState([]),[n,i]=Z.useState([]),[s,a]=Z.useState(null),[o,c]=Z.useState(""),[l,u]=Z.useState("all"),[m,_]=Z.useState(!1),[v,S]=Z.useState(""),E=Z.useCallback(async()=>{_(!0);try{const q=await Bp(e);if(r(q.users||[]),i(q.permissions||[]),s?.id){const U=await kl(e,s.id);a(U.user||null)}S("")}catch(q){S(q.message||"Failed to load users.")}finally{_(!1)}},[s?.id,e]),g=Z.useCallback(async q=>{_(!0);try{const U=await kl(e,q);a(U.user||null),S("")}catch(U){S(U.message||"Failed to load user.")}finally{_(!1)}},[e]),y=Z.useCallback(q=>{a(q||null),q?.id&&r(U=>U.map(L=>L.id===q.id?{...L,...q}:L))},[]),f=Z.useCallback(async(q,U)=>{if(s?.id){_(!0);try{const L=await q(s.id);y(L.user),S(U||"Saved.")}catch(L){S(L.message||"Save failed.")}finally{_(!1)}}},[y,s?.id]);Z.useEffect(()=>{E()},[]);const C=(q,U)=>f(L=>Hp(e,L,q,U),"Signal added."),x=(q,U)=>f(L=>Kp(e,L,q,U),"Signal removed."),h=q=>f(U=>Gp(e,U,q),"Verification updated."),b=(q,U)=>f(L=>Wp(e,L,q,U),"Deterrence updated."),O=q=>f(U=>Jp(e,U,q),"Mute updated."),k=(q,U)=>f(L=>Yp(e,L,q,U),"Permission updated."),$=(q,U)=>f(L=>Xp(e,L,q,U),"Feature state saved."),M=q=>f(U=>Zp(e,U,q),"Feature state deleted.");return R.jsxs("div",{className:"grid min-h-0 flex-1 gap-0.5 lg:grid-cols-[24rem_minmax(0,1fr)]",children:[R.jsx(iy,{users:t,selectedUserId:s?.id||null,query:o,filter:l,loading:m,onQuery:c,onFilter:u,onRefresh:E,onSelect:g}),R.jsxs("div",{className:"min-h-0 space-y-0.5 overflow-y-auto",children:[v?R.jsx(ot,{title:"Status",bodyClassName:"p-0.5 text-sm text-slate-200",children:R.jsx("p",{children:v})}):null,s?R.jsxs(R.Fragment,{children:[R.jsx(sy,{user:s}),R.jsxs(Ih,{defaultTab:"signals",children:[R.jsxs(Nh,{children:[R.jsx(Kn,{id:"signals",children:"Signals"}),R.jsx(Kn,{id:"status",children:"Status"}),R.jsx(Kn,{id:"permissions",children:"Permissions"}),R.jsx(Kn,{id:"features",children:"Feature state"}),R.jsx(Kn,{id:"raw",children:"Raw JSON"})]}),R.jsxs(Rh,{children:[R.jsx(hi,{id:"signals",children:R.jsx(oy,{user:s,onAddSignal:C,onRemoveSignal:x})}),R.jsx(hi,{id:"status",children:R.jsx(cy,{user:s,onVerified:h,onDeterrence:b,onMuted:O},`status-${s.id}`)}),R.jsx(hi,{id:"permissions",children:R.jsx(dy,{user:s,permissions:n,onPermission:k})}),R.jsx(hi,{id:"features",children:R.jsx(ly,{user:s,onSaveFeature:$,onDeleteFeature:M},`features-${s.id}`)}),R.jsx(hi,{id:"raw",children:R.jsx(uy,{user:s})})]})]})]}):R.jsx(ot,{title:"User details",bodyClassName:"p-1 text-center text-sm text-slate-400",children:"Select a user to inspect and edit the identity record."})]})]})}function hy({administrator:e,socket:t,runSensitive:r,onSnapshot:n}){const[i,s]=Z.useState({username:e.username,discordId:e.discordId,role:e.role,password:""}),[a,o]=Z.useState(!1),[c,l]=Z.useState("");Z.useEffect(()=>{s({username:e.username,discordId:e.discordId,role:e.role,password:""})},[e]);async function u(m){o(!0),l("");try{const _=await r(m);n(_.snapshot)}catch(_){l(_.message)}finally{o(!1)}}return R.jsxs("div",{className:"surface space-y-0.5 p-0.5",children:[R.jsxs("div",{className:"grid gap-0.5 md:grid-cols-4",children:[R.jsx("input",{className:"field-input",value:i.username,onChange:m=>s({...i,username:m.target.value})}),R.jsx("input",{className:"field-input",placeholder:"Discord id",value:i.discordId,onChange:m=>s({...i,discordId:m.target.value})}),R.jsxs("select",{className:"field-input",value:i.role,onChange:m=>s({...i,role:m.target.value}),children:[R.jsx("option",{value:"admin",children:"Administrator"}),R.jsx("option",{value:"lockdown",children:"Lockdown administrator"})]}),R.jsx("input",{className:"field-input",type:"password",autoComplete:"new-password",placeholder:"New password (optional)",value:i.password,onChange:m=>s({...i,password:m.target.value})})]}),c?R.jsx("p",{className:"text-xs text-red-300",children:c}):null,R.jsxs("div",{className:"flex justify-end gap-0.5",children:[R.jsx("button",{type:"button",className:"button-danger text-xs",disabled:a,onClick:()=>u(()=>Mp(t,e.id)),children:"Delete"}),R.jsx("button",{type:"button",className:"button-dark text-xs",disabled:a,onClick:()=>u(()=>qp(t,{id:e.id,...i})),children:"Save account"})]})]})}function my({administrators:e,socket:t,runSensitive:r,onSnapshot:n}){const[i,s]=Z.useState({username:"",discordId:"",role:"admin",password:""}),[a,o]=Z.useState(!1),[c,l]=Z.useState("");async function u(m){m.preventDefault(),o(!0),l("");try{const _=await r(()=>Tp(t,i));n(_.snapshot),s({username:"",discordId:"",role:"admin",password:""})}catch(_){l(_.message)}finally{o(!1)}}return R.jsxs(ot,{title:"Administrator accounts",meta:e.length,bodyClassName:"space-y-0.5 p-0.5 text-sm",children:[R.jsxs("form",{className:"surface grid gap-0.5 p-0.5 md:grid-cols-4",onSubmit:u,children:[R.jsx("input",{className:"field-input",placeholder:"Username",value:i.username,onChange:m=>s({...i,username:m.target.value})}),R.jsx("input",{className:"field-input",placeholder:"Discord id (optional)",value:i.discordId,onChange:m=>s({...i,discordId:m.target.value})}),R.jsxs("select",{className:"field-input",value:i.role,onChange:m=>s({...i,role:m.target.value}),children:[R.jsx("option",{value:"admin",children:"Administrator"}),R.jsx("option",{value:"lockdown",children:"Lockdown administrator"})]}),R.jsx("input",{className:"field-input",type:"password",autoComplete:"new-password",placeholder:"Password",value:i.password,onChange:m=>s({...i,password:m.target.value})}),c?R.jsx("p",{className:"text-xs text-red-300 md:col-span-3",children:c}):R.jsx("span",{className:"md:col-span-3"}),R.jsx("button",{className:"button-dark",type:"submit",disabled:a||!i.username||!i.password,children:a?"Creating…":"Create account"})]}),(e||[]).map(m=>R.jsx(hy,{administrator:m,socket:t,runSensitive:r,onSnapshot:n},m.id))]})}function vo(e){return Number.isFinite(Number(e))?new Date(Number(e)).toLocaleString():"unknown"}function py({snapshot:e,socket:t,runSensitive:r,onSnapshot:n}){const i=e.configuration;async function s(a){if(window.confirm(`Restore configuration revision ${a}? This creates a new active revision and requires a restart.`))try{const o=await r(()=>Up(t,{revision:a,expectedRevision:i.revision}));n(o.snapshot)}catch(o){window.alert(o.message)}}return R.jsxs("div",{className:"space-y-0.5",children:[R.jsxs(ot,{title:"Administration overview",meta:`revision ${i.revision}`,bodyClassName:"grid gap-0.5 p-0.5 md:grid-cols-3",children:[R.jsxs("div",{className:"surface p-1",children:[R.jsx("p",{className:"text-xs text-slate-400",children:"Active revision"}),R.jsx("p",{className:"text-xl font-semibold",children:i.revision})]}),R.jsxs("div",{className:"surface p-1",children:[R.jsx("p",{className:"text-xs text-slate-400",children:"Administrators"}),R.jsx("p",{className:"text-xl font-semibold",children:e.administrators.length})]}),R.jsxs("div",{className:"surface p-1",children:[R.jsx("p",{className:"text-xs text-slate-400",children:"Last configuration save"}),R.jsx("p",{className:"text-sm font-semibold",children:vo(i.createdAt)})]})]}),R.jsxs(ot,{title:"Existing administration surfaces",bodyClassName:"flex flex-wrap gap-0.5 p-0.5 text-sm",children:[R.jsx(Ol,{className:"button-dark",to:"/reports",children:"Open fleet reports"}),R.jsx(Ol,{className:"button-dark",to:"/",children:"Open driver application"})]}),R.jsx(ot,{title:"Configuration revisions",meta:e.revisions.length,bodyClassName:"max-h-64 overflow-y-auto p-0.5 text-xs",children:e.revisions.map(a=>R.jsxs("div",{className:"surface mb-0.5 grid items-center gap-0.5 p-0.5 md:grid-cols-[5rem_1fr_1fr_1fr_auto]",children:[R.jsxs("span",{children:["#",a.revision]}),R.jsx("span",{children:vo(a.createdAt)}),R.jsx("span",{children:a.actor}),R.jsx("span",{children:a.source}),R.jsx("button",{type:"button",className:"button-dark text-xs",disabled:a.revision===i.revision,onClick:()=>s(a.revision),children:"Restore"})]},a.revision))}),R.jsx(ot,{title:"Persistent audit history",meta:e.auditEvents.length,bodyClassName:"max-h-96 overflow-y-auto p-0.5 text-xs",children:e.auditEvents.map(a=>R.jsxs("div",{className:"surface mb-0.5 grid gap-0.5 p-0.5 md:grid-cols-[10rem_10rem_1fr]",children:[R.jsx("span",{children:vo(a.createdAt)}),R.jsx("span",{children:a.actor}),R.jsx("span",{children:a.action})]},a.id))})]})}function ue(e){return typeof e!="object"||e===null||"lastModified"in e&&typeof e.lastModified=="number"&&typeof File<"u"&&e instanceof File||"getMonth"in e&&typeof e.getMonth=="function"&&typeof Date<"u"&&e instanceof Date?!1:!Array.isArray(e)}function yy(e){return e.additionalItems===!0&&console.warn("additionalItems=true is currently not supported"),ue(e.additionalItems)}function $h(e){const t=typeof navigator<"u"?navigator.languages:void 0;if(t)try{return new Intl.NumberFormat(t).formatToParts(1.1).find(i=>i.type==="decimal")?.value||"."}catch{}return"."}function Nl(e){if(e==="")return;if(e===null)return null;const t=$h(),r=typeof e=="string"&&t!=="."?e.replace(t,"."):e;if(/\.$/.test(r)||/\.0$/.test(r)||/\.\d*0$/.test(r))return e;const n=Number(r);return typeof n=="number"&&!Number.isNaN(n)?n:e}const Sn=Symbol("__additional_property"),Jn="additionalProperties",yr="allOf",Ne="anyOf",It="const",An="default",Uc="dependencies",gy="enum",vt="__errors",Ue="$id",Lc="if",ni="items",vy="_$junk_option_schema_id$_",va="$name",Se="oneOf",hc="patternProperties",rt="properties",bo="readonly",Fh="required",ja="submitButtonOptions",Je="$ref",ba=Symbol("__rjsf_ref"),Vc=Symbol("__rjsf_ref_cycle"),Ei="$schema",Dh="root",Th="_",by=["discriminator","propertyName"],Rl="formContext",_y="layoutGridLookupMap",Mh="__rjsf",zc=`${Mh}_additionalProperties`,qh=`${Mh}_rootSchema`,Sy="ui:field",Bc="ui:widget",Br="ui:options",mc="ui:globalOptions",wy="ui:definitions",Cy="https://json-schema.org/draft/2019-09/schema",_a="https://json-schema.org/draft/2020-12/schema";function pe(e={},t={}){return e?Object.keys(e).filter(r=>r.startsWith("ui:")).reduce((r,n)=>{const i=e[n];return n===Bc&&ue(i)?(console.error("Setting options via ui:widget object is no longer supported, use ui:options instead"),r):n===Br&&ue(i)?{...r,...i}:{...r,[n.substring(3)]:i}},{...t}):{...t}}function Ey(e,t={},r){if(!(e.additionalProperties||e.patternProperties))return!1;const{expandable:n=!0}=pe(t);return n===!1?n:e.maxProperties!==void 0&&r?Object.keys(r).length({...r,[i]:pc(n)}),t):Or(e)?Object.keys(e).reduce((r,n)=>({...r,[n]:pc(e[n])}),t):t}const{getOwnPropertyNames:$l,getOwnPropertySymbols:Ay}=Object,{hasOwnProperty:Py}=Object.prototype;function mi(e,t){return function(n,i,s){return e(n,i,s)&&t(n,i,s)}}function pi(e){return function(r,n,i){if(!r||!n||typeof r!="object"||typeof n!="object")return e(r,n,i);const{cache:s}=i,a=s.get(r),o=s.get(n);if(a&&o)return a===n&&o===r;s.set(r,n),s.set(n,r);const c=e(r,n,i);return s.delete(r),s.delete(n),c}}function Fl(e){const t=Ay(e);return t.length?$l(e).concat(t):$l(e)}const xy=Object.hasOwn||((e,t)=>Py.call(e,t)),Oy="__v",jy="__o",ky="_owner",Iy=typeof Float16Array<"u",{getOwnPropertyDescriptor:Dl,keys:Tl}=Object,Nn=Object.is||function(t,r){return t===r?t!==0||1/t===1/r:t!==t&&r!==r};function Ny(e,t){return e===t}function Ry(e,t){return e.byteLength===t.byteLength&&ka(new Uint8Array(e),new Uint8Array(t))}function $y(e,t,r){let n=e.length;if(t.length!==n)return!1;for(;n-- >0;)if(!r.equals(e[n],t[n],n,n,e,t,r))return!1;return!0}function Fy(e,t){return e.byteLength===t.byteLength&&ka(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}function Dy(e,t){return Nn(e.getTime(),t.getTime())}function Ml(e,t,r){return e.name===t.name&&e.message===t.message&&e.stack===t.stack&&r.equals(e.cause,t.cause,"cause","cause",e,t,r)}function ql(e,t,r){const n=e.size;if(n!==t.size)return!1;if(!n)return!0;const i=new Uint8Array(n),s=e.entries();let a,o,c=0;for(;(a=s.next())&&!a.done;){const l=t.entries();let u=0,m=0;for(;(o=l.next())&&!o.done;){if(i[m]){m++;continue}const _=a.value,v=o.value;if(r.equals(_[0],v[0],c,m,e,t,r)&&r.equals(_[1],v[1],_[0],v[0],e,t,r)){u=i[m]=1;break}m++}if(!u)return!1;c++}return!0}function Ul(e,t,r){const n=Tl(e);let i=n.length;if(Tl(t).length!==i)return!1;for(;i-- >0;)if(!Uh(e,t,r,n[i]))return!1;return!0}function qn(e,t,r){const n=Fl(e);let i=n.length;if(Fl(t).length!==i)return!1;let s,a,o;for(;i-- >0;)if(s=n[i],!Uh(e,t,r,s)||(a=Dl(e,s),o=Dl(t,s),(a||o)&&(!a||!o||a.configurable!==o.configurable||a.enumerable!==o.enumerable||a.writable!==o.writable)))return!1;return!0}function Ty(e,t){return Nn(e.valueOf(),t.valueOf())}function My(e,t){return e.source===t.source&&e.flags===t.flags}function Ll(e,t,r){const n=e.size;if(n!==t.size)return!1;if(!n)return!0;const i=new Uint8Array(n),s=e.values();let a,o;for(;(a=s.next())&&!a.done;){const c=t.values();let l=0,u=0;for(;(o=c.next())&&!o.done;){if(!i[u]&&r.equals(a.value,o.value,a.value,o.value,e,t,r)){l=i[u]=1;break}u++}if(!l)return!1}return!0}function ka(e,t){let r=e.length;if(t.length!==r||e.byteOffset!==t.byteOffset)return!1;if(e instanceof Float64Array||e instanceof Float32Array||Iy&&e instanceof Float16Array){for(;r-- >0;)if(e[r]!==t[r]&&(e[r]===e[r]||t[r]===t[r]))return!1;return!0}for(;r-- >0;)if(e[r]!==t[r])return!1;return!0}function qy(e,t){return e.href===t.href?!0:e.protocol===t.protocol&&e.username===t.username&&e.password===t.password&&e.host===t.host&&e.pathname===t.pathname&&e.hash===t.hash&&Uy(e.searchParams,t.searchParams)}function Uy(e,t){const r=e.toString(),n=t.toString();return r===n||Vl(r)===Vl(n)}function Vl(e){return e.split("&").sort().join("&")}function Uh(e,t,r,n){return(n===ky||n===jy||n===Oy)&&(e.$$typeof||t.$$typeof)?!0:xy(t,n)&&r.equals(e[n],t[n],n,n,e,t,r)}const Ly=Object.prototype.toString;function Vy(e){const t=Ky(e),{areArraysEqual:r,areDatesEqual:n,areFunctionsEqual:i,areMapsEqual:s,areNumbersEqual:a,areObjectsEqual:o,areRegExpsEqual:c,areSetsEqual:l,getUnsupportedCustomComparator:u}=e;return function(_,v,S){if(_===v)return!0;if(_==null||v==null)return!1;const E=typeof _;if(E!==typeof v)return!1;if(E!=="object")return E==="number"||E==="bigint"?a(_,v,S):E==="function"?i(_,v,S):!1;const g=_.constructor;if(g!==v.constructor)return!1;if(g===Object)return o(_,v,S);if(g===Array)return r(_,v,S);if(g===Date)return n(_,v,S);if(g===RegExp)return c(_,v,S);if(g===Map)return s(_,v,S);if(g===Set)return l(_,v,S);if(g===Promise)return!1;if(Array.isArray(_))return r(_,v,S);const y=Ly.call(_),f=t[y];if(f)return f(_,v,S);const C=u&&u(_,v,S,y);return C?C(_,v,S):!1}}function zy({circular:e,createCustomConfig:t,strict:r}){let n={areArrayBuffersEqual:Ry,areArraysEqual:r?qn:$y,areDataViewsEqual:Fy,areDatesEqual:Dy,areErrorsEqual:r?mi(Ml,qn):mi(Ml,Ul),areFunctionsEqual:Ny,areMapsEqual:r?mi(ql,qn):ql,areNumbersEqual:Nn,areObjectsEqual:r?qn:Ul,arePrimitiveWrappersEqual:Ty,areRegExpsEqual:My,areSetsEqual:r?mi(Ll,qn):Ll,areTypedArraysEqual:r?mi(ka,qn):ka,areUrlsEqual:qy,getUnsupportedCustomComparator:void 0};if(t&&(n=Object.assign({},n,t(n))),e){const i=pi(n.areArraysEqual),s=pi(n.areErrorsEqual),a=pi(n.areMapsEqual),o=pi(n.areObjectsEqual),c=pi(n.areSetsEqual);n=Object.assign({},n,{areArraysEqual:i,areErrorsEqual:s,areMapsEqual:a,areObjectsEqual:o,areSetsEqual:c})}return n}function By(e){return function(t,r,n,i,s,a,o){return e(t,r,o)}}function Hy({circular:e,comparator:t,createState:r,equals:n,strict:i}){if(r)return function(o,c){const{cache:l=e?new WeakMap:void 0,meta:u}=r();return t(o,c,{cache:l,equals:n,meta:u,strict:i})};if(e)return function(o,c){return t(o,c,{cache:new WeakMap,equals:n,meta:void 0,strict:i})};const s={cache:void 0,equals:n,meta:void 0,strict:i};return function(o,c){return t(o,c,s)}}function Ky({areArrayBuffersEqual:e,areArraysEqual:t,areDataViewsEqual:r,areDatesEqual:n,areErrorsEqual:i,areFunctionsEqual:s,areMapsEqual:a,areObjectsEqual:o,arePrimitiveWrappersEqual:c,areRegExpsEqual:l,areSetsEqual:u,areTypedArraysEqual:m,areUrlsEqual:_}){return{"[object Arguments]":o,"[object Array]":t,"[object ArrayBuffer]":e,"[object AsyncGeneratorFunction]":s,"[object BigInt]":c,"[object BigInt64Array]":m,"[object BigUint64Array]":m,"[object Boolean]":c,"[object DataView]":r,"[object Date]":n,"[object Error]":i,"[object Float16Array]":m,"[object Float32Array]":m,"[object Float64Array]":m,"[object Function]":s,"[object GeneratorFunction]":s,"[object Int8Array]":m,"[object Int16Array]":m,"[object Int32Array]":m,"[object Map]":a,"[object Number]":c,"[object Object]":(v,S,E)=>typeof v.then!="function"&&typeof S.then!="function"&&o(v,S,E),"[object RegExp]":l,"[object Set]":u,"[object String]":c,"[object URL]":_,"[object Uint8Array]":m,"[object Uint8ClampedArray]":m,"[object Uint16Array]":m,"[object Uint32Array]":m}}kr();kr({strict:!0});kr({circular:!0});kr({circular:!0,strict:!0});kr({createInternalComparator:()=>Nn});kr({strict:!0,createInternalComparator:()=>Nn});kr({circular:!0,createInternalComparator:()=>Nn});kr({circular:!0,createInternalComparator:()=>Nn,strict:!0});function kr(e={}){const{circular:t=!1,createInternalComparator:r,createState:n,strict:i=!1}=e,s=zy(e),a=Vy(s),o=r?r(a):By(a);return Hy({circular:t,comparator:a,createState:n,equals:o,strict:i})}const je=kr({circular:!0,createCustomConfig:()=>({areFunctionsEqual(e,t){return typeof t=="function"}})});var yi={exports:{}},_o,zl;function Lh(){if(zl)return _o;zl=1;const e=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),t=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u),r=RegExp.prototype.test.bind(/^\d*$/u),n=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),i=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),s=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/]$/u),a=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/?]$/u),o=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:]$/u);function c(p){let d="",P=0,I=0;for(I=0;I=48&&P<=57||P>=65&&P<=70||P>=97&&P<=102))return"";d+=p[I];break}for(I+=1;I=48&&P<=57||P>=65&&P<=70||P>=97&&P<=102))return"";d+=p[I]}return d}const l=RegExp.prototype.test.bind(/^[\dA-Fa-f]{1,4}$/),u=RegExp.prototype.test.bind(/^[vV][\dA-Fa-f]+\.[A-Za-z\d\-._~!$&'()*+,;=:]+$/),m=RegExp.prototype.test.bind(/^[A-Za-z\d\-._~]$/),_=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u),v=RegExp.prototype.test.bind(/[^\d!"$&'()*+,\-.;=_`a-z{}~]/u),S=RegExp.prototype.test.bind(/(?:^|\.)\d+$/u);function E(p){return v(p)||S(p)}function g(p){if(p.length===0)return!1;for(let d=0;dP&&(P=T,d=I)):(I=-1,T=0);if(P<2)return p.join(":");const F=p.slice(0,d).join(":"),z=p.slice(d+P).join(":");return F+"::"+z}function f(p){const d=p.indexOf("::");if(d!==-1&&p.indexOf("::",d+1)!==-1)return;const P=d===-1?p.split(":"):p.slice(0,d).split(":"),I=d===-1?[]:p.slice(d+2).split(":");d!==-1&&(P.length===1&&P[0]===""&&(P.length=0),I.length===1&&I[0]===""&&(I.length=0));const T=P.concat(I);let F=0;for(let H=0;H=8)return;const z=T.slice(0,P.length);for(let H=F;H<8;H++)z.push("0");for(let H=P.length;Hb[I])}function M(p,d=!1){if(p.indexOf("%")===-1)return p;let P="";for(let I=0;I>4]+p[d&15]}function U(p){return p>=48&&p<=57||p>=65&&p<=90||p>=97&&p<=122||p===42||p===43||p===45||p===46||p===47||p===64||p===95}function L(p){return p<2048?q[192|p>>6]+q[128|p&63]:p<65536?q[224|p>>12]+q[128|p>>6&63]+q[128|p&63]:q[240|p>>18]+q[128|p>>12&63]+q[128|p>>6&63]+q[128|p&63]}function B(p){let d="";for(let P=0;P57343)d+=L(T);else if(T<=56319&&P+1=56320&&F<=57343?(d+=L(65536+(T-55296<<10)+(F-56320)),P++):d+=L(65533)}else d+=L(65533)}}return d}function J(p,d=!1){let P="",I=d&&p[0]!=="/";for(let T=0;T57343)P+=L(z);else if(z<=56319&&T+1=56320&&H<=57343?(P+=L(65536+(z-55296<<10)+(H-56320)),T++):P+=L(65533)}else P+=L(65533)}}return P}function Y(p){let d="";for(let P=0;P57343)d+=L(T);else if(T<=56319&&P+1=56320&&F<=57343?(d+=L(65536+(T-55296<<10)+(F-56320)),P++):d+=L(65533)}else d+=L(65533)}}return d}function Q(p,d){let P="";for(let I=0;I57343)P+=L(F);else if(F<=56319&&I+1=56320&&z<=57343?(P+=L(65536+(F-55296<<10)+(z-56320)),I++):P+=L(65533)}else P+=L(65533)}}return P}function X(p){return Q(p,o)}function re(p){return Q(p,a)}function A(p){return Q(p,a)}function w(p){let d="";for(let P=0;P57343)d+=L(T);else if(T<=56319&&P+1=56320&&F<=57343?(d+=L(65536+(T-55296<<10)+(F-56320)),P++):d+=L(65533)}else d+=L(65533)}return d}function j(p){const d=[];if(p.userinfo!==void 0&&(d.push(X(p.userinfo)),d.push("@")),p.host!==void 0){let P=p.host;if(!t(P)){let I=C(P);I.isIPV6!==!0&&I.isIPVFuture!==!0&&(P=M(P,!0),I=C(P)),I.isIPV6===!0||I.isIPVFuture===!0?P=`[${I.escapedHost}]`:P=$(P,!1)}d.push(P)}if(typeof p.port=="number"||typeof p.port=="string"){const P=String(p.port);if(!r(P))throw new TypeError("URI port is malformed.");d.push(":"),d.push(P)}return d.length?d.join(""):void 0}return _o={BYTE_HEX:q,percentEncodeNonAscii:L,nonSimpleDomain:_,nonSimpleMailtoDomain:E,recomposeAuthority:j,reescapeHostDelimiters:$,normalizePercentEncoding:M,normalizePathEncoding:B,serializePathEncoding:J,normalizeQueryFragmentEncoding:Y,encodeUserinfo:X,encodeQuery:re,encodeFragment:A,escapePreservingEscapes:w,removeDotSegments:h,isIPv4:t,isUUID:e,normalizeIPv6:C,stringArrayToHexStripped:c},_o}var So,Bl;function Gy(){if(Bl)return So;Bl=1;const{isUUID:e,BYTE_HEX:t,percentEncodeNonAscii:r,nonSimpleMailtoDomain:n}=Lh(),i=/^([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-./:;=@]|%[\da-f]{2})+)$/iu,s=["http","https","ws","wss","urn","urn:uuid","mailto"];function a(F){return s.indexOf(F)!==-1}function o(F){return F.secure===!0?!0:F.secure===!1?!1:F.scheme?F.scheme.length===3&&(F.scheme[0]==="w"||F.scheme[0]==="W")&&(F.scheme[1]==="s"||F.scheme[1]==="S")&&(F.scheme[2]==="s"||F.scheme[2]==="S"):!1}function c(F){return F.host||(F.error=F.error||"HTTP URIs must have a host."),F}function l(F){const z=String(F.scheme).toLowerCase()==="https";return(F.port===(z?443:80)||F.port==="")&&(F.port=void 0),F.path||(F.path="/"),F}function u(F){return F.secure=o(F),F.resourceName=(F.path||"/")+(F.query?"?"+F.query:""),F.path=void 0,F.query=void 0,F}function m(F){if((F.port===(o(F)?443:80)||F.port==="")&&(F.port=void 0),typeof F.secure=="boolean"&&(F.scheme=F.secure?"wss":"ws",F.secure=void 0),F.resourceName){const z=F.resourceName.indexOf("?"),H=z===-1?F.resourceName:F.resourceName.slice(0,z);F.path=H&&H!=="/"?H:void 0,F.query=z===-1?void 0:F.resourceName.slice(z+1),F.resourceName=void 0}return F.fragment=void 0,F}function _(F,z){if(!F.path)return F.error="URN can not be parsed",F;const H=F.path.match(i);if(H&&H[0]===F.path){const N=z.scheme||F.scheme||"urn";F.nid=H[1].toLowerCase(),F.nss=H[2];const D=`${N}:${z.nid||F.nid}`,V=T(D);F.path=void 0,V&&(F=V.parse(F,z))}else F.error=F.error||"URN can not be parsed.";return F}function v(F,z){if(F.nid===void 0)throw new Error("URN without nid cannot be serialized");const H=z.scheme||F.scheme||"urn",N=F.nid.toLowerCase(),D=`${H}:${z.nid||N}`,V=T(D);V&&(F=V.serialize(F,z));const K=F,G=F.nss;return K.path=`${N||z.nid}:${G}`,z.skipEscape=!0,K}function S(F,z){const H=F;return H.uuid=H.nss,H.nss=void 0,!z.tolerant&&(!H.uuid||!e(H.uuid))&&(H.error=H.error||"UUID is not valid."),H}function E(F){const z=F;return z.nss=(F.uuid||"").toLowerCase(),z}const g={scheme:"http",domainHost:!0,parse:c,serialize:l},y={scheme:"https",domainHost:g.domainHost,parse:c,serialize:l},f={scheme:"ws",domainHost:!0,parse:u,serialize:m},C={scheme:"wss",domainHost:f.domainHost,parse:f.parse,serialize:f.serialize},x={scheme:"urn",parse:_,serialize:v,skipNormalize:!0},h={scheme:"urn:uuid",parse:S,serialize:E,skipNormalize:!0},b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$'()*+=",O="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$'()*+,;:@",k="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$'()*+;:";function $(F,z=!1){const H=new Uint8Array(128);for(let V=0;V=55296&&N<=56319&&H+1=56320&&D<=57343){z+=F[H]+F[H+1],H++;continue}}z+=N>=55296&&N<=57343?"�":F[H]}return z}function A(F,z){if(z.all.test(F))return F;const H=z.table;let N="";for(let D=0;D57343){N+=z.allowNonAscii?F[D]:r(V);continue}if(V<=56319&&D+1=56320&&K<=57343){N+=z.allowNonAscii?F[D]+F[D+1]:r(65536+(V-55296<<10)+(K-56320)),D++;continue}}N+=z.allowNonAscii?"�":r(65533)}return N}function w(F,z,H){const N=String(F).toLowerCase();if(J.test(N)||N!==""&&!n(N))return N;try{const D=new URL("http://"+N);if(D.username||D.password||D.port||D.pathname!=="/"||D.search||D.hash||!D.hostname)throw new Error(Y);return z&&z.unicodeSupport?N:D.hostname}catch{return H&&(H.error=H.error||Y),N}}function j(F,z){const H=z&&z.unicodeSupport?L:U;return F.length>1&&F[0]==="["&&F[F.length-1]==="]"?"["+A(F.slice(1,-1),H)+"]":A(F,H)}function p(F,z){const H=F;let N=H.path,D=H.query;N&&Q.test(N)&&(N=re(N)),D&&Q.test(D)&&(D=re(D));const V=N?N.indexOf(",")===-1?[N]:N.split(","):[];if(H.path=void 0,D){let K=null,G=0;for(;G<=D.length;){let W=D.indexOf("&",G);W===-1&&(W=D.length);const te=D.slice(G,W);G=W+1;const ne=te.indexOf("=");if(ne!==te.lastIndexOf("=")){H.error=H.error||"URI mailto has malformed header fields.";continue}const se=ne===-1?te:te.slice(0,ne),ce=ne===-1?"":te.slice(ne+1);if(se==="to"){const he=ce.split(",");for(let le=0;le=0?W.slice(0,te):W,se=te>=0?W.slice(te+1):"",ce=A(ne,M),he=X(se),le=w(he,z);N[G]=ce+"@"+j(le,z)}H.path=N.join(","),z.skipEscape=!0}else H.path=void 0;const D=H.headers&&typeof H.headers=="object"?Object.assign(Object.create(null),H.headers):Object.create(null);H.subject&&(D.subject=H.subject),H.body&&(D.body=H.body),H.headers=D;let V="",K=0;for(const G in D)K++!==0&&(V+="&"),V+=A(G,q)+"="+A(String(D[G]),q);return K!==0?H.query=V:H.headers=void 0,H}const I={http:g,https:y,ws:f,wss:C,urn:x,"urn:uuid":h,mailto:{scheme:"mailto",parse:p,serialize:d,domainHost:!1,unicodeSupport:!0,skipNormalize:!0,absolutePath:!0}};Object.setPrototypeOf(I,null);function T(F){return F&&(I[F]||I[F.toLowerCase()])||void 0}return So={wsIsSecure:o,SCHEMES:I,isValidSchemeName:a,getSchemeHandler:T},So}var Hl;function Wy(){if(Hl)return yi.exports;Hl=1;const{normalizeIPv6:e,removeDotSegments:t,recomposeAuthority:r,normalizePercentEncoding:n,normalizePathEncoding:i,serializePathEncoding:s,normalizeQueryFragmentEncoding:a,encodeQuery:o,encodeFragment:c,reescapeHostDelimiters:l,isIPv4:u,nonSimpleDomain:m}=Lh(),{SCHEMES:_,getSchemeHandler:v}=Gy(),S=/^[A-Za-z][A-Za-z0-9+.-]*$/u,E="URI scheme is malformed.";function g(A){const w=unescape(String(A));if(!S.test(w))throw new TypeError(E);return w}function y(A,w){return typeof A=="string"?A=Y(A,w):typeof A=="object"&&(A=J(h(A,w),w)),A}function f(A,w,j){const p=j?Object.assign({scheme:"null"},j):{scheme:"null"},{parsed:d,malformedAuthorityOrPort:P,malformedPercentEncoding:I,malformedSchemeSpecific:T,malformedHost:F,malformedScheme:z}=B(A,p),{parsed:H,malformedAuthorityOrPort:N,malformedPercentEncoding:D,malformedSchemeSpecific:V,malformedHost:K,malformedScheme:G}=B(w,p);if(P||N||I||D||T||V||F||K||z||G)throw new Error(d.error||H.error||"URI is malformed.");const W=C(d,H,p,!0),te=v(j&&j.scheme||W.scheme),ne=W.host,se=ne!==void 0&&ne!==""&&(u(ne)||e(ne).isIPV6);L(W,j||{},te,se);const ce=ne&&ne.indexOf("%")!==-1&&!new RegExp("\\P{ASCII}","u").test(ne);if(W.error&&!ce)throw new Error(W.error);return p.skipEscape=!0,h(W,p)}function C(A,w,j,p){const d={};return p||(A=J(h(A,j),j),w=J(h(w,j),j)),j=j||{},!j.tolerant&&w.scheme?(d.scheme=w.scheme,d.userinfo=w.userinfo,d.host=w.host,d.port=w.port,d.path=t(w.path||""),d.query=w.query):(w.userinfo!==void 0||w.host!==void 0||w.port!==void 0?(d.userinfo=w.userinfo,d.host=w.host,d.port=w.port,d.path=t(w.path||""),d.query=w.query):(w.path?(w.path[0]==="/"?d.path=t(w.path):((A.userinfo!==void 0||A.host!==void 0||A.port!==void 0)&&!A.path?d.path="/"+w.path:A.path?d.path=A.path.slice(0,A.path.lastIndexOf("/")+1)+w.path:d.path=w.path,d.path=t(d.path)),d.query=w.query):(d.path=A.path,w.query!==void 0?d.query=w.query:d.query=A.query),d.userinfo=A.userinfo,d.host=A.host,d.port=A.port),d.scheme=A.scheme),d.fragment=w.fragment,d}function x(A,w,j){const p=X(A,j),d=X(w,j);return p!==void 0&&d!==void 0&&p===d}function h(A,w){const j={host:A.host,scheme:A.scheme,userinfo:A.userinfo,port:A.port,path:A.path,query:A.query,nid:A.nid,nss:A.nss,uuid:A.uuid,fragment:A.fragment,reference:A.reference,resourceName:A.resourceName,secure:A.secure,to:A.to,subject:A.subject,body:A.body,headers:A.headers,error:""},p=Object.assign({},w),d=[];j.scheme&&(j.scheme=g(j.scheme));const P=v(p.scheme||j.scheme);P&&P.serialize&&P.serialize(j,p);const I=j.userinfo!==void 0||j.host!==void 0||j.port!==void 0,T=!p.skipEscape&&j.scheme===void 0&&!I;j.path!==void 0&&(p.skipEscape?j.path=n(j.path):j.path=s(j.path,T)),p.reference!=="suffix"&&j.scheme&&(j.scheme=g(j.scheme),d.push(j.scheme,":"));const F=r(j);if(F!==void 0&&(p.reference!=="suffix"&&d.push("//"),d.push(F),j.path&&j.path[0]!=="/"&&d.push("/")),j.path!==void 0){let z=j.path;!p.absolutePath&&(!P||!P.absolutePath)&&(z=t(z)),T&&(z=s(z,!0)),F===void 0&&z[0]==="/"&&z[1]==="/"&&(z="/%2F"+z.slice(2)),d.push(z)}return j.query!==void 0&&d.push("?",o(j.query)),j.fragment!==void 0&&d.push("#",c(j.fragment)),d.join("")}const b=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,O=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,k=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function $(A,w){if(w[2]!==void 0&&A.path&&A.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof A.port=="number"&&(A.port<0||A.port>65535))return"URI port is malformed."}function M(A){if(A===void 0)return!1;let w=A.indexOf("%");for(;w!==-1;){if(w+2>=A.length||!/^[\da-f]{2}$/iu.test(A.slice(w+1,w+3)))return!0;w=A.indexOf("%",w+3)}return!1}function q(A){return A[0]==="["&&A[A.length-1]==="]"}function U(A){const w=A[4];return M(A[3])||w!==void 0&&!q(w)&&M(w)||M(A[6])||M(A[7])||M(A[8])}function L(A,w,j,p){const d=A.host&&A.host[0]==="["&&A.host[A.host.length-1]==="]";if(!w.unicodeSupport&&(!j||!j.unicodeSupport)&&A.host&&!q(A.host)&&(w.domainHost||j&&j.domainHost)&&p===!1&&!d&&m(A.host))try{A.host=new URL("http://"+A.host).hostname}catch(P){return A.error=A.error||"Host's domain name can not be converted to ASCII: "+P,!0}return!1}function B(A,w){const j=Object.assign({},w),p={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0};let d=!1,P=!1,I=!1,T=!1,F=!1,z=!1,H=!1;j.reference==="suffix"&&(j.scheme?A=j.scheme+":"+A:A="//"+A);const N=A.match(O);N!==null&&N[1].indexOf("\\")!==-1&&(p.error="URI authority must not contain a literal backslash.",d=!0);const D=A.match(k);if(D!==null){const K=D[1],G=K.replace(/[\t\n\r]/g,"");G.length>=2&&(G.slice(0,2)!=="//"?(p.error=p.error||"URI authority must not contain a literal backslash.",d=!0):K.length!==G.length&&(p.error=p.error||"URI authority introducer must not contain whitespace.",d=!0))}const V=A.match(b);if(V){if(p.scheme=V[1],p.userinfo=V[3],p.host=V[4],p.port=parseInt(V[5],10),p.path=V[6]||"",p.query=V[7],p.fragment=V[8],p.scheme!==void 0){const W=unescape(p.scheme);S.test(W)?p.scheme=W.toLowerCase():(p.error=p.error||E,z=!0)}P=U(V),P&&(p.error=p.error||"URI contains malformed percent-encoding."),isNaN(p.port)&&(p.port=V[5]);const K=$(p,V);if(K!==void 0&&(p.error=p.error||K,d=!0),p.host)if(u(p.host)===!1){const te=q(p.host),ne=p.host.indexOf("[")!==-1||p.host.indexOf("]")!==-1,se=e(p.host);H=se.isIPV6||se.isIPVFuture===!0,F=ne&&(!te||se.error===!0),p.host=H?se.host:se.host.toLowerCase(),F&&(p.error=p.error||"URI host is malformed.",d=!0)}else H=!0;p.scheme===void 0&&p.userinfo===void 0&&p.host===void 0&&p.port===void 0&&p.query===void 0&&!p.path?p.reference="same-document":p.scheme===void 0?p.reference="relative":p.fragment===void 0?p.reference="absolute":p.reference="uri",j.reference&&j.reference!=="suffix"&&j.reference!==p.reference&&(p.error=p.error||"URI is not a "+j.reference+" reference.");const G=v(j.scheme||p.scheme);if(F||(T=L(p,j,G,H)),!G||G&&!G.skipNormalize){if(A.indexOf("%")!==-1&&p.host!==void 0&&!F){const W=H?p.host:n(p.host,!0);p.host=l(W,H)}p.path&&(p.path=i(p.path)),p.query&&(p.query=a(p.query)),p.fragment&&(p.fragment=a(p.fragment))}G&&G.parse&&(G.parse(p,j),G===_.urn&&p.nid===void 0&&(I=!0))}else p.error=p.error||"URI can not be parsed.";return{parsed:p,malformedAuthorityOrPort:d,malformedPercentEncoding:P,malformedSchemeSpecific:I,malformedHost:T,malformedScheme:z}}function J(A,w){return B(A,w).parsed}function Y(A,w){return Q(A,w).normalized}function Q(A,w){const{parsed:j,malformedAuthorityOrPort:p,malformedPercentEncoding:d,malformedSchemeSpecific:P,malformedHost:I,malformedScheme:T}=B(A,w);return{normalized:p||d||P||I||T?A:h(j,w),malformedAuthorityOrPort:p,malformedPercentEncoding:d,malformedSchemeSpecific:P,malformedHost:I,malformedScheme:T}}function X(A,w){if(typeof A!="string"&&typeof A!="object")return;let j;try{j=typeof A=="string"?A:h(A,w)}catch{return}const{normalized:p,malformedAuthorityOrPort:d,malformedPercentEncoding:P,malformedSchemeSpecific:I,malformedHost:T,malformedScheme:F}=Q(j,w);return d||P||I||T||F?void 0:p}const re={SCHEMES:_,normalize:y,resolve:f,resolveComponent:C,equal:x,serialize:h,parse:J};return yi.exports=re,yi.exports.default=re,yi.exports.fastUri=re,yi.exports}var Jy=Wy();const Hc=$i(Jy);var gi={},Kl;function Yy(){if(Kl)return gi;Kl=1;var e=/~/,t=/~[01]/g;function r(l){switch(l){case"~1":return"/";case"~0":return"~"}throw new Error("Invalid tilde escape: "+l)}function n(l){return e.test(l)?l.replace(t,r):l}function i(l,u,m){for(var _,v,S=1,E=u.length;SS,typeof l[_]>"u"&&(Array.isArray(l)&&_==="-"&&(_=l.length),v&&(u[S]!==""&&u[S]<1/0||u[S]==="-"?l[_]=[]:l[_]={})),!v)break;l=l[_]}var g=l[_];return m===void 0?delete l[_]:l[_]=m,g}function s(l){if(typeof l=="string"){if(l=l.split("/"),l[0]==="")return l;throw new Error("Invalid JSON pointer.")}else if(Array.isArray(l)){for(const u of l)if(typeof u!="string"&&typeof u!="number")throw new Error("Invalid JSON pointer. Must be of type string or number.");return l}throw new Error("Invalid JSON pointer.")}function a(l,u){if(typeof l!="object")throw new Error("Invalid input object.");u=s(u);var m=u.length;if(m===1)return l;for(var _=1;_ue(a)?yc(a,r):a)}:ue(s)&&(n={...n,[i]:yc(s,r)});return n}function Kc(e,t){const{[e]:r,...n}=t;return[n,r]}function Vh(e,t={},r=[],n=t[Ue]){const i=e||"";let s,a=n;if(i.startsWith("#")){const c=decodeURIComponent(i.substring(1));a===void 0||Ue in t&&t[Ue]===a?s=wo.get(t,c):t[Ei]===_a&&(s=Ia(t,a.replace(/\/$/,"")),s!==void 0&&(s=wo.get(s,c)))}else if(t[Ei]===_a){const c=a?Hc.resolve(a,i):i,[l,...u]=c.replace(/#\/?$/,"").split("#");s=Ia(t,l.replace(/\/$/,"")),s!==void 0&&(a=s[Ue],u.length>0&&(s=wo.get(s,decodeURIComponent(u.join("#")))))}if(s===void 0)throw new Error(`Could not find a definition for ${e}.`);const o=s[Je];if(o){if(r.includes(o)){if(r.length===1)throw new Error(`Definition for ${e} is a circular reference`);const[m,..._]=r,v=[..._,i,m].join(" -> ");throw new Error(`Definition for ${m} contains a circular reference through ${v}`)}const[c,l]=Kc(Je,s),u=Vh(l,t,[...r,i],a);return Object.keys(c).length>0?t[Ei]===Cy||t[Ei]===_a?{[yr]:[c,u]}:{...c,...u}:u}return s}function ki(e,t={},r=t[Ue]){return Vh(e,t,[],r)}const Zy=/^(?:0|[1-9]\d*)$/;function rr(e){return e.split(/[.[\]]+/).filter(Boolean)}function Qy(e){return Array.isArray(e)?e:[e]}function Gl(e){return e==="__proto__"}function eg(e){return typeof e=="number"?Number.isInteger(e)&&e>=0:Zy.test(e)}function wn(e){return e!=null&&(typeof e=="object"||typeof e=="function")}function me(e,t,r){let n;if(!Array.isArray(t))n=wn(e)&&Object.hasOwn(e,t)?e[t]:void 0;else if(t.length===0)n=void 0;else{n=e;for(let i=0;i0}function tg(e,t){const r=Qy(t);if(r.length===0)return!0;const n=r.length>1?me(e,r.slice(0,-1)):e;if(n==null)return!0;try{return Reflect.deleteProperty(n,r[r.length-1])}catch{return!1}}function Kt(e){let t;const r=me(e,by);return typeof r=="string"?t=r:r!==void 0&&console.warn(`Expecting discriminator to be a string, got "${typeof r}" instead`),t}function Ii(e){return Array.isArray(e)?"array":typeof e=="string"?"string":e==null?"null":typeof e=="boolean"?"boolean":typeof e=="number"&&!Number.isNaN(e)?"number":typeof e=="object"?"object":"string"}function Gt(e){let{type:t}=e;return!t&&e.const?Ii(e.const):!t&&e.enum?"string":!t&&(e.properties||e.additionalProperties||e.patternProperties)?"object":(Array.isArray(t)&&(t.length===2&&t.includes("null")?t=t.find(r=>r!=="null"):t=t[0]),t)}function jr(e,t){const r={...e},n=Object.keys(t).reduce((i,s)=>{const a=e?e[s]:{},o=t[s];return e&&s in e&&ue(o)?i[s]=jr(a,o):e&&t&&(Gt(e)==="object"||Gt(t)==="object")&&s===Fh&&Array.isArray(a)&&Array.isArray(o)?i[s]=[...new Set([...a,...o])]:i[s]=o,i},r);for(const i of Object.getOwnPropertySymbols(t))n[i]=t[i];return n}function gr(e,t){return e?.[rt]?.[t]??{}}function zh(e,t,r){if(e&&r){const n=me(e,r);if(n===void 0)return;for(let i=0;i({required:[m]}))};let u;if(o.anyOf){const{...m}=o;m.allOf?m.allOf=m.allOf.slice():m.allOf=[],m.allOf.push(l),u=m}else u={...o,...l};if(delete u.required,e.isValid(u,t,n))return a}else if(e.isValid(o,t,n))return a}return 0}const rg=Object.prototype;function Ai(e){for(const t in e)if(rg.hasOwnProperty.call(e,t))return!1;return!0}const ng=["array","boolean","integer","null","number","object","string"];new Set(ng);const ig=["$defs","definitions","properties","patternProperties","dependencies"];new Set(ig);const sg=["items","allOf","oneOf","anyOf"];new Set(sg);const ag=["items","additionalItems","additionalProperties","propertyNames","contains","if","then","else","not"];new Set(ag);function Sa(e){return typeof e=="object"}function ur(e){return Sa(e)?Ai(e):e===!0}function Yn(e,t){return et?1:0}function Co(e,t){const r=e.length;if(r===0)return t;let n=t.length;if(n===0)return e;if(rt.length){const i=e;e=t,t=i}const n=new Set(t);for(let i=0;i0;i++){const s=e[i];n.delete(s)&&r.push(s)}return r}function Wl(e){return e.length===0}function Eo(e){return(t,r)=>{const n=t.length-r.length;if(n!==0)return n;for(let i=0;i{const n=r.length;if(n===0)return r;if(n<=t){const a=[];let o=0;e:for(let c=0;c{const n=[];let i=t.length,s=r.length;if(i===0||s===0)return n;if(i>s){const u=t;t=r,r=u;const m=i;i=s,s=m}const a=[...t].sort(e),o=[...r].sort(e);let c=0,l=0;for(;c{if(e.has(r))return e.get(r);const n=t(r);return e.set(r,n),n}}const Jl=lg,Hh=()=>0,ug=e=>e===void 0,dg=e=>typeof e!="object",Yl={boolean:0,number:1,string:2};function fg(e,t){const r=typeof e,n=typeof t;return r===n?Yn(e,t):Yl[r]-Yl[n]}function hg(e,t){const r=e.length;if(r===0)return t;const n=t.length;if(n===0)return e;if(n>r){const a=e;e=t,t=a}const i=new Set(e),s=t.length;for(let a=0;ae(n)?e(i)?r(n,i):-1:e(i)?1:t(n,i)}function Gn(e){return Ba(ug,e)}function qr(e,t){return Ba(r=>r===void 0||e(r),t)}function Ao(e,t){return Ba(Array.isArray,e,t)}const ct=Gn(Yn),Po=qr(e=>e===0,(e,t)=>e-t);function mg({deduplicationCache:e=new WeakMap,sortedKeysCache:t=new WeakMap}={}){const r=Jl(t,E=>Object.keys(E).sort());function n(E){return(g,y)=>{const f=r(g),C=r(y),x=Math.min(f.length,C.length);for(let h=0;hg(y(f),y(C))}const s=i(Yn);function a(E,g){if(Sa(E)){if(Sa(g)){const y=Object.keys(E),f=Object.keys(g),C=hg(y,f),x=C.length;for(let h=0;hE===!1,Hh),minLength:Po,minItems:Po,minProperties:Po,required:qr(Wl,s),enum:qr(Wl,i(l)),type:Gn((E,g)=>{const y=Array.isArray(E),f=Array.isArray(g);return!y&&!f?Yn(E,g):s(y?E:[E],f?g:[g])}),items:qr(E=>!Array.isArray(E)&&ur(E),Ao(a,Eo(a))),anyOf:_,allOf:_,oneOf:_,properties:m,patternProperties:m,additionalProperties:v,additionalItems:v,dependencies:qr(Ai,n(Gn(Ao(a,s))))};return{compareSchemaValues:l,compareSchemaDefinitions:a}}function Xl(e){return e}const Kh=(e,t)=>e?Kh(t%e,e):t,pg=(e,t)=>Math.abs(e*t)/Kh(e,t);function yg(e,t){return e===t?e:`(?=.*(?:${e}))(?=.*(?:${t}))`}function xo(e,t,r){const n=e.length,i=t.length;if(n>0&&i>0)for(let s=0;s{const n={...t},i=Object.keys(r),s=i.length;for(let a=0;a{if(!i(a))throw new Error(`Schema keys '${r}' and '${n}' are conflicting (${r}: ${JSON.stringify(a[r])}, ${n}: ${JSON.stringify(a[n])})`)};for(const a of[[r,n],[n,r]]){let o=t.get(a[0]);o===void 0&&(o=[],t.set(a[0],o)),o.push({oppositeKey:a[1],check:s})}}return t}const wg=[un("minimum","maximum",e=>e.maximum>=e.minimum),un("exclusiveMinimum","maximum",e=>e.maximum>e.exclusiveMinimum),un("minimum","exclusiveMaximum",e=>e.exclusiveMaximum>e.minimum),un("exclusiveMinimum","exclusiveMaximum",e=>e.exclusiveMaximum>e.exclusiveMinimum),un("minLength","maxLength",e=>e.maxLength>=e.minLength),un("minItems","maxItems",e=>e.maxItems>=e.minItems),un("minProperties","maxProperties",e=>e.maxProperties>=e.minProperties)];function Cg({mergePatterns:e=yg,isSubRegExp:t=Object.is,intersectJson:r=og,deduplicateJsonSchemaDef:n=Xl,defaultMerger:i=Xl,assigners:s=[],checks:a=wg,mergers:o}={}){function c(x){const h=x.length;let b=x[0];for(let O=1;O0&&k!==!1)if($)Object.assign(x,h);else for(let q=0;q{const q=ur(O),U=ur(M);if(q&&U)return ln(x,"properties",f(h,k)),ln(x,"patternProperties",b&&$?f(b,$):b??$),delete x.additionalProperties,x;const L=y(O,M);ln(x,"additionalProperties",L);const B={},J=Object.keys(h),Y=J.length,[Q,X]=b?Ql(b):eu,[re,A]=$?Ql($):eu,w=[],j=new Set,p=U?void 0:M;for(let z=0;z0&&A.length>0&&xo(X,A,(z,H)=>{t(z,H)&&F.add(z),t(H,z)&&F.add(H),T[e(z,H)]=y(b[z],$[H])}),T=u(T,b,X,F,M,U),T=u(T,$,A,F,O,q),ln(x,"patternProperties",T),x},_=(x,{items:h=[],additionalItems:b},{items:O=[],additionalItems:k})=>{const $=Array.isArray(h),M=Array.isArray(O),q=[];if(x.items=q,$&&M){const[U,L,B]=h.length{ru(x,h);const O=ru({},b);return x.allOf===void 0?x.allOf=[O]:x.allOf=x.allOf.concat(O),x};function S(x,h){const b=[];if(xo(x,h,(O,k)=>{try{b.push(y(O,k))}catch{}}),b.length===0)throw new Error(`No valid schema combinations could be produced for "${JSON.stringify(x)}" and "${JSON.stringify(h)}"; the merged result is empty`);return n(b)}const E=gg([[vg,m],[bg,_],[_g,v],...s]),g=Sg(a);function y(x,h){if(x===!1||h===!1)return!1;if(ur(x))return ur(h)?!0:h;if(ur(h))return x;let b={...x};const O=new Set,k=new Set,$=Reflect.ownKeys(h),M=$.length;for(let q=0;q{if(x===h)return x;const b=Array.isArray(x),O=Array.isArray(h);if(!b&&!O){const k=jo(x,h);if(k!==void 0)return k}else if(b||O){const k=new Set;if(b&&O)xo(x,h,(M,q)=>{const U=jo(M,q);U!==void 0&&k.add(U)});else{const M=b?x:h,q=b?h:x,U=M.length;for(let L=0;L1)return Array.from(k)}throw new Error(`It is not possible to create an intersection of the following incompatible types: ${x.toString()}, ${h.toString()}`)},default:i,description:i,title:i,const:i,format:i,contentEncoding:i,contentMediaType:i,not:(x,h)=>{const b=n([x,h]);return b.length===1?b[0]:{anyOf:b}},pattern:e,readOnly:Oo,writeOnly:Oo,enum:(x,h)=>{const b=r(x,h);if(b.length===0)throw new Error(`Intersection of the following enums is empty: "${JSON.stringify(x)}", "${JSON.stringify(h)}"`);return b},anyOf:S,oneOf:S,allOf:(x,h)=>n(x.concat(h)),propertyNames:y,contains:y,dependencies:Zl((x,h)=>Array.isArray(x)?Array.isArray(h)?Co(x,h):y(h,{required:x}):Array.isArray(h)?y(x,{required:h}):y(x,h)),examples:(x,h)=>{if(!Array.isArray(x)||!Array.isArray(h))throw new Error(`Value of the 'examples' field should be an array, but got "${JSON.stringify(x)}" and "${JSON.stringify(h)}"`);return Co(x,h)},multipleOf:(x,h)=>{let b=1;for(;!Number.isInteger(x)||!Number.isInteger(h);)b*=10,x*=10,h*=10;return pg(x,h)/b},exclusiveMaximum:Math.min,maximum:Math.min,maxItems:Math.min,maxLength:Math.min,maxProperties:Math.min,exclusiveMinimum:Math.max,minimum:Math.max,minItems:Math.max,minLength:Math.max,minProperties:Math.max,uniqueItems:Oo,required:Co,...o};return{mergeSchemaDefinitions:y,mergeArrayOfSchemaDefinitions:c}}function Eg(e){const t=[],r=[e];for(;r.length>0;){const n=r.pop();if(typeof n=="boolean"||n.allOf===void 0){t.push(n);continue}const{allOf:i,...s}=n;t.push(s);for(let a=i.length-1;a>=0;a--)r.push(i[a])}return t}function Ag(e){return t=>e(Eg(t))}const{compareSchemaDefinitions:Pg,compareSchemaValues:xg}=mg(),{mergeArrayOfSchemaDefinitions:Og}=Cg({intersectJson:cg(xg),deduplicateJsonSchemaDef:Bh(Pg)}),Gh=Ag(Og);function bt(e,t,r={},n,i,s=!1){return hr(e,t,r,n,void 0,void 0,i,s)[0]}function Wh(e){return typeof e!="boolean"?e:e?{}:{not:{}}}function jg(e,t,r,n,i,s,a){const{if:o,then:c,else:l,...u}=t,m=e.isValid(o,s||{},r);let _=[u],v=[];if(n){if(c&&typeof c!="boolean"){const S=c;v=v.concat(hr(e,S,r,s,n,i,a))}if(l&&typeof l!="boolean"){const S=l;v=v.concat(hr(e,S,r,s,n,i,a))}}else{const S=m?c:l;if(S!==void 0){const E=Wh(S);v=v.concat(hr(e,E,r,s,n,i,a))}}return v.length&&(_=v.map(S=>jr(u,S))),_.flatMap(S=>hr(e,S,r,s,n,i,a))}function Jh(e){return e.reduce((r,n)=>n.length>1?n.flatMap(i=>r.map(s=>[...s,i])):(r.forEach(i=>i.push(n[0])),r),[[]])}function Yh(e,t){const r=e.patternProperties??{};return Object.fromEntries(Object.entries(r).filter(([n])=>RegExp(n).test(t)))}function kg(e,t,r,n,i,s,a,o){const c=Xh(e,t,r,n,i,s,a,o);if(c.length>1||c[0]!==t)return c;if(Uc in t)return Qh(e,t,r,n,i,s,a).flatMap(u=>hr(e,u,r,s,n,i,a));if(yr in t&&Array.isArray(t[yr])){const l=t.allOf.map(m=>hr(e,m,r,s,n,i,a));return Jh(l).map(m=>({...t,allOf:m}))}return[t]}function Xh(e,t,r,n,i,s,a,o){const c=Hr(t,r,i,void 0,o);return c!==t?hr(e,c,r,s,n,i,a,o):[t]}function Hr(e,t,r,n,i,s=!1){if(!ue(e))return e;let a=e,o=n;if(Je in a){const{$ref:c,...l}=a;if(r.includes(c))return s?{...a,[Vc]:!0}:a;r.push(c),a={...ki(c,t,o),...l,[ba]:c},Ue in a&&(o=a[Ue])}if(rt in a){const c=[],l={};for(const[u,m]of Object.entries(a[rt]??{})){const _=[...r];l[u]=Hr(m,t,_,o,i,!i),c.push(_)}for(const u of new Set(c.flat()))r.includes(u)||r.push(u);a={...a,[rt]:l}}if(ni in a&&!Array.isArray(a.items)&&typeof a.items!="boolean"&&(a={...a,items:Hr(a.items,t,r,o,i)}),i){let c,l;Ne in e&&Array.isArray(e[Ne])?(c=Ne,l=a[Ne]):Se in e&&Array.isArray(e[Se])&&(c=Se,l=a[Se]),c&&l&&(a={...a,[c]:l.map(u=>Hr(u,t,r,o,i))})}return je(e,a)?e:a}function Ig(e,t,r,n,i){const s={...t,properties:{...t.properties}},a=n&&ue(n)?n:{};return Object.keys(a).forEach(o=>{if(!(o in s.properties)){if(hc in s){const c=Yh(s,o);if(Object.keys(c).length>0){s.properties[o]=bt(e,{[yr]:Object.values(c)},r,a[o],i),s.properties[o][Sn]=!0;return}}if(Jn in s&&s.additionalProperties!==!1){let c;typeof s.additionalProperties!="boolean"?Je in s.additionalProperties?c=bt(e,{[Je]:s.additionalProperties[Je]},r,a[o],i):"type"in s.additionalProperties?c={...s.additionalProperties}:Ne in s.additionalProperties||Se in s.additionalProperties?c={type:"object",...s.additionalProperties}:c={type:Ii(a[o])}:c={type:Ii(a[o])},s.properties[o]=c,s.properties[o][Sn]=!0}else s.properties[o]={type:"null"},s.properties[o][Sn]=!0}}),s}function Ng(e){return Gh(e)}function hr(e,t,r,n,i=!1,s=[],a,o){return ue(t)?kg(e,t,r,i,s,n,a,o).flatMap(l=>{let u=l;if(Lc in u)return jg(e,u,r,i,s,n,a);if(yr in u){if(i){const{allOf:_,...v}=u;return[..._,v]}try{const _=[],v=[],S={};u.allOf?.forEach(E=>{if(typeof E=="object"&&E.contains)_.push(E);else{v.push(E);for(const g of Object.getOwnPropertySymbols(E))g in S||(S[g]=E[g])}}),_.length&&(u={...u,allOf:v}),u=a?a(u):Ng(u);for(const E of Object.getOwnPropertySymbols(S))u[E]=S[E];_.length&&(u.allOf=_)}catch(_){console.warn(`could not merge subschemas in allOf: -`,_);const{allOf:v,...S}=u;return S}}return rt in u&&hc in u&&(u=Object.keys(u.properties).reduce((_,v)=>{const S=Yh(_,v);return Object.keys(S).length>0&&(_.properties[v]=bt(e,{allOf:[_.properties[v],...Object.values(S)]},r,me(n,v),a)),_},{...u,properties:{...u.properties}})),hc in u||Jn in u&&u.additionalProperties!==!1?Ig(e,u,r,n,a):u}):[{}]}function Rg(e,t,r,n,i){let s;const{oneOf:a,anyOf:o,...c}=t;if(Array.isArray(a)?s=a:Array.isArray(o)&&(s=o),s){const l=i===void 0&&n?{}:i,u=Kt(t);s=s.map(_=>Hr(_,r,[]));const m=Na(e,l,s,r,u);if(n){const _=Zh(s,!1,r);return Na(e,l,_,r,u),s.map(v=>jr(c,v))}return[jr(c,s[m])]}return[t]}function Zh(e,t=!1,r){return e.map(n=>{if(!ue(n))return Wh(n);const i=t&&r?Hr(n,r,[]):n;return i.additionalProperties===!1?{...i,additionalProperties:!0}:i})}function Qh(e,t,r,n,i,s,a){const{dependencies:o,...c}=t;return Rg(e,c,r,n,s).flatMap(u=>em(e,o,u,r,n,i,s,a))}function em(e,t,r,n,i,s,a,o){let c=[r];for(const l in t)if((i||me(a,l)!==void 0)&&(!r.properties||l in r.properties)){const[u,m]=Kc(l,t);return Array.isArray(m)?c[0]=$g(r,m):ue(m)&&(c=Fg(e,r,n,l,m,i,s,a,o)),c.flatMap(_=>em(e,u,_,n,i,s,a,o))}return c}function $g(e,t){if(!t)return e;const r=Array.isArray(e.required)?Array.from(new Set([...e.required,...t])):t;return{...e,required:r}}function Fg(e,t,r,n,i,s,a,o,c){return hr(e,i,r,o,s,a,c).flatMap(u=>{const{oneOf:m,..._}=u,v=jr(t,_);if(m===void 0)return v;const S=m.map(g=>typeof g=="boolean"||!(Je in g)?[g]:Xh(e,g,r,s,a,o));return Jh(S).flatMap(g=>Dg(e,v,r,n,g,s,a,o,c))})}function Dg(e,t,r,n,i,s,a,o,c){const l=i.filter(u=>{if(typeof u=="boolean"||!u?.properties)return!1;const{[n]:m}=u.properties;if(m){const _={type:"object",properties:{[n]:m}};return e.isValid(_,o,r)||s}return!1});return!s&&l.length!==1?(console.warn("ignoring oneOf in dependencies because there isn't exactly one subschema that is valid"),[t]):l.flatMap(u=>{const m=u,[_]=Kc(n,m.properties),v={...m,properties:_};return hr(e,v,r,o,s,a,c).map(E=>jr(t,E))})}function Pi(e,t,r,n,i,s={},a){if(Array.isArray(r[i])){const c=Kt(r)||n,l=r[i].map(m=>bt(e,m,t,s,a)),u=me(s,c);if(u!==void 0)return l.find(m=>je(me(m,[rt,c,An],me(m,[rt,c,It])),u))}}function tm(e,t,r,n,i){let s=r;if(lt(r,Je)&&(s=bt(e,r,t,void 0,i)),n.length===0)return s;const a=Array.isArray(n)?[...n]:rr(n),[o,...c]=a;if(o!==void 0&&o!==""&<(s,o))return s=me(s,o),tm(e,t,s,c,i)}function wa(e,t,r,n,i,s){const a=tm(e,t,r,n,s);return a===void 0?i:a}const nu={title:"!@#$_UNKNOWN_$#@!"};function Tg(e,t,r,n,i={},s){const a=Array.isArray(n)?[...n]:n.split(".");let o=r;const c=a.pop(),l=String(c);a.length&&a.forEach(v=>{o=wa(e,t,o,[rt,v],{},s),lt(o,Se)?o=Pi(e,t,o,l,Se,me(i,v),s):lt(o,Ne)&&(o=Pi(e,t,o,l,Ne,me(i,v),s))}),lt(o,Se)?o=Pi(e,t,o,l,Se,i,s):lt(o,Ne)&&(o=Pi(e,t,o,l,Ne,i,s));let u=wa(e,t,o,[rt,c],nu,s);u===nu&&(u=void 0);const m=wa(e,t,o,Fh,[],s);let _;return u&&Array.isArray(m)&&(_=m.includes(l)),{field:u,isRequired:_}}const Mg={type:"object",$id:vy,properties:{__not_really_there__:{type:"number"}}};function gc(e,t,r,n,i){let s=0;return r&&(ue(r.properties)?s+=Object.entries(r.properties).reduce((a,[o,c])=>{const l=n?.[o];if(typeof c=="boolean")return a;if(lt(c,Je)){const u=bt(e,c,t,l,i);return a+gc(e,t,u,l||{},i)}if((lt(c,Se)||lt(c,Ne))&&l){const u=lt(c,Se)?Se:Ne,m=Kt(c);return a+ii(e,t,l,me(c,u),-1,m,i)}if(c.type==="object")return a+(typeof l=="object"&&l!==null?1:0)+gc(e,t,c,l,i);if(c.type===Ii(l)){let u=a+1;return c.default?u+=l===c.default?1:-1:c.const&&(u+=l===c.const?1:-1),u}return a},0):typeof r.type=="string"&&r.type===Ii(n)&&(s+=1)),s}function ii(e,t,r,n,i=-1,s,a){const o=n.map(_=>Hr(_,t,[])),c=zh(r,n,s);if(typeof c=="number")return c;const l=o.reduce((_,v,S)=>(Na(e,r,[Mg,v],t,s)===1&&_.push(S),_),[]);if(l.length===1)return l[0];l.length||l.push(...o.keys());const u=new Set,{bestIndex:m}=l.reduce((_,v)=>{const{bestScore:S}=_,E=o[v],g=gc(e,t,E,r,a);return u.add(g),g>S?{bestIndex:v,bestScore:g}:_},{bestIndex:i,bestScore:0});return u.size===1&&i>=0?i:m}function rm(e){const t=e[It],r=Gt(e);return ue(t)&&typeof t?.$data=="string"&&r!=="object"&&r!=="array"}function nm(e){return Array.isArray(e.enum)&&e.enum.length===1||It in e}function Gc(e){return Array.isArray(e.items)&&e.items.every(t=>ue(t))}function Ni(e,t,r=!1,n=!1,i=!1){if(Array.isArray(t)){const s=Array.isArray(e)?e:[],a=i?s:t,o=i?t:s,c=a.map((l,u)=>o[u]!==void 0?Ni(s[u],t[u],r,n,i):l);return(r||i)&&c.length{const u=a[l],m=o!==void 0&&l in o,_=l in a,v=o?.[l]??{},S=m&&ue(v)&&Object.values(v).some(y=>ue(y)||Array.isArray(y)),E=m&&ue(o?.[l]),g=_&&ue(u);return E&&g&&!S?(c[l]={...o?.[l],...u},c):(c[l]=Ni(o?.[l],u,r,n,i&&(m||!_)),s)},s)}return n&&(e!==void 0&&t==null||typeof t=="number"&&Number.isNaN(t))||i&&t!=null?e:t}function Xr(e,t,r=!1){return Object.keys(t).reduce((n,i)=>{const s=e?e[i]:{},a=t[i];if(e&&i in e&&ue(a))n[i]=Xr(s,a,r);else if(r&&Array.isArray(s)&&Array.isArray(a)){let o=a;r==="preventDuplicates"&&(o=a.reduce((c,l)=>(s.includes(l)||c.push(l),c),[])),n[i]=s.concat(o)}else n[i]=a;return n},{...e})}function qg(e){if(gy in e&&Array.isArray(e.enum)&&e.enum.length===1)return e.enum[0];if(It in e)return e.const;throw new Error("schema cannot be inferred as a constant")}function Ug(e,t){const r=new Map(e.map(s=>[String(s.value),s])),n=new Set(t.filter(s=>s!=="*").map(String)),i=e.filter(s=>!n.has(String(s.value)));return t.flatMap(s=>{if(s==="*")return i;const a=r.get(String(s));return a?[a]:[]})}function Pn(e,t){if(e.enum){let s,a;if(t){const{enumNames:c,enumOrder:l}=pe(t);s=c,a=l}let o=e.enum.map((c,l)=>({label:Array.isArray(s)?s[l]||String(c):s?.[String(c)]||String(c),value:c}));return a&&(o=Ug(o,a)),o}let r,n;e.anyOf?(r=e.anyOf,n=t?.anyOf):e.oneOf&&(r=e.oneOf,n=t?.oneOf);let i=Kt(e);if(t){const{optionsSchemaSelector:s=i}=pe(t);i=s}return r?.map((s,a)=>{const{title:o}=pe(n?.[a]),c=s;let l,u=o;if(i){const m=gr(c,i);l=me(m,An,me(m,It)),u=u??m?.title??c.title??String(l)}else l=qg(c),u=u??c.title??String(l);return{schema:c,label:u,value:l}})}function Ha(e,t,r={},n){const i=bt(e,t,r,void 0,n),s=i.oneOf||i.anyOf;return Array.isArray(i.enum)?!0:Array.isArray(s)?s.every(a=>typeof a!="boolean"&&nm(a)):!1}function Wc(e,t,r,n){return!t.uniqueItems||!t.items||typeof t.items=="boolean"?!1:Ha(e,t.items,r,n)}const Lg=["string","number","integer","boolean","null"];var si;(function(e){e[e.Ignore=0]="Ignore",e[e.Invert=1]="Invert",e[e.Fallback=2]="Fallback"})(si||(si={}));function ko(e,t=si.Ignore,r=-1){if(r>=0){if(Array.isArray(e.items)&&r0:typeof e=="object"&&e!==null?Object.keys(e).length>0:!1}function im(e,t){const{default:r,type:n}=e;return Array.isArray(n)&&n.includes("null")&&!Vg(t)&&r===null?null:t}function iu(e,t,r,n,i,s=[],a={},o=!1,c=!1){const{emptyObjectFields:l="populateAllDefaults"}=a;if(n===!0||o)e[t]=r;else if(n==="excludeObjectChildren")(c&&r!==void 0||!ue(r)||Object.keys(r).length>0)&&(e[t]=r);else if(l!=="skipDefaults"){const u=i===void 0?s.includes(t):i;ue(r)?l==="skipEmptyDefaults"?Object.keys(r).length>0&&(e[t]=r):(Object.keys(r).length>0||s.includes(t))&&(u||l!=="populateRequiredDefaults")&&(e[t]=r):r!==void 0&&(l==="populateAllDefaults"||l==="skipEmptyDefaults"||u&&s.includes(t))&&(e[t]=r)}}function Kr(e,t,r={}){const{parentDefaults:n,rawFormData:i,rootSchema:s={},includeUndefinedValues:a=!1,_recurseList:o=[],experimental_defaultFormStateBehavior:c,experimental_customMergeAllOf:l,required:u,shouldMergeDefaultsIntoFormData:m=!1,initialDefaultsGenerated:_}=r;let v=ue(i)?i:{};const S=ue(t)?t:{};let E=n;const g=E&&c?.nestedDefaultsPrecedence==="ancestorWins";let y=null,f=c,C=o;if(S[It]!==void 0&&c?.constAsDefaults!=="never"&&!rm(S))E=S[It];else if(ue(E)&&ue(S.default)&&!S[Ne]&&!S[Se]&&!S[Je])g?E=Xr(S.default,E):E=Xr(E,S.default);else if(An in S&&!g&&!S[Ne]&&!S[Se]&&!S[Je])E=S.default;else if(Je in S){const b=S[Je];o.includes(b)||(C=o.concat(b),y=ki(b,s));const O=i===void 0||ue(i)&&Object.keys(i).length===0;y&&!E&&O&&(E=S.default),m&&y&&!ue(i)&&(v=i)}else if(Uc in S){const b={...su(e,S,r,E),...v};[y]=Qh(e,S,s,!1,[],b,l)}else if(Gc(S)&&!g)E=S.items.map((b,O)=>Kr(e,b,{rootSchema:s,includeUndefinedValues:a,_recurseList:o,experimental_defaultFormStateBehavior:c,experimental_customMergeAllOf:l,parentDefaults:Array.isArray(n)?n[O]:void 0,rawFormData:v,required:u,shouldMergeDefaultsIntoFormData:m}));else if(Se in S){const{oneOf:b,...O}=S;if(b.length===0)return;const k=Kt(S),{type:$="null"}=O;!Array.isArray($)&&Lg.includes($)&&f?.constAsDefaults==="skipOneOf"&&(f={...f,constAsDefaults:"never"}),y=b[ii(e,s,i??S.default,b,0,k,l)],y=jr(O,y)}else if(Ne in S){const{anyOf:b,...O}=S;if(b.length===0)return;const k=Kt(S);y=b[ii(e,s,i??S.default,b,0,k,l)],y=jr(O,y)}if(y)return Kr(e,y,{rootSchema:s,includeUndefinedValues:a,_recurseList:C,experimental_defaultFormStateBehavior:f,experimental_customMergeAllOf:l,parentDefaults:E,rawFormData:i??v,required:u,shouldMergeDefaultsIntoFormData:m,initialDefaultsGenerated:_});E===void 0&&(E=S.default);let h=su(e,S,r,E)??E;if(m){const{arrayMinItems:b={}}=c||{},{mergeExtraDefaults:O}=b,k=Jc(e,S,s,i,c,l);(!ue(i)||yr in S)&&(h=Ni(h,k,O,!0))}return h}function Jc(e,t,r,n,i,s){const a=i?.allOf==="populateDefaults"&&yr in t,o=a?bt(e,t,r,n,s):t,c=!nm(o)&&Ha(e,o,r,s);let l=n;return c&&(l=Pn(o)?.some(v=>je(v.value,n))?n:void 0),o[It]&&i?.constAsDefaults==="always"?l=o.const:ue(l)&&ue(o.properties)&&(l=Object.keys(o.properties).reduce((m,_)=>{const v=gr(o,_);return _ in m&&(a||ue(v)&&yr in v)&&(m[_]=Jc(e,v,r,m[_],i,s)),m},{...l})),l}function zg(e,t,{rawFormData:r,rootSchema:n={},includeUndefinedValues:i=!1,_recurseList:s=[],experimental_defaultFormStateBehavior:a,experimental_customMergeAllOf:o,required:c,shouldMergeDefaultsIntoFormData:l,initialDefaultsGenerated:u}={},m){{const _=ue(r)?r:{},v=t,E=a?.allOf==="populateDefaults"&&yr in v||a?.emptyObjectFields!=="skipEmptyDefaults"&&Lc in v?bt(e,v,n,_,o):v,g=E[It],y=Object.keys(E.properties||{}).reduce((f,C)=>{const x=gr(E,C),h=ue(g)&&g[C]!==void 0,b=(ue(x)&&It in x||h)&&a?.constAsDefaults!=="never"&&!rm(x),O=Kr(e,x,{rootSchema:n,_recurseList:s,experimental_defaultFormStateBehavior:a,experimental_customMergeAllOf:o,includeUndefinedValues:i===!0,parentDefaults:me(m,C),rawFormData:me(_,C),required:E.required?.includes(C),shouldMergeDefaultsIntoFormData:l,initialDefaultsGenerated:u});return iu(f,C,O,i,c,E.required,a,b,x?.type==="null"),f},{});if(E.additionalProperties&&!u){const f=ue(E.additionalProperties)?E.additionalProperties:{},C=new Set,x=[];Object.keys(_).filter(h=>!E.properties||!E.properties[h]).forEach(h=>{C.add(h),x.push(h)}),ue(m)&&x.length===0&&Object.keys(m).filter(h=>!E.properties||!E.properties[h]).forEach(h=>C.add(h)),C.forEach(h=>{const b=Kr(e,f,{rootSchema:n,_recurseList:s,experimental_defaultFormStateBehavior:a,experimental_customMergeAllOf:o,includeUndefinedValues:i===!0,parentDefaults:me(m,h),rawFormData:me(_,h),required:E.required?.includes(h),shouldMergeDefaultsIntoFormData:l,initialDefaultsGenerated:u});iu(y,h,b,i,c,x)})}return im(t,y)}}function Bg(e,t,{rawFormData:r,rootSchema:n={},_recurseList:i=[],experimental_defaultFormStateBehavior:s,experimental_customMergeAllOf:a,required:o,requiredAsRoot:c=!1,shouldMergeDefaultsIntoFormData:l,initialDefaultsGenerated:u}={},m){let _=m;const v=t,S=s?.arrayMinItems??{},{populate:E,mergeExtraDefaults:g}=S,y=E==="never",f=E==="requiredOnly",C=E==="all"||!y&&!f,x=S?.computeSkipPopulate??(()=>!1),b=s?.emptyObjectFields==="skipEmptyDefaults"?void 0:[];if(Array.isArray(_)&&(_=_.map(($,M)=>{const q=ko(v,si.Fallback,M),U=Array.isArray(r)?r[M]:void 0;return Kr(e,q,{rootSchema:n,_recurseList:i,experimental_defaultFormStateBehavior:s,experimental_customMergeAllOf:a,parentDefaults:$,rawFormData:U,required:o,shouldMergeDefaultsIntoFormData:l,initialDefaultsGenerated:u})})),Array.isArray(r)){const $=ko(v);if(y)_=r;else{const M=r.map((U,L)=>Kr(e,$,{rootSchema:n,_recurseList:i,experimental_defaultFormStateBehavior:s,experimental_customMergeAllOf:a,rawFormData:U,parentDefaults:me(_,L),required:o,shouldMergeDefaultsIntoFormData:l,initialDefaultsGenerated:u}));_=Ni(_,M,(f&&o||C)&&g)}}const O=Array.isArray(_)?_.length:0;if(y)return l&&!o?_:_??b;if(f&&!o)return _||void 0;let k;if(!v.minItems||Wc(e,v,n,a)||x(e,v,n)||v.minItems<=O)k=_||!o&&!c?_:b;else{const $=_||[],M=ko(v,si.Invert),q=M.default,U=Array.from({length:v.minItems-O},()=>Kr(e,M,{parentDefaults:q,rootSchema:n,_recurseList:i,experimental_defaultFormStateBehavior:s,experimental_customMergeAllOf:a,required:o,shouldMergeDefaultsIntoFormData:l}));k=$.concat(U)}return im(t,k)}function su(e,t,r={},n){switch(Gt(t)){case"object":return zg(e,t,r,n);case"array":return Bg(e,t,r,n);case"boolean":return r.required&&n===void 0?!1:void 0;default:return}}function sm(e,t,r,n,i=!1,s,a,o){if(!ue(t))throw new Error(`Invalid schema: ${t}`);const c=bt(e,t,n,r,a),l=Kr(e,c,{rootSchema:n,includeUndefinedValues:i,experimental_defaultFormStateBehavior:s,experimental_customMergeAllOf:a,rawFormData:r,shouldMergeDefaultsIntoFormData:!0,initialDefaultsGenerated:o,requiredAsRoot:!0});if(c.type!=="object"&&ue(c.default))return{...l,...r};if(ue(r)||Array.isArray(r)){const{mergeDefaultsIntoFormData:u}=s||{},m=u==="useDefaultIfFormDataUndefined",_=Jc(e,c,n??c,r,s,a);return Ni(l,_,!0,m,!0)}return l}function am(e={}){return"widget"in pe(e)&&pe(e).widget!=="hidden"}function om(e,t,r={},n,i){if(r[Bc]==="files")return!0;if(t.items){const s=bt(e,t.items,n,void 0,i);return s.type==="string"&&s.format==="data-url"}return!1}function Hg(e,t,r={},n,i,s){const a=pe(r,i),{label:o=!0}=a;let c=!!o;if(c){const l=Gt(t),u=!!t[Sn];l==="array"&&(c=u||Wc(e,t,n,s)||om(e,t,r,n,s)||am(r)),l==="object"&&(c=u),l==="boolean"&&r&&!r[Bc]&&(c=!1),r?.[Sy]&&(c=!1)}return c}function Kg(e,t){if(t.length===0&&typeof e!="object")return e;const r={};return t.forEach(n=>{const i=Array.isArray(n)?n:rr(n);lt(e,i)&&st(r,i,me(e,i))}),Array.isArray(e)?Object.keys(r).map(n=>r[n]):r}function Gg(e,t){const r=(i,s)=>typeof i!="object"||i===null?!0:(Array.isArray(i)?i.length===0:Object.keys(i).length===0)||s,n=(i,s=[],a=[[]])=>{const o=Object.keys(i);return o.forEach(c=>{const l=i[c];if(typeof l=="object"){const u=a.map(m=>[...m,c]);l[zc]&&l[va]!==""?s.push(l[va]):n(l,s,u)}else c===va&&l!==""&&a.forEach(u=>{const m=me(t,u),_=o.length===1;(r(m,_)||Array.isArray(m)&&m.every(v=>r(v,_)))&&s.push(u)})}),s};return n(e)}function cm(e){return e==null||e===""?!0:Array.isArray(e)?e.length===0:ue(e)?Object.values(e).every(cm):!1}function Wg(e,t){return t?t(e):Gh(e)}function Jg(e,t,r={},n,i){function s(S){return ue(S)}function a(S){return ue(S)}function o(S,E,g){const{properties:y,additionalProperties:f,patternProperties:C}=S,x=new Set(S.required??[]);function h(O,k,$,M=!1){const q=v(k,$,g[O]);if(!M&&ue(q)){let U=a(k)?k:{};U.$ref!==void 0&&(U=ki(U.$ref,r));const L=new Set(U.required??[]);if(Object.entries(q).every(([J,Y])=>!L.has(J)&&cm(Y)))return}q!==void 0&&(g[O]=q)}if(y!==void 0)for(const[O,k]of Object.entries(y))h(O,k,E[O],x.has(O));let b;if(C!==void 0){b=[];const O=Object.entries(C).map(([$,M])=>[new RegExp($),M]),k=new Set(Object.keys(y??{}));for(const[$,M]of Object.entries(E))if(!k.has($)){const q=O.find(([U])=>U.test($));q===void 0?b.push($):h($,q[1],M)}}if(f!==void 0&&f!==!1){const O=f;if(b!==void 0)for(const k of b)h(k,O,E[k]);else{const k=new Set(Object.keys(y??{}));for(const[$,M]of Object.entries(E))k.has($)||h($,O,M)}}return g}function c(S,E,g){const{items:y,additionalItems:f}=S;if(Array.isArray(y)){const C=Math.min(y.length,E.length);let x=0;for(;xnew RegExp(q)):[];for(const q of Object.keys(O))!$.has(q)&&!M.some(U=>U.test(q))&&delete O[q]}return _(f,E,O)??(y?E:void 0)}return v(t,n)}const Lt=Symbol("no Value");function lm(e){if(Array.isArray(e.enum))return e.enum;const t=e.oneOf||e.anyOf;if(!Array.isArray(t))return;const r=t.map(n=>It in n?n[It]:Array.isArray(n.enum)&&n.enum.length===1?n.enum[0]:Lt).filter(n=>n!==Lt);return r.length>0?r:void 0}function Yg(e,t){const r=lm(e);if(!r||r.some(i=>je(i,t)))return Lt;const n=me(e,An,Lt);return n!==Lt&&r.some(i=>je(i,n))?n:r.length===1?r[0]:void 0}function vc(e,t,r,n,i={},s){let a;const o=r?.[rt];if(o){const c={},l=n?.[rt];l&&Object.keys(l).forEach(_=>{lt(i,_)&&(c[_]=void 0)});const u=Object.keys(o),m={};u.forEach(_=>{const v=i?.[_],S=!lt(n,[rt,_]);let E=gr(n,_),g=gr(r,_);lt(E,Je)&&(E=bt(e,E,t,v,s)),lt(g,Je)&&(g=bt(e,g,t,v,s));const y=E.type,f=g.type;if(!y||y===f)if(_ in c&&delete c[_],f==="object"||f==="array"&&Array.isArray(v)){const C=vc(e,t,g,S&&f==="array"?g:E,v,s);(C!==void 0||f==="array")&&(m[_]=C)}else{const C=me(g,An,Lt),x=me(E,An,Lt);C!==Lt&&C!==v&&(S&&v===void 0||x===v?c[_]=C:g.readOnly===!0&&(c[_]=void 0));const h=me(g,It,Lt),b=me(E,It,Lt);if(h!==Lt&&h!==v&&(c[_]=b===v?h:void 0),lt(i,_)){const O=Yg(g,v);O!==Lt&&(c[_]=O)}}}),a={...typeof i=="string"||Array.isArray(i)?void 0:i,...c,...m}}else if(n?.type==="array"&&r?.type==="array"&&Array.isArray(i)){let c=n.items,l=r.items;if(typeof c=="object"&&typeof l=="object"&&!Array.isArray(c)&&!Array.isArray(l)){lt(c,Je)&&(c=bt(e,c,t,i,s)),lt(l,Je)&&(l=bt(e,l,t,i,s));const u=me(c,"type"),m=me(l,"type");if(!u||u===m){const _=r.maxItems??-1;if(m==="object")a=i.reduce((v,S)=>{const E=vc(e,t,l,c,S,s);return E!==void 0&&(_<0||v.length<_)&&v.push(E),v},[]);else{const v=lm(l),S=v?i.filter(E=>v.some(g=>je(g,E))):i;a=_>0&&S.length>_?S.slice(0,_):S}}}else typeof c=="boolean"&&typeof l=="boolean"&&c===l&&(a=i)}return a}function Ur(e,t,r,n,i,s=[],a){if(Je in t||Uc in t||yr in t||Lc in t){const c=bt(e,t,n,i,a);if(s.findIndex(u=>je(u,c))===-1)return Ur(e,c,r,n,i,s.concat(c),a)}let o={[va]:r.replace(/^\./,"")};if(Se in t||Ne in t){const c=Se in t?t.oneOf:t.anyOf,l=Kt(t),u=ii(e,n,i,c,0,l,a),m=c[u];o={...o,...Ur(e,m,r,n,i,s,a)}}if(Jn in t&&t[Jn]!==!1){st(o,zc,!0);const c=ue(t[Jn])?t[Jn]:{},l=t[rt]??{};for(const u of Object.keys(i??{}))u in l||(o[u]=Ur(e,c,`${r}.${u}`,n,me(i,u),s,a))}if(ni in t&&Array.isArray(i)){const{items:c,additionalItems:l}=t;Array.isArray(c)?i.forEach((u,m)=>{c[m]?o[m]=Ur(e,c[m],`${r}.${m}`,n,u,s,a):l?o[m]=Ur(e,l,`${r}.${m}`,n,u,s,a):console.warn(`Unable to generate path schema for "${r}.${m}". No schema defined for it`)}):i.forEach((u,m)=>{o[m]=Ur(e,c,`${r}.${m}`,n,u,s,a)})}else if(rt in t)for(const c in t.properties){const l=gr(t,c);o[c]=Ur(e,l,`${r}.${c}`,n,me(i,c),s,a)}return o}function Xg(e,t,r="",n,i,s){return Ur(e,t,r,n,i,void 0,s)}class Zg{rootSchema;validator;experimental_defaultFormStateBehavior;experimental_customMergeAllOf;constructor(t,r,n,i){r?.[Ei]===_a?this.rootSchema=yc(r,r[Ue]??"#"):this.rootSchema=r,this.validator=t,this.experimental_defaultFormStateBehavior=n,this.experimental_customMergeAllOf=i}getRootSchema(){return this.rootSchema}getValidator(){return this.validator}doesSchemaUtilsDiffer(t,r,n={},i){return!t||!r?!1:this.validator!==t||!je(this.rootSchema,r)||!je(this.experimental_defaultFormStateBehavior,n)||this.experimental_customMergeAllOf!==i}findFieldInSchema(t,r,n){return Tg(this.validator,this.rootSchema,t,r,n,this.experimental_customMergeAllOf)}findSelectedOptionInXxxOf(t,r,n,i){return Pi(this.validator,this.rootSchema,t,r,n,i,this.experimental_customMergeAllOf)}getDefaultFormState(t,r,n=!1,i){return sm(this.validator,t,r,this.rootSchema,n,this.experimental_defaultFormStateBehavior,this.experimental_customMergeAllOf,i)}getDisplayLabel(t,r,n){return Hg(this.validator,t,r,this.rootSchema,n,this.experimental_customMergeAllOf)}getClosestMatchingOption(t,r,n,i){return ii(this.validator,this.rootSchema,t,r,n,i,this.experimental_customMergeAllOf)}getFirstMatchingOption(t,r,n){return Na(this.validator,t,r,this.rootSchema,n)}getFromSchema(t,r,n){return wa(this.validator,this.rootSchema,t,r,n,this.experimental_customMergeAllOf)}isFilesArray(t,r){return om(this.validator,t,r,this.rootSchema,this.experimental_customMergeAllOf)}isMultiSelect(t){return Wc(this.validator,t,this.rootSchema,this.experimental_customMergeAllOf)}isSelect(t){return Ha(this.validator,t,this.rootSchema,this.experimental_customMergeAllOf)}omitExtraData(t,r){return Jg(this.validator,t,this.rootSchema,r)}retrieveSchema(t,r,n){return bt(this.validator,t,this.rootSchema,r,this.experimental_customMergeAllOf,n)}sanitizeDataForNewSchema(t,r,n){return vc(this.validator,this.rootSchema,t,r,n,this.experimental_customMergeAllOf)}toPathSchema(t,r,n){return Xg(this.validator,t,r,this.rootSchema,n,this.experimental_customMergeAllOf)}}function Qg(e,t,r={},n){return new Zg(e,t,r,n)}function e0(e){if(!e.includes("data:"))throw new Error("File is invalid: URI must be a dataURI");const r=e.slice(5).split(";base64,");if(r.length!==2)throw new Error("File is invalid: dataURI must be base64");const[n,i]=r,[s,...a]=n.split(";"),o=s||"",c=decodeURI(a.map(l=>l.split("=")).find(([l])=>l==="name")?.[1]||"unknown");try{const l=atob(i),u=new Array(l.length);for(let _=0;_ 0, got one of each`);const i=new Date().getFullYear(),s=r?i+e:e,a=r?i+t:t;if(s>a)return um(t,e).reverse();const o=[];for(let c=s;c<=a;c+=1)o.push({value:c,label:Lr(c,2)});return o}function t0(e,t){let r=e;if(Array.isArray(t)){const n=r.split(/(%\d)/);t.forEach((i,s)=>{const a=n.findIndex(o=>o===`%${s+1}`);a>=0&&(n[a]=i)}),r=n.join("")}return r}function r0(e,t){return t0(e,t)}function Ka(e,t=[],r){if(Array.isArray(e))return e.map(s=>Ka(s,t)).filter(s=>s!==void 0);const n=e===""||e===null?-1:Number(e),i=t[n];return i?i.value:r}function n0(e,t,r=[]){const n=Ka(e,r);return Array.isArray(t)?t.filter(i=>!je(i,n)):je(n,t)?void 0:t}function Ga(e,t){return Array.isArray(t)?t.some(r=>je(r,e)):je(t,e)}function dm(e,t=[],r=!1){const n=t.map((i,s)=>Ga(i.value,e)?String(s):void 0).filter(i=>typeof i<"u");return r?n:n[0]}function i0(e,t,r,n="indexed",i){if(typeof e>"u"||r&&Array.isArray(e)&&e.length<1||!r&&e===i)return i;if(n==="realValue")return r?e.map(String):String(e);const a=dm(e,t,r);return typeof a>"u"?i:a}function s0(e,t,r=[]){const n=Ka(e,r);if(n!=null){const i=r.findIndex(o=>n===o.value),s=r.map(({value:o})=>o);return t.slice(0,i).concat(n,t.slice(i)).sort((o,c)=>+(s.indexOf(o)>s.indexOf(c)))}return t}function au(e,t,r){if(e===""||!Array.isArray(t))return r;const n=t.find(s=>String(s.value)===e);if(n)return n.value;const i=Number(e);return!Number.isNaN(i)&&i>=0&&iau(i,t,n)):au(e,t,n)}function Yc(e,t,r="indexed"){return r!=="realValue"?String(t):e==null?"":String(typeof e=="object"?t:e)}class fm{errorSchema={};constructor(t){this.resetAllErrors(t)}get ErrorSchema(){return this.errorSchema}getOrCreateErrorBlock(t){const r=typeof t=="string"?rr(t):t??[];if(r.length===0)return this.errorSchema;let n=me(this.errorSchema,r);return n||(n={},st(this.errorSchema,r,n,!0)),n}resetAllErrors(t){return this.errorSchema=t?structuredClone(t):{},this}addErrors(t,r){const n=this.getOrCreateErrorBlock(r);let i=n[vt];return Array.isArray(i)||(i=[],n[vt]=i),Array.isArray(t)?n[vt]=[...new Set([...i,...t])]:n[vt]=[...new Set([...i,t])],this}setErrors(t,r){const n=this.getOrCreateErrorBlock(r),i=Array.isArray(t)?[...new Set([...t])]:[t];return n[vt]=i,this}clearErrors(t){const r=this.getOrCreateErrorBlock(t);return r[vt]=[],this}}function hm(e,t){return Or(e)&&Or(t)?Ca(e,t,!0):Array.isArray(e)&&Array.isArray(t)&&e.length===t.length?e.flatMap((r,n)=>{if(je(r,t[n]))return[];const i=hm(r,t[n]);return i.length?i.map(s=>`${n}.${s}`):[String(n)]}):[]}function Ca(e,t,r=!1){if(e===t)return[];if(!Or(e))return Or(t)?Object.keys(t):[];if(!Or(t))return Object.keys(e);const n=Object.keys(e),i=new Set(n),s=n.filter(o=>!je(e[o],me(t,o))).flatMap(o=>{if(!r)return[o];const c=hm(e[o],me(t,o));return c.length?c.map(l=>`${o}.${l}`):[o]}),a=Object.keys(t).filter(o=>!i.has(o));return[...s,...a]}function a0(e,t,r=[1900,new Date().getFullYear()+2],n="YMD"){const{day:i,month:s,year:a,hour:o,minute:c,second:l}=e,u={type:"day",range:[1,31],value:i},m={type:"month",range:[1,12],value:s},_={type:"year",range:r,value:a},v=[];switch(n){case"MDY":v.push(m,u,_);break;case"DMY":v.push(u,m,_);break;case"YMD":default:v.push(_,m,u)}return t&&v.push({type:"hour",range:[0,23],value:o},{type:"minute",range:[0,59],value:c},{type:"second",range:[0,59],value:l}),v}function o0(e){const t={};return e.multipleOf&&(t.step=e.multipleOf),(e.minimum||e.minimum===0)&&(t.min=e.minimum),(e.maximum||e.maximum===0)&&(t.max=e.maximum),t}function c0(e,t,r={},n=!0){const i={type:t||"text",...o0(e)};return r.inputType?i.type=r.inputType:t||(e.type==="number"?(i.type="number",n&&i.step===void 0&&(i.step="any")):e.type==="integer"&&(i.type="number",i.step===void 0&&(i.step=1))),["date","datetime-local","time","week","month"].includes(i.type)&&(e.formatMinimum!==void 0&&(i.min=e.formatMinimum),e.formatMaximum!==void 0&&(i.max=e.formatMaximum)),r.autocomplete&&(i.autoComplete=r.autocomplete),r.autocapitalize&&(i.autoCapitalize=r.autocapitalize),r.accept&&(i.accept=r.accept),i}function Xc(e){return e?.optionValueFormat??"indexed"}const ou={props:{disabled:!1},submitText:"Submit",norender:!1};function l0(e={}){const t=pe(e);if(t?.[ja]){const r=t[ja];return{...ou,...r}}return ou}function _e(e,t,r={}){const{templates:n}=t;if(e==="ButtonTemplates")return n[e];if(Object.hasOwn(r,e)&&typeof r[e]=="string"&&Object.hasOwn(n,r[e])){const i=r[e];return n[i]}return r[e]||n[e]}let cu=0;function Zc(){if(me(globalThis,["process","env","NODE_ENV"])!=="test")return{};const e=new Map;return new Proxy({},{get(t,r){return e.has(r)||(cu+=1,e.set(r,`test-id-${cu}`)),e.get(r)}})}var Io={exports:{}},Be={};var lu;function u0(){if(lu)return Be;lu=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),a=Symbol.for("react.context"),o=Symbol.for("react.server_context"),c=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),u=Symbol.for("react.suspense_list"),m=Symbol.for("react.memo"),_=Symbol.for("react.lazy"),v=Symbol.for("react.offscreen"),S;S=Symbol.for("react.module.reference");function E(g){if(typeof g=="object"&&g!==null){var y=g.$$typeof;switch(y){case e:switch(g=g.type,g){case r:case i:case n:case l:case u:return g;default:switch(g=g&&g.$$typeof,g){case o:case a:case c:case _:case m:case s:return g;default:return y}}case t:return y}}}return Be.ContextConsumer=a,Be.ContextProvider=s,Be.Element=e,Be.ForwardRef=c,Be.Fragment=r,Be.Lazy=_,Be.Memo=m,Be.Portal=t,Be.Profiler=i,Be.StrictMode=n,Be.Suspense=l,Be.SuspenseList=u,Be.isAsyncMode=function(){return!1},Be.isConcurrentMode=function(){return!1},Be.isContextConsumer=function(g){return E(g)===a},Be.isContextProvider=function(g){return E(g)===s},Be.isElement=function(g){return typeof g=="object"&&g!==null&&g.$$typeof===e},Be.isForwardRef=function(g){return E(g)===c},Be.isFragment=function(g){return E(g)===r},Be.isLazy=function(g){return E(g)===_},Be.isMemo=function(g){return E(g)===m},Be.isPortal=function(g){return E(g)===t},Be.isProfiler=function(g){return E(g)===i},Be.isStrictMode=function(g){return E(g)===n},Be.isSuspense=function(g){return E(g)===l},Be.isSuspenseList=function(g){return E(g)===u},Be.isValidElementType=function(g){return typeof g=="string"||typeof g=="function"||g===r||g===i||g===n||g===l||g===u||g===v||typeof g=="object"&&g!==null&&(g.$$typeof===_||g.$$typeof===m||g.$$typeof===s||g.$$typeof===a||g.$$typeof===c||g.$$typeof===S||g.getModuleId!==void 0)},Be.typeOf=E,Be}var uu;function d0(){return uu||(uu=1,Io.exports=u0()),Io.exports}var f0=d0();const du=$i(f0),No={boolean:{checkbox:"CheckboxWidget",radio:"RadioWidget",select:"SelectWidget",hidden:"HiddenWidget"},string:{text:"TextWidget",password:"PasswordWidget",email:"EmailWidget",hostname:"TextWidget",ipv4:"TextWidget",ipv6:"TextWidget",uri:"URLWidget","data-url":"FileWidget",radio:"RadioWidget",select:"SelectWidget",textarea:"TextareaWidget",hidden:"HiddenWidget",date:"DateWidget",datetime:"DateTimeWidget","date-time":"DateTimeWidget","alt-date":"AltDateWidget","alt-datetime":"AltDateTimeWidget",time:"TimeWidget",color:"ColorWidget",file:"FileWidget"},number:{text:"TextWidget",select:"SelectWidget",updown:"UpDownWidget",range:"RangeWidget",radio:"RadioWidget",hidden:"HiddenWidget"},integer:{text:"TextWidget",select:"SelectWidget",updown:"UpDownWidget",range:"RangeWidget",radio:"RadioWidget",hidden:"HiddenWidget"},array:{select:"SelectWidget",checkboxes:"CheckboxesWidget",files:"FileWidget",hidden:"HiddenWidget"}};function h0(e){let{MergedWidget:t}=e;if(!t){const r=e.defaultProps?.options||{};t=({options:n,...i})=>R.jsx(e,{options:{...r,...n},...i}),e.MergedWidget=t}return t}function vr(e,t,r={}){const n=Gt(e);if(typeof t=="function"||t&&du.isForwardRef(Z.createElement(t))||du.isMemo(t))return h0(t);if(typeof t!="string")throw new Error(`Unsupported widget definition: ${typeof t} in schema: ${JSON.stringify(e)}`);if(t in r){const i=r[t];return vr(e,i,r)}if(typeof n=="string"){if(!(n in No))throw new Error(`No widget for type '${n}' in schema: ${JSON.stringify(e)}`);if(t in No[n]){const i=r[No[n][t]];return vr(e,i,r)}}throw new Error(`No widget '${t}' for type '${n}' in schema: ${JSON.stringify(e)}`)}function mm(e){let t=0;for(let r=0;ri===void 0?"undefined":Ra(i)).join(",")}]`;if(e===null||typeof e!="object")return JSON.stringify(typeof e=="function"?null:e);const r=e;return`{${Object.keys(r).sort().filter(i=>t(r[i])).map(i=>`${JSON.stringify(i)}:${Ra(r[i])}`).join(",")}}`}function zt(e){return mm(Ra(e))}function m0(e){return mm(Ra(e))}function p0(e,t,r={}){try{return vr(e,t,r),!0}catch(n){const i=n;if(i.message&&(i.message.startsWith("No widget")||i.message.startsWith("Unsupported widget")))return!1;throw n}}function Rn(e,t){return`${typeof e=="string"?e:e[Ue]}__${t}`}function ai(e){return Rn(e,"description")}function pm(e){return Rn(e,"error")}function Qc(e){return Rn(e,"examples")}function ym(e){return Rn(e,"help")}function el(e){return Rn(e,"title")}function $n(e,t=!1){const r=t?` ${Qc(e)}`:"";return`${pm(e)} ${ai(e)} ${ym(e)}${r}`}function gm(e,t){return`${e}-${t}`}function _n(e,t){return Rn(e,t)}function Ro(e,t){return Rn(e,`optional${t}`)}function oi(e){return e==null?!1:typeof e!="object"||Array.isArray(e)?!0:Object.keys(e).length>0}function y0(e,t){const{rootSchema:r,schemaUtils:n}=e;if(je(t,r))return!0;if(Je in r){const i=n.retrieveSchema(r);return je(t,i)}return!1}function g0(e,t,r){return t?r:e}function v0(e){return e?new Date(e).toJSON():void 0}function b0(e,t,r,n=!1){!n&&Array.isArray(r)&&t.default!==void 0&&dm(t.default,r,n)===void 0&&console.error(`The schema default value "${t.default}" is not one of the values in the enum options for "${e}"`)}function tl(e,t,r){const n=[_y];return lt(e,Rl)&&n.unshift(Rl),me(e,[...n,t],r)}function $o(){}function _0(e,t){if(!Array.isArray(t))return e;const r=u=>u.reduce((m,_)=>(m[_]=!0,m),{}),n=u=>u.length>1?`properties '${u.join("', '")}'`:`property '${u[0]}'`,i=r(e),s=t.filter(u=>u==="*"||i[u]),a=r(s),o=e.filter(u=>!a[u]),c=s.indexOf("*");if(c===-1){if(o.length)throw new Error(`uiSchema order list does not contain ${n(o)}`);return s}if(c!==s.lastIndexOf("*"))throw new Error("uiSchema order list contains more than one wildcard item");const l=[...s];return l.splice(c,1,...o),l}function Fo(e,t=!0){if(!e)return{year:-1,month:-1,day:-1,hour:t?-1:0,minute:t?-1:0,second:t?-1:0};const r=new Date(e);if(Number.isNaN(r.getTime()))throw new Error(`Unable to parse date ${e}`);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:t?r.getUTCHours():0,minute:t?r.getUTCMinutes():0,second:t?r.getUTCSeconds():0}}function S0(e,t,r){const n=e[ba]??e[Je],i=r.uiSchemaDefinitions,s=n&&i?i[n]:void 0;let a;if(s?!t||Object.keys(t).length===0?a={...s}:a=Xr(s,t):a=t||{},i){let o=e;if(n&&e[Je]&&!e[ba])try{o=ki(n,r.rootSchema)}catch(c){return console.warn(`could not resolve $ref in resolveUiSchema: -`,c),a}for(const c of[Se,Ne]){const l=o[c];if(Array.isArray(l)&&l.length>0){const u=a[c],m=Array.isArray(u)?[...u]:[];let _=!1;for(let v=0;vEa(r);return e.allOf.some(t)}return!1}function w0({hideLabel:e,id:t,multiple:r,options:n,registry:i,uiSchema:s,value:a}){if(r||e)return null;const{label:o=!0}=pe(s,i.globalUiOptions);if(!o)return null;const c=n.enumOptions?.find(({value:m})=>Ga(m,a)),l=c?.schema?.description;if(!l)return null;const u=_e("DescriptionFieldTemplate",i,n);return R.jsx(u,{id:ai(t),description:l,schema:c.schema,uiSchema:s,registry:i})}function bc(e,t){if(Object.is(e,t))return!0;if(e==null||t==null||typeof e!="object"||typeof t!="object")return!1;const r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let i=0;iue(r)?Gt(r):void 0).flat().filter(r=>r!==void 0))];return t.length===1?t[0]:t}function Fi(e,t,r,n){const{enableOptionalDataFieldForType:i=[]}=pe(n,e.globalUiOptions);let s;return Ne in t&&Array.isArray(t[Ne])?s=fu(t[Ne]):Se in t&&Array.isArray(t[Se])?s=fu(t[Se]):s=Gt(t),!y0(e,t)&&!r&&!!s&&!Array.isArray(s)&&!!i.find(a=>a===s)}function hu(e,t=!0){const{year:r,month:n,day:i,hour:s=0,minute:a=0,second:o=0}=e,c=Date.UTC(r,n-1,i,s,a,o),l=new Date(c).toJSON();return t?l:l.slice(0,10)}function vm(e,t=[]){return e?bm(e,t):[]}function bm(e,t){const r=e[vt],n=`.${t.join(".")}`,i=Array.isArray(r)?r.map(s=>({property:n,message:s,stack:`${n} ${s}`})):[];return Object.keys(e).reduce((s,a)=>{const o=e[a];return a!==vt&&Or(o)?s.concat(bm(o,[...t,a])):s},i)}function E0(e){const t=new fm;return e.length&&e.forEach(r=>{const{property:n,message:i}=r,s=n?rr(n):[];i&&t.addErrors(i,s)}),t.ErrorSchema}function nr(e,t,r,n){const i=Array.isArray(r)?r:r?.path,s=e===""?[]:[e],a=i?i.concat(...s):s,o=[t.idPrefix,...a].join(t.idSeparator);let c;return t.nameGenerator&&a.length>0&&(c=t.nameGenerator(a,t.idPrefix,n)),{path:a,[Ue]:o,...c!==void 0&&{name:c}}}function A0(e){return _m(e)}function _m(e){return Object.keys(e).reduce((t,r)=>{if(r==="addError")return t;const n=e[r];return Or(n)?{...t,[r]:_m(n)}:{...t,[r]:n}},{})}function P0(e){return Object.values(e).every(t=>t!==-1)}function x0(e){const{className:t="form-control",type:r,range:n,value:i,select:s,rootId:a,name:o,disabled:c,readonly:l,autofocus:u,registry:m,onBlur:_,onFocus:v}=e,S=`${a}_${r}`,{SelectWidget:E}=m.widgets,g=Z.useCallback(y=>s(r,y),[s,r]);return R.jsx(E,{schema:{type:"integer"},id:S,name:o,className:t,options:{enumOptions:um(n[0],n[1])},placeholder:r,value:i,disabled:c,readonly:l,autofocus:u,onChange:g,onBlur:_,onFocus:v,registry:m,label:"","aria-describedby":$n(a)})}function O0(e){const{time:t=!1,disabled:r=!1,readonly:n=!1,options:i,onChange:s,value:a}=e,[o,c]=Z.useState(Fo(a,t));Z.useEffect(()=>{c(Fo(a,t))},[t,a]);const l=Z.useCallback((v,S)=>{const E={...o,[v]:typeof S>"u"?-1:S};P0(E)?s(hu(E,t)):c(E)},[o,s,t]),u=Z.useCallback(v=>{v.preventDefault(),!(r||n)&&s(void 0)},[r,n,s]),m=Z.useCallback(v=>{if(v.preventDefault(),r||n)return;const S=Fo(new Date().toJSON(),t);s(hu(S,t))},[r,n,t,s]);return{elements:Z.useMemo(()=>a0(o,t,i.yearsRange,i.format),[o,t,i.yearsRange,i.format]),handleChange:l,handleClear:u,handleSetNow:m}}function ci(e){const t=Z.useRef(e);return je(e,t.current)||(t.current=e),t.current}function j0(e,t){return e.replace(";base64",`;name=${encodeURIComponent(t)};base64`)}async function k0(e){const{name:t,size:r,type:n}=e;return new Promise((i,s)=>{const a=new window.FileReader;a.onerror=s,a.onload=o=>{typeof o.target?.result=="string"?i({dataURL:j0(o.target.result,t),name:t,size:r,type:n}):i({dataURL:null,name:t,size:r,type:n})},a.readAsDataURL(e)})}async function I0(e){return Promise.all(Array.from(e).map(k0))}function mu(e){return e.reduce((t,r)=>{if(!r)return t;try{const{blob:n,name:i}=e0(r);return[...t,{dataURL:r,name:i,size:n.size,type:n.type}]}catch{return t}},[])}function N0(e,t,r=!1){const n=Z.useMemo(()=>r&&e?Array.isArray(e)?e:[e]:[],[e,r]),i=Z.useMemo(()=>Array.isArray(e)?mu(e):mu([e||""]),[e]),s=Z.useCallback(async o=>{const l=(await I0(o)).map(u=>u.dataURL||null);t(r?n.concat(...l):l[0])},[n,r,t]),a=Z.useCallback(o=>{if(r){const c=n.filter((l,u)=>u!==o);t(c)}else t(void 0)},[n,r,t]);return{filesInfo:i,handleChange:s,handleRemove:a}}function R0(e){if(!e)return"";const t=new Date(e),r=Lr(t.getFullYear(),4),n=Lr(t.getMonth()+1,2),i=Lr(t.getDate(),2),s=Lr(t.getHours(),2),a=Lr(t.getMinutes(),2),o=Lr(t.getSeconds(),2),c=Lr(t.getMilliseconds(),3);return`${r}-${n}-${i}T${s}:${a}:${o}.${c}`}function xi(e,t,r=!1){if(!t)return e;const{errors:n,errorSchema:i}=e;let s=vm(t),a=t;return i&&Object.keys(i).length>0&&(a=Xr(i,t,r?"preventDuplicates":!0),s=[...n].concat(s)),{errorSchema:a,errors:s}}function $0(e){const t=e;for(const r in t)if(Object.hasOwn(t,r)){const n=t[r];r===Je&&typeof n=="string"&&n.startsWith("#")?t[r]=qh+n:t[r]=rl(n)}return e}function F0(e){return e.map(t=>rl(t))}function rl(e){return Array.isArray(e)?F0([...e]):ue(e)?$0({...e}):e}var $e;(function(e){e.ArrayItemTitle="Item",e.MissingItems="Missing items definition",e.EmptyArray="No items yet. Use the button below to add some.",e.YesLabel="Yes",e.NoLabel="No",e.CloseLabel="Close",e.ErrorsLabel="Errors",e.NewStringDefault="New Value",e.AddButton="Add",e.AddItemButton="Add Item",e.CopyButton="Copy",e.ExpandButton="Expand Cycle",e.MoveDownButton="Move down",e.MoveUpButton="Move up",e.RemoveButton="Remove",e.NowLabel="Now",e.ClearLabel="Clear",e.AriaDateLabel="Select a date",e.PreviewLabel="Preview",e.DecrementAriaLabel="Decrease value by 1",e.IncrementAriaLabel="Increase value by 1",e.OptionalObjectAdd="Add data for optional field",e.OptionalObjectRemove="Remove data for optional field",e.OptionalObjectEmptyMsg="No data for optional field",e.Type="Type",e.Value="Value",e.ClearButton="clear input",e.UnknownFieldType="Unknown field type %1",e.OptionPrefix="Option %1",e.TitleOptionPrefix="%1 option %2",e.KeyLabel="%1 Key",e.DeprecatedLabel="%1 (deprecated)",e.CycleDetected='Circular reference ($ref cycle) detected for field "%1". You may choose to expand to the next cycle break',e.InvalidObjectField='Invalid "%1" object field configuration: _%2_.',e.UnsupportedField="Unsupported field schema.",e.UnsupportedFieldWithId="Unsupported field schema for field `%1`.",e.UnsupportedFieldWithReason="Unsupported field schema: _%1_.",e.UnsupportedFieldWithIdAndReason="Unsupported field schema for field `%1`: _%2_.",e.FilesInfo="**%1** (%2, %3 bytes)"})($e||($e={}));let pu=0;function _c(){return pu+=1,`rjsf-array-item-${pu}`}function yu(e){return Array.isArray(e)?e.map(t=>({key:_c(),item:t})):[]}function Sm(e){return Array.isArray(e)?e.map(t=>t.item):[]}function D0(e){return Array.isArray(e.type)?!e.type.includes("null"):e.type!=="null"}function wm(e,t,r,n){let{addable:i}=pe(n,e.globalUiOptions);return i!==!1&&(t.maxItems!==void 0?i=r.lengthB.retrieveSchema(S,E),[B,S,E]),A=Z.useMemo(()=>nr(r,X,y),[r,X,y]),w=J||Y,j=_e("ArrayFieldItemTemplate",o,c),p=B.getDisplayLabel(re,g,Q),{description:d}=pe(g),P=!!d||!!re.description,{orderable:I=!0,removable:T=!0,copyable:F=!1}=c,z={moveUp:I&&_,moveDown:I&&v,copy:F&&u,remove:T&&m,toolbar:!1};z.toolbar=Object.keys(z).some(W=>z[W]);const H=Z.useCallback(W=>{M(W,r+1)},[M,r]),N=Z.useCallback(W=>{q(W,r)},[q,r]),D=Z.useCallback(W=>{U(W,r)},[U,r]),V=Z.useCallback(W=>{L(W,r,r-1)},[L,r]),K=Z.useCallback(W=>{L(W,r,r+1)},[L,r]),G={children:R.jsx(w,{name:n,title:$,index:r,schema:re,uiSchema:g,formData:E,errorSchema:f,fieldPathId:A,required:D0(re),onChange:b,onBlur:x,onFocus:h,registry:o,disabled:i,readonly:a,hideError:s,autofocus:C,rawErrors:O}),buttonsProps:{fieldPathId:A,disabled:i,readonly:a,canAdd:u,hasCopy:z.copy,hasMoveUp:z.moveUp,hasMoveDown:z.moveDown,hasRemove:z.remove,index:r,totalItems:k,onAddItem:H,onCopyItem:N,onRemoveItem:D,onMoveUpItem:V,onMoveDownItem:K,registry:o,schema:re,uiSchema:g},itemKey:t,className:"rjsf-array-item",disabled:i,hasToolbar:z.toolbar,index:r,totalItems:k,readonly:a,registry:o,schema:re,uiSchema:g,parentUiSchema:l,displayLabel:p,hasDescription:P};return R.jsx(j,{...G})}const Em=Z.memo(L0);function V0(e){const{schema:t,uiSchema:r={},errorSchema:n,fieldPathId:i,formData:s,name:a,title:o,disabled:c=!1,readonly:l=!1,autofocus:u=!1,required:m=!1,hideError:_=!1,registry:v,onBlur:S,onFocus:E,rawErrors:g,onChange:y,keyedFormData:f,handleAddItem:C,handleCopyItem:x,handleRemoveItem:h,handleReorderItems:b}=e,O=t.title||o||a,{schemaUtils:k,fields:$,formContext:M,globalUiOptions:q}=v,{OptionalDataControlsField:U}=$,L=Z.useMemo(()=>pe(r,q),[r,q]),B=Z.useMemo(()=>ue(t.items)?t.items:{},[t.items]),J=Z.useMemo(()=>k.retrieveSchema(B),[k,B]),Y=Z.useMemo(()=>Sm(f),[f]),Q=Fi(v,t,m,r),X=oi(s),re=Z.useMemo(()=>wm(v,t,Y,r)&&(!Q||X),[v,t,Y,r,Q,X]),A=X?f:[],w=Q?" rjsf-optional-array-field":"",j=e.childFieldPathId??i,p=Q?R.jsx(U,{...e,fieldPathId:j}):void 0,d={canAdd:re,items:A.map((I,T)=>{const{key:F,item:z}=I,H=z,N=n?n[T]:void 0,D=Cm(r,z,T,M),V={itemKey:F,index:T,name:a&&`${a}-${T}`,registry:v,uiOptions:L,parentUiSchema:r,hideError:_,readonly:l,disabled:c,required:m,title:O?`${O}-${T+1}`:void 0,canAdd:re,canMoveUp:T>0,canMoveDown:Tpe(r,q),[r,q]),{OptionalDataControlsField:L}=$,B=Fi(v,t,m,r),J=oi(n),Y=Z.useMemo(()=>Array.isArray(t.items)?t.items:[],[t.items]),Q=ue(t.additionalItems),X=e.childFieldPathId??s;O.length{const{key:T,item:F}=P,z=F,H=I>=Y.length,N=(H&&ue(t.additionalItems)?t.additionalItems:Y[I])||{};let D;H?D=r.additionalItems:Array.isArray(r.items)?D=r.items[I]:D=Cm(r,F,I,M);const V=i?i[I]:void 0,K={index:I,itemKey:T,name:a&&`${a}-${I}`,registry:v,uiOptions:U,parentUiSchema:r,hideError:_,readonly:l,disabled:c,required:m,title:k?`${k}-${I+1}`:void 0,canAdd:j,canRemove:H,canMoveUp:I>=Y.length+1,canMoveDown:H&&Izt(e),[e]),[r,n]=Z.useState(()=>({formDataHash:t,keyedFormData:yu(e)}));let{keyedFormData:i,formDataHash:s}=r;if(t!==s){const o=Array.isArray(e)?e:[],c=i||[];i=o.length===c.length?c.map((l,u)=>({key:l.key,item:o[u]})):yu(o),s=t,n({formDataHash:s,keyedFormData:i})}const a=Z.useCallback(o=>{const c=Sm(o),l=zt(c);return n({formDataHash:l,keyedFormData:o}),c},[]);return{keyedFormData:i,updateKeyedFormData:a}}function H0(e){const{schema:t,uiSchema:r,errorSchema:n,fieldPathId:i,registry:s,formData:a,onChange:o}=e,{globalFormOptions:c,schemaUtils:l,translateString:u}=s,{keyedFormData:m,updateKeyedFormData:_}=B0(a),v=Z.useRef(m);v.current=m;const S=Z.useRef(n);S.current=n;const E=e.childFieldPathId??i,g=Z.useCallback((k,$)=>{k&&k.preventDefault();let M;if(S.current){M={};for(const L of Object.keys(S.current)){const B=parseInt(L,10);$===void 0||B<$?st(M,B,S.current[B]):B>=$&&st(M,B+1,S.current[B])}}const q={key:_c(),item:T0(s,t)},U=[...v.current];$!==void 0?U.splice($,0,q):U.push(q),o(_(U),E.path,M)},[s,t,o,_,E]),y=Z.useCallback((k,$)=>{k&&k.preventDefault();let M;if(S.current){M={};for(const L of Object.keys(S.current)){const B=parseInt(L,10);B<=$?st(M,B,S.current[B]):B>$&&st(M,B+1,S.current[B])}}const q={key:_c(),item:structuredClone(v.current[$].item)},U=[...v.current];$!==void 0?U.splice($+1,0,q):U.push(q),o(_(U),E.path,M)},[o,_,E]),f=Z.useCallback((k,$)=>{k&&k.preventDefault();let M;if(S.current){M={};for(const U of Object.keys(S.current)){const L=parseInt(U,10);L<$?st(M,L,S.current[L]):L>$&&st(M,L-1,S.current[L])}}const q=v.current.filter((U,L)=>L!==$);o(_(q),E.path,M)},[o,_,E]),C=Z.useCallback((k,$,M)=>{k&&(k.preventDefault(),k.currentTarget.blur());let q;if(S.current){q={};for(const B of Object.keys(S.current)){const J=parseInt(B,10);J===$?st(q,M,S.current[$]):J===M?st(q,$,S.current[M]):st(q,B,S.current[J])}}function U(){const B=v.current.slice();return B.splice($,1),B.splice(M,0,v.current[$]),B}const L=U();o(_(L),E.path,q)},[o,_,E]),x=Z.useCallback((k,$,M,q)=>{const U=typeof $.at(-1)=="number";o(U&&k===void 0?null:k,$,M,q)},[o]),h=Z.useCallback(k=>{o(k,E.path,void 0,E?.[Ue])},[o,E]),b={...e,formData:a,fieldPathId:E,onSelectChange:h},O={...e,handleAddItem:g,handleCopyItem:y,handleRemoveItem:f,handleReorderItems:C,keyedFormData:m,onChange:x};if(!(ni in t)){if(!c.useFallbackUiForUnsupportedType){const $=pe(r),M=_e("UnsupportedFieldTemplate",s,$);return R.jsx(M,{schema:t,fieldPathId:i,reason:u($e.MissingItems),registry:s})}const k={...t,[ni]:{type:void 0}};b.schema=k,O.schema=k}return l.isMultiSelect(b.schema)?R.jsx(M0,{...b}):am(r)?R.jsx(q0,{...b}):Gc(b.schema)?R.jsx(z0,{...O}):l.isFilesArray(b.schema,r)?R.jsx(U0,{...b}):R.jsx(V0,{...O})}function K0(e){const{schema:t,name:r,uiSchema:n,fieldPathId:i,formData:s,registry:a,required:o,disabled:c,readonly:l,hideError:u,autofocus:m,title:_,onChange:v,onFocus:S,onBlur:E,rawErrors:g}=e,{title:y}=t,{widgets:f,translateString:C,globalUiOptions:x}=a,{widget:h="checkbox",title:b,label:O=!0,enumNames:k,...$}=pe(n,x),M=vr(t,h,f),q=C($e.YesLabel),U=C($e.NoLabel);let L;const B=b??y??_??r;if(Array.isArray(t.oneOf))L=Pn({oneOf:t.oneOf.map(Y=>{if(ue(Y))return{...Y,title:Y.title||(Y.const===!0?q:U)}}).filter(Y=>Y)},n);else{const Y=t.enum??[!0,!1];!k&&Y.length===2&&Y.every(Q=>typeof Q=="boolean")?L=[{value:Y[0],label:Y[0]?q:U},{value:Y[1],label:Y[1]?q:U}]:L=Pn({enum:Y},n)}const J=Z.useCallback((Y,Q,X)=>v(Y,i.path,Q,X),[v,i]);return R.jsx(M,{options:{...$,enumOptions:L},schema:t,uiSchema:n,id:i.$id,name:r,onChange:J,onFocus:S,onBlur:E,label:B,hideLabel:!O,value:s,required:o,disabled:c,readonly:l,hideError:u,registry:a,autofocus:m,rawErrors:g,htmlName:i.name})}function G0(e){const[t,r]=Z.useState(!1),{name:n,registry:i,schema:s,uiSchema:a,fieldPathId:o}=e,{globalUiOptions:c}=i,l=pe(a,c),u=_e("CyclicSchemaExpandTemplate",i,l);if(!t)return R.jsx(u,{registry:i,schema:s,uiSchema:a,name:n,fieldPathId:o,onExpand:()=>r(!0)});const{fields:m}=i,{SchemaField:_}=m;return R.jsx(_,{...e,schema:{...s,[Vc]:!1}})}function W0(e){return{type:"string",enum:["string","number","boolean","object","array"],default:"string",title:e}}function J0(e){const t=typeof e;return t==="string"||t==="number"||t==="boolean"?t:t==="object"?Array.isArray(e)?"array":"object":"string"}function Y0(e,t){switch(t){case"string":return String(e);case"number":{const r=Number(e);return Number.isNaN(r)?0:r}case"boolean":return!!e;default:return e}}function X0(e){const{id:t,formData:r,displayLabel:n=!0,schema:i,name:s,uiSchema:a,required:o,disabled:c=!1,readonly:l=!1,onBlur:u,onFocus:m,registry:_,fieldPathId:v,onChange:S,errorSchema:E}=e,{translateString:g,fields:y,globalFormOptions:f}=_,[C,x]=Z.useState(J0(r)),h=pe(a),b=ci(nr("__internal_type_selector",f,v)),O=g($e.Type),k=Z.useMemo(()=>W0(O),[O]),$=U=>{U!=null&&(x(U),S(Y0(r,U),v.path,E,t))};if(!f.useFallbackUiForUnsupportedType){const{reason:U=g($e.UnknownFieldType,[String(i.type)])}=e,L=_e("UnsupportedFieldTemplate",_,h);return R.jsx(L,{schema:i,fieldPathId:v,reason:U,registry:_})}const M=_e("FallbackFieldTemplate",_,h),{SchemaField:q}=y;return R.jsx(M,{schema:i,registry:_,typeSelector:R.jsx(q,{fieldPathId:b,name:`${s}__fallback_type`,schema:k,formData:C,onChange:$,onBlur:u,onFocus:m,registry:_,hideLabel:!n,disabled:c,readonly:l,required:o},r?zt(r):"__empty__"),schemaField:R.jsx(q,{...e,schema:{type:C,title:g($e.Value),...C==="object"&&{additionalProperties:!0}}})})}var mr;(function(e){e.ROW="ui:row",e.COLUMN="ui:col",e.COLUMNS="ui:columns",e.CONDITION="ui:condition"})(mr||(mr={}));var ji;(function(e){e.ALL="all",e.SOME="some",e.NONE="none"})(ji||(ji={}));const Z0=/^\$lookup=(.+)/,Do="layoutGrid";function gu(e,t){return e??t}function Q0(e){return/^\d+?$/.test(e)}const Gr=Zc();function ev(e,t,r,n,i){const s=r?.[mc]??{},a=me(r,rr(e)),o={...a?.[Br]??{},...t,...s},c={...a};Object.keys(o).length>0&&(c[Br]=o),Object.keys(s).length>0&&(c[mc]=s);let{readonly:l}=pe(c);if(i===!0||l===void 0&&n===!0){l=!0;const u=c[Br];u&&bo in u?u[bo]=!0:c[`ui:${bo}`]=!0}return{fieldUiSchema:c,uiReadonly:l}}function tv(e,t,r="$0m3tH1nG Un3xP3cT3d"){const n=[t].flat().sort(),i=[r].flat().sort();switch(e){case ji.ALL:return je(n,i);case ji.SOME:return n.some(s=>i.includes(s));case ji.NONE:return!n.some(s=>i.includes(s));default:return!1}}function Wa(e,t,r){let n={},i=e[t];if(Or(i)){const{children:s,className:a,...o}=i;if(i=s,a){const l=a.split(" ").map(u=>tl(r,u,u)).join(" ");n={...o,className:l}}else n=o}if(!Array.isArray(i))throw new TypeError(`Expected array for "${t}" in ${JSON.stringify(e)}`);return{children:i,gridProps:n}}function vu(e,t,r){let n,i=t;if(Q0(r)&&e&&e?.type==="array"&&ni in e){const s=Number(r),a=e[ni];Array.isArray(a)?s>a.length?n=a.at(-1):n=a[s]:n=a,i={[Ue]:t[Ue],path:[...t.path.slice(0,t.path.length-1),s]}}return{rawSchema:n,fieldPathId:i}}function rv(e,t,r,n,i){const{schemaUtils:s,globalFormOptions:a}=e;let o=r,c=i;const l=t.split("."),u=l.pop();let m=s.retrieveSchema(o,n),_=n,v=m.readOnly;l.forEach(g=>{c=nr(g,a,c);const y=m?.[rt];if(y)o=y[g]??{};else if(m&&(Se in m||Ne in m)){const f=Se in m?Se:Ne,C=s.findSelectedOptionInXxxOf(m,g,f,_);o=gr(C,g)}else{const f=vu(m,c,g);o=f.rawSchema??{},c=f.fieldPathId}_=me(_,g,{}),m=s.retrieveSchema(o,_),v=gu(m.readOnly,v)});let S,E=!1;if((!m||Object.keys(m).length===0)&&(m=void 0),m&&u){if(m&&(Se in m||Ne in m)){const y=Se in m?Se:Ne;m=s.findSelectedOptionInXxxOf(m,u,y,_)}c=nr(u,a,c),E=m!==void 0&&Array.isArray(m.required)&&m.required.includes(u);const g=vu(m,c,u);if(g.rawSchema?(m=g.rawSchema,c=g.fieldPathId):(m=m?.[rt]?.[u],m=m&&s.retrieveSchema(m)),v=gu(m?.readOnly,v),m&&(Se in m||Ne in m)){const y=Se in m?Se:Ne,f=Kt(m);S={options:m[y],hasDiscriminator:!!f}}}return{schema:m,isRequired:E,isReadonly:v,optionsInfo:S,fieldPathId:c}}function nv(e,t){let r=e;return typeof r=="string"&&(r=tl(t,r)),typeof r=="function"?r:null}function iv(e,t){let r,n=null,i={},s;if(typeof t=="string"||t===void 0)r=t??"";else{const{name:a="",render:o,...c}=t;r=a,i=c,Object.entries(i).forEach(([l,u])=>{if(typeof u=="string"){const m=Z0.exec(u);if(Array.isArray(m)&&m.length>1){const _=m[1];i[l]=tl(e,_,_)}}}),n=nv(o,e),!a&&n&&(s=R.jsx(n,{...c,"data-testid":Gr.uiComponent}))}return{name:r,UIComponent:n,uiProps:i,rendered:s}}function Ja(e){const{childrenLayoutGridSchemaId:t,...r}=e,{registry:n,schema:i,formData:s}=r,{schemaUtils:a}=n,o=a.retrieveSchema(i,s);return t.map(c=>Z.createElement(nl,{...r,key:`layoutGrid-${zt(c)}`,schema:o,layoutGridSchema:c}))}function sv(e){const{layoutGridSchema:t,...r}=e,{formData:n,registry:i}=r,{children:s,gridProps:a}=Wa(t,mr.CONDITION,i),{operator:o,field:c="",value:l}=a,u=me(n,rr(c),null);return tv(o,u,l)?R.jsx(Ja,{...r,childrenLayoutGridSchemaId:s}):null}function av(e){const{layoutGridSchema:t,...r}=e,{registry:n,uiSchema:i}=r,{children:s,gridProps:a}=Wa(t,mr.COLUMN,n),o=pe(i),c=_e("GridTemplate",n,o);return R.jsx(c,{column:!0,"data-testid":Gr.col,...a,children:R.jsx(Ja,{...r,childrenLayoutGridSchemaId:s})})}function ov(e){const{layoutGridSchema:t,...r}=e,{registry:n,uiSchema:i}=r,{children:s,gridProps:a}=Wa(t,mr.COLUMNS,n),o=pe(i),c=_e("GridTemplate",n,o);return s.map(l=>R.jsx(c,{column:!0,"data-testid":Gr.col,...a,children:R.jsx(Ja,{...r,childrenLayoutGridSchemaId:[l]})},`column-${zt(l)}`))}function cv(e){const{layoutGridSchema:t,...r}=e,{registry:n,uiSchema:i}=r,{children:s,gridProps:a}=Wa(t,mr.ROW,n),o=pe(i),c=_e("GridTemplate",n,o);return R.jsx(c,{...a,"data-testid":Gr.row,children:R.jsx(Ja,{...r,childrenLayoutGridSchemaId:s})})}function lv(e){const{gridSchema:t,schema:r,uiSchema:n,errorSchema:i,fieldPathId:s,onBlur:a,onFocus:o,formData:c,readonly:l,registry:u,layoutGridSchema:m,..._}=e,{onChange:v}=_,{fields:S}=u,{SchemaField:E,LayoutMultiSchemaField:g}=S,y=iv(u,t),{name:f,UIComponent:C,uiProps:x}=y,{schema:h,isRequired:b,isReadonly:O,optionsInfo:k,fieldPathId:$}=rv(u,f,r,c,s),M=ci($);if(y.rendered)return y.rendered;if(h){const q=k?.hasDiscriminator?g:E,{fieldUiSchema:U,uiReadonly:L}=ev(f,x,n,O,l),B=rr(f);return R.jsx(q,{"data-testid":k?.hasDiscriminator?Gr.layoutMultiSchemaField:Gr.field,..._,name:f,required:b,readonly:L,schema:h,uiSchema:U,errorSchema:me(i,B),fieldPathId:M,formData:me(c,B),onChange:v,onBlur:a,onFocus:o,options:k?.options,registry:u})}return C?R.jsx(C,{"data-testid":Gr.uiComponent,..._,name:f,required:b,formData:c,readOnly:!!O||l,errorSchema:i,uiSchema:n,schema:r,fieldPathId:s,onBlur:a,onFocus:o,registry:u,...x}):null}function nl(e){const{uiSchema:t}=e;let{layoutGridSchema:r}=e;const n=pe(t);if(!r&&Do in n&&ue(n[Do])&&(r=n[Do]),ue(r)){if(mr.ROW in r)return R.jsx(cv,{...e,layoutGridSchema:r});if(mr.COLUMN in r)return R.jsx(av,{...e,layoutGridSchema:r});if(mr.COLUMNS in r)return R.jsx(ov,{...e,layoutGridSchema:r});if(mr.CONDITION in r)return R.jsx(sv,{...e,layoutGridSchema:r})}return R.jsx(lv,{...e,gridSchema:r})}nl.TEST_IDS=Gr;function uv(e){const{fieldPathId:t,title:r,schema:n,uiSchema:i,required:s,registry:a,name:o}=e,c=pe(i,a.globalUiOptions),{title:l}=c,{title:u}=n,m=l||r||u||o;if(!m)return null;const _=_e("TitleFieldTemplate",a,c);return R.jsx(_,{id:el(t),title:m,required:s,schema:n,uiSchema:i,registry:a})}function To(e,t,r){const n="!@#!@$@#$!@$#";return e.map(({schema:s})=>s).find(s=>{const a=s[rt]?.[t];return me(a,An,me(a,It,n))===r})}function bu(e,t,r,n,i){const s=t.map(c=>r.retrieveSchema(c,i));let a=e;Se in e?a={...e,[Se]:s}:Ne in e&&(a={...e,[Ne]:s});const o=Pn(a,n);if(!o)throw new Error(`No enumOptions were computed from the schema ${JSON.stringify(a)}`);return o}function dv(e){const{name:t,baseType:r,disabled:n=!1,formData:i,fieldPathId:s,onBlur:a,onChange:o,options:c,onFocus:l,registry:u,uiSchema:m,schema:_,autofocus:v,readonly:S,required:E,errorSchema:g,hideError:y=!1}=e,{widgets:f,schemaUtils:C,globalUiOptions:x}=u,[h,b]=Z.useState(bu(_,c,C,m,i)),O=s[Ue],k=Kt(_),$=_e("FieldErrorTemplate",u,c),M=_e("FieldTemplate",u,c),q=zt(_),U=zt(c),L=m?zt(m):"",B=i?zt(i):"";Z.useEffect(()=>{b(bu(_,c,C,m,i))},[q,U,C,L,B]);const{widget:J=k?"radio":"select",title:Y="",placeholder:Q="",optionsSchemaSelector:X=k,hideError:re,...A}=pe(m);if(!X)throw new Error("No selector field provided for the LayoutMultiSchemaField");const w=me(i,X);let j=gr(h[0]?.schema,X);const p=To(h,X,w);j=j?.type?j:{...j,type:p?.type||r};const d=vr(j,J,f),P=re===void 0?y:!!re,I=g?.[vt]??[],T={...g};delete T[vt];const F=C.getDisplayLabel(_,m,x),z=D=>{if(n||S)return;const V=To(h,X,D),K=To(h,X,w);let G=C.sanitizeDataForNewSchema(V,K,i);G&&V&&(G=C.getDefaultFormState(V,G,"excludeObjectChildren")),G&&st(G,X,D),o(G,s.path,void 0,O)},H={enumOptions:h,...A},N=!P&&I.length>0?R.jsx($,{fieldPathId:s,schema:_,errors:I,registry:u}):void 0;return R.jsx(M,{fieldPathId:s,id:O,schema:_,label:(Y||_.title)??"",disabled:n||Array.isArray(h)&&h.length===0,uiSchema:m,required:E,readonly:!!S,registry:u,displayLabel:F,errors:N,onChange:o,onKeyRename:$o,onKeyRenameBlur:$o,onRemoveProperty:$o,children:R.jsx(d,{id:O,name:t,schema:_,label:(Y||_.title)??"",disabled:n||Array.isArray(h)&&h.length===0,uiSchema:m,autofocus:v,readonly:S,required:E,registry:u,multiple:!1,rawErrors:I,hideError:P,hideLabel:!F,errorSchema:T,placeholder:Q,onChange:z,onBlur:a,onFocus:l,value:w,options:H,htmlName:s.name})})}function _u(e){const{name:t,disabled:r=!1,errorSchema:n,formData:i,fieldPathId:s,onBlur:a,onChange:o,onFocus:c,options:l,readonly:u,registry:m,required:_=!1,schema:v,uiSchema:S}=e,{schemaUtils:E}=m,g=zt(i??null),y=Z.useMemo(()=>l.map(W=>E.retrieveSchema(W,i)),[l,E,g]),[f,C]=Z.useState(()=>{const W=Kt(v);return E.getClosestMatchingOption(i,y,0,W)}),x=Z.useRef(!1),h=Z.useRef(i),b=Z.useRef(s.$id);Z.useEffect(()=>{const W=h.current,te=b.current;if(h.current=i,b.current=s.$id,!je(i,W)&&s.$id===te){if(x.current){x.current=!1;return}const ne=Kt(v),se=E.getClosestMatchingOption(i,y,f,ne);se!==f&&C(se)}});const O=`${s.$id}${v.oneOf?"__oneof_select":"__anyof_select"}`,k=Z.useCallback(W=>{if(r||u)return;const te=W!==void 0?parseInt(W,10):-1;if(te===f)return;const ne=te>=0?y[te]:void 0,se=f>=0?y[f]:void 0;let ce=E.sanitizeDataForNewSchema(ne,se,i);ne&&(ce=E.getDefaultFormState(ne,ce,"excludeObjectChildren")),C(te),x.current=!0,o(ce,s.path,void 0,O)},[f,y,r,u,E,i,s,o,O]),{widgets:$,fields:M,translateString:q,globalUiOptions:U}=m,{SchemaField:L}=M,B=_e("MultiSchemaFieldTemplate",m,U),J=Fi(m,v,_,S),Y=oi(i),{widget:Q="select",placeholder:X,autofocus:re,autocomplete:A,title:w=v.title,...j}=pe(S,U),p=vr({type:"number"},Q,$),d=n?.[vt]??[],P={...n};delete P[vt];const I=E.getDisplayLabel(v,S,U),T=f>=0&&y[f]||null;let F;if(T){const{required:W,type:te}=v,ne={};W&&(ne.required=W),te!==void 0&&!("type"in T)&&(ne.type=te),F=Object.keys(ne).length>0?jr(ne,T):T}let z=[];Se in v&&S&&Se in S?Array.isArray(S[Se])?z=S[Se]:console.warn(`uiSchema.oneOf is not an array for "${w||t}"`):Ne in v&&S&&Ne in S&&(Array.isArray(S[Ne])?z=S[Ne]:console.warn(`uiSchema.anyOf is not an array for "${w||t}"`));let H=S;f>=0&&z.length>f&&(H=z[f]);const N=w?$e.TitleOptionPrefix:$e.OptionPrefix,D=w?[w]:[],V=y.map((W,te)=>{const{title:ne=W.title}=pe(z[te]);return{label:ne||q(N,D.concat(String(te+1))),value:te}}),K=!J||Y?R.jsx(p,{id:O,name:`${t}${v.oneOf?"__oneof_select":"__anyof_select"}`,schema:{type:"number",default:0},onChange:k,onBlur:a,onFocus:c,disabled:r||V.length===0,multiple:!1,rawErrors:d,errorSchema:P,value:f>=0?f:void 0,options:{enumOptions:V,...j},registry:m,placeholder:X,autocomplete:A,autofocus:re,label:w??t,hideLabel:!I,readonly:u}):void 0,G=F&&F.type!=="null"&&R.jsx(L,{...e,schema:F,uiSchema:H})||null;return R.jsx(B,{schema:v,registry:m,uiSchema:S,selector:K,optionSchemaField:G})}function fv(e){const{formData:t,onChange:r,fieldPathId:n}=e;return Z.useEffect(()=>{t===void 0&&r(null,n.path)},[n,t,r]),null}const hv=/\.([0-9]*0)*$/,mv=/[0.]0*$/;function pv(e){const{registry:t,onChange:r,formData:n,value:i}=e,[s,a]=Z.useState(i),{StringField:o}=t.fields,c=$h(),l=c==="."?"\\.":c;let u=n;const m=Z.useCallback((v,S,E,g)=>{a(v);const y=typeof v=="string"?v.replace(c,"."):v,f=`${y}`.startsWith(".")?`0${y}`:y,C=typeof f=="string"&&hv.exec(f)?Nl(f.replace(mv,"")):Nl(f);r(C,S,E,g)},[r,c]);if(typeof s=="string"&&typeof u=="number"){const v=new RegExp(`^(${String(u).replace(".",l)})?${l}?0*$`);s.match(v)&&(u=s)}let _=u;if(typeof u=="number"&&c!=="."){const{schema:v,uiSchema:S}=e,{schemaUtils:E}=t,y=(E.isSelect(v)?Pn(v,S):void 0)?"select":"text",{widget:f=y}=pe(S);f!=="radio"&&f!=="select"&&f!=="hidden"&&(_=String(u).replace(".",c))}return R.jsx(o,{...e,formData:_,onChange:m})}var Hi;function yv(e){if(!Hi){if(typeof document>"u")return;Hi=document.createElement("textarea")}var t=`&${e};`;Hi.innerHTML=t;var r=Hi.value;return r===t?void 0:r}var ie=32,ae=9,Zr=13,de=10,Le=96,ut=126,et=91,Ir=94,xe=62,Wt=35,Sc=37,we=45,Bt=61,mt=92,nt=42,Ze=95,He=60,Am=64,ir=93,Nt=33,Ya=38,Ct=58,wc=70,xn=102,$a=104,En=119,ei=116,Cc=112,Pm=115,gv=160,vv=12,bv=44,Fa=59,li=63,Ht=46,Qe=47,On=39,jn=34,Qr=43,ht=124,kn=123,il=125,er=40,tr=41,_v=78,Sv=110,wv=79,Cv=111,xm=120,Om=88,Ec=30,Ae=48,Pe=57,ve=65,be=90,ze=97,Xe=122,Xa=128,Qt=32,Ev={blockQuote:0,breakLine:1,breakThematic:2,codeBlock:3,codeInline:4,footnote:5,footnoteReference:6,frontmatter:7,gfmTask:8,heading:9,htmlBlock:10,htmlComment:11,htmlSelfClosing:12,image:13,link:14,orderedList:15,paragraph:16,ref:17,refCollection:18,table:19,text:20,textFormatted:21,unorderedList:22},ee=Ev;function Av(e){if(!wu(e,"---"))return null;let t=3;for(;t=e.length||e[t]!==` +import{e as Rh,r as Z,j as N,C as ot,T as $h,f as Fh,h as Kn,k as Dh,l as hi,L as kl,g as Fi,u as Np,a as Il,m as Rp,b as $p,D as Fp,c as Dp,S as Tp,A as Mp,n as qp}from"./index-CnHL-xtk.js";import{c as Up,d as Lp,u as Vp,r as zp,a as Bp,g as Hp,b as Kp}from"./api-C0PIt_OP.js";function br(e,t,r={}){return new Promise((n,s)=>{e.emit(t,r,(i={})=>{if(i.error){s(new Error(i.error));return}n(i)})})}function Gp(e){return br(e,"identityAdmin:listUsers")}function Nl(e,t){return br(e,"identityAdmin:getUser",{userId:t})}function Wp(e,t,r,n){return br(e,"identityAdmin:addSignal",{userId:t,type:r,value:n})}function Jp(e,t,r,n){return br(e,"identityAdmin:removeSignal",{userId:t,type:r,value:n})}function Yp(e,t,r){return br(e,"identityAdmin:setVerified",{userId:t,enabled:r})}function Xp(e,t,r,n){return br(e,"identityAdmin:setDeterrence",{userId:t,enabled:r,reason:n})}function Zp(e,t,r){return br(e,"identityAdmin:setMuted",{userId:t,enabled:r})}function Qp(e,t,r,n){return br(e,"identityAdmin:setPermission",{userId:t,permissionKey:r,enabled:n})}function ey(e,t,r,n){return br(e,"identityAdmin:updateFeatureState",{userId:t,namespace:r,value:n})}function ty(e,t,r){return br(e,"identityAdmin:deleteFeatureState",{userId:t,namespace:r})}const fc={cookieUserId:"Cookie keys",fingerprintId:"Fingerprints",nickname:"Nicknames",knownIp:"Known IPs"},ry={cookieUserId:"cookieUserIds",fingerprintId:"fingerprintIds",nickname:"nicknames",knownIp:"knownIps"};function Rl(e){const t=String(e||"").trim();return t?t.length<=14?t:`${t.slice(0,8)}...${t.slice(-6)}`:"n/a"}function ja(e){const t=Number(e||0);if(!Number.isFinite(t)||t<=0)return"never";try{return new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(new Date(t))}catch{return new Date(t).toLocaleString()}}function ny(e,t){const r=String(t||"").trim().toLowerCase();return r?[e?.id,e?.nickname,...e?.cookieUserIds||[],...e?.fingerprintIds||[],...e?.nicknames||[],...e?.knownIps||[],...e?.featureNamespaces||[],...(e?.permissions||[]).map(s=>s.key)].join(" ").toLowerCase().includes(r):!0}function iy(e,t){return t==="verified"?!!e?.verified?.enabled:t==="deterred"?!!e?.deterrence?.enabled:t==="muted"?!!e?.deterrence?.muted:t==="unverified"?!e?.verified?.enabled:!0}function hc(e){return JSON.stringify(e??{},null,2)}function sy(e){const t=JSON.parse(String(e||"").trim()||"{}");if(!t||typeof t!="object")throw new Error("JSON must be an object or array.");return t}const ay=[{key:"all",label:"All"},{key:"verified",label:"Verified"},{key:"deterred",label:"Deterred"},{key:"muted",label:"Muted"},{key:"unverified",label:"Unverified"}];function vo({active:e,children:t}){return N.jsx("span",{className:`rounded px-1 py-0.25 text-[0.68rem] font-semibold ${e?"bg-emerald-700 text-emerald-50":"bg-neutral-800 text-neutral-300"}`,children:t})}function oy({users:e,selectedUserId:t,query:r,filter:n,loading:s,onQuery:i,onFilter:a,onRefresh:o,onSelect:c}){const l=Z.useMemo(()=>e.filter(m=>iy(m,n)&&ny(m,r)),[n,r,e]),u=N.jsx("button",{type:"button",className:"button-dark text-xs",onClick:o,disabled:s,children:s?"Loading":"Refresh"});return N.jsxs(ot,{title:"Identity database",meta:l.length,actions:u,bodyClassName:"flex min-h-0 flex-col gap-0.5 p-0.5 text-sm",children:[N.jsxs("div",{className:"grid gap-0.5 md:grid-cols-[minmax(0,1fr)_10rem]",children:[N.jsx("input",{className:"field-input text-sm",type:"search",placeholder:"Search users, keys, fingerprints, IPs",value:r,onChange:m=>i(m.target.value)}),N.jsx("select",{className:"field-input text-sm",value:n,onChange:m=>a(m.target.value),children:ay.map(m=>N.jsx("option",{value:m.key,children:m.label},m.key))})]}),N.jsx("div",{className:"min-h-[18rem] flex-1 overflow-y-auto",children:l.length?l.map(m=>N.jsxs("button",{type:"button",className:`surface mb-0.5 grid w-full grid-cols-[minmax(0,1fr)_auto] gap-0.5 px-1 py-0.75 text-left text-xs ${t===m.id?"border border-sky-400/70":""}`,onClick:()=>c(m.id),children:[N.jsxs("span",{className:"min-w-0",children:[N.jsx("span",{className:"block truncate text-sm font-semibold text-slate-100",children:m.nickname||"unknown user"}),N.jsx("span",{className:"block truncate font-mono text-[0.68rem] text-slate-400",children:m.id}),N.jsxs("span",{className:"block truncate text-[0.68rem] text-slate-400",children:[Rl(m.cookieUserIds?.[0])," / ",Rl(m.fingerprintIds?.[0])]})]}),N.jsxs("span",{className:"flex flex-col items-end gap-0.25",children:[N.jsx(vo,{active:m.verified?.enabled,children:"verified"}),N.jsx(vo,{active:m.deterrence?.enabled,children:"deterred"}),N.jsx(vo,{active:m.deterrence?.muted,children:"muted"})]})]},m.id)):N.jsx("p",{className:"surface p-1 text-center text-xs text-slate-400",children:"No users match this view."})})]})}function cy({user:e}){return N.jsxs(ot,{title:"User details",bodyClassName:"grid gap-0.5 p-0.5 text-sm md:grid-cols-2",children:[N.jsxs("div",{className:"surface px-1 py-0.75",children:[N.jsx("p",{className:"text-xs text-slate-400",children:"Canonical user id"}),N.jsx("p",{className:"break-all font-mono text-xs text-lime-300",children:e.id})]}),N.jsxs("div",{className:"surface px-1 py-0.75",children:[N.jsx("p",{className:"text-xs text-slate-400",children:"Primary nickname"}),N.jsx("p",{className:"font-semibold text-slate-100",children:e.nickname||"unknown user"})]}),N.jsxs("div",{className:"surface px-1 py-0.75",children:[N.jsx("p",{className:"text-xs text-slate-400",children:"Created"}),N.jsx("p",{children:ja(e.createdAt)})]}),N.jsxs("div",{className:"surface px-1 py-0.75",children:[N.jsx("p",{className:"text-xs text-slate-400",children:"Last seen"}),N.jsx("p",{children:ja(e.lastSeenAt)})]})]})}function ly({user:e,type:t,onAdd:r,onRemove:n}){const[s,i]=Z.useState(""),a=e?.[ry[t]]||[],o=async c=>{c.preventDefault();const l=s.trim();l&&(await r(t,l),i(""))};return N.jsxs("div",{className:"surface space-y-0.5 px-1 py-0.75",children:[N.jsx("p",{className:"text-xs font-semibold text-slate-200",children:fc[t]}),N.jsx("div",{className:"space-y-0.5",children:a.length?a.map(c=>N.jsxs("div",{className:"surface-muted grid grid-cols-[minmax(0,1fr)_auto] items-center gap-0.5 px-1 py-0.5",children:[N.jsx("span",{className:"min-w-0 break-all font-mono text-[0.7rem] text-slate-200",children:c}),N.jsx("button",{type:"button",className:"button-dark text-xs",onClick:()=>n(t,c),children:"Remove"})]},c)):N.jsx("p",{className:"text-xs text-slate-500",children:"No values."})}),N.jsxs("form",{className:"grid gap-0.5 md:grid-cols-[minmax(0,1fr)_auto]",onSubmit:o,children:[N.jsx("input",{className:"field-input text-xs",value:s,placeholder:`Add ${fc[t].toLowerCase()}`,onChange:c=>i(c.target.value)}),N.jsx("button",{type:"submit",className:"button-dark text-xs",disabled:!s.trim(),children:"Add"})]})]})}function uy({user:e,onAddSignal:t,onRemoveSignal:r}){return N.jsx(ot,{title:"Identity signals",bodyClassName:"grid gap-0.5 p-0.5 text-sm xl:grid-cols-2",children:Object.keys(fc).map(n=>N.jsx(ly,{user:e,type:n,onAdd:t,onRemove:r},n))})}function dy({user:e,onVerified:t,onDeterrence:r,onMuted:n}){const[s,i]=Z.useState(e?.deterrence?.reason||"");return N.jsxs(ot,{title:"Status",bodyClassName:"grid gap-0.5 p-0.5 text-sm md:grid-cols-2",children:[N.jsxs("div",{className:"surface space-y-0.5 px-1 py-0.75",children:[N.jsx("p",{className:"text-xs text-slate-400",children:"Verification"}),N.jsxs("label",{className:"flex items-center gap-0.5 text-slate-100",children:[N.jsx("input",{type:"checkbox",className:"h-3.5 w-3.5 accent-emerald-500",checked:!!e?.verified?.enabled,onChange:a=>t(a.target.checked)}),N.jsx("span",{children:"Verified"})]}),N.jsxs("p",{className:"text-xs text-slate-500",children:["Updated ",ja(e?.verified?.at)]})]}),N.jsxs("div",{className:"surface space-y-0.5 px-1 py-0.75",children:[N.jsx("p",{className:"text-xs text-slate-400",children:"Deterrence"}),N.jsxs("label",{className:"flex items-center gap-0.5 text-slate-100",children:[N.jsx("input",{type:"checkbox",className:"h-3.5 w-3.5 accent-red-500",checked:!!e?.deterrence?.enabled,onChange:a=>r(a.target.checked,s)}),N.jsx("span",{children:"Deterred"})]}),N.jsx("textarea",{className:"field-input min-h-[4rem] w-full text-xs",value:s,placeholder:"Deterrence reason",onChange:a=>i(a.target.value)}),N.jsx("button",{type:"button",className:"button-dark text-xs",onClick:()=>r(!!e?.deterrence?.enabled,s),children:"Save Reason"}),N.jsxs("div",{className:"border-t border-slate-700/70 pt-0.5",children:[N.jsxs("label",{className:"flex items-center gap-0.5 text-slate-100",children:[N.jsx("input",{type:"checkbox",className:"h-3.5 w-3.5 accent-amber-500",checked:!!e?.deterrence?.muted,onChange:a=>n(a.target.checked)}),N.jsx("span",{children:"Muted"})]}),N.jsxs("p",{className:"text-xs text-slate-500",children:["Updated ",ja(e?.deterrence?.mutedAt)]})]})]})]})}function fy({user:e,onSaveFeature:t,onDeleteFeature:r}){const n=Object.keys(e?.features||{}).sort(),s=n[0]||"",[i,a]=Z.useState(s),[o,c]=Z.useState(hc(s?e.features[s]:{})),[l,u]=Z.useState(""),m=async()=>{const v=i.trim();if(!v){u("Namespace required.");return}try{const S=sy(o);await t(v,S),u("")}catch(S){u(S.message||"Invalid JSON.")}},_=async()=>{const v=i.trim();v&&window.confirm(`Delete feature state "${v}" from ${e.id}?`)&&(await r(v),a(""),c("{}"),u(""))};return N.jsxs(ot,{title:"Feature state",bodyClassName:"space-y-0.5 p-0.5 text-sm",children:[N.jsxs("div",{className:"grid gap-0.5 md:grid-cols-[minmax(0,1fr)_auto_auto]",children:[N.jsx("input",{className:"field-input text-sm",value:i,placeholder:"Namespace",list:"identity-feature-namespaces",onChange:v=>{const S=v.target.value;a(S),c(hc(e.features?.[S]||{}))}}),N.jsx("datalist",{id:"identity-feature-namespaces",children:n.map(v=>N.jsx("option",{value:v},v))}),N.jsx("button",{type:"button",className:"button-dark text-xs",onClick:m,children:"Save"}),N.jsx("button",{type:"button",className:"button-dark text-xs",onClick:_,disabled:!i.trim(),children:"Delete"})]}),N.jsx("textarea",{className:"field-input min-h-[18rem] w-full font-mono text-xs",value:o,spellCheck:!1,onChange:v=>c(v.target.value)}),l?N.jsx("p",{className:"surface text-xs text-red-300",children:l}):null]})}function hy({user:e}){return N.jsx(ot,{title:"Raw record",bodyClassName:"p-0.5 text-xs",children:N.jsx("pre",{className:"surface max-h-[36rem] overflow-auto whitespace-pre-wrap break-words font-mono text-[0.7rem] text-lime-300",children:hc(e)})})}function my({user:e,permissions:t,onPermission:r}){const n=new Set((e?.permissions||[]).map(s=>s.key));return N.jsx(ot,{title:"Permissions",bodyClassName:"grid gap-0.5 p-0.5 text-sm md:grid-cols-2",children:t.map(s=>N.jsxs("label",{className:"surface space-y-0.5 px-1 py-0.75 text-slate-100",children:[N.jsxs("span",{className:"flex items-center gap-0.5 font-semibold",children:[N.jsx("input",{type:"checkbox",className:"h-3.5 w-3.5 accent-emerald-500",checked:n.has(s.key),onChange:i=>r(s.key,i.target.checked)}),s.label]}),N.jsx("span",{className:"block text-xs text-slate-400",children:s.description}),N.jsx("code",{className:"block text-[0.68rem] text-lime-300",children:s.key})]},s.key))})}function py(){const e=Rh(),[t,r]=Z.useState([]),[n,s]=Z.useState([]),[i,a]=Z.useState(null),[o,c]=Z.useState(""),[l,u]=Z.useState("all"),[m,_]=Z.useState(!1),[v,S]=Z.useState(""),E=Z.useCallback(async()=>{_(!0);try{const q=await Gp(e);if(r(q.users||[]),s(q.permissions||[]),i?.id){const U=await Nl(e,i.id);a(U.user||null)}S("")}catch(q){S(q.message||"Failed to load users.")}finally{_(!1)}},[i?.id,e]),g=Z.useCallback(async q=>{_(!0);try{const U=await Nl(e,q);a(U.user||null),S("")}catch(U){S(U.message||"Failed to load user.")}finally{_(!1)}},[e]),y=Z.useCallback(q=>{a(q||null),q?.id&&r(U=>U.map(L=>L.id===q.id?{...L,...q}:L))},[]),f=Z.useCallback(async(q,U)=>{if(i?.id){_(!0);try{const L=await q(i.id);y(L.user),S(U||"Saved.")}catch(L){S(L.message||"Save failed.")}finally{_(!1)}}},[y,i?.id]);Z.useEffect(()=>{E()},[]);const C=(q,U)=>f(L=>Wp(e,L,q,U),"Signal added."),x=(q,U)=>f(L=>Jp(e,L,q,U),"Signal removed."),h=q=>f(U=>Yp(e,U,q),"Verification updated."),b=(q,U)=>f(L=>Xp(e,L,q,U),"Deterrence updated."),O=q=>f(U=>Zp(e,U,q),"Mute updated."),k=(q,U)=>f(L=>Qp(e,L,q,U),"Permission updated."),$=(q,U)=>f(L=>ey(e,L,q,U),"Feature state saved."),M=q=>f(U=>ty(e,U,q),"Feature state deleted.");return N.jsxs("div",{className:"grid min-h-0 flex-1 gap-0.5 lg:grid-cols-[24rem_minmax(0,1fr)]",children:[N.jsx(oy,{users:t,selectedUserId:i?.id||null,query:o,filter:l,loading:m,onQuery:c,onFilter:u,onRefresh:E,onSelect:g}),N.jsxs("div",{className:"min-h-0 space-y-0.5 overflow-y-auto",children:[v?N.jsx(ot,{title:"Status",bodyClassName:"p-0.5 text-sm text-slate-200",children:N.jsx("p",{children:v})}):null,i?N.jsxs(N.Fragment,{children:[N.jsx(cy,{user:i}),N.jsxs($h,{defaultTab:"signals",children:[N.jsxs(Fh,{children:[N.jsx(Kn,{id:"signals",children:"Signals"}),N.jsx(Kn,{id:"status",children:"Status"}),N.jsx(Kn,{id:"permissions",children:"Permissions"}),N.jsx(Kn,{id:"features",children:"Feature state"}),N.jsx(Kn,{id:"raw",children:"Raw JSON"})]}),N.jsxs(Dh,{children:[N.jsx(hi,{id:"signals",children:N.jsx(uy,{user:i,onAddSignal:C,onRemoveSignal:x})}),N.jsx(hi,{id:"status",children:N.jsx(dy,{user:i,onVerified:h,onDeterrence:b,onMuted:O},`status-${i.id}`)}),N.jsx(hi,{id:"permissions",children:N.jsx(my,{user:i,permissions:n,onPermission:k})}),N.jsx(hi,{id:"features",children:N.jsx(fy,{user:i,onSaveFeature:$,onDeleteFeature:M},`features-${i.id}`)}),N.jsx(hi,{id:"raw",children:N.jsx(hy,{user:i})})]})]})]}):N.jsx(ot,{title:"User details",bodyClassName:"p-1 text-center text-sm text-slate-400",children:"Select a user to inspect and edit the identity record."})]})]})}function yy({administrator:e,socket:t,runSensitive:r,onSnapshot:n}){const[s,i]=Z.useState({username:e.username,discordId:e.discordId,role:e.role,password:""}),[a,o]=Z.useState(!1),[c,l]=Z.useState("");Z.useEffect(()=>{i({username:e.username,discordId:e.discordId,role:e.role,password:""})},[e]);async function u(m){o(!0),l("");try{const _=await r(m);n(_.snapshot)}catch(_){l(_.message)}finally{o(!1)}}return N.jsxs("div",{className:"surface space-y-0.5 p-0.5",children:[N.jsxs("div",{className:"grid gap-0.5 md:grid-cols-4",children:[N.jsx("input",{className:"field-input",value:s.username,onChange:m=>i({...s,username:m.target.value})}),N.jsx("input",{className:"field-input",placeholder:"Discord id",value:s.discordId,onChange:m=>i({...s,discordId:m.target.value})}),N.jsxs("select",{className:"field-input",value:s.role,onChange:m=>i({...s,role:m.target.value}),children:[N.jsx("option",{value:"admin",children:"Administrator"}),N.jsx("option",{value:"lockdown",children:"Lockdown administrator"})]}),N.jsx("input",{className:"field-input",type:"password",autoComplete:"new-password",placeholder:"New password (optional)",value:s.password,onChange:m=>i({...s,password:m.target.value})})]}),c?N.jsx("p",{className:"text-xs text-red-300",children:c}):null,N.jsxs("div",{className:"flex justify-end gap-0.5",children:[N.jsx("button",{type:"button",className:"button-danger text-xs",disabled:a,onClick:()=>u(()=>Lp(t,e.id)),children:"Delete"}),N.jsx("button",{type:"button",className:"button-dark text-xs",disabled:a,onClick:()=>u(()=>Vp(t,{id:e.id,...s})),children:"Save account"})]})]})}function gy({administrators:e,socket:t,runSensitive:r,onSnapshot:n}){const[s,i]=Z.useState({username:"",discordId:"",role:"admin",password:""}),[a,o]=Z.useState(!1),[c,l]=Z.useState("");async function u(m){m.preventDefault(),o(!0),l("");try{const _=await r(()=>Up(t,s));n(_.snapshot),i({username:"",discordId:"",role:"admin",password:""})}catch(_){l(_.message)}finally{o(!1)}}return N.jsxs(ot,{title:"Administrator accounts",meta:e.length,bodyClassName:"space-y-0.5 p-0.5 text-sm",children:[N.jsxs("form",{className:"surface grid gap-0.5 p-0.5 md:grid-cols-4",onSubmit:u,children:[N.jsx("input",{className:"field-input",placeholder:"Username",value:s.username,onChange:m=>i({...s,username:m.target.value})}),N.jsx("input",{className:"field-input",placeholder:"Discord id (optional)",value:s.discordId,onChange:m=>i({...s,discordId:m.target.value})}),N.jsxs("select",{className:"field-input",value:s.role,onChange:m=>i({...s,role:m.target.value}),children:[N.jsx("option",{value:"admin",children:"Administrator"}),N.jsx("option",{value:"lockdown",children:"Lockdown administrator"})]}),N.jsx("input",{className:"field-input",type:"password",autoComplete:"new-password",placeholder:"Password",value:s.password,onChange:m=>i({...s,password:m.target.value})}),c?N.jsx("p",{className:"text-xs text-red-300 md:col-span-3",children:c}):N.jsx("span",{className:"md:col-span-3"}),N.jsx("button",{className:"button-dark",type:"submit",disabled:a||!s.username||!s.password,children:a?"Creating…":"Create account"})]}),(e||[]).map(m=>N.jsx(yy,{administrator:m,socket:t,runSensitive:r,onSnapshot:n},m.id))]})}function bo(e){return Number.isFinite(Number(e))?new Date(Number(e)).toLocaleString():"unknown"}function vy({snapshot:e,socket:t,runSensitive:r,onSnapshot:n}){const s=e.configuration;async function i(a){if(window.confirm(`Restore configuration revision ${a}? This creates a new active revision and requires a restart.`))try{const o=await r(()=>zp(t,{revision:a,expectedRevision:s.revision}));n(o.snapshot)}catch(o){window.alert(o.message)}}return N.jsxs("div",{className:"space-y-0.5",children:[N.jsxs(ot,{title:"Administration overview",meta:`revision ${s.revision}`,bodyClassName:"grid gap-0.5 p-0.5 md:grid-cols-3",children:[N.jsxs("div",{className:"surface p-1",children:[N.jsx("p",{className:"text-xs text-slate-400",children:"Active revision"}),N.jsx("p",{className:"text-xl font-semibold",children:s.revision})]}),N.jsxs("div",{className:"surface p-1",children:[N.jsx("p",{className:"text-xs text-slate-400",children:"Administrators"}),N.jsx("p",{className:"text-xl font-semibold",children:e.administrators.length})]}),N.jsxs("div",{className:"surface p-1",children:[N.jsx("p",{className:"text-xs text-slate-400",children:"Last configuration save"}),N.jsx("p",{className:"text-sm font-semibold",children:bo(s.createdAt)})]})]}),N.jsxs(ot,{title:"Existing administration surfaces",bodyClassName:"flex flex-wrap gap-0.5 p-0.5 text-sm",children:[N.jsx(kl,{className:"button-dark",to:"/reports",children:"Open fleet reports"}),N.jsx(kl,{className:"button-dark",to:"/",children:"Open driver application"})]}),N.jsx(ot,{title:"Configuration revisions",meta:e.revisions.length,bodyClassName:"max-h-64 overflow-y-auto p-0.5 text-xs",children:e.revisions.map(a=>N.jsxs("div",{className:"surface mb-0.5 grid items-center gap-0.5 p-0.5 md:grid-cols-[5rem_1fr_1fr_1fr_auto]",children:[N.jsxs("span",{children:["#",a.revision]}),N.jsx("span",{children:bo(a.createdAt)}),N.jsx("span",{children:a.actor}),N.jsx("span",{children:a.source}),N.jsx("button",{type:"button",className:"button-dark text-xs",disabled:a.revision===s.revision,onClick:()=>i(a.revision),children:"Restore"})]},a.revision))}),N.jsx(ot,{title:"Persistent audit history",meta:e.auditEvents.length,bodyClassName:"max-h-96 overflow-y-auto p-0.5 text-xs",children:e.auditEvents.map(a=>N.jsxs("div",{className:"surface mb-0.5 grid gap-0.5 p-0.5 md:grid-cols-[10rem_10rem_1fr]",children:[N.jsx("span",{children:bo(a.createdAt)}),N.jsx("span",{children:a.actor}),N.jsx("span",{children:a.action})]},a.id))})]})}function ue(e){return typeof e!="object"||e===null||"lastModified"in e&&typeof e.lastModified=="number"&&typeof File<"u"&&e instanceof File||"getMonth"in e&&typeof e.getMonth=="function"&&typeof Date<"u"&&e instanceof Date?!1:!Array.isArray(e)}function by(e){return e.additionalItems===!0&&console.warn("additionalItems=true is currently not supported"),ue(e.additionalItems)}function Th(e){const t=typeof navigator<"u"?navigator.languages:void 0;if(t)try{return new Intl.NumberFormat(t).formatToParts(1.1).find(s=>s.type==="decimal")?.value||"."}catch{}return"."}function $l(e){if(e==="")return;if(e===null)return null;const t=Th(),r=typeof e=="string"&&t!=="."?e.replace(t,"."):e;if(/\.$/.test(r)||/\.0$/.test(r)||/\.\d*0$/.test(r))return e;const n=Number(r);return typeof n=="number"&&!Number.isNaN(n)?n:e}const Sn=Symbol("__additional_property"),Jn="additionalProperties",yr="allOf",Ne="anyOf",It="const",An="default",Lc="dependencies",_y="enum",vt="__errors",Ue="$id",Vc="if",ni="items",Sy="_$junk_option_schema_id$_",ba="$name",Se="oneOf",mc="patternProperties",rt="properties",_o="readonly",Mh="required",ka="submitButtonOptions",Je="$ref",_a=Symbol("__rjsf_ref"),zc=Symbol("__rjsf_ref_cycle"),Ei="$schema",qh="root",Uh="_",wy=["discriminator","propertyName"],Fl="formContext",Cy="layoutGridLookupMap",Lh="__rjsf",Bc=`${Lh}_additionalProperties`,Vh=`${Lh}_rootSchema`,Ey="ui:field",Hc="ui:widget",Br="ui:options",pc="ui:globalOptions",Ay="ui:definitions",Py="https://json-schema.org/draft/2019-09/schema",Sa="https://json-schema.org/draft/2020-12/schema";function pe(e={},t={}){return e?Object.keys(e).filter(r=>r.startsWith("ui:")).reduce((r,n)=>{const s=e[n];return n===Hc&&ue(s)?(console.error("Setting options via ui:widget object is no longer supported, use ui:options instead"),r):n===Br&&ue(s)?{...r,...s}:{...r,[n.substring(3)]:s}},{...t}):{...t}}function xy(e,t={},r){if(!(e.additionalProperties||e.patternProperties))return!1;const{expandable:n=!0}=pe(t);return n===!1?n:e.maxProperties!==void 0&&r?Object.keys(r).length({...r,[s]:yc(n)}),t):Or(e)?Object.keys(e).reduce((r,n)=>({...r,[n]:yc(e[n])}),t):t}const{getOwnPropertyNames:Dl,getOwnPropertySymbols:Oy}=Object,{hasOwnProperty:jy}=Object.prototype;function mi(e,t){return function(n,s,i){return e(n,s,i)&&t(n,s,i)}}function pi(e){return function(r,n,s){if(!r||!n||typeof r!="object"||typeof n!="object")return e(r,n,s);const{cache:i}=s,a=i.get(r),o=i.get(n);if(a&&o)return a===n&&o===r;i.set(r,n),i.set(n,r);const c=e(r,n,s);return i.delete(r),i.delete(n),c}}function Tl(e){const t=Oy(e);return t.length?Dl(e).concat(t):Dl(e)}const ky=Object.hasOwn||((e,t)=>jy.call(e,t)),Iy="__v",Ny="__o",Ry="_owner",$y=typeof Float16Array<"u",{getOwnPropertyDescriptor:Ml,keys:ql}=Object,Nn=Object.is||function(t,r){return t===r?t!==0||1/t===1/r:t!==t&&r!==r};function Fy(e,t){return e===t}function Dy(e,t){return e.byteLength===t.byteLength&&Ia(new Uint8Array(e),new Uint8Array(t))}function Ty(e,t,r){let n=e.length;if(t.length!==n)return!1;for(;n-- >0;)if(!r.equals(e[n],t[n],n,n,e,t,r))return!1;return!0}function My(e,t){return e.byteLength===t.byteLength&&Ia(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}function qy(e,t){return Nn(e.getTime(),t.getTime())}function Ul(e,t,r){return e.name===t.name&&e.message===t.message&&e.stack===t.stack&&r.equals(e.cause,t.cause,"cause","cause",e,t,r)}function Ll(e,t,r){const n=e.size;if(n!==t.size)return!1;if(!n)return!0;const s=new Uint8Array(n),i=e.entries();let a,o,c=0;for(;(a=i.next())&&!a.done;){const l=t.entries();let u=0,m=0;for(;(o=l.next())&&!o.done;){if(s[m]){m++;continue}const _=a.value,v=o.value;if(r.equals(_[0],v[0],c,m,e,t,r)&&r.equals(_[1],v[1],_[0],v[0],e,t,r)){u=s[m]=1;break}m++}if(!u)return!1;c++}return!0}function Vl(e,t,r){const n=ql(e);let s=n.length;if(ql(t).length!==s)return!1;for(;s-- >0;)if(!zh(e,t,r,n[s]))return!1;return!0}function qn(e,t,r){const n=Tl(e);let s=n.length;if(Tl(t).length!==s)return!1;let i,a,o;for(;s-- >0;)if(i=n[s],!zh(e,t,r,i)||(a=Ml(e,i),o=Ml(t,i),(a||o)&&(!a||!o||a.configurable!==o.configurable||a.enumerable!==o.enumerable||a.writable!==o.writable)))return!1;return!0}function Uy(e,t){return Nn(e.valueOf(),t.valueOf())}function Ly(e,t){return e.source===t.source&&e.flags===t.flags}function zl(e,t,r){const n=e.size;if(n!==t.size)return!1;if(!n)return!0;const s=new Uint8Array(n),i=e.values();let a,o;for(;(a=i.next())&&!a.done;){const c=t.values();let l=0,u=0;for(;(o=c.next())&&!o.done;){if(!s[u]&&r.equals(a.value,o.value,a.value,o.value,e,t,r)){l=s[u]=1;break}u++}if(!l)return!1}return!0}function Ia(e,t){let r=e.length;if(t.length!==r||e.byteOffset!==t.byteOffset)return!1;if(e instanceof Float64Array||e instanceof Float32Array||$y&&e instanceof Float16Array){for(;r-- >0;)if(e[r]!==t[r]&&(e[r]===e[r]||t[r]===t[r]))return!1;return!0}for(;r-- >0;)if(e[r]!==t[r])return!1;return!0}function Vy(e,t){return e.href===t.href?!0:e.protocol===t.protocol&&e.username===t.username&&e.password===t.password&&e.host===t.host&&e.pathname===t.pathname&&e.hash===t.hash&&zy(e.searchParams,t.searchParams)}function zy(e,t){const r=e.toString(),n=t.toString();return r===n||Bl(r)===Bl(n)}function Bl(e){return e.split("&").sort().join("&")}function zh(e,t,r,n){return(n===Ry||n===Ny||n===Iy)&&(e.$$typeof||t.$$typeof)?!0:ky(t,n)&&r.equals(e[n],t[n],n,n,e,t,r)}const By=Object.prototype.toString;function Hy(e){const t=Jy(e),{areArraysEqual:r,areDatesEqual:n,areFunctionsEqual:s,areMapsEqual:i,areNumbersEqual:a,areObjectsEqual:o,areRegExpsEqual:c,areSetsEqual:l,getUnsupportedCustomComparator:u}=e;return function(_,v,S){if(_===v)return!0;if(_==null||v==null)return!1;const E=typeof _;if(E!==typeof v)return!1;if(E!=="object")return E==="number"||E==="bigint"?a(_,v,S):E==="function"?s(_,v,S):!1;const g=_.constructor;if(g!==v.constructor)return!1;if(g===Object)return o(_,v,S);if(g===Array)return r(_,v,S);if(g===Date)return n(_,v,S);if(g===RegExp)return c(_,v,S);if(g===Map)return i(_,v,S);if(g===Set)return l(_,v,S);if(g===Promise)return!1;if(Array.isArray(_))return r(_,v,S);const y=By.call(_),f=t[y];if(f)return f(_,v,S);const C=u&&u(_,v,S,y);return C?C(_,v,S):!1}}function Ky({circular:e,createCustomConfig:t,strict:r}){let n={areArrayBuffersEqual:Dy,areArraysEqual:r?qn:Ty,areDataViewsEqual:My,areDatesEqual:qy,areErrorsEqual:r?mi(Ul,qn):mi(Ul,Vl),areFunctionsEqual:Fy,areMapsEqual:r?mi(Ll,qn):Ll,areNumbersEqual:Nn,areObjectsEqual:r?qn:Vl,arePrimitiveWrappersEqual:Uy,areRegExpsEqual:Ly,areSetsEqual:r?mi(zl,qn):zl,areTypedArraysEqual:r?mi(Ia,qn):Ia,areUrlsEqual:Vy,getUnsupportedCustomComparator:void 0};if(t&&(n=Object.assign({},n,t(n))),e){const s=pi(n.areArraysEqual),i=pi(n.areErrorsEqual),a=pi(n.areMapsEqual),o=pi(n.areObjectsEqual),c=pi(n.areSetsEqual);n=Object.assign({},n,{areArraysEqual:s,areErrorsEqual:i,areMapsEqual:a,areObjectsEqual:o,areSetsEqual:c})}return n}function Gy(e){return function(t,r,n,s,i,a,o){return e(t,r,o)}}function Wy({circular:e,comparator:t,createState:r,equals:n,strict:s}){if(r)return function(o,c){const{cache:l=e?new WeakMap:void 0,meta:u}=r();return t(o,c,{cache:l,equals:n,meta:u,strict:s})};if(e)return function(o,c){return t(o,c,{cache:new WeakMap,equals:n,meta:void 0,strict:s})};const i={cache:void 0,equals:n,meta:void 0,strict:s};return function(o,c){return t(o,c,i)}}function Jy({areArrayBuffersEqual:e,areArraysEqual:t,areDataViewsEqual:r,areDatesEqual:n,areErrorsEqual:s,areFunctionsEqual:i,areMapsEqual:a,areObjectsEqual:o,arePrimitiveWrappersEqual:c,areRegExpsEqual:l,areSetsEqual:u,areTypedArraysEqual:m,areUrlsEqual:_}){return{"[object Arguments]":o,"[object Array]":t,"[object ArrayBuffer]":e,"[object AsyncGeneratorFunction]":i,"[object BigInt]":c,"[object BigInt64Array]":m,"[object BigUint64Array]":m,"[object Boolean]":c,"[object DataView]":r,"[object Date]":n,"[object Error]":s,"[object Float16Array]":m,"[object Float32Array]":m,"[object Float64Array]":m,"[object Function]":i,"[object GeneratorFunction]":i,"[object Int8Array]":m,"[object Int16Array]":m,"[object Int32Array]":m,"[object Map]":a,"[object Number]":c,"[object Object]":(v,S,E)=>typeof v.then!="function"&&typeof S.then!="function"&&o(v,S,E),"[object RegExp]":l,"[object Set]":u,"[object String]":c,"[object URL]":_,"[object Uint8Array]":m,"[object Uint8ClampedArray]":m,"[object Uint16Array]":m,"[object Uint32Array]":m}}kr();kr({strict:!0});kr({circular:!0});kr({circular:!0,strict:!0});kr({createInternalComparator:()=>Nn});kr({strict:!0,createInternalComparator:()=>Nn});kr({circular:!0,createInternalComparator:()=>Nn});kr({circular:!0,createInternalComparator:()=>Nn,strict:!0});function kr(e={}){const{circular:t=!1,createInternalComparator:r,createState:n,strict:s=!1}=e,i=Ky(e),a=Hy(i),o=r?r(a):Gy(a);return Wy({circular:t,comparator:a,createState:n,equals:o,strict:s})}const je=kr({circular:!0,createCustomConfig:()=>({areFunctionsEqual(e,t){return typeof t=="function"}})});var yi={exports:{}},So,Hl;function Bh(){if(Hl)return So;Hl=1;const e=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),t=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u),r=RegExp.prototype.test.bind(/^\d*$/u),n=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),s=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),i=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/]$/u),a=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/?]$/u),o=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:]$/u);function c(p){let d="",P=0,I=0;for(I=0;I=48&&P<=57||P>=65&&P<=70||P>=97&&P<=102))return"";d+=p[I];break}for(I+=1;I=48&&P<=57||P>=65&&P<=70||P>=97&&P<=102))return"";d+=p[I]}return d}const l=RegExp.prototype.test.bind(/^[\dA-Fa-f]{1,4}$/),u=RegExp.prototype.test.bind(/^[vV][\dA-Fa-f]+\.[A-Za-z\d\-._~!$&'()*+,;=:]+$/),m=RegExp.prototype.test.bind(/^[A-Za-z\d\-._~]$/),_=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u),v=RegExp.prototype.test.bind(/[^\d!"$&'()*+,\-.;=_`a-z{}~]/u),S=RegExp.prototype.test.bind(/(?:^|\.)\d+$/u);function E(p){return v(p)||S(p)}function g(p){if(p.length===0)return!1;for(let d=0;dP&&(P=T,d=I)):(I=-1,T=0);if(P<2)return p.join(":");const F=p.slice(0,d).join(":"),z=p.slice(d+P).join(":");return F+"::"+z}function f(p){const d=p.indexOf("::");if(d!==-1&&p.indexOf("::",d+1)!==-1)return;const P=d===-1?p.split(":"):p.slice(0,d).split(":"),I=d===-1?[]:p.slice(d+2).split(":");d!==-1&&(P.length===1&&P[0]===""&&(P.length=0),I.length===1&&I[0]===""&&(I.length=0));const T=P.concat(I);let F=0;for(let H=0;H=8)return;const z=T.slice(0,P.length);for(let H=F;H<8;H++)z.push("0");for(let H=P.length;Hb[I])}function M(p,d=!1){if(p.indexOf("%")===-1)return p;let P="";for(let I=0;I>4]+p[d&15]}function U(p){return p>=48&&p<=57||p>=65&&p<=90||p>=97&&p<=122||p===42||p===43||p===45||p===46||p===47||p===64||p===95}function L(p){return p<2048?q[192|p>>6]+q[128|p&63]:p<65536?q[224|p>>12]+q[128|p>>6&63]+q[128|p&63]:q[240|p>>18]+q[128|p>>12&63]+q[128|p>>6&63]+q[128|p&63]}function B(p){let d="";for(let P=0;P57343)d+=L(T);else if(T<=56319&&P+1=56320&&F<=57343?(d+=L(65536+(T-55296<<10)+(F-56320)),P++):d+=L(65533)}else d+=L(65533)}}return d}function J(p,d=!1){let P="",I=d&&p[0]!=="/";for(let T=0;T57343)P+=L(z);else if(z<=56319&&T+1=56320&&H<=57343?(P+=L(65536+(z-55296<<10)+(H-56320)),T++):P+=L(65533)}else P+=L(65533)}}return P}function Y(p){let d="";for(let P=0;P57343)d+=L(T);else if(T<=56319&&P+1=56320&&F<=57343?(d+=L(65536+(T-55296<<10)+(F-56320)),P++):d+=L(65533)}else d+=L(65533)}}return d}function Q(p,d){let P="";for(let I=0;I57343)P+=L(F);else if(F<=56319&&I+1=56320&&z<=57343?(P+=L(65536+(F-55296<<10)+(z-56320)),I++):P+=L(65533)}else P+=L(65533)}}return P}function X(p){return Q(p,o)}function re(p){return Q(p,a)}function A(p){return Q(p,a)}function w(p){let d="";for(let P=0;P57343)d+=L(T);else if(T<=56319&&P+1=56320&&F<=57343?(d+=L(65536+(T-55296<<10)+(F-56320)),P++):d+=L(65533)}else d+=L(65533)}return d}function j(p){const d=[];if(p.userinfo!==void 0&&(d.push(X(p.userinfo)),d.push("@")),p.host!==void 0){let P=p.host;if(!t(P)){let I=C(P);I.isIPV6!==!0&&I.isIPVFuture!==!0&&(P=M(P,!0),I=C(P)),I.isIPV6===!0||I.isIPVFuture===!0?P=`[${I.escapedHost}]`:P=$(P,!1)}d.push(P)}if(typeof p.port=="number"||typeof p.port=="string"){const P=String(p.port);if(!r(P))throw new TypeError("URI port is malformed.");d.push(":"),d.push(P)}return d.length?d.join(""):void 0}return So={BYTE_HEX:q,percentEncodeNonAscii:L,nonSimpleDomain:_,nonSimpleMailtoDomain:E,recomposeAuthority:j,reescapeHostDelimiters:$,normalizePercentEncoding:M,normalizePathEncoding:B,serializePathEncoding:J,normalizeQueryFragmentEncoding:Y,encodeUserinfo:X,encodeQuery:re,encodeFragment:A,escapePreservingEscapes:w,removeDotSegments:h,isIPv4:t,isUUID:e,normalizeIPv6:C,stringArrayToHexStripped:c},So}var wo,Kl;function Yy(){if(Kl)return wo;Kl=1;const{isUUID:e,BYTE_HEX:t,percentEncodeNonAscii:r,nonSimpleMailtoDomain:n}=Bh(),s=/^([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-./:;=@]|%[\da-f]{2})+)$/iu,i=["http","https","ws","wss","urn","urn:uuid","mailto"];function a(F){return i.indexOf(F)!==-1}function o(F){return F.secure===!0?!0:F.secure===!1?!1:F.scheme?F.scheme.length===3&&(F.scheme[0]==="w"||F.scheme[0]==="W")&&(F.scheme[1]==="s"||F.scheme[1]==="S")&&(F.scheme[2]==="s"||F.scheme[2]==="S"):!1}function c(F){return F.host||(F.error=F.error||"HTTP URIs must have a host."),F}function l(F){const z=String(F.scheme).toLowerCase()==="https";return(F.port===(z?443:80)||F.port==="")&&(F.port=void 0),F.path||(F.path="/"),F}function u(F){return F.secure=o(F),F.resourceName=(F.path||"/")+(F.query?"?"+F.query:""),F.path=void 0,F.query=void 0,F}function m(F){if((F.port===(o(F)?443:80)||F.port==="")&&(F.port=void 0),typeof F.secure=="boolean"&&(F.scheme=F.secure?"wss":"ws",F.secure=void 0),F.resourceName){const z=F.resourceName.indexOf("?"),H=z===-1?F.resourceName:F.resourceName.slice(0,z);F.path=H&&H!=="/"?H:void 0,F.query=z===-1?void 0:F.resourceName.slice(z+1),F.resourceName=void 0}return F.fragment=void 0,F}function _(F,z){if(!F.path)return F.error="URN can not be parsed",F;const H=F.path.match(s);if(H&&H[0]===F.path){const R=z.scheme||F.scheme||"urn";F.nid=H[1].toLowerCase(),F.nss=H[2];const D=`${R}:${z.nid||F.nid}`,V=T(D);F.path=void 0,V&&(F=V.parse(F,z))}else F.error=F.error||"URN can not be parsed.";return F}function v(F,z){if(F.nid===void 0)throw new Error("URN without nid cannot be serialized");const H=z.scheme||F.scheme||"urn",R=F.nid.toLowerCase(),D=`${H}:${z.nid||R}`,V=T(D);V&&(F=V.serialize(F,z));const K=F,G=F.nss;return K.path=`${R||z.nid}:${G}`,z.skipEscape=!0,K}function S(F,z){const H=F;return H.uuid=H.nss,H.nss=void 0,!z.tolerant&&(!H.uuid||!e(H.uuid))&&(H.error=H.error||"UUID is not valid."),H}function E(F){const z=F;return z.nss=(F.uuid||"").toLowerCase(),z}const g={scheme:"http",domainHost:!0,parse:c,serialize:l},y={scheme:"https",domainHost:g.domainHost,parse:c,serialize:l},f={scheme:"ws",domainHost:!0,parse:u,serialize:m},C={scheme:"wss",domainHost:f.domainHost,parse:f.parse,serialize:f.serialize},x={scheme:"urn",parse:_,serialize:v,skipNormalize:!0},h={scheme:"urn:uuid",parse:S,serialize:E,skipNormalize:!0},b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$'()*+=",O="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$'()*+,;:@",k="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$'()*+;:";function $(F,z=!1){const H=new Uint8Array(128);for(let V=0;V=55296&&R<=56319&&H+1=56320&&D<=57343){z+=F[H]+F[H+1],H++;continue}}z+=R>=55296&&R<=57343?"�":F[H]}return z}function A(F,z){if(z.all.test(F))return F;const H=z.table;let R="";for(let D=0;D57343){R+=z.allowNonAscii?F[D]:r(V);continue}if(V<=56319&&D+1=56320&&K<=57343){R+=z.allowNonAscii?F[D]+F[D+1]:r(65536+(V-55296<<10)+(K-56320)),D++;continue}}R+=z.allowNonAscii?"�":r(65533)}return R}function w(F,z,H){const R=String(F).toLowerCase();if(J.test(R)||R!==""&&!n(R))return R;try{const D=new URL("http://"+R);if(D.username||D.password||D.port||D.pathname!=="/"||D.search||D.hash||!D.hostname)throw new Error(Y);return z&&z.unicodeSupport?R:D.hostname}catch{return H&&(H.error=H.error||Y),R}}function j(F,z){const H=z&&z.unicodeSupport?L:U;return F.length>1&&F[0]==="["&&F[F.length-1]==="]"?"["+A(F.slice(1,-1),H)+"]":A(F,H)}function p(F,z){const H=F;let R=H.path,D=H.query;R&&Q.test(R)&&(R=re(R)),D&&Q.test(D)&&(D=re(D));const V=R?R.indexOf(",")===-1?[R]:R.split(","):[];if(H.path=void 0,D){let K=null,G=0;for(;G<=D.length;){let W=D.indexOf("&",G);W===-1&&(W=D.length);const te=D.slice(G,W);G=W+1;const ne=te.indexOf("=");if(ne!==te.lastIndexOf("=")){H.error=H.error||"URI mailto has malformed header fields.";continue}const se=ne===-1?te:te.slice(0,ne),ce=ne===-1?"":te.slice(ne+1);if(se==="to"){const he=ce.split(",");for(let le=0;le=0?W.slice(0,te):W,se=te>=0?W.slice(te+1):"",ce=A(ne,M),he=X(se),le=w(he,z);R[G]=ce+"@"+j(le,z)}H.path=R.join(","),z.skipEscape=!0}else H.path=void 0;const D=H.headers&&typeof H.headers=="object"?Object.assign(Object.create(null),H.headers):Object.create(null);H.subject&&(D.subject=H.subject),H.body&&(D.body=H.body),H.headers=D;let V="",K=0;for(const G in D)K++!==0&&(V+="&"),V+=A(G,q)+"="+A(String(D[G]),q);return K!==0?H.query=V:H.headers=void 0,H}const I={http:g,https:y,ws:f,wss:C,urn:x,"urn:uuid":h,mailto:{scheme:"mailto",parse:p,serialize:d,domainHost:!1,unicodeSupport:!0,skipNormalize:!0,absolutePath:!0}};Object.setPrototypeOf(I,null);function T(F){return F&&(I[F]||I[F.toLowerCase()])||void 0}return wo={wsIsSecure:o,SCHEMES:I,isValidSchemeName:a,getSchemeHandler:T},wo}var Gl;function Xy(){if(Gl)return yi.exports;Gl=1;const{normalizeIPv6:e,removeDotSegments:t,recomposeAuthority:r,normalizePercentEncoding:n,normalizePathEncoding:s,serializePathEncoding:i,normalizeQueryFragmentEncoding:a,encodeQuery:o,encodeFragment:c,reescapeHostDelimiters:l,isIPv4:u,nonSimpleDomain:m}=Bh(),{SCHEMES:_,getSchemeHandler:v}=Yy(),S=/^[A-Za-z][A-Za-z0-9+.-]*$/u,E="URI scheme is malformed.";function g(A){const w=unescape(String(A));if(!S.test(w))throw new TypeError(E);return w}function y(A,w){return typeof A=="string"?A=Y(A,w):typeof A=="object"&&(A=J(h(A,w),w)),A}function f(A,w,j){const p=j?Object.assign({scheme:"null"},j):{scheme:"null"},{parsed:d,malformedAuthorityOrPort:P,malformedPercentEncoding:I,malformedSchemeSpecific:T,malformedHost:F,malformedScheme:z}=B(A,p),{parsed:H,malformedAuthorityOrPort:R,malformedPercentEncoding:D,malformedSchemeSpecific:V,malformedHost:K,malformedScheme:G}=B(w,p);if(P||R||I||D||T||V||F||K||z||G)throw new Error(d.error||H.error||"URI is malformed.");const W=C(d,H,p,!0),te=v(j&&j.scheme||W.scheme),ne=W.host,se=ne!==void 0&&ne!==""&&(u(ne)||e(ne).isIPV6);L(W,j||{},te,se);const ce=ne&&ne.indexOf("%")!==-1&&!new RegExp("\\P{ASCII}","u").test(ne);if(W.error&&!ce)throw new Error(W.error);return p.skipEscape=!0,h(W,p)}function C(A,w,j,p){const d={};return p||(A=J(h(A,j),j),w=J(h(w,j),j)),j=j||{},!j.tolerant&&w.scheme?(d.scheme=w.scheme,d.userinfo=w.userinfo,d.host=w.host,d.port=w.port,d.path=t(w.path||""),d.query=w.query):(w.userinfo!==void 0||w.host!==void 0||w.port!==void 0?(d.userinfo=w.userinfo,d.host=w.host,d.port=w.port,d.path=t(w.path||""),d.query=w.query):(w.path?(w.path[0]==="/"?d.path=t(w.path):((A.userinfo!==void 0||A.host!==void 0||A.port!==void 0)&&!A.path?d.path="/"+w.path:A.path?d.path=A.path.slice(0,A.path.lastIndexOf("/")+1)+w.path:d.path=w.path,d.path=t(d.path)),d.query=w.query):(d.path=A.path,w.query!==void 0?d.query=w.query:d.query=A.query),d.userinfo=A.userinfo,d.host=A.host,d.port=A.port),d.scheme=A.scheme),d.fragment=w.fragment,d}function x(A,w,j){const p=X(A,j),d=X(w,j);return p!==void 0&&d!==void 0&&p===d}function h(A,w){const j={host:A.host,scheme:A.scheme,userinfo:A.userinfo,port:A.port,path:A.path,query:A.query,nid:A.nid,nss:A.nss,uuid:A.uuid,fragment:A.fragment,reference:A.reference,resourceName:A.resourceName,secure:A.secure,to:A.to,subject:A.subject,body:A.body,headers:A.headers,error:""},p=Object.assign({},w),d=[];j.scheme&&(j.scheme=g(j.scheme));const P=v(p.scheme||j.scheme);P&&P.serialize&&P.serialize(j,p);const I=j.userinfo!==void 0||j.host!==void 0||j.port!==void 0,T=!p.skipEscape&&j.scheme===void 0&&!I;j.path!==void 0&&(p.skipEscape?j.path=n(j.path):j.path=i(j.path,T)),p.reference!=="suffix"&&j.scheme&&(j.scheme=g(j.scheme),d.push(j.scheme,":"));const F=r(j);if(F!==void 0&&(p.reference!=="suffix"&&d.push("//"),d.push(F),j.path&&j.path[0]!=="/"&&d.push("/")),j.path!==void 0){let z=j.path;!p.absolutePath&&(!P||!P.absolutePath)&&(z=t(z)),T&&(z=i(z,!0)),F===void 0&&z[0]==="/"&&z[1]==="/"&&(z="/%2F"+z.slice(2)),d.push(z)}return j.query!==void 0&&d.push("?",o(j.query)),j.fragment!==void 0&&d.push("#",c(j.fragment)),d.join("")}const b=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,O=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,k=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function $(A,w){if(w[2]!==void 0&&A.path&&A.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof A.port=="number"&&(A.port<0||A.port>65535))return"URI port is malformed."}function M(A){if(A===void 0)return!1;let w=A.indexOf("%");for(;w!==-1;){if(w+2>=A.length||!/^[\da-f]{2}$/iu.test(A.slice(w+1,w+3)))return!0;w=A.indexOf("%",w+3)}return!1}function q(A){return A[0]==="["&&A[A.length-1]==="]"}function U(A){const w=A[4];return M(A[3])||w!==void 0&&!q(w)&&M(w)||M(A[6])||M(A[7])||M(A[8])}function L(A,w,j,p){const d=A.host&&A.host[0]==="["&&A.host[A.host.length-1]==="]";if(!w.unicodeSupport&&(!j||!j.unicodeSupport)&&A.host&&!q(A.host)&&(w.domainHost||j&&j.domainHost)&&p===!1&&!d&&m(A.host))try{A.host=new URL("http://"+A.host).hostname}catch(P){return A.error=A.error||"Host's domain name can not be converted to ASCII: "+P,!0}return!1}function B(A,w){const j=Object.assign({},w),p={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0};let d=!1,P=!1,I=!1,T=!1,F=!1,z=!1,H=!1;j.reference==="suffix"&&(j.scheme?A=j.scheme+":"+A:A="//"+A);const R=A.match(O);R!==null&&R[1].indexOf("\\")!==-1&&(p.error="URI authority must not contain a literal backslash.",d=!0);const D=A.match(k);if(D!==null){const K=D[1],G=K.replace(/[\t\n\r]/g,"");G.length>=2&&(G.slice(0,2)!=="//"?(p.error=p.error||"URI authority must not contain a literal backslash.",d=!0):K.length!==G.length&&(p.error=p.error||"URI authority introducer must not contain whitespace.",d=!0))}const V=A.match(b);if(V){if(p.scheme=V[1],p.userinfo=V[3],p.host=V[4],p.port=parseInt(V[5],10),p.path=V[6]||"",p.query=V[7],p.fragment=V[8],p.scheme!==void 0){const W=unescape(p.scheme);S.test(W)?p.scheme=W.toLowerCase():(p.error=p.error||E,z=!0)}P=U(V),P&&(p.error=p.error||"URI contains malformed percent-encoding."),isNaN(p.port)&&(p.port=V[5]);const K=$(p,V);if(K!==void 0&&(p.error=p.error||K,d=!0),p.host)if(u(p.host)===!1){const te=q(p.host),ne=p.host.indexOf("[")!==-1||p.host.indexOf("]")!==-1,se=e(p.host);H=se.isIPV6||se.isIPVFuture===!0,F=ne&&(!te||se.error===!0),p.host=H?se.host:se.host.toLowerCase(),F&&(p.error=p.error||"URI host is malformed.",d=!0)}else H=!0;p.scheme===void 0&&p.userinfo===void 0&&p.host===void 0&&p.port===void 0&&p.query===void 0&&!p.path?p.reference="same-document":p.scheme===void 0?p.reference="relative":p.fragment===void 0?p.reference="absolute":p.reference="uri",j.reference&&j.reference!=="suffix"&&j.reference!==p.reference&&(p.error=p.error||"URI is not a "+j.reference+" reference.");const G=v(j.scheme||p.scheme);if(F||(T=L(p,j,G,H)),!G||G&&!G.skipNormalize){if(A.indexOf("%")!==-1&&p.host!==void 0&&!F){const W=H?p.host:n(p.host,!0);p.host=l(W,H)}p.path&&(p.path=s(p.path)),p.query&&(p.query=a(p.query)),p.fragment&&(p.fragment=a(p.fragment))}G&&G.parse&&(G.parse(p,j),G===_.urn&&p.nid===void 0&&(I=!0))}else p.error=p.error||"URI can not be parsed.";return{parsed:p,malformedAuthorityOrPort:d,malformedPercentEncoding:P,malformedSchemeSpecific:I,malformedHost:T,malformedScheme:z}}function J(A,w){return B(A,w).parsed}function Y(A,w){return Q(A,w).normalized}function Q(A,w){const{parsed:j,malformedAuthorityOrPort:p,malformedPercentEncoding:d,malformedSchemeSpecific:P,malformedHost:I,malformedScheme:T}=B(A,w);return{normalized:p||d||P||I||T?A:h(j,w),malformedAuthorityOrPort:p,malformedPercentEncoding:d,malformedSchemeSpecific:P,malformedHost:I,malformedScheme:T}}function X(A,w){if(typeof A!="string"&&typeof A!="object")return;let j;try{j=typeof A=="string"?A:h(A,w)}catch{return}const{normalized:p,malformedAuthorityOrPort:d,malformedPercentEncoding:P,malformedSchemeSpecific:I,malformedHost:T,malformedScheme:F}=Q(j,w);return d||P||I||T||F?void 0:p}const re={SCHEMES:_,normalize:y,resolve:f,resolveComponent:C,equal:x,serialize:h,parse:J};return yi.exports=re,yi.exports.default=re,yi.exports.fastUri=re,yi.exports}var Zy=Xy();const Kc=Fi(Zy);var gi={},Wl;function Qy(){if(Wl)return gi;Wl=1;var e=/~/,t=/~[01]/g;function r(l){switch(l){case"~1":return"/";case"~0":return"~"}throw new Error("Invalid tilde escape: "+l)}function n(l){return e.test(l)?l.replace(t,r):l}function s(l,u,m){for(var _,v,S=1,E=u.length;SS,typeof l[_]>"u"&&(Array.isArray(l)&&_==="-"&&(_=l.length),v&&(u[S]!==""&&u[S]<1/0||u[S]==="-"?l[_]=[]:l[_]={})),!v)break;l=l[_]}var g=l[_];return m===void 0?delete l[_]:l[_]=m,g}function i(l){if(typeof l=="string"){if(l=l.split("/"),l[0]==="")return l;throw new Error("Invalid JSON pointer.")}else if(Array.isArray(l)){for(const u of l)if(typeof u!="string"&&typeof u!="number")throw new Error("Invalid JSON pointer. Must be of type string or number.");return l}throw new Error("Invalid JSON pointer.")}function a(l,u){if(typeof l!="object")throw new Error("Invalid input object.");u=i(u);var m=u.length;if(m===1)return l;for(var _=1;_ue(a)?gc(a,r):a)}:ue(i)&&(n={...n,[s]:gc(i,r)});return n}function Gc(e,t){const{[e]:r,...n}=t;return[n,r]}function Hh(e,t={},r=[],n=t[Ue]){const s=e||"";let i,a=n;if(s.startsWith("#")){const c=decodeURIComponent(s.substring(1));a===void 0||Ue in t&&t[Ue]===a?i=Co.get(t,c):t[Ei]===Sa&&(i=Na(t,a.replace(/\/$/,"")),i!==void 0&&(i=Co.get(i,c)))}else if(t[Ei]===Sa){const c=a?Kc.resolve(a,s):s,[l,...u]=c.replace(/#\/?$/,"").split("#");i=Na(t,l.replace(/\/$/,"")),i!==void 0&&(a=i[Ue],u.length>0&&(i=Co.get(i,decodeURIComponent(u.join("#")))))}if(i===void 0)throw new Error(`Could not find a definition for ${e}.`);const o=i[Je];if(o){if(r.includes(o)){if(r.length===1)throw new Error(`Definition for ${e} is a circular reference`);const[m,..._]=r,v=[..._,s,m].join(" -> ");throw new Error(`Definition for ${m} contains a circular reference through ${v}`)}const[c,l]=Gc(Je,i),u=Hh(l,t,[...r,s],a);return Object.keys(c).length>0?t[Ei]===Py||t[Ei]===Sa?{[yr]:[c,u]}:{...c,...u}:u}return i}function ki(e,t={},r=t[Ue]){return Hh(e,t,[],r)}const tg=/^(?:0|[1-9]\d*)$/;function rr(e){return e.split(/[.[\]]+/).filter(Boolean)}function rg(e){return Array.isArray(e)?e:[e]}function Jl(e){return e==="__proto__"}function ng(e){return typeof e=="number"?Number.isInteger(e)&&e>=0:tg.test(e)}function wn(e){return e!=null&&(typeof e=="object"||typeof e=="function")}function me(e,t,r){let n;if(!Array.isArray(t))n=wn(e)&&Object.hasOwn(e,t)?e[t]:void 0;else if(t.length===0)n=void 0;else{n=e;for(let s=0;s0}function ig(e,t){const r=rg(t);if(r.length===0)return!0;const n=r.length>1?me(e,r.slice(0,-1)):e;if(n==null)return!0;try{return Reflect.deleteProperty(n,r[r.length-1])}catch{return!1}}function Kt(e){let t;const r=me(e,wy);return typeof r=="string"?t=r:r!==void 0&&console.warn(`Expecting discriminator to be a string, got "${typeof r}" instead`),t}function Ii(e){return Array.isArray(e)?"array":typeof e=="string"?"string":e==null?"null":typeof e=="boolean"?"boolean":typeof e=="number"&&!Number.isNaN(e)?"number":typeof e=="object"?"object":"string"}function Gt(e){let{type:t}=e;return!t&&e.const?Ii(e.const):!t&&e.enum?"string":!t&&(e.properties||e.additionalProperties||e.patternProperties)?"object":(Array.isArray(t)&&(t.length===2&&t.includes("null")?t=t.find(r=>r!=="null"):t=t[0]),t)}function jr(e,t){const r={...e},n=Object.keys(t).reduce((s,i)=>{const a=e?e[i]:{},o=t[i];return e&&i in e&&ue(o)?s[i]=jr(a,o):e&&t&&(Gt(e)==="object"||Gt(t)==="object")&&i===Mh&&Array.isArray(a)&&Array.isArray(o)?s[i]=[...new Set([...a,...o])]:s[i]=o,s},r);for(const s of Object.getOwnPropertySymbols(t))n[s]=t[s];return n}function gr(e,t){return e?.[rt]?.[t]??{}}function Kh(e,t,r){if(e&&r){const n=me(e,r);if(n===void 0)return;for(let s=0;s({required:[m]}))};let u;if(o.anyOf){const{...m}=o;m.allOf?m.allOf=m.allOf.slice():m.allOf=[],m.allOf.push(l),u=m}else u={...o,...l};if(delete u.required,e.isValid(u,t,n))return a}else if(e.isValid(o,t,n))return a}return 0}const sg=Object.prototype;function Ai(e){for(const t in e)if(sg.hasOwnProperty.call(e,t))return!1;return!0}const ag=["array","boolean","integer","null","number","object","string"];new Set(ag);const og=["$defs","definitions","properties","patternProperties","dependencies"];new Set(og);const cg=["items","allOf","oneOf","anyOf"];new Set(cg);const lg=["items","additionalItems","additionalProperties","propertyNames","contains","if","then","else","not"];new Set(lg);function wa(e){return typeof e=="object"}function ur(e){return wa(e)?Ai(e):e===!0}function Yn(e,t){return et?1:0}function Eo(e,t){const r=e.length;if(r===0)return t;let n=t.length;if(n===0)return e;if(rt.length){const s=e;e=t,t=s}const n=new Set(t);for(let s=0;s0;s++){const i=e[s];n.delete(i)&&r.push(i)}return r}function Yl(e){return e.length===0}function Ao(e){return(t,r)=>{const n=t.length-r.length;if(n!==0)return n;for(let s=0;s{const n=r.length;if(n===0)return r;if(n<=t){const a=[];let o=0;e:for(let c=0;c{const n=[];let s=t.length,i=r.length;if(s===0||i===0)return n;if(s>i){const u=t;t=r,r=u;const m=s;s=i,i=m}const a=[...t].sort(e),o=[...r].sort(e);let c=0,l=0;for(;c{if(e.has(r))return e.get(r);const n=t(r);return e.set(r,n),n}}const Xl=fg,Wh=()=>0,hg=e=>e===void 0,mg=e=>typeof e!="object",Zl={boolean:0,number:1,string:2};function pg(e,t){const r=typeof e,n=typeof t;return r===n?Yn(e,t):Zl[r]-Zl[n]}function yg(e,t){const r=e.length;if(r===0)return t;const n=t.length;if(n===0)return e;if(n>r){const a=e;e=t,t=a}const s=new Set(e),i=t.length;for(let a=0;ae(n)?e(s)?r(n,s):-1:e(s)?1:t(n,s)}function Gn(e){return Ha(hg,e)}function qr(e,t){return Ha(r=>r===void 0||e(r),t)}function Po(e,t){return Ha(Array.isArray,e,t)}const ct=Gn(Yn),xo=qr(e=>e===0,(e,t)=>e-t);function gg({deduplicationCache:e=new WeakMap,sortedKeysCache:t=new WeakMap}={}){const r=Xl(t,E=>Object.keys(E).sort());function n(E){return(g,y)=>{const f=r(g),C=r(y),x=Math.min(f.length,C.length);for(let h=0;hg(y(f),y(C))}const i=s(Yn);function a(E,g){if(wa(E)){if(wa(g)){const y=Object.keys(E),f=Object.keys(g),C=yg(y,f),x=C.length;for(let h=0;hE===!1,Wh),minLength:xo,minItems:xo,minProperties:xo,required:qr(Yl,i),enum:qr(Yl,s(l)),type:Gn((E,g)=>{const y=Array.isArray(E),f=Array.isArray(g);return!y&&!f?Yn(E,g):i(y?E:[E],f?g:[g])}),items:qr(E=>!Array.isArray(E)&&ur(E),Po(a,Ao(a))),anyOf:_,allOf:_,oneOf:_,properties:m,patternProperties:m,additionalProperties:v,additionalItems:v,dependencies:qr(Ai,n(Gn(Po(a,i))))};return{compareSchemaValues:l,compareSchemaDefinitions:a}}function Ql(e){return e}const Jh=(e,t)=>e?Jh(t%e,e):t,vg=(e,t)=>Math.abs(e*t)/Jh(e,t);function bg(e,t){return e===t?e:`(?=.*(?:${e}))(?=.*(?:${t}))`}function Oo(e,t,r){const n=e.length,s=t.length;if(n>0&&s>0)for(let i=0;i{const n={...t},s=Object.keys(r),i=s.length;for(let a=0;a{if(!s(a))throw new Error(`Schema keys '${r}' and '${n}' are conflicting (${r}: ${JSON.stringify(a[r])}, ${n}: ${JSON.stringify(a[n])})`)};for(const a of[[r,n],[n,r]]){let o=t.get(a[0]);o===void 0&&(o=[],t.set(a[0],o)),o.push({oppositeKey:a[1],check:i})}}return t}const Ag=[un("minimum","maximum",e=>e.maximum>=e.minimum),un("exclusiveMinimum","maximum",e=>e.maximum>e.exclusiveMinimum),un("minimum","exclusiveMaximum",e=>e.exclusiveMaximum>e.minimum),un("exclusiveMinimum","exclusiveMaximum",e=>e.exclusiveMaximum>e.exclusiveMinimum),un("minLength","maxLength",e=>e.maxLength>=e.minLength),un("minItems","maxItems",e=>e.maxItems>=e.minItems),un("minProperties","maxProperties",e=>e.maxProperties>=e.minProperties)];function Pg({mergePatterns:e=bg,isSubRegExp:t=Object.is,intersectJson:r=ug,deduplicateJsonSchemaDef:n=Ql,defaultMerger:s=Ql,assigners:i=[],checks:a=Ag,mergers:o}={}){function c(x){const h=x.length;let b=x[0];for(let O=1;O0&&k!==!1)if($)Object.assign(x,h);else for(let q=0;q{const q=ur(O),U=ur(M);if(q&&U)return ln(x,"properties",f(h,k)),ln(x,"patternProperties",b&&$?f(b,$):b??$),delete x.additionalProperties,x;const L=y(O,M);ln(x,"additionalProperties",L);const B={},J=Object.keys(h),Y=J.length,[Q,X]=b?tu(b):ru,[re,A]=$?tu($):ru,w=[],j=new Set,p=U?void 0:M;for(let z=0;z0&&A.length>0&&Oo(X,A,(z,H)=>{t(z,H)&&F.add(z),t(H,z)&&F.add(H),T[e(z,H)]=y(b[z],$[H])}),T=u(T,b,X,F,M,U),T=u(T,$,A,F,O,q),ln(x,"patternProperties",T),x},_=(x,{items:h=[],additionalItems:b},{items:O=[],additionalItems:k})=>{const $=Array.isArray(h),M=Array.isArray(O),q=[];if(x.items=q,$&&M){const[U,L,B]=h.length{iu(x,h);const O=iu({},b);return x.allOf===void 0?x.allOf=[O]:x.allOf=x.allOf.concat(O),x};function S(x,h){const b=[];if(Oo(x,h,(O,k)=>{try{b.push(y(O,k))}catch{}}),b.length===0)throw new Error(`No valid schema combinations could be produced for "${JSON.stringify(x)}" and "${JSON.stringify(h)}"; the merged result is empty`);return n(b)}const E=_g([[Sg,m],[wg,_],[Cg,v],...i]),g=Eg(a);function y(x,h){if(x===!1||h===!1)return!1;if(ur(x))return ur(h)?!0:h;if(ur(h))return x;let b={...x};const O=new Set,k=new Set,$=Reflect.ownKeys(h),M=$.length;for(let q=0;q{if(x===h)return x;const b=Array.isArray(x),O=Array.isArray(h);if(!b&&!O){const k=ko(x,h);if(k!==void 0)return k}else if(b||O){const k=new Set;if(b&&O)Oo(x,h,(M,q)=>{const U=ko(M,q);U!==void 0&&k.add(U)});else{const M=b?x:h,q=b?h:x,U=M.length;for(let L=0;L1)return Array.from(k)}throw new Error(`It is not possible to create an intersection of the following incompatible types: ${x.toString()}, ${h.toString()}`)},default:s,description:s,title:s,const:s,format:s,contentEncoding:s,contentMediaType:s,not:(x,h)=>{const b=n([x,h]);return b.length===1?b[0]:{anyOf:b}},pattern:e,readOnly:jo,writeOnly:jo,enum:(x,h)=>{const b=r(x,h);if(b.length===0)throw new Error(`Intersection of the following enums is empty: "${JSON.stringify(x)}", "${JSON.stringify(h)}"`);return b},anyOf:S,oneOf:S,allOf:(x,h)=>n(x.concat(h)),propertyNames:y,contains:y,dependencies:eu((x,h)=>Array.isArray(x)?Array.isArray(h)?Eo(x,h):y(h,{required:x}):Array.isArray(h)?y(x,{required:h}):y(x,h)),examples:(x,h)=>{if(!Array.isArray(x)||!Array.isArray(h))throw new Error(`Value of the 'examples' field should be an array, but got "${JSON.stringify(x)}" and "${JSON.stringify(h)}"`);return Eo(x,h)},multipleOf:(x,h)=>{let b=1;for(;!Number.isInteger(x)||!Number.isInteger(h);)b*=10,x*=10,h*=10;return vg(x,h)/b},exclusiveMaximum:Math.min,maximum:Math.min,maxItems:Math.min,maxLength:Math.min,maxProperties:Math.min,exclusiveMinimum:Math.max,minimum:Math.max,minItems:Math.max,minLength:Math.max,minProperties:Math.max,uniqueItems:jo,required:Eo,...o};return{mergeSchemaDefinitions:y,mergeArrayOfSchemaDefinitions:c}}function xg(e){const t=[],r=[e];for(;r.length>0;){const n=r.pop();if(typeof n=="boolean"||n.allOf===void 0){t.push(n);continue}const{allOf:s,...i}=n;t.push(i);for(let a=s.length-1;a>=0;a--)r.push(s[a])}return t}function Og(e){return t=>e(xg(t))}const{compareSchemaDefinitions:jg,compareSchemaValues:kg}=gg(),{mergeArrayOfSchemaDefinitions:Ig}=Pg({intersectJson:dg(kg),deduplicateJsonSchemaDef:Gh(jg)}),Yh=Og(Ig);function bt(e,t,r={},n,s,i=!1){return hr(e,t,r,n,void 0,void 0,s,i)[0]}function Xh(e){return typeof e!="boolean"?e:e?{}:{not:{}}}function Ng(e,t,r,n,s,i,a){const{if:o,then:c,else:l,...u}=t,m=e.isValid(o,i||{},r);let _=[u],v=[];if(n){if(c&&typeof c!="boolean"){const S=c;v=v.concat(hr(e,S,r,i,n,s,a))}if(l&&typeof l!="boolean"){const S=l;v=v.concat(hr(e,S,r,i,n,s,a))}}else{const S=m?c:l;if(S!==void 0){const E=Xh(S);v=v.concat(hr(e,E,r,i,n,s,a))}}return v.length&&(_=v.map(S=>jr(u,S))),_.flatMap(S=>hr(e,S,r,i,n,s,a))}function Zh(e){return e.reduce((r,n)=>n.length>1?n.flatMap(s=>r.map(i=>[...i,s])):(r.forEach(s=>s.push(n[0])),r),[[]])}function Qh(e,t){const r=e.patternProperties??{};return Object.fromEntries(Object.entries(r).filter(([n])=>RegExp(n).test(t)))}function Rg(e,t,r,n,s,i,a,o){const c=em(e,t,r,n,s,i,a,o);if(c.length>1||c[0]!==t)return c;if(Lc in t)return rm(e,t,r,n,s,i,a).flatMap(u=>hr(e,u,r,i,n,s,a));if(yr in t&&Array.isArray(t[yr])){const l=t.allOf.map(m=>hr(e,m,r,i,n,s,a));return Zh(l).map(m=>({...t,allOf:m}))}return[t]}function em(e,t,r,n,s,i,a,o){const c=Hr(t,r,s,void 0,o);return c!==t?hr(e,c,r,i,n,s,a,o):[t]}function Hr(e,t,r,n,s,i=!1){if(!ue(e))return e;let a=e,o=n;if(Je in a){const{$ref:c,...l}=a;if(r.includes(c))return i?{...a,[zc]:!0}:a;r.push(c),a={...ki(c,t,o),...l,[_a]:c},Ue in a&&(o=a[Ue])}if(rt in a){const c=[],l={};for(const[u,m]of Object.entries(a[rt]??{})){const _=[...r];l[u]=Hr(m,t,_,o,s,!s),c.push(_)}for(const u of new Set(c.flat()))r.includes(u)||r.push(u);a={...a,[rt]:l}}if(ni in a&&!Array.isArray(a.items)&&typeof a.items!="boolean"&&(a={...a,items:Hr(a.items,t,r,o,s)}),s){let c,l;Ne in e&&Array.isArray(e[Ne])?(c=Ne,l=a[Ne]):Se in e&&Array.isArray(e[Se])&&(c=Se,l=a[Se]),c&&l&&(a={...a,[c]:l.map(u=>Hr(u,t,r,o,s))})}return je(e,a)?e:a}function $g(e,t,r,n,s){const i={...t,properties:{...t.properties}},a=n&&ue(n)?n:{};return Object.keys(a).forEach(o=>{if(!(o in i.properties)){if(mc in i){const c=Qh(i,o);if(Object.keys(c).length>0){i.properties[o]=bt(e,{[yr]:Object.values(c)},r,a[o],s),i.properties[o][Sn]=!0;return}}if(Jn in i&&i.additionalProperties!==!1){let c;typeof i.additionalProperties!="boolean"?Je in i.additionalProperties?c=bt(e,{[Je]:i.additionalProperties[Je]},r,a[o],s):"type"in i.additionalProperties?c={...i.additionalProperties}:Ne in i.additionalProperties||Se in i.additionalProperties?c={type:"object",...i.additionalProperties}:c={type:Ii(a[o])}:c={type:Ii(a[o])},i.properties[o]=c,i.properties[o][Sn]=!0}else i.properties[o]={type:"null"},i.properties[o][Sn]=!0}}),i}function Fg(e){return Yh(e)}function hr(e,t,r,n,s=!1,i=[],a,o){return ue(t)?Rg(e,t,r,s,i,n,a,o).flatMap(l=>{let u=l;if(Vc in u)return Ng(e,u,r,s,i,n,a);if(yr in u){if(s){const{allOf:_,...v}=u;return[..._,v]}try{const _=[],v=[],S={};u.allOf?.forEach(E=>{if(typeof E=="object"&&E.contains)_.push(E);else{v.push(E);for(const g of Object.getOwnPropertySymbols(E))g in S||(S[g]=E[g])}}),_.length&&(u={...u,allOf:v}),u=a?a(u):Fg(u);for(const E of Object.getOwnPropertySymbols(S))u[E]=S[E];_.length&&(u.allOf=_)}catch(_){console.warn(`could not merge subschemas in allOf: +`,_);const{allOf:v,...S}=u;return S}}return rt in u&&mc in u&&(u=Object.keys(u.properties).reduce((_,v)=>{const S=Qh(_,v);return Object.keys(S).length>0&&(_.properties[v]=bt(e,{allOf:[_.properties[v],...Object.values(S)]},r,me(n,v),a)),_},{...u,properties:{...u.properties}})),mc in u||Jn in u&&u.additionalProperties!==!1?$g(e,u,r,n,a):u}):[{}]}function Dg(e,t,r,n,s){let i;const{oneOf:a,anyOf:o,...c}=t;if(Array.isArray(a)?i=a:Array.isArray(o)&&(i=o),i){const l=s===void 0&&n?{}:s,u=Kt(t);i=i.map(_=>Hr(_,r,[]));const m=Ra(e,l,i,r,u);if(n){const _=tm(i,!1,r);return Ra(e,l,_,r,u),i.map(v=>jr(c,v))}return[jr(c,i[m])]}return[t]}function tm(e,t=!1,r){return e.map(n=>{if(!ue(n))return Xh(n);const s=t&&r?Hr(n,r,[]):n;return s.additionalProperties===!1?{...s,additionalProperties:!0}:s})}function rm(e,t,r,n,s,i,a){const{dependencies:o,...c}=t;return Dg(e,c,r,n,i).flatMap(u=>nm(e,o,u,r,n,s,i,a))}function nm(e,t,r,n,s,i,a,o){let c=[r];for(const l in t)if((s||me(a,l)!==void 0)&&(!r.properties||l in r.properties)){const[u,m]=Gc(l,t);return Array.isArray(m)?c[0]=Tg(r,m):ue(m)&&(c=Mg(e,r,n,l,m,s,i,a,o)),c.flatMap(_=>nm(e,u,_,n,s,i,a,o))}return c}function Tg(e,t){if(!t)return e;const r=Array.isArray(e.required)?Array.from(new Set([...e.required,...t])):t;return{...e,required:r}}function Mg(e,t,r,n,s,i,a,o,c){return hr(e,s,r,o,i,a,c).flatMap(u=>{const{oneOf:m,..._}=u,v=jr(t,_);if(m===void 0)return v;const S=m.map(g=>typeof g=="boolean"||!(Je in g)?[g]:em(e,g,r,i,a,o));return Zh(S).flatMap(g=>qg(e,v,r,n,g,i,a,o,c))})}function qg(e,t,r,n,s,i,a,o,c){const l=s.filter(u=>{if(typeof u=="boolean"||!u?.properties)return!1;const{[n]:m}=u.properties;if(m){const _={type:"object",properties:{[n]:m}};return e.isValid(_,o,r)||i}return!1});return!i&&l.length!==1?(console.warn("ignoring oneOf in dependencies because there isn't exactly one subschema that is valid"),[t]):l.flatMap(u=>{const m=u,[_]=Gc(n,m.properties),v={...m,properties:_};return hr(e,v,r,o,i,a,c).map(E=>jr(t,E))})}function Pi(e,t,r,n,s,i={},a){if(Array.isArray(r[s])){const c=Kt(r)||n,l=r[s].map(m=>bt(e,m,t,i,a)),u=me(i,c);if(u!==void 0)return l.find(m=>je(me(m,[rt,c,An],me(m,[rt,c,It])),u))}}function im(e,t,r,n,s){let i=r;if(lt(r,Je)&&(i=bt(e,r,t,void 0,s)),n.length===0)return i;const a=Array.isArray(n)?[...n]:rr(n),[o,...c]=a;if(o!==void 0&&o!==""&<(i,o))return i=me(i,o),im(e,t,i,c,s)}function Ca(e,t,r,n,s,i){const a=im(e,t,r,n,i);return a===void 0?s:a}const su={title:"!@#$_UNKNOWN_$#@!"};function Ug(e,t,r,n,s={},i){const a=Array.isArray(n)?[...n]:n.split(".");let o=r;const c=a.pop(),l=String(c);a.length&&a.forEach(v=>{o=Ca(e,t,o,[rt,v],{},i),lt(o,Se)?o=Pi(e,t,o,l,Se,me(s,v),i):lt(o,Ne)&&(o=Pi(e,t,o,l,Ne,me(s,v),i))}),lt(o,Se)?o=Pi(e,t,o,l,Se,s,i):lt(o,Ne)&&(o=Pi(e,t,o,l,Ne,s,i));let u=Ca(e,t,o,[rt,c],su,i);u===su&&(u=void 0);const m=Ca(e,t,o,Mh,[],i);let _;return u&&Array.isArray(m)&&(_=m.includes(l)),{field:u,isRequired:_}}const Lg={type:"object",$id:Sy,properties:{__not_really_there__:{type:"number"}}};function vc(e,t,r,n,s){let i=0;return r&&(ue(r.properties)?i+=Object.entries(r.properties).reduce((a,[o,c])=>{const l=n?.[o];if(typeof c=="boolean")return a;if(lt(c,Je)){const u=bt(e,c,t,l,s);return a+vc(e,t,u,l||{},s)}if((lt(c,Se)||lt(c,Ne))&&l){const u=lt(c,Se)?Se:Ne,m=Kt(c);return a+ii(e,t,l,me(c,u),-1,m,s)}if(c.type==="object")return a+(typeof l=="object"&&l!==null?1:0)+vc(e,t,c,l,s);if(c.type===Ii(l)){let u=a+1;return c.default?u+=l===c.default?1:-1:c.const&&(u+=l===c.const?1:-1),u}return a},0):typeof r.type=="string"&&r.type===Ii(n)&&(i+=1)),i}function ii(e,t,r,n,s=-1,i,a){const o=n.map(_=>Hr(_,t,[])),c=Kh(r,n,i);if(typeof c=="number")return c;const l=o.reduce((_,v,S)=>(Ra(e,r,[Lg,v],t,i)===1&&_.push(S),_),[]);if(l.length===1)return l[0];l.length||l.push(...o.keys());const u=new Set,{bestIndex:m}=l.reduce((_,v)=>{const{bestScore:S}=_,E=o[v],g=vc(e,t,E,r,a);return u.add(g),g>S?{bestIndex:v,bestScore:g}:_},{bestIndex:s,bestScore:0});return u.size===1&&s>=0?s:m}function sm(e){const t=e[It],r=Gt(e);return ue(t)&&typeof t?.$data=="string"&&r!=="object"&&r!=="array"}function am(e){return Array.isArray(e.enum)&&e.enum.length===1||It in e}function Wc(e){return Array.isArray(e.items)&&e.items.every(t=>ue(t))}function Ni(e,t,r=!1,n=!1,s=!1){if(Array.isArray(t)){const i=Array.isArray(e)?e:[],a=s?i:t,o=s?t:i,c=a.map((l,u)=>o[u]!==void 0?Ni(i[u],t[u],r,n,s):l);return(r||s)&&c.length{const u=a[l],m=o!==void 0&&l in o,_=l in a,v=o?.[l]??{},S=m&&ue(v)&&Object.values(v).some(y=>ue(y)||Array.isArray(y)),E=m&&ue(o?.[l]),g=_&&ue(u);return E&&g&&!S?(c[l]={...o?.[l],...u},c):(c[l]=Ni(o?.[l],u,r,n,s&&(m||!_)),i)},i)}return n&&(e!==void 0&&t==null||typeof t=="number"&&Number.isNaN(t))||s&&t!=null?e:t}function Xr(e,t,r=!1){return Object.keys(t).reduce((n,s)=>{const i=e?e[s]:{},a=t[s];if(e&&s in e&&ue(a))n[s]=Xr(i,a,r);else if(r&&Array.isArray(i)&&Array.isArray(a)){let o=a;r==="preventDuplicates"&&(o=a.reduce((c,l)=>(i.includes(l)||c.push(l),c),[])),n[s]=i.concat(o)}else n[s]=a;return n},{...e})}function Vg(e){if(_y in e&&Array.isArray(e.enum)&&e.enum.length===1)return e.enum[0];if(It in e)return e.const;throw new Error("schema cannot be inferred as a constant")}function zg(e,t){const r=new Map(e.map(i=>[String(i.value),i])),n=new Set(t.filter(i=>i!=="*").map(String)),s=e.filter(i=>!n.has(String(i.value)));return t.flatMap(i=>{if(i==="*")return s;const a=r.get(String(i));return a?[a]:[]})}function Pn(e,t){if(e.enum){let i,a;if(t){const{enumNames:c,enumOrder:l}=pe(t);i=c,a=l}let o=e.enum.map((c,l)=>({label:Array.isArray(i)?i[l]||String(c):i?.[String(c)]||String(c),value:c}));return a&&(o=zg(o,a)),o}let r,n;e.anyOf?(r=e.anyOf,n=t?.anyOf):e.oneOf&&(r=e.oneOf,n=t?.oneOf);let s=Kt(e);if(t){const{optionsSchemaSelector:i=s}=pe(t);s=i}return r?.map((i,a)=>{const{title:o}=pe(n?.[a]),c=i;let l,u=o;if(s){const m=gr(c,s);l=me(m,An,me(m,It)),u=u??m?.title??c.title??String(l)}else l=Vg(c),u=u??c.title??String(l);return{schema:c,label:u,value:l}})}function Ka(e,t,r={},n){const s=bt(e,t,r,void 0,n),i=s.oneOf||s.anyOf;return Array.isArray(s.enum)?!0:Array.isArray(i)?i.every(a=>typeof a!="boolean"&&am(a)):!1}function Jc(e,t,r,n){return!t.uniqueItems||!t.items||typeof t.items=="boolean"?!1:Ka(e,t.items,r,n)}const Bg=["string","number","integer","boolean","null"];var si;(function(e){e[e.Ignore=0]="Ignore",e[e.Invert=1]="Invert",e[e.Fallback=2]="Fallback"})(si||(si={}));function Io(e,t=si.Ignore,r=-1){if(r>=0){if(Array.isArray(e.items)&&r0:typeof e=="object"&&e!==null?Object.keys(e).length>0:!1}function om(e,t){const{default:r,type:n}=e;return Array.isArray(n)&&n.includes("null")&&!Hg(t)&&r===null?null:t}function au(e,t,r,n,s,i=[],a={},o=!1,c=!1){const{emptyObjectFields:l="populateAllDefaults"}=a;if(n===!0||o)e[t]=r;else if(n==="excludeObjectChildren")(c&&r!==void 0||!ue(r)||Object.keys(r).length>0)&&(e[t]=r);else if(l!=="skipDefaults"){const u=s===void 0?i.includes(t):s;ue(r)?l==="skipEmptyDefaults"?Object.keys(r).length>0&&(e[t]=r):(Object.keys(r).length>0||i.includes(t))&&(u||l!=="populateRequiredDefaults")&&(e[t]=r):r!==void 0&&(l==="populateAllDefaults"||l==="skipEmptyDefaults"||u&&i.includes(t))&&(e[t]=r)}}function Kr(e,t,r={}){const{parentDefaults:n,rawFormData:s,rootSchema:i={},includeUndefinedValues:a=!1,_recurseList:o=[],experimental_defaultFormStateBehavior:c,experimental_customMergeAllOf:l,required:u,shouldMergeDefaultsIntoFormData:m=!1,initialDefaultsGenerated:_}=r;let v=ue(s)?s:{};const S=ue(t)?t:{};let E=n;const g=E&&c?.nestedDefaultsPrecedence==="ancestorWins";let y=null,f=c,C=o;if(S[It]!==void 0&&c?.constAsDefaults!=="never"&&!sm(S))E=S[It];else if(ue(E)&&ue(S.default)&&!S[Ne]&&!S[Se]&&!S[Je])g?E=Xr(S.default,E):E=Xr(E,S.default);else if(An in S&&!g&&!S[Ne]&&!S[Se]&&!S[Je])E=S.default;else if(Je in S){const b=S[Je];o.includes(b)||(C=o.concat(b),y=ki(b,i));const O=s===void 0||ue(s)&&Object.keys(s).length===0;y&&!E&&O&&(E=S.default),m&&y&&!ue(s)&&(v=s)}else if(Lc in S){const b={...ou(e,S,r,E),...v};[y]=rm(e,S,i,!1,[],b,l)}else if(Wc(S)&&!g)E=S.items.map((b,O)=>Kr(e,b,{rootSchema:i,includeUndefinedValues:a,_recurseList:o,experimental_defaultFormStateBehavior:c,experimental_customMergeAllOf:l,parentDefaults:Array.isArray(n)?n[O]:void 0,rawFormData:v,required:u,shouldMergeDefaultsIntoFormData:m}));else if(Se in S){const{oneOf:b,...O}=S;if(b.length===0)return;const k=Kt(S),{type:$="null"}=O;!Array.isArray($)&&Bg.includes($)&&f?.constAsDefaults==="skipOneOf"&&(f={...f,constAsDefaults:"never"}),y=b[ii(e,i,s??S.default,b,0,k,l)],y=jr(O,y)}else if(Ne in S){const{anyOf:b,...O}=S;if(b.length===0)return;const k=Kt(S);y=b[ii(e,i,s??S.default,b,0,k,l)],y=jr(O,y)}if(y)return Kr(e,y,{rootSchema:i,includeUndefinedValues:a,_recurseList:C,experimental_defaultFormStateBehavior:f,experimental_customMergeAllOf:l,parentDefaults:E,rawFormData:s??v,required:u,shouldMergeDefaultsIntoFormData:m,initialDefaultsGenerated:_});E===void 0&&(E=S.default);let h=ou(e,S,r,E)??E;if(m){const{arrayMinItems:b={}}=c||{},{mergeExtraDefaults:O}=b,k=Yc(e,S,i,s,c,l);(!ue(s)||yr in S)&&(h=Ni(h,k,O,!0))}return h}function Yc(e,t,r,n,s,i){const a=s?.allOf==="populateDefaults"&&yr in t,o=a?bt(e,t,r,n,i):t,c=!am(o)&&Ka(e,o,r,i);let l=n;return c&&(l=Pn(o)?.some(v=>je(v.value,n))?n:void 0),o[It]&&s?.constAsDefaults==="always"?l=o.const:ue(l)&&ue(o.properties)&&(l=Object.keys(o.properties).reduce((m,_)=>{const v=gr(o,_);return _ in m&&(a||ue(v)&&yr in v)&&(m[_]=Yc(e,v,r,m[_],s,i)),m},{...l})),l}function Kg(e,t,{rawFormData:r,rootSchema:n={},includeUndefinedValues:s=!1,_recurseList:i=[],experimental_defaultFormStateBehavior:a,experimental_customMergeAllOf:o,required:c,shouldMergeDefaultsIntoFormData:l,initialDefaultsGenerated:u}={},m){{const _=ue(r)?r:{},v=t,E=a?.allOf==="populateDefaults"&&yr in v||a?.emptyObjectFields!=="skipEmptyDefaults"&&Vc in v?bt(e,v,n,_,o):v,g=E[It],y=Object.keys(E.properties||{}).reduce((f,C)=>{const x=gr(E,C),h=ue(g)&&g[C]!==void 0,b=(ue(x)&&It in x||h)&&a?.constAsDefaults!=="never"&&!sm(x),O=Kr(e,x,{rootSchema:n,_recurseList:i,experimental_defaultFormStateBehavior:a,experimental_customMergeAllOf:o,includeUndefinedValues:s===!0,parentDefaults:me(m,C),rawFormData:me(_,C),required:E.required?.includes(C),shouldMergeDefaultsIntoFormData:l,initialDefaultsGenerated:u});return au(f,C,O,s,c,E.required,a,b,x?.type==="null"),f},{});if(E.additionalProperties&&!u){const f=ue(E.additionalProperties)?E.additionalProperties:{},C=new Set,x=[];Object.keys(_).filter(h=>!E.properties||!E.properties[h]).forEach(h=>{C.add(h),x.push(h)}),ue(m)&&x.length===0&&Object.keys(m).filter(h=>!E.properties||!E.properties[h]).forEach(h=>C.add(h)),C.forEach(h=>{const b=Kr(e,f,{rootSchema:n,_recurseList:i,experimental_defaultFormStateBehavior:a,experimental_customMergeAllOf:o,includeUndefinedValues:s===!0,parentDefaults:me(m,h),rawFormData:me(_,h),required:E.required?.includes(h),shouldMergeDefaultsIntoFormData:l,initialDefaultsGenerated:u});au(y,h,b,s,c,x)})}return om(t,y)}}function Gg(e,t,{rawFormData:r,rootSchema:n={},_recurseList:s=[],experimental_defaultFormStateBehavior:i,experimental_customMergeAllOf:a,required:o,requiredAsRoot:c=!1,shouldMergeDefaultsIntoFormData:l,initialDefaultsGenerated:u}={},m){let _=m;const v=t,S=i?.arrayMinItems??{},{populate:E,mergeExtraDefaults:g}=S,y=E==="never",f=E==="requiredOnly",C=E==="all"||!y&&!f,x=S?.computeSkipPopulate??(()=>!1),b=i?.emptyObjectFields==="skipEmptyDefaults"?void 0:[];if(Array.isArray(_)&&(_=_.map(($,M)=>{const q=Io(v,si.Fallback,M),U=Array.isArray(r)?r[M]:void 0;return Kr(e,q,{rootSchema:n,_recurseList:s,experimental_defaultFormStateBehavior:i,experimental_customMergeAllOf:a,parentDefaults:$,rawFormData:U,required:o,shouldMergeDefaultsIntoFormData:l,initialDefaultsGenerated:u})})),Array.isArray(r)){const $=Io(v);if(y)_=r;else{const M=r.map((U,L)=>Kr(e,$,{rootSchema:n,_recurseList:s,experimental_defaultFormStateBehavior:i,experimental_customMergeAllOf:a,rawFormData:U,parentDefaults:me(_,L),required:o,shouldMergeDefaultsIntoFormData:l,initialDefaultsGenerated:u}));_=Ni(_,M,(f&&o||C)&&g)}}const O=Array.isArray(_)?_.length:0;if(y)return l&&!o?_:_??b;if(f&&!o)return _||void 0;let k;if(!v.minItems||Jc(e,v,n,a)||x(e,v,n)||v.minItems<=O)k=_||!o&&!c?_:b;else{const $=_||[],M=Io(v,si.Invert),q=M.default,U=Array.from({length:v.minItems-O},()=>Kr(e,M,{parentDefaults:q,rootSchema:n,_recurseList:s,experimental_defaultFormStateBehavior:i,experimental_customMergeAllOf:a,required:o,shouldMergeDefaultsIntoFormData:l}));k=$.concat(U)}return om(t,k)}function ou(e,t,r={},n){switch(Gt(t)){case"object":return Kg(e,t,r,n);case"array":return Gg(e,t,r,n);case"boolean":return r.required&&n===void 0?!1:void 0;default:return}}function cm(e,t,r,n,s=!1,i,a,o){if(!ue(t))throw new Error(`Invalid schema: ${t}`);const c=bt(e,t,n,r,a),l=Kr(e,c,{rootSchema:n,includeUndefinedValues:s,experimental_defaultFormStateBehavior:i,experimental_customMergeAllOf:a,rawFormData:r,shouldMergeDefaultsIntoFormData:!0,initialDefaultsGenerated:o,requiredAsRoot:!0});if(c.type!=="object"&&ue(c.default))return{...l,...r};if(ue(r)||Array.isArray(r)){const{mergeDefaultsIntoFormData:u}=i||{},m=u==="useDefaultIfFormDataUndefined",_=Yc(e,c,n??c,r,i,a);return Ni(l,_,!0,m,!0)}return l}function lm(e={}){return"widget"in pe(e)&&pe(e).widget!=="hidden"}function um(e,t,r={},n,s){if(r[Hc]==="files")return!0;if(t.items){const i=bt(e,t.items,n,void 0,s);return i.type==="string"&&i.format==="data-url"}return!1}function Wg(e,t,r={},n,s,i){const a=pe(r,s),{label:o=!0}=a;let c=!!o;if(c){const l=Gt(t),u=!!t[Sn];l==="array"&&(c=u||Jc(e,t,n,i)||um(e,t,r,n,i)||lm(r)),l==="object"&&(c=u),l==="boolean"&&r&&!r[Hc]&&(c=!1),r?.[Ey]&&(c=!1)}return c}function Jg(e,t){if(t.length===0&&typeof e!="object")return e;const r={};return t.forEach(n=>{const s=Array.isArray(n)?n:rr(n);lt(e,s)&&st(r,s,me(e,s))}),Array.isArray(e)?Object.keys(r).map(n=>r[n]):r}function Yg(e,t){const r=(s,i)=>typeof s!="object"||s===null?!0:(Array.isArray(s)?s.length===0:Object.keys(s).length===0)||i,n=(s,i=[],a=[[]])=>{const o=Object.keys(s);return o.forEach(c=>{const l=s[c];if(typeof l=="object"){const u=a.map(m=>[...m,c]);l[Bc]&&l[ba]!==""?i.push(l[ba]):n(l,i,u)}else c===ba&&l!==""&&a.forEach(u=>{const m=me(t,u),_=o.length===1;(r(m,_)||Array.isArray(m)&&m.every(v=>r(v,_)))&&i.push(u)})}),i};return n(e)}function dm(e){return e==null||e===""?!0:Array.isArray(e)?e.length===0:ue(e)?Object.values(e).every(dm):!1}function Xg(e,t){return t?t(e):Yh(e)}function Zg(e,t,r={},n,s){function i(S){return ue(S)}function a(S){return ue(S)}function o(S,E,g){const{properties:y,additionalProperties:f,patternProperties:C}=S,x=new Set(S.required??[]);function h(O,k,$,M=!1){const q=v(k,$,g[O]);if(!M&&ue(q)){let U=a(k)?k:{};U.$ref!==void 0&&(U=ki(U.$ref,r));const L=new Set(U.required??[]);if(Object.entries(q).every(([J,Y])=>!L.has(J)&&dm(Y)))return}q!==void 0&&(g[O]=q)}if(y!==void 0)for(const[O,k]of Object.entries(y))h(O,k,E[O],x.has(O));let b;if(C!==void 0){b=[];const O=Object.entries(C).map(([$,M])=>[new RegExp($),M]),k=new Set(Object.keys(y??{}));for(const[$,M]of Object.entries(E))if(!k.has($)){const q=O.find(([U])=>U.test($));q===void 0?b.push($):h($,q[1],M)}}if(f!==void 0&&f!==!1){const O=f;if(b!==void 0)for(const k of b)h(k,O,E[k]);else{const k=new Set(Object.keys(y??{}));for(const[$,M]of Object.entries(E))k.has($)||h($,O,M)}}return g}function c(S,E,g){const{items:y,additionalItems:f}=S;if(Array.isArray(y)){const C=Math.min(y.length,E.length);let x=0;for(;xnew RegExp(q)):[];for(const q of Object.keys(O))!$.has(q)&&!M.some(U=>U.test(q))&&delete O[q]}return _(f,E,O)??(y?E:void 0)}return v(t,n)}const Lt=Symbol("no Value");function fm(e){if(Array.isArray(e.enum))return e.enum;const t=e.oneOf||e.anyOf;if(!Array.isArray(t))return;const r=t.map(n=>It in n?n[It]:Array.isArray(n.enum)&&n.enum.length===1?n.enum[0]:Lt).filter(n=>n!==Lt);return r.length>0?r:void 0}function Qg(e,t){const r=fm(e);if(!r||r.some(s=>je(s,t)))return Lt;const n=me(e,An,Lt);return n!==Lt&&r.some(s=>je(s,n))?n:r.length===1?r[0]:void 0}function bc(e,t,r,n,s={},i){let a;const o=r?.[rt];if(o){const c={},l=n?.[rt];l&&Object.keys(l).forEach(_=>{lt(s,_)&&(c[_]=void 0)});const u=Object.keys(o),m={};u.forEach(_=>{const v=s?.[_],S=!lt(n,[rt,_]);let E=gr(n,_),g=gr(r,_);lt(E,Je)&&(E=bt(e,E,t,v,i)),lt(g,Je)&&(g=bt(e,g,t,v,i));const y=E.type,f=g.type;if(!y||y===f)if(_ in c&&delete c[_],f==="object"||f==="array"&&Array.isArray(v)){const C=bc(e,t,g,S&&f==="array"?g:E,v,i);(C!==void 0||f==="array")&&(m[_]=C)}else{const C=me(g,An,Lt),x=me(E,An,Lt);C!==Lt&&C!==v&&(S&&v===void 0||x===v?c[_]=C:g.readOnly===!0&&(c[_]=void 0));const h=me(g,It,Lt),b=me(E,It,Lt);if(h!==Lt&&h!==v&&(c[_]=b===v?h:void 0),lt(s,_)){const O=Qg(g,v);O!==Lt&&(c[_]=O)}}}),a={...typeof s=="string"||Array.isArray(s)?void 0:s,...c,...m}}else if(n?.type==="array"&&r?.type==="array"&&Array.isArray(s)){let c=n.items,l=r.items;if(typeof c=="object"&&typeof l=="object"&&!Array.isArray(c)&&!Array.isArray(l)){lt(c,Je)&&(c=bt(e,c,t,s,i)),lt(l,Je)&&(l=bt(e,l,t,s,i));const u=me(c,"type"),m=me(l,"type");if(!u||u===m){const _=r.maxItems??-1;if(m==="object")a=s.reduce((v,S)=>{const E=bc(e,t,l,c,S,i);return E!==void 0&&(_<0||v.length<_)&&v.push(E),v},[]);else{const v=fm(l),S=v?s.filter(E=>v.some(g=>je(g,E))):s;a=_>0&&S.length>_?S.slice(0,_):S}}}else typeof c=="boolean"&&typeof l=="boolean"&&c===l&&(a=s)}return a}function Ur(e,t,r,n,s,i=[],a){if(Je in t||Lc in t||yr in t||Vc in t){const c=bt(e,t,n,s,a);if(i.findIndex(u=>je(u,c))===-1)return Ur(e,c,r,n,s,i.concat(c),a)}let o={[ba]:r.replace(/^\./,"")};if(Se in t||Ne in t){const c=Se in t?t.oneOf:t.anyOf,l=Kt(t),u=ii(e,n,s,c,0,l,a),m=c[u];o={...o,...Ur(e,m,r,n,s,i,a)}}if(Jn in t&&t[Jn]!==!1){st(o,Bc,!0);const c=ue(t[Jn])?t[Jn]:{},l=t[rt]??{};for(const u of Object.keys(s??{}))u in l||(o[u]=Ur(e,c,`${r}.${u}`,n,me(s,u),i,a))}if(ni in t&&Array.isArray(s)){const{items:c,additionalItems:l}=t;Array.isArray(c)?s.forEach((u,m)=>{c[m]?o[m]=Ur(e,c[m],`${r}.${m}`,n,u,i,a):l?o[m]=Ur(e,l,`${r}.${m}`,n,u,i,a):console.warn(`Unable to generate path schema for "${r}.${m}". No schema defined for it`)}):s.forEach((u,m)=>{o[m]=Ur(e,c,`${r}.${m}`,n,u,i,a)})}else if(rt in t)for(const c in t.properties){const l=gr(t,c);o[c]=Ur(e,l,`${r}.${c}`,n,me(s,c),i,a)}return o}function e0(e,t,r="",n,s,i){return Ur(e,t,r,n,s,void 0,i)}class t0{rootSchema;validator;experimental_defaultFormStateBehavior;experimental_customMergeAllOf;constructor(t,r,n,s){r?.[Ei]===Sa?this.rootSchema=gc(r,r[Ue]??"#"):this.rootSchema=r,this.validator=t,this.experimental_defaultFormStateBehavior=n,this.experimental_customMergeAllOf=s}getRootSchema(){return this.rootSchema}getValidator(){return this.validator}doesSchemaUtilsDiffer(t,r,n={},s){return!t||!r?!1:this.validator!==t||!je(this.rootSchema,r)||!je(this.experimental_defaultFormStateBehavior,n)||this.experimental_customMergeAllOf!==s}findFieldInSchema(t,r,n){return Ug(this.validator,this.rootSchema,t,r,n,this.experimental_customMergeAllOf)}findSelectedOptionInXxxOf(t,r,n,s){return Pi(this.validator,this.rootSchema,t,r,n,s,this.experimental_customMergeAllOf)}getDefaultFormState(t,r,n=!1,s){return cm(this.validator,t,r,this.rootSchema,n,this.experimental_defaultFormStateBehavior,this.experimental_customMergeAllOf,s)}getDisplayLabel(t,r,n){return Wg(this.validator,t,r,this.rootSchema,n,this.experimental_customMergeAllOf)}getClosestMatchingOption(t,r,n,s){return ii(this.validator,this.rootSchema,t,r,n,s,this.experimental_customMergeAllOf)}getFirstMatchingOption(t,r,n){return Ra(this.validator,t,r,this.rootSchema,n)}getFromSchema(t,r,n){return Ca(this.validator,this.rootSchema,t,r,n,this.experimental_customMergeAllOf)}isFilesArray(t,r){return um(this.validator,t,r,this.rootSchema,this.experimental_customMergeAllOf)}isMultiSelect(t){return Jc(this.validator,t,this.rootSchema,this.experimental_customMergeAllOf)}isSelect(t){return Ka(this.validator,t,this.rootSchema,this.experimental_customMergeAllOf)}omitExtraData(t,r){return Zg(this.validator,t,this.rootSchema,r)}retrieveSchema(t,r,n){return bt(this.validator,t,this.rootSchema,r,this.experimental_customMergeAllOf,n)}sanitizeDataForNewSchema(t,r,n){return bc(this.validator,this.rootSchema,t,r,n,this.experimental_customMergeAllOf)}toPathSchema(t,r,n){return e0(this.validator,t,r,this.rootSchema,n,this.experimental_customMergeAllOf)}}function r0(e,t,r={},n){return new t0(e,t,r,n)}function n0(e){if(!e.includes("data:"))throw new Error("File is invalid: URI must be a dataURI");const r=e.slice(5).split(";base64,");if(r.length!==2)throw new Error("File is invalid: dataURI must be base64");const[n,s]=r,[i,...a]=n.split(";"),o=i||"",c=decodeURI(a.map(l=>l.split("=")).find(([l])=>l==="name")?.[1]||"unknown");try{const l=atob(s),u=new Array(l.length);for(let _=0;_ 0, got one of each`);const s=new Date().getFullYear(),i=r?s+e:e,a=r?s+t:t;if(i>a)return hm(t,e).reverse();const o=[];for(let c=i;c<=a;c+=1)o.push({value:c,label:Lr(c,2)});return o}function i0(e,t){let r=e;if(Array.isArray(t)){const n=r.split(/(%\d)/);t.forEach((s,i)=>{const a=n.findIndex(o=>o===`%${i+1}`);a>=0&&(n[a]=s)}),r=n.join("")}return r}function s0(e,t){return i0(e,t)}function Ga(e,t=[],r){if(Array.isArray(e))return e.map(i=>Ga(i,t)).filter(i=>i!==void 0);const n=e===""||e===null?-1:Number(e),s=t[n];return s?s.value:r}function a0(e,t,r=[]){const n=Ga(e,r);return Array.isArray(t)?t.filter(s=>!je(s,n)):je(n,t)?void 0:t}function Wa(e,t){return Array.isArray(t)?t.some(r=>je(r,e)):je(t,e)}function mm(e,t=[],r=!1){const n=t.map((s,i)=>Wa(s.value,e)?String(i):void 0).filter(s=>typeof s<"u");return r?n:n[0]}function o0(e,t,r,n="indexed",s){if(typeof e>"u"||r&&Array.isArray(e)&&e.length<1||!r&&e===s)return s;if(n==="realValue")return r?e.map(String):String(e);const a=mm(e,t,r);return typeof a>"u"?s:a}function c0(e,t,r=[]){const n=Ga(e,r);if(n!=null){const s=r.findIndex(o=>n===o.value),i=r.map(({value:o})=>o);return t.slice(0,s).concat(n,t.slice(s)).sort((o,c)=>+(i.indexOf(o)>i.indexOf(c)))}return t}function cu(e,t,r){if(e===""||!Array.isArray(t))return r;const n=t.find(i=>String(i.value)===e);if(n)return n.value;const s=Number(e);return!Number.isNaN(s)&&s>=0&&scu(s,t,n)):cu(e,t,n)}function Xc(e,t,r="indexed"){return r!=="realValue"?String(t):e==null?"":String(typeof e=="object"?t:e)}class pm{errorSchema={};constructor(t){this.resetAllErrors(t)}get ErrorSchema(){return this.errorSchema}getOrCreateErrorBlock(t){const r=typeof t=="string"?rr(t):t??[];if(r.length===0)return this.errorSchema;let n=me(this.errorSchema,r);return n||(n={},st(this.errorSchema,r,n,!0)),n}resetAllErrors(t){return this.errorSchema=t?structuredClone(t):{},this}addErrors(t,r){const n=this.getOrCreateErrorBlock(r);let s=n[vt];return Array.isArray(s)||(s=[],n[vt]=s),Array.isArray(t)?n[vt]=[...new Set([...s,...t])]:n[vt]=[...new Set([...s,t])],this}setErrors(t,r){const n=this.getOrCreateErrorBlock(r),s=Array.isArray(t)?[...new Set([...t])]:[t];return n[vt]=s,this}clearErrors(t){const r=this.getOrCreateErrorBlock(t);return r[vt]=[],this}}function ym(e,t){return Or(e)&&Or(t)?Ea(e,t,!0):Array.isArray(e)&&Array.isArray(t)&&e.length===t.length?e.flatMap((r,n)=>{if(je(r,t[n]))return[];const s=ym(r,t[n]);return s.length?s.map(i=>`${n}.${i}`):[String(n)]}):[]}function Ea(e,t,r=!1){if(e===t)return[];if(!Or(e))return Or(t)?Object.keys(t):[];if(!Or(t))return Object.keys(e);const n=Object.keys(e),s=new Set(n),i=n.filter(o=>!je(e[o],me(t,o))).flatMap(o=>{if(!r)return[o];const c=ym(e[o],me(t,o));return c.length?c.map(l=>`${o}.${l}`):[o]}),a=Object.keys(t).filter(o=>!s.has(o));return[...i,...a]}function l0(e,t,r=[1900,new Date().getFullYear()+2],n="YMD"){const{day:s,month:i,year:a,hour:o,minute:c,second:l}=e,u={type:"day",range:[1,31],value:s},m={type:"month",range:[1,12],value:i},_={type:"year",range:r,value:a},v=[];switch(n){case"MDY":v.push(m,u,_);break;case"DMY":v.push(u,m,_);break;case"YMD":default:v.push(_,m,u)}return t&&v.push({type:"hour",range:[0,23],value:o},{type:"minute",range:[0,59],value:c},{type:"second",range:[0,59],value:l}),v}function u0(e){const t={};return e.multipleOf&&(t.step=e.multipleOf),(e.minimum||e.minimum===0)&&(t.min=e.minimum),(e.maximum||e.maximum===0)&&(t.max=e.maximum),t}function d0(e,t,r={},n=!0){const s={type:t||"text",...u0(e)};return r.inputType?s.type=r.inputType:t||(e.type==="number"?(s.type="number",n&&s.step===void 0&&(s.step="any")):e.type==="integer"&&(s.type="number",s.step===void 0&&(s.step=1))),["date","datetime-local","time","week","month"].includes(s.type)&&(e.formatMinimum!==void 0&&(s.min=e.formatMinimum),e.formatMaximum!==void 0&&(s.max=e.formatMaximum)),r.autocomplete&&(s.autoComplete=r.autocomplete),r.autocapitalize&&(s.autoCapitalize=r.autocapitalize),r.accept&&(s.accept=r.accept),s}function Zc(e){return e?.optionValueFormat??"indexed"}const lu={props:{disabled:!1},submitText:"Submit",norender:!1};function f0(e={}){const t=pe(e);if(t?.[ka]){const r=t[ka];return{...lu,...r}}return lu}function _e(e,t,r={}){const{templates:n}=t;if(e==="ButtonTemplates")return n[e];if(Object.hasOwn(r,e)&&typeof r[e]=="string"&&Object.hasOwn(n,r[e])){const s=r[e];return n[s]}return r[e]||n[e]}let uu=0;function Qc(){if(me(globalThis,["process","env","NODE_ENV"])!=="test")return{};const e=new Map;return new Proxy({},{get(t,r){return e.has(r)||(uu+=1,e.set(r,`test-id-${uu}`)),e.get(r)}})}var No={exports:{}},Be={};var du;function h0(){if(du)return Be;du=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),i=Symbol.for("react.provider"),a=Symbol.for("react.context"),o=Symbol.for("react.server_context"),c=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),u=Symbol.for("react.suspense_list"),m=Symbol.for("react.memo"),_=Symbol.for("react.lazy"),v=Symbol.for("react.offscreen"),S;S=Symbol.for("react.module.reference");function E(g){if(typeof g=="object"&&g!==null){var y=g.$$typeof;switch(y){case e:switch(g=g.type,g){case r:case s:case n:case l:case u:return g;default:switch(g=g&&g.$$typeof,g){case o:case a:case c:case _:case m:case i:return g;default:return y}}case t:return y}}}return Be.ContextConsumer=a,Be.ContextProvider=i,Be.Element=e,Be.ForwardRef=c,Be.Fragment=r,Be.Lazy=_,Be.Memo=m,Be.Portal=t,Be.Profiler=s,Be.StrictMode=n,Be.Suspense=l,Be.SuspenseList=u,Be.isAsyncMode=function(){return!1},Be.isConcurrentMode=function(){return!1},Be.isContextConsumer=function(g){return E(g)===a},Be.isContextProvider=function(g){return E(g)===i},Be.isElement=function(g){return typeof g=="object"&&g!==null&&g.$$typeof===e},Be.isForwardRef=function(g){return E(g)===c},Be.isFragment=function(g){return E(g)===r},Be.isLazy=function(g){return E(g)===_},Be.isMemo=function(g){return E(g)===m},Be.isPortal=function(g){return E(g)===t},Be.isProfiler=function(g){return E(g)===s},Be.isStrictMode=function(g){return E(g)===n},Be.isSuspense=function(g){return E(g)===l},Be.isSuspenseList=function(g){return E(g)===u},Be.isValidElementType=function(g){return typeof g=="string"||typeof g=="function"||g===r||g===s||g===n||g===l||g===u||g===v||typeof g=="object"&&g!==null&&(g.$$typeof===_||g.$$typeof===m||g.$$typeof===i||g.$$typeof===a||g.$$typeof===c||g.$$typeof===S||g.getModuleId!==void 0)},Be.typeOf=E,Be}var fu;function m0(){return fu||(fu=1,No.exports=h0()),No.exports}var p0=m0();const hu=Fi(p0),Ro={boolean:{checkbox:"CheckboxWidget",radio:"RadioWidget",select:"SelectWidget",hidden:"HiddenWidget"},string:{text:"TextWidget",password:"PasswordWidget",email:"EmailWidget",hostname:"TextWidget",ipv4:"TextWidget",ipv6:"TextWidget",uri:"URLWidget","data-url":"FileWidget",radio:"RadioWidget",select:"SelectWidget",textarea:"TextareaWidget",hidden:"HiddenWidget",date:"DateWidget",datetime:"DateTimeWidget","date-time":"DateTimeWidget","alt-date":"AltDateWidget","alt-datetime":"AltDateTimeWidget",time:"TimeWidget",color:"ColorWidget",file:"FileWidget"},number:{text:"TextWidget",select:"SelectWidget",updown:"UpDownWidget",range:"RangeWidget",radio:"RadioWidget",hidden:"HiddenWidget"},integer:{text:"TextWidget",select:"SelectWidget",updown:"UpDownWidget",range:"RangeWidget",radio:"RadioWidget",hidden:"HiddenWidget"},array:{select:"SelectWidget",checkboxes:"CheckboxesWidget",files:"FileWidget",hidden:"HiddenWidget"}};function y0(e){let{MergedWidget:t}=e;if(!t){const r=e.defaultProps?.options||{};t=({options:n,...s})=>N.jsx(e,{options:{...r,...n},...s}),e.MergedWidget=t}return t}function vr(e,t,r={}){const n=Gt(e);if(typeof t=="function"||t&&hu.isForwardRef(Z.createElement(t))||hu.isMemo(t))return y0(t);if(typeof t!="string")throw new Error(`Unsupported widget definition: ${typeof t} in schema: ${JSON.stringify(e)}`);if(t in r){const s=r[t];return vr(e,s,r)}if(typeof n=="string"){if(!(n in Ro))throw new Error(`No widget for type '${n}' in schema: ${JSON.stringify(e)}`);if(t in Ro[n]){const s=r[Ro[n][t]];return vr(e,s,r)}}throw new Error(`No widget '${t}' for type '${n}' in schema: ${JSON.stringify(e)}`)}function gm(e){let t=0;for(let r=0;rs===void 0?"undefined":$a(s)).join(",")}]`;if(e===null||typeof e!="object")return JSON.stringify(typeof e=="function"?null:e);const r=e;return`{${Object.keys(r).sort().filter(s=>t(r[s])).map(s=>`${JSON.stringify(s)}:${$a(r[s])}`).join(",")}}`}function zt(e){return gm($a(e))}function g0(e){return gm($a(e))}function v0(e,t,r={}){try{return vr(e,t,r),!0}catch(n){const s=n;if(s.message&&(s.message.startsWith("No widget")||s.message.startsWith("Unsupported widget")))return!1;throw n}}function Rn(e,t){return`${typeof e=="string"?e:e[Ue]}__${t}`}function ai(e){return Rn(e,"description")}function vm(e){return Rn(e,"error")}function el(e){return Rn(e,"examples")}function bm(e){return Rn(e,"help")}function tl(e){return Rn(e,"title")}function $n(e,t=!1){const r=t?` ${el(e)}`:"";return`${vm(e)} ${ai(e)} ${bm(e)}${r}`}function _m(e,t){return`${e}-${t}`}function _n(e,t){return Rn(e,t)}function $o(e,t){return Rn(e,`optional${t}`)}function oi(e){return e==null?!1:typeof e!="object"||Array.isArray(e)?!0:Object.keys(e).length>0}function b0(e,t){const{rootSchema:r,schemaUtils:n}=e;if(je(t,r))return!0;if(Je in r){const s=n.retrieveSchema(r);return je(t,s)}return!1}function _0(e,t,r){return t?r:e}function S0(e){return e?new Date(e).toJSON():void 0}function w0(e,t,r,n=!1){!n&&Array.isArray(r)&&t.default!==void 0&&mm(t.default,r,n)===void 0&&console.error(`The schema default value "${t.default}" is not one of the values in the enum options for "${e}"`)}function rl(e,t,r){const n=[Cy];return lt(e,Fl)&&n.unshift(Fl),me(e,[...n,t],r)}function Fo(){}function C0(e,t){if(!Array.isArray(t))return e;const r=u=>u.reduce((m,_)=>(m[_]=!0,m),{}),n=u=>u.length>1?`properties '${u.join("', '")}'`:`property '${u[0]}'`,s=r(e),i=t.filter(u=>u==="*"||s[u]),a=r(i),o=e.filter(u=>!a[u]),c=i.indexOf("*");if(c===-1){if(o.length)throw new Error(`uiSchema order list does not contain ${n(o)}`);return i}if(c!==i.lastIndexOf("*"))throw new Error("uiSchema order list contains more than one wildcard item");const l=[...i];return l.splice(c,1,...o),l}function Do(e,t=!0){if(!e)return{year:-1,month:-1,day:-1,hour:t?-1:0,minute:t?-1:0,second:t?-1:0};const r=new Date(e);if(Number.isNaN(r.getTime()))throw new Error(`Unable to parse date ${e}`);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:t?r.getUTCHours():0,minute:t?r.getUTCMinutes():0,second:t?r.getUTCSeconds():0}}function E0(e,t,r){const n=e[_a]??e[Je],s=r.uiSchemaDefinitions,i=n&&s?s[n]:void 0;let a;if(i?!t||Object.keys(t).length===0?a={...i}:a=Xr(i,t):a=t||{},s){let o=e;if(n&&e[Je]&&!e[_a])try{o=ki(n,r.rootSchema)}catch(c){return console.warn(`could not resolve $ref in resolveUiSchema: +`,c),a}for(const c of[Se,Ne]){const l=o[c];if(Array.isArray(l)&&l.length>0){const u=a[c],m=Array.isArray(u)?[...u]:[];let _=!1;for(let v=0;vAa(r);return e.allOf.some(t)}return!1}function A0({hideLabel:e,id:t,multiple:r,options:n,registry:s,uiSchema:i,value:a}){if(r||e)return null;const{label:o=!0}=pe(i,s.globalUiOptions);if(!o)return null;const c=n.enumOptions?.find(({value:m})=>Wa(m,a)),l=c?.schema?.description;if(!l)return null;const u=_e("DescriptionFieldTemplate",s,n);return N.jsx(u,{id:ai(t),description:l,schema:c.schema,uiSchema:i,registry:s})}function _c(e,t){if(Object.is(e,t))return!0;if(e==null||t==null||typeof e!="object"||typeof t!="object")return!1;const r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let s=0;sue(r)?Gt(r):void 0).flat().filter(r=>r!==void 0))];return t.length===1?t[0]:t}function Di(e,t,r,n){const{enableOptionalDataFieldForType:s=[]}=pe(n,e.globalUiOptions);let i;return Ne in t&&Array.isArray(t[Ne])?i=mu(t[Ne]):Se in t&&Array.isArray(t[Se])?i=mu(t[Se]):i=Gt(t),!b0(e,t)&&!r&&!!i&&!Array.isArray(i)&&!!s.find(a=>a===i)}function pu(e,t=!0){const{year:r,month:n,day:s,hour:i=0,minute:a=0,second:o=0}=e,c=Date.UTC(r,n-1,s,i,a,o),l=new Date(c).toJSON();return t?l:l.slice(0,10)}function Sm(e,t=[]){return e?wm(e,t):[]}function wm(e,t){const r=e[vt],n=`.${t.join(".")}`,s=Array.isArray(r)?r.map(i=>({property:n,message:i,stack:`${n} ${i}`})):[];return Object.keys(e).reduce((i,a)=>{const o=e[a];return a!==vt&&Or(o)?i.concat(wm(o,[...t,a])):i},s)}function x0(e){const t=new pm;return e.length&&e.forEach(r=>{const{property:n,message:s}=r,i=n?rr(n):[];s&&t.addErrors(s,i)}),t.ErrorSchema}function nr(e,t,r,n){const s=Array.isArray(r)?r:r?.path,i=e===""?[]:[e],a=s?s.concat(...i):i,o=[t.idPrefix,...a].join(t.idSeparator);let c;return t.nameGenerator&&a.length>0&&(c=t.nameGenerator(a,t.idPrefix,n)),{path:a,[Ue]:o,...c!==void 0&&{name:c}}}function O0(e){return Cm(e)}function Cm(e){return Object.keys(e).reduce((t,r)=>{if(r==="addError")return t;const n=e[r];return Or(n)?{...t,[r]:Cm(n)}:{...t,[r]:n}},{})}function j0(e){return Object.values(e).every(t=>t!==-1)}function k0(e){const{className:t="form-control",type:r,range:n,value:s,select:i,rootId:a,name:o,disabled:c,readonly:l,autofocus:u,registry:m,onBlur:_,onFocus:v}=e,S=`${a}_${r}`,{SelectWidget:E}=m.widgets,g=Z.useCallback(y=>i(r,y),[i,r]);return N.jsx(E,{schema:{type:"integer"},id:S,name:o,className:t,options:{enumOptions:hm(n[0],n[1])},placeholder:r,value:s,disabled:c,readonly:l,autofocus:u,onChange:g,onBlur:_,onFocus:v,registry:m,label:"","aria-describedby":$n(a)})}function I0(e){const{time:t=!1,disabled:r=!1,readonly:n=!1,options:s,onChange:i,value:a}=e,[o,c]=Z.useState(Do(a,t));Z.useEffect(()=>{c(Do(a,t))},[t,a]);const l=Z.useCallback((v,S)=>{const E={...o,[v]:typeof S>"u"?-1:S};j0(E)?i(pu(E,t)):c(E)},[o,i,t]),u=Z.useCallback(v=>{v.preventDefault(),!(r||n)&&i(void 0)},[r,n,i]),m=Z.useCallback(v=>{if(v.preventDefault(),r||n)return;const S=Do(new Date().toJSON(),t);i(pu(S,t))},[r,n,t,i]);return{elements:Z.useMemo(()=>l0(o,t,s.yearsRange,s.format),[o,t,s.yearsRange,s.format]),handleChange:l,handleClear:u,handleSetNow:m}}function ci(e){const t=Z.useRef(e);return je(e,t.current)||(t.current=e),t.current}function N0(e,t){return e.replace(";base64",`;name=${encodeURIComponent(t)};base64`)}async function R0(e){const{name:t,size:r,type:n}=e;return new Promise((s,i)=>{const a=new window.FileReader;a.onerror=i,a.onload=o=>{typeof o.target?.result=="string"?s({dataURL:N0(o.target.result,t),name:t,size:r,type:n}):s({dataURL:null,name:t,size:r,type:n})},a.readAsDataURL(e)})}async function $0(e){return Promise.all(Array.from(e).map(R0))}function yu(e){return e.reduce((t,r)=>{if(!r)return t;try{const{blob:n,name:s}=n0(r);return[...t,{dataURL:r,name:s,size:n.size,type:n.type}]}catch{return t}},[])}function F0(e,t,r=!1){const n=Z.useMemo(()=>r&&e?Array.isArray(e)?e:[e]:[],[e,r]),s=Z.useMemo(()=>Array.isArray(e)?yu(e):yu([e||""]),[e]),i=Z.useCallback(async o=>{const l=(await $0(o)).map(u=>u.dataURL||null);t(r?n.concat(...l):l[0])},[n,r,t]),a=Z.useCallback(o=>{if(r){const c=n.filter((l,u)=>u!==o);t(c)}else t(void 0)},[n,r,t]);return{filesInfo:s,handleChange:i,handleRemove:a}}function D0(e){if(!e)return"";const t=new Date(e),r=Lr(t.getFullYear(),4),n=Lr(t.getMonth()+1,2),s=Lr(t.getDate(),2),i=Lr(t.getHours(),2),a=Lr(t.getMinutes(),2),o=Lr(t.getSeconds(),2),c=Lr(t.getMilliseconds(),3);return`${r}-${n}-${s}T${i}:${a}:${o}.${c}`}function xi(e,t,r=!1){if(!t)return e;const{errors:n,errorSchema:s}=e;let i=Sm(t),a=t;return s&&Object.keys(s).length>0&&(a=Xr(s,t,r?"preventDuplicates":!0),i=[...n].concat(i)),{errorSchema:a,errors:i}}function T0(e){const t=e;for(const r in t)if(Object.hasOwn(t,r)){const n=t[r];r===Je&&typeof n=="string"&&n.startsWith("#")?t[r]=Vh+n:t[r]=nl(n)}return e}function M0(e){return e.map(t=>nl(t))}function nl(e){return Array.isArray(e)?M0([...e]):ue(e)?T0({...e}):e}var $e;(function(e){e.ArrayItemTitle="Item",e.MissingItems="Missing items definition",e.EmptyArray="No items yet. Use the button below to add some.",e.YesLabel="Yes",e.NoLabel="No",e.CloseLabel="Close",e.ErrorsLabel="Errors",e.NewStringDefault="New Value",e.AddButton="Add",e.AddItemButton="Add Item",e.CopyButton="Copy",e.ExpandButton="Expand Cycle",e.MoveDownButton="Move down",e.MoveUpButton="Move up",e.RemoveButton="Remove",e.NowLabel="Now",e.ClearLabel="Clear",e.AriaDateLabel="Select a date",e.PreviewLabel="Preview",e.DecrementAriaLabel="Decrease value by 1",e.IncrementAriaLabel="Increase value by 1",e.OptionalObjectAdd="Add data for optional field",e.OptionalObjectRemove="Remove data for optional field",e.OptionalObjectEmptyMsg="No data for optional field",e.Type="Type",e.Value="Value",e.ClearButton="clear input",e.UnknownFieldType="Unknown field type %1",e.OptionPrefix="Option %1",e.TitleOptionPrefix="%1 option %2",e.KeyLabel="%1 Key",e.DeprecatedLabel="%1 (deprecated)",e.CycleDetected='Circular reference ($ref cycle) detected for field "%1". You may choose to expand to the next cycle break',e.InvalidObjectField='Invalid "%1" object field configuration: _%2_.',e.UnsupportedField="Unsupported field schema.",e.UnsupportedFieldWithId="Unsupported field schema for field `%1`.",e.UnsupportedFieldWithReason="Unsupported field schema: _%1_.",e.UnsupportedFieldWithIdAndReason="Unsupported field schema for field `%1`: _%2_.",e.FilesInfo="**%1** (%2, %3 bytes)"})($e||($e={}));let gu=0;function Sc(){return gu+=1,`rjsf-array-item-${gu}`}function vu(e){return Array.isArray(e)?e.map(t=>({key:Sc(),item:t})):[]}function Em(e){return Array.isArray(e)?e.map(t=>t.item):[]}function q0(e){return Array.isArray(e.type)?!e.type.includes("null"):e.type!=="null"}function Am(e,t,r,n){let{addable:s}=pe(n,e.globalUiOptions);return s!==!1&&(t.maxItems!==void 0?s=r.lengthB.retrieveSchema(S,E),[B,S,E]),A=Z.useMemo(()=>nr(r,X,y),[r,X,y]),w=J||Y,j=_e("ArrayFieldItemTemplate",o,c),p=B.getDisplayLabel(re,g,Q),{description:d}=pe(g),P=!!d||!!re.description,{orderable:I=!0,removable:T=!0,copyable:F=!1}=c,z={moveUp:I&&_,moveDown:I&&v,copy:F&&u,remove:T&&m,toolbar:!1};z.toolbar=Object.keys(z).some(W=>z[W]);const H=Z.useCallback(W=>{M(W,r+1)},[M,r]),R=Z.useCallback(W=>{q(W,r)},[q,r]),D=Z.useCallback(W=>{U(W,r)},[U,r]),V=Z.useCallback(W=>{L(W,r,r-1)},[L,r]),K=Z.useCallback(W=>{L(W,r,r+1)},[L,r]),G={children:N.jsx(w,{name:n,title:$,index:r,schema:re,uiSchema:g,formData:E,errorSchema:f,fieldPathId:A,required:q0(re),onChange:b,onBlur:x,onFocus:h,registry:o,disabled:s,readonly:a,hideError:i,autofocus:C,rawErrors:O}),buttonsProps:{fieldPathId:A,disabled:s,readonly:a,canAdd:u,hasCopy:z.copy,hasMoveUp:z.moveUp,hasMoveDown:z.moveDown,hasRemove:z.remove,index:r,totalItems:k,onAddItem:H,onCopyItem:R,onRemoveItem:D,onMoveUpItem:V,onMoveDownItem:K,registry:o,schema:re,uiSchema:g},itemKey:t,className:"rjsf-array-item",disabled:s,hasToolbar:z.toolbar,index:r,totalItems:k,readonly:a,registry:o,schema:re,uiSchema:g,parentUiSchema:l,displayLabel:p,hasDescription:P};return N.jsx(j,{...G})}const xm=Z.memo(B0);function H0(e){const{schema:t,uiSchema:r={},errorSchema:n,fieldPathId:s,formData:i,name:a,title:o,disabled:c=!1,readonly:l=!1,autofocus:u=!1,required:m=!1,hideError:_=!1,registry:v,onBlur:S,onFocus:E,rawErrors:g,onChange:y,keyedFormData:f,handleAddItem:C,handleCopyItem:x,handleRemoveItem:h,handleReorderItems:b}=e,O=t.title||o||a,{schemaUtils:k,fields:$,formContext:M,globalUiOptions:q}=v,{OptionalDataControlsField:U}=$,L=Z.useMemo(()=>pe(r,q),[r,q]),B=Z.useMemo(()=>ue(t.items)?t.items:{},[t.items]),J=Z.useMemo(()=>k.retrieveSchema(B),[k,B]),Y=Z.useMemo(()=>Em(f),[f]),Q=Di(v,t,m,r),X=oi(i),re=Z.useMemo(()=>Am(v,t,Y,r)&&(!Q||X),[v,t,Y,r,Q,X]),A=X?f:[],w=Q?" rjsf-optional-array-field":"",j=e.childFieldPathId??s,p=Q?N.jsx(U,{...e,fieldPathId:j}):void 0,d={canAdd:re,items:A.map((I,T)=>{const{key:F,item:z}=I,H=z,R=n?n[T]:void 0,D=Pm(r,z,T,M),V={itemKey:F,index:T,name:a&&`${a}-${T}`,registry:v,uiOptions:L,parentUiSchema:r,hideError:_,readonly:l,disabled:c,required:m,title:O?`${O}-${T+1}`:void 0,canAdd:re,canMoveUp:T>0,canMoveDown:Tpe(r,q),[r,q]),{OptionalDataControlsField:L}=$,B=Di(v,t,m,r),J=oi(n),Y=Z.useMemo(()=>Array.isArray(t.items)?t.items:[],[t.items]),Q=ue(t.additionalItems),X=e.childFieldPathId??i;O.length{const{key:T,item:F}=P,z=F,H=I>=Y.length,R=(H&&ue(t.additionalItems)?t.additionalItems:Y[I])||{};let D;H?D=r.additionalItems:Array.isArray(r.items)?D=r.items[I]:D=Pm(r,F,I,M);const V=s?s[I]:void 0,K={index:I,itemKey:T,name:a&&`${a}-${I}`,registry:v,uiOptions:U,parentUiSchema:r,hideError:_,readonly:l,disabled:c,required:m,title:k?`${k}-${I+1}`:void 0,canAdd:j,canRemove:H,canMoveUp:I>=Y.length+1,canMoveDown:H&&Izt(e),[e]),[r,n]=Z.useState(()=>({formDataHash:t,keyedFormData:vu(e)}));let{keyedFormData:s,formDataHash:i}=r;if(t!==i){const o=Array.isArray(e)?e:[],c=s||[];s=o.length===c.length?c.map((l,u)=>({key:l.key,item:o[u]})):vu(o),i=t,n({formDataHash:i,keyedFormData:s})}const a=Z.useCallback(o=>{const c=Em(o),l=zt(c);return n({formDataHash:l,keyedFormData:o}),c},[]);return{keyedFormData:s,updateKeyedFormData:a}}function W0(e){const{schema:t,uiSchema:r,errorSchema:n,fieldPathId:s,registry:i,formData:a,onChange:o}=e,{globalFormOptions:c,schemaUtils:l,translateString:u}=i,{keyedFormData:m,updateKeyedFormData:_}=G0(a),v=Z.useRef(m);v.current=m;const S=Z.useRef(n);S.current=n;const E=e.childFieldPathId??s,g=Z.useCallback((k,$)=>{k&&k.preventDefault();let M;if(S.current){M={};for(const L of Object.keys(S.current)){const B=parseInt(L,10);$===void 0||B<$?st(M,B,S.current[B]):B>=$&&st(M,B+1,S.current[B])}}const q={key:Sc(),item:U0(i,t)},U=[...v.current];$!==void 0?U.splice($,0,q):U.push(q),o(_(U),E.path,M)},[i,t,o,_,E]),y=Z.useCallback((k,$)=>{k&&k.preventDefault();let M;if(S.current){M={};for(const L of Object.keys(S.current)){const B=parseInt(L,10);B<=$?st(M,B,S.current[B]):B>$&&st(M,B+1,S.current[B])}}const q={key:Sc(),item:structuredClone(v.current[$].item)},U=[...v.current];$!==void 0?U.splice($+1,0,q):U.push(q),o(_(U),E.path,M)},[o,_,E]),f=Z.useCallback((k,$)=>{k&&k.preventDefault();let M;if(S.current){M={};for(const U of Object.keys(S.current)){const L=parseInt(U,10);L<$?st(M,L,S.current[L]):L>$&&st(M,L-1,S.current[L])}}const q=v.current.filter((U,L)=>L!==$);o(_(q),E.path,M)},[o,_,E]),C=Z.useCallback((k,$,M)=>{k&&(k.preventDefault(),k.currentTarget.blur());let q;if(S.current){q={};for(const B of Object.keys(S.current)){const J=parseInt(B,10);J===$?st(q,M,S.current[$]):J===M?st(q,$,S.current[M]):st(q,B,S.current[J])}}function U(){const B=v.current.slice();return B.splice($,1),B.splice(M,0,v.current[$]),B}const L=U();o(_(L),E.path,q)},[o,_,E]),x=Z.useCallback((k,$,M,q)=>{const U=typeof $.at(-1)=="number";o(U&&k===void 0?null:k,$,M,q)},[o]),h=Z.useCallback(k=>{o(k,E.path,void 0,E?.[Ue])},[o,E]),b={...e,formData:a,fieldPathId:E,onSelectChange:h},O={...e,handleAddItem:g,handleCopyItem:y,handleRemoveItem:f,handleReorderItems:C,keyedFormData:m,onChange:x};if(!(ni in t)){if(!c.useFallbackUiForUnsupportedType){const $=pe(r),M=_e("UnsupportedFieldTemplate",i,$);return N.jsx(M,{schema:t,fieldPathId:s,reason:u($e.MissingItems),registry:i})}const k={...t,[ni]:{type:void 0}};b.schema=k,O.schema=k}return l.isMultiSelect(b.schema)?N.jsx(L0,{...b}):lm(r)?N.jsx(V0,{...b}):Wc(b.schema)?N.jsx(K0,{...O}):l.isFilesArray(b.schema,r)?N.jsx(z0,{...b}):N.jsx(H0,{...O})}function J0(e){const{schema:t,name:r,uiSchema:n,fieldPathId:s,formData:i,registry:a,required:o,disabled:c,readonly:l,hideError:u,autofocus:m,title:_,onChange:v,onFocus:S,onBlur:E,rawErrors:g}=e,{title:y}=t,{widgets:f,translateString:C,globalUiOptions:x}=a,{widget:h="checkbox",title:b,label:O=!0,enumNames:k,...$}=pe(n,x),M=vr(t,h,f),q=C($e.YesLabel),U=C($e.NoLabel);let L;const B=b??y??_??r;if(Array.isArray(t.oneOf))L=Pn({oneOf:t.oneOf.map(Y=>{if(ue(Y))return{...Y,title:Y.title||(Y.const===!0?q:U)}}).filter(Y=>Y)},n);else{const Y=t.enum??[!0,!1];!k&&Y.length===2&&Y.every(Q=>typeof Q=="boolean")?L=[{value:Y[0],label:Y[0]?q:U},{value:Y[1],label:Y[1]?q:U}]:L=Pn({enum:Y},n)}const J=Z.useCallback((Y,Q,X)=>v(Y,s.path,Q,X),[v,s]);return N.jsx(M,{options:{...$,enumOptions:L},schema:t,uiSchema:n,id:s.$id,name:r,onChange:J,onFocus:S,onBlur:E,label:B,hideLabel:!O,value:i,required:o,disabled:c,readonly:l,hideError:u,registry:a,autofocus:m,rawErrors:g,htmlName:s.name})}function Y0(e){const[t,r]=Z.useState(!1),{name:n,registry:s,schema:i,uiSchema:a,fieldPathId:o}=e,{globalUiOptions:c}=s,l=pe(a,c),u=_e("CyclicSchemaExpandTemplate",s,l);if(!t)return N.jsx(u,{registry:s,schema:i,uiSchema:a,name:n,fieldPathId:o,onExpand:()=>r(!0)});const{fields:m}=s,{SchemaField:_}=m;return N.jsx(_,{...e,schema:{...i,[zc]:!1}})}function X0(e){return{type:"string",enum:["string","number","boolean","object","array"],default:"string",title:e}}function Z0(e){const t=typeof e;return t==="string"||t==="number"||t==="boolean"?t:t==="object"?Array.isArray(e)?"array":"object":"string"}function Q0(e,t){switch(t){case"string":return String(e);case"number":{const r=Number(e);return Number.isNaN(r)?0:r}case"boolean":return!!e;default:return e}}function ev(e){const{id:t,formData:r,displayLabel:n=!0,schema:s,name:i,uiSchema:a,required:o,disabled:c=!1,readonly:l=!1,onBlur:u,onFocus:m,registry:_,fieldPathId:v,onChange:S,errorSchema:E}=e,{translateString:g,fields:y,globalFormOptions:f}=_,[C,x]=Z.useState(Z0(r)),h=pe(a),b=ci(nr("__internal_type_selector",f,v)),O=g($e.Type),k=Z.useMemo(()=>X0(O),[O]),$=U=>{U!=null&&(x(U),S(Q0(r,U),v.path,E,t))};if(!f.useFallbackUiForUnsupportedType){const{reason:U=g($e.UnknownFieldType,[String(s.type)])}=e,L=_e("UnsupportedFieldTemplate",_,h);return N.jsx(L,{schema:s,fieldPathId:v,reason:U,registry:_})}const M=_e("FallbackFieldTemplate",_,h),{SchemaField:q}=y;return N.jsx(M,{schema:s,registry:_,typeSelector:N.jsx(q,{fieldPathId:b,name:`${i}__fallback_type`,schema:k,formData:C,onChange:$,onBlur:u,onFocus:m,registry:_,hideLabel:!n,disabled:c,readonly:l,required:o},r?zt(r):"__empty__"),schemaField:N.jsx(q,{...e,schema:{type:C,title:g($e.Value),...C==="object"&&{additionalProperties:!0}}})})}var mr;(function(e){e.ROW="ui:row",e.COLUMN="ui:col",e.COLUMNS="ui:columns",e.CONDITION="ui:condition"})(mr||(mr={}));var ji;(function(e){e.ALL="all",e.SOME="some",e.NONE="none"})(ji||(ji={}));const tv=/^\$lookup=(.+)/,To="layoutGrid";function bu(e,t){return e??t}function rv(e){return/^\d+?$/.test(e)}const Gr=Qc();function nv(e,t,r,n,s){const i=r?.[pc]??{},a=me(r,rr(e)),o={...a?.[Br]??{},...t,...i},c={...a};Object.keys(o).length>0&&(c[Br]=o),Object.keys(i).length>0&&(c[pc]=i);let{readonly:l}=pe(c);if(s===!0||l===void 0&&n===!0){l=!0;const u=c[Br];u&&_o in u?u[_o]=!0:c[`ui:${_o}`]=!0}return{fieldUiSchema:c,uiReadonly:l}}function iv(e,t,r="$0m3tH1nG Un3xP3cT3d"){const n=[t].flat().sort(),s=[r].flat().sort();switch(e){case ji.ALL:return je(n,s);case ji.SOME:return n.some(i=>s.includes(i));case ji.NONE:return!n.some(i=>s.includes(i));default:return!1}}function Ja(e,t,r){let n={},s=e[t];if(Or(s)){const{children:i,className:a,...o}=s;if(s=i,a){const l=a.split(" ").map(u=>rl(r,u,u)).join(" ");n={...o,className:l}}else n=o}if(!Array.isArray(s))throw new TypeError(`Expected array for "${t}" in ${JSON.stringify(e)}`);return{children:s,gridProps:n}}function _u(e,t,r){let n,s=t;if(rv(r)&&e&&e?.type==="array"&&ni in e){const i=Number(r),a=e[ni];Array.isArray(a)?i>a.length?n=a.at(-1):n=a[i]:n=a,s={[Ue]:t[Ue],path:[...t.path.slice(0,t.path.length-1),i]}}return{rawSchema:n,fieldPathId:s}}function sv(e,t,r,n,s){const{schemaUtils:i,globalFormOptions:a}=e;let o=r,c=s;const l=t.split("."),u=l.pop();let m=i.retrieveSchema(o,n),_=n,v=m.readOnly;l.forEach(g=>{c=nr(g,a,c);const y=m?.[rt];if(y)o=y[g]??{};else if(m&&(Se in m||Ne in m)){const f=Se in m?Se:Ne,C=i.findSelectedOptionInXxxOf(m,g,f,_);o=gr(C,g)}else{const f=_u(m,c,g);o=f.rawSchema??{},c=f.fieldPathId}_=me(_,g,{}),m=i.retrieveSchema(o,_),v=bu(m.readOnly,v)});let S,E=!1;if((!m||Object.keys(m).length===0)&&(m=void 0),m&&u){if(m&&(Se in m||Ne in m)){const y=Se in m?Se:Ne;m=i.findSelectedOptionInXxxOf(m,u,y,_)}c=nr(u,a,c),E=m!==void 0&&Array.isArray(m.required)&&m.required.includes(u);const g=_u(m,c,u);if(g.rawSchema?(m=g.rawSchema,c=g.fieldPathId):(m=m?.[rt]?.[u],m=m&&i.retrieveSchema(m)),v=bu(m?.readOnly,v),m&&(Se in m||Ne in m)){const y=Se in m?Se:Ne,f=Kt(m);S={options:m[y],hasDiscriminator:!!f}}}return{schema:m,isRequired:E,isReadonly:v,optionsInfo:S,fieldPathId:c}}function av(e,t){let r=e;return typeof r=="string"&&(r=rl(t,r)),typeof r=="function"?r:null}function ov(e,t){let r,n=null,s={},i;if(typeof t=="string"||t===void 0)r=t??"";else{const{name:a="",render:o,...c}=t;r=a,s=c,Object.entries(s).forEach(([l,u])=>{if(typeof u=="string"){const m=tv.exec(u);if(Array.isArray(m)&&m.length>1){const _=m[1];s[l]=rl(e,_,_)}}}),n=av(o,e),!a&&n&&(i=N.jsx(n,{...c,"data-testid":Gr.uiComponent}))}return{name:r,UIComponent:n,uiProps:s,rendered:i}}function Ya(e){const{childrenLayoutGridSchemaId:t,...r}=e,{registry:n,schema:s,formData:i}=r,{schemaUtils:a}=n,o=a.retrieveSchema(s,i);return t.map(c=>Z.createElement(il,{...r,key:`layoutGrid-${zt(c)}`,schema:o,layoutGridSchema:c}))}function cv(e){const{layoutGridSchema:t,...r}=e,{formData:n,registry:s}=r,{children:i,gridProps:a}=Ja(t,mr.CONDITION,s),{operator:o,field:c="",value:l}=a,u=me(n,rr(c),null);return iv(o,u,l)?N.jsx(Ya,{...r,childrenLayoutGridSchemaId:i}):null}function lv(e){const{layoutGridSchema:t,...r}=e,{registry:n,uiSchema:s}=r,{children:i,gridProps:a}=Ja(t,mr.COLUMN,n),o=pe(s),c=_e("GridTemplate",n,o);return N.jsx(c,{column:!0,"data-testid":Gr.col,...a,children:N.jsx(Ya,{...r,childrenLayoutGridSchemaId:i})})}function uv(e){const{layoutGridSchema:t,...r}=e,{registry:n,uiSchema:s}=r,{children:i,gridProps:a}=Ja(t,mr.COLUMNS,n),o=pe(s),c=_e("GridTemplate",n,o);return i.map(l=>N.jsx(c,{column:!0,"data-testid":Gr.col,...a,children:N.jsx(Ya,{...r,childrenLayoutGridSchemaId:[l]})},`column-${zt(l)}`))}function dv(e){const{layoutGridSchema:t,...r}=e,{registry:n,uiSchema:s}=r,{children:i,gridProps:a}=Ja(t,mr.ROW,n),o=pe(s),c=_e("GridTemplate",n,o);return N.jsx(c,{...a,"data-testid":Gr.row,children:N.jsx(Ya,{...r,childrenLayoutGridSchemaId:i})})}function fv(e){const{gridSchema:t,schema:r,uiSchema:n,errorSchema:s,fieldPathId:i,onBlur:a,onFocus:o,formData:c,readonly:l,registry:u,layoutGridSchema:m,..._}=e,{onChange:v}=_,{fields:S}=u,{SchemaField:E,LayoutMultiSchemaField:g}=S,y=ov(u,t),{name:f,UIComponent:C,uiProps:x}=y,{schema:h,isRequired:b,isReadonly:O,optionsInfo:k,fieldPathId:$}=sv(u,f,r,c,i),M=ci($);if(y.rendered)return y.rendered;if(h){const q=k?.hasDiscriminator?g:E,{fieldUiSchema:U,uiReadonly:L}=nv(f,x,n,O,l),B=rr(f);return N.jsx(q,{"data-testid":k?.hasDiscriminator?Gr.layoutMultiSchemaField:Gr.field,..._,name:f,required:b,readonly:L,schema:h,uiSchema:U,errorSchema:me(s,B),fieldPathId:M,formData:me(c,B),onChange:v,onBlur:a,onFocus:o,options:k?.options,registry:u})}return C?N.jsx(C,{"data-testid":Gr.uiComponent,..._,name:f,required:b,formData:c,readOnly:!!O||l,errorSchema:s,uiSchema:n,schema:r,fieldPathId:i,onBlur:a,onFocus:o,registry:u,...x}):null}function il(e){const{uiSchema:t}=e;let{layoutGridSchema:r}=e;const n=pe(t);if(!r&&To in n&&ue(n[To])&&(r=n[To]),ue(r)){if(mr.ROW in r)return N.jsx(dv,{...e,layoutGridSchema:r});if(mr.COLUMN in r)return N.jsx(lv,{...e,layoutGridSchema:r});if(mr.COLUMNS in r)return N.jsx(uv,{...e,layoutGridSchema:r});if(mr.CONDITION in r)return N.jsx(cv,{...e,layoutGridSchema:r})}return N.jsx(fv,{...e,gridSchema:r})}il.TEST_IDS=Gr;function hv(e){const{fieldPathId:t,title:r,schema:n,uiSchema:s,required:i,registry:a,name:o}=e,c=pe(s,a.globalUiOptions),{title:l}=c,{title:u}=n,m=l||r||u||o;if(!m)return null;const _=_e("TitleFieldTemplate",a,c);return N.jsx(_,{id:tl(t),title:m,required:i,schema:n,uiSchema:s,registry:a})}function Mo(e,t,r){const n="!@#!@$@#$!@$#";return e.map(({schema:i})=>i).find(i=>{const a=i[rt]?.[t];return me(a,An,me(a,It,n))===r})}function Su(e,t,r,n,s){const i=t.map(c=>r.retrieveSchema(c,s));let a=e;Se in e?a={...e,[Se]:i}:Ne in e&&(a={...e,[Ne]:i});const o=Pn(a,n);if(!o)throw new Error(`No enumOptions were computed from the schema ${JSON.stringify(a)}`);return o}function mv(e){const{name:t,baseType:r,disabled:n=!1,formData:s,fieldPathId:i,onBlur:a,onChange:o,options:c,onFocus:l,registry:u,uiSchema:m,schema:_,autofocus:v,readonly:S,required:E,errorSchema:g,hideError:y=!1}=e,{widgets:f,schemaUtils:C,globalUiOptions:x}=u,[h,b]=Z.useState(Su(_,c,C,m,s)),O=i[Ue],k=Kt(_),$=_e("FieldErrorTemplate",u,c),M=_e("FieldTemplate",u,c),q=zt(_),U=zt(c),L=m?zt(m):"",B=s?zt(s):"";Z.useEffect(()=>{b(Su(_,c,C,m,s))},[q,U,C,L,B]);const{widget:J=k?"radio":"select",title:Y="",placeholder:Q="",optionsSchemaSelector:X=k,hideError:re,...A}=pe(m);if(!X)throw new Error("No selector field provided for the LayoutMultiSchemaField");const w=me(s,X);let j=gr(h[0]?.schema,X);const p=Mo(h,X,w);j=j?.type?j:{...j,type:p?.type||r};const d=vr(j,J,f),P=re===void 0?y:!!re,I=g?.[vt]??[],T={...g};delete T[vt];const F=C.getDisplayLabel(_,m,x),z=D=>{if(n||S)return;const V=Mo(h,X,D),K=Mo(h,X,w);let G=C.sanitizeDataForNewSchema(V,K,s);G&&V&&(G=C.getDefaultFormState(V,G,"excludeObjectChildren")),G&&st(G,X,D),o(G,i.path,void 0,O)},H={enumOptions:h,...A},R=!P&&I.length>0?N.jsx($,{fieldPathId:i,schema:_,errors:I,registry:u}):void 0;return N.jsx(M,{fieldPathId:i,id:O,schema:_,label:(Y||_.title)??"",disabled:n||Array.isArray(h)&&h.length===0,uiSchema:m,required:E,readonly:!!S,registry:u,displayLabel:F,errors:R,onChange:o,onKeyRename:Fo,onKeyRenameBlur:Fo,onRemoveProperty:Fo,children:N.jsx(d,{id:O,name:t,schema:_,label:(Y||_.title)??"",disabled:n||Array.isArray(h)&&h.length===0,uiSchema:m,autofocus:v,readonly:S,required:E,registry:u,multiple:!1,rawErrors:I,hideError:P,hideLabel:!F,errorSchema:T,placeholder:Q,onChange:z,onBlur:a,onFocus:l,value:w,options:H,htmlName:i.name})})}function wu(e){const{name:t,disabled:r=!1,errorSchema:n,formData:s,fieldPathId:i,onBlur:a,onChange:o,onFocus:c,options:l,readonly:u,registry:m,required:_=!1,schema:v,uiSchema:S}=e,{schemaUtils:E}=m,g=zt(s??null),y=Z.useMemo(()=>l.map(W=>E.retrieveSchema(W,s)),[l,E,g]),[f,C]=Z.useState(()=>{const W=Kt(v);return E.getClosestMatchingOption(s,y,0,W)}),x=Z.useRef(!1),h=Z.useRef(s),b=Z.useRef(i.$id);Z.useEffect(()=>{const W=h.current,te=b.current;if(h.current=s,b.current=i.$id,!je(s,W)&&i.$id===te){if(x.current){x.current=!1;return}const ne=Kt(v),se=E.getClosestMatchingOption(s,y,f,ne);se!==f&&C(se)}});const O=`${i.$id}${v.oneOf?"__oneof_select":"__anyof_select"}`,k=Z.useCallback(W=>{if(r||u)return;const te=W!==void 0?parseInt(W,10):-1;if(te===f)return;const ne=te>=0?y[te]:void 0,se=f>=0?y[f]:void 0;let ce=E.sanitizeDataForNewSchema(ne,se,s);ne&&(ce=E.getDefaultFormState(ne,ce,"excludeObjectChildren")),C(te),x.current=!0,o(ce,i.path,void 0,O)},[f,y,r,u,E,s,i,o,O]),{widgets:$,fields:M,translateString:q,globalUiOptions:U}=m,{SchemaField:L}=M,B=_e("MultiSchemaFieldTemplate",m,U),J=Di(m,v,_,S),Y=oi(s),{widget:Q="select",placeholder:X,autofocus:re,autocomplete:A,title:w=v.title,...j}=pe(S,U),p=vr({type:"number"},Q,$),d=n?.[vt]??[],P={...n};delete P[vt];const I=E.getDisplayLabel(v,S,U),T=f>=0&&y[f]||null;let F;if(T){const{required:W,type:te}=v,ne={};W&&(ne.required=W),te!==void 0&&!("type"in T)&&(ne.type=te),F=Object.keys(ne).length>0?jr(ne,T):T}let z=[];Se in v&&S&&Se in S?Array.isArray(S[Se])?z=S[Se]:console.warn(`uiSchema.oneOf is not an array for "${w||t}"`):Ne in v&&S&&Ne in S&&(Array.isArray(S[Ne])?z=S[Ne]:console.warn(`uiSchema.anyOf is not an array for "${w||t}"`));let H=S;f>=0&&z.length>f&&(H=z[f]);const R=w?$e.TitleOptionPrefix:$e.OptionPrefix,D=w?[w]:[],V=y.map((W,te)=>{const{title:ne=W.title}=pe(z[te]);return{label:ne||q(R,D.concat(String(te+1))),value:te}}),K=!J||Y?N.jsx(p,{id:O,name:`${t}${v.oneOf?"__oneof_select":"__anyof_select"}`,schema:{type:"number",default:0},onChange:k,onBlur:a,onFocus:c,disabled:r||V.length===0,multiple:!1,rawErrors:d,errorSchema:P,value:f>=0?f:void 0,options:{enumOptions:V,...j},registry:m,placeholder:X,autocomplete:A,autofocus:re,label:w??t,hideLabel:!I,readonly:u}):void 0,G=F&&F.type!=="null"&&N.jsx(L,{...e,schema:F,uiSchema:H})||null;return N.jsx(B,{schema:v,registry:m,uiSchema:S,selector:K,optionSchemaField:G})}function pv(e){const{formData:t,onChange:r,fieldPathId:n}=e;return Z.useEffect(()=>{t===void 0&&r(null,n.path)},[n,t,r]),null}const yv=/\.([0-9]*0)*$/,gv=/[0.]0*$/;function vv(e){const{registry:t,onChange:r,formData:n,value:s}=e,[i,a]=Z.useState(s),{StringField:o}=t.fields,c=Th(),l=c==="."?"\\.":c;let u=n;const m=Z.useCallback((v,S,E,g)=>{a(v);const y=typeof v=="string"?v.replace(c,"."):v,f=`${y}`.startsWith(".")?`0${y}`:y,C=typeof f=="string"&&yv.exec(f)?$l(f.replace(gv,"")):$l(f);r(C,S,E,g)},[r,c]);if(typeof i=="string"&&typeof u=="number"){const v=new RegExp(`^(${String(u).replace(".",l)})?${l}?0*$`);i.match(v)&&(u=i)}let _=u;if(typeof u=="number"&&c!=="."){const{schema:v,uiSchema:S}=e,{schemaUtils:E}=t,y=(E.isSelect(v)?Pn(v,S):void 0)?"select":"text",{widget:f=y}=pe(S);f!=="radio"&&f!=="select"&&f!=="hidden"&&(_=String(u).replace(".",c))}return N.jsx(o,{...e,formData:_,onChange:m})}var Ki;function bv(e){if(!Ki){if(typeof document>"u")return;Ki=document.createElement("textarea")}var t=`&${e};`;Ki.innerHTML=t;var r=Ki.value;return r===t?void 0:r}var ie=32,ae=9,Zr=13,de=10,Le=96,ut=126,et=91,Ir=94,xe=62,Wt=35,wc=37,we=45,Bt=61,mt=92,nt=42,Ze=95,He=60,Om=64,ir=93,Nt=33,Xa=38,Ct=58,Cc=70,xn=102,Fa=104,En=119,ei=116,Ec=112,jm=115,_v=160,Sv=12,wv=44,Da=59,li=63,Ht=46,Qe=47,On=39,jn=34,Qr=43,ht=124,kn=123,sl=125,er=40,tr=41,Cv=78,Ev=110,Av=79,Pv=111,km=120,Im=88,Ac=30,Ae=48,Pe=57,ve=65,be=90,ze=97,Xe=122,Za=128,Qt=32,xv={blockQuote:0,breakLine:1,breakThematic:2,codeBlock:3,codeInline:4,footnote:5,footnoteReference:6,frontmatter:7,gfmTask:8,heading:9,htmlBlock:10,htmlComment:11,htmlSelfClosing:12,image:13,link:14,orderedList:15,paragraph:16,ref:17,refCollection:18,table:19,text:20,textFormatted:21,unorderedList:22},ee=xv;function Ov(e){if(!Eu(e,"---"))return null;let t=3;for(;t=e.length||e[t]!==` `)return null;t++;let r=!1;for(;t=e.length)break;let i=t;if(e[t]==="\r"&&t++,t=ze&&a<=Xe||a>=ve&&a<=be||a>=Ae&&a<=Pe||a===Ze){for(s++;s=ze&&a<=Xe||a>=ve&&a<=be||a>=Ae&&a<=Pe||a===Ze||a===we||a===Ht);)s++;s=i?r=!0:(a=e.charCodeAt(s),(a===ie||a===ae)&&(r=!0)))}}}}return null}var Pv=/&([a-zA-Z0-9]+|#[0-9]{1,7}|#x[0-9a-fA-F]{1,6});/gi,xv={class:"className",for:"htmlFor",allowfullscreen:"allowFullScreen",allowtransparency:"allowTransparency",autocomplete:"autoComplete",autofocus:"autoFocus",autoplay:"autoPlay",cellpadding:"cellPadding",cellspacing:"cellSpacing",charset:"charSet",classid:"classId",colspan:"colSpan",contenteditable:"contentEditable",contextmenu:"contextMenu",crossorigin:"crossOrigin",enctype:"encType",formaction:"formAction",formenctype:"formEncType",formmethod:"formMethod",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",hreflang:"hrefLang",inputmode:"inputMode",keyparams:"keyParams",keytype:"keyType",marginheight:"marginHeight",marginwidth:"marginWidth",maxlength:"maxLength",mediagroup:"mediaGroup",minlength:"minLength",novalidate:"noValidate",radiogroup:"radioGroup",readonly:"readOnly",rowspan:"rowSpan",spellcheck:"spellCheck",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",tabindex:"tabIndex",usemap:"useMap",viewbox:"viewBox"},Ov={};function jm(e){if(!e)return Ov;var t={};for(var r in e){var n=r.toLowerCase(),i=xv[n];if(i)t[i]=e[r];else{var s=r.indexOf(":");s===-1?t[r]=e[r]:t[r.slice(0,s)+r[s+1].toUpperCase()+r.slice(s+2)]=e[r]}}return t}var jv=/(\n|^[-*]\s|^#|^ {2,}|^-{2,}|^>\s|^<(div|p|h[1-6]|ul|ol|li|blockquote|pre|table|thead|tbody|tr|td|th|dl|dt|dd|hr|address|article|aside|details|dialog|figure|figcaption|footer|form|header|main|menu|nav|section|summary|textarea|fieldset|legend|center|dir|hgroup|marquee|search|output|template)\b)/i;function Wr(e){return e.indexOf("&")===-1?e:e.replace(Pv,(t,r)=>{var n=yv(r);if(n)return n;if(r[0]==="#"){var i=r[1]==="x"||r[1]==="X"?Number.parseInt(r.slice(2),16):Number.parseInt(r.slice(1),10);return i===0||i>=55296&&i<=57343||i>1114111?"�":i<=65535?String.fromCharCode(i):String.fromCharCode(55296+(i-65536>>10),56320+(i-65536&1023))}return t})}var Su=/(javascript|vbscript|data(?!:image)):/i;function xr(e){if(Su.test(e))return null;if(e.indexOf("%")===-1)return e;try{let t=decodeURIComponent(e).replace(/[^A-Za-z0-9/:]/g,"");if(Su.test(t))return null}catch{return null}return e}var wt={},jt,dt;for(jt=[192,193,194,195,196,197,224,225,226,227,228,229,230,198],dt=0;dt=ze&&s<=Xe||s>=Ae&&s<=Pe){r<0&&(r=i);continue}if(s>=ve&&s<=be){r>=0&&(t+=e.slice(r,i),r=-1),t+=String.fromCharCode(s+Qt);continue}if(s===ie||s===we){r>=0&&(t+=e.slice(r,i),r=-1),t+="-";continue}r>=0&&(t+=e.slice(r,i),r=-1);var a=wt[s];a&&(t+=a)}return r>=0&&(t+=e.slice(r)),t}function wu(e,t,r){return e.startsWith(t,r)}var Cu=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr","circle","ellipse","line","path","polygon","polyline","rect","use","stop","animate","set"]);function Di(e){let t=e.toLowerCase();if(Cu.has(t))return!0;let r=t.indexOf(":");return r!==-1?(t=t.slice(r+1),Cu.has(t)):!1}var bn=1,Eu=2,Xn=4,Au=8,kv=16,Yt=32,Fr=64,Iv=(()=>{var e=new Uint8Array(128),t;for(e[ae]=bn,e[de]=bn|Eu,e[vv]=bn,e[Zr]=bn|Eu,e[ie]=bn,t=Nt;t<=Qe;t++)e[t]=Xn;for(t=Ct;t<=Am;t++)e[t]=Xn;for(t=et;t<=Le;t++)e[t]=Xn;for(t=kn;t<=ut;t++)e[t]=Xn;for(t=Ae;t<=Pe;t++)e[t]=kv;for(t=ve;t<=be;t++)e[t]=Au;for(t=ze;t<=Xe;t++)e[t]=Au;return e})(),Nv=/[\p{P}\p{S}]/u,Rv=new RegExp("\\p{Zs}","u"),dn=[];function $v(e){var t=e.indexOf("\r"),r=e.indexOf("\0");if(t===-1&&r===-1)return e;var n=e.length;dn.length=0;var i=0,s=0;for(t===-1?s=r:r===-1?s=t:s=t\s+<").replace(/\n+/g," ").trim()}function Dv(e,t,r){let n=r??e.length;for(;t0&&(e[t-1]===` -`||e[t-1]==="\r");)t--;return`${e.slice(0,t).replace(Mv,"")} +`&&e[t]!=="\r";)t++;if(t>=e.length)break;let s=t;if(e[t]==="\r"&&t++,t=ze&&a<=Xe||a>=ve&&a<=be||a>=Ae&&a<=Pe||a===Ze){for(i++;i=ze&&a<=Xe||a>=ve&&a<=be||a>=Ae&&a<=Pe||a===Ze||a===we||a===Ht);)i++;i=s?r=!0:(a=e.charCodeAt(i),(a===ie||a===ae)&&(r=!0)))}}}}return null}var jv=/&([a-zA-Z0-9]+|#[0-9]{1,7}|#x[0-9a-fA-F]{1,6});/gi,kv={class:"className",for:"htmlFor",allowfullscreen:"allowFullScreen",allowtransparency:"allowTransparency",autocomplete:"autoComplete",autofocus:"autoFocus",autoplay:"autoPlay",cellpadding:"cellPadding",cellspacing:"cellSpacing",charset:"charSet",classid:"classId",colspan:"colSpan",contenteditable:"contentEditable",contextmenu:"contextMenu",crossorigin:"crossOrigin",enctype:"encType",formaction:"formAction",formenctype:"formEncType",formmethod:"formMethod",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",hreflang:"hrefLang",inputmode:"inputMode",keyparams:"keyParams",keytype:"keyType",marginheight:"marginHeight",marginwidth:"marginWidth",maxlength:"maxLength",mediagroup:"mediaGroup",minlength:"minLength",novalidate:"noValidate",radiogroup:"radioGroup",readonly:"readOnly",rowspan:"rowSpan",spellcheck:"spellCheck",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",tabindex:"tabIndex",usemap:"useMap",viewbox:"viewBox"},Iv={};function Nm(e){if(!e)return Iv;var t={};for(var r in e){var n=r.toLowerCase(),s=kv[n];if(s)t[s]=e[r];else{var i=r.indexOf(":");i===-1?t[r]=e[r]:t[r.slice(0,i)+r[i+1].toUpperCase()+r.slice(i+2)]=e[r]}}return t}var Nv=/(\n|^[-*]\s|^#|^ {2,}|^-{2,}|^>\s|^<(div|p|h[1-6]|ul|ol|li|blockquote|pre|table|thead|tbody|tr|td|th|dl|dt|dd|hr|address|article|aside|details|dialog|figure|figcaption|footer|form|header|main|menu|nav|section|summary|textarea|fieldset|legend|center|dir|hgroup|marquee|search|output|template)\b)/i;function Wr(e){return e.indexOf("&")===-1?e:e.replace(jv,(t,r)=>{var n=bv(r);if(n)return n;if(r[0]==="#"){var s=r[1]==="x"||r[1]==="X"?Number.parseInt(r.slice(2),16):Number.parseInt(r.slice(1),10);return s===0||s>=55296&&s<=57343||s>1114111?"�":s<=65535?String.fromCharCode(s):String.fromCharCode(55296+(s-65536>>10),56320+(s-65536&1023))}return t})}var Cu=/(javascript|vbscript|data(?!:image)):/i;function xr(e){if(Cu.test(e))return null;if(e.indexOf("%")===-1)return e;try{let t=decodeURIComponent(e).replace(/[^A-Za-z0-9/:]/g,"");if(Cu.test(t))return null}catch{return null}return e}var wt={},jt,dt;for(jt=[192,193,194,195,196,197,224,225,226,227,228,229,230,198],dt=0;dt=ze&&i<=Xe||i>=Ae&&i<=Pe){r<0&&(r=s);continue}if(i>=ve&&i<=be){r>=0&&(t+=e.slice(r,s),r=-1),t+=String.fromCharCode(i+Qt);continue}if(i===ie||i===we){r>=0&&(t+=e.slice(r,s),r=-1),t+="-";continue}r>=0&&(t+=e.slice(r,s),r=-1);var a=wt[i];a&&(t+=a)}return r>=0&&(t+=e.slice(r)),t}function Eu(e,t,r){return e.startsWith(t,r)}var Au=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr","circle","ellipse","line","path","polygon","polyline","rect","use","stop","animate","set"]);function Ti(e){let t=e.toLowerCase();if(Au.has(t))return!0;let r=t.indexOf(":");return r!==-1?(t=t.slice(r+1),Au.has(t)):!1}var bn=1,Pu=2,Xn=4,xu=8,Rv=16,Yt=32,Fr=64,$v=(()=>{var e=new Uint8Array(128),t;for(e[ae]=bn,e[de]=bn|Pu,e[Sv]=bn,e[Zr]=bn|Pu,e[ie]=bn,t=Nt;t<=Qe;t++)e[t]=Xn;for(t=Ct;t<=Om;t++)e[t]=Xn;for(t=et;t<=Le;t++)e[t]=Xn;for(t=kn;t<=ut;t++)e[t]=Xn;for(t=Ae;t<=Pe;t++)e[t]=Rv;for(t=ve;t<=be;t++)e[t]=xu;for(t=ze;t<=Xe;t++)e[t]=xu;return e})(),Fv=/[\p{P}\p{S}]/u,Dv=new RegExp("\\p{Zs}","u"),dn=[];function Tv(e){var t=e.indexOf("\r"),r=e.indexOf("\0");if(t===-1&&r===-1)return e;var n=e.length;dn.length=0;var s=0,i=0;for(t===-1?i=r:r===-1?i=t:i=t\s+<").replace(/\n+/g," ").trim()}function qv(e,t,r){let n=r??e.length;for(;t0&&(e[t-1]===` +`||e[t-1]==="\r");)t--;return`${e.slice(0,t).replace(Lv,"")} -`}function Zn(e){if((e.type===ee.htmlSelfClosing||e.type===ee.htmlBlock)&&e.a)return[];if(e.type===ee.paragraph){var t=e.children;return t?t.flatMap(Zn):[]}return e.type===ee.text?e.text?.trim()?[e]:[]:e.type===ee.htmlBlock&&e.children?[{...e,children:e.children?.flatMap(Zn)}]:[e]}function Im(e){for(var t=0;t`,a=i.toLowerCase().indexOf(s);if(a!==-1){var o=i.slice(a+s.length).replace(/<\/[a-z][a-z0-9-]*\s*>/gi,"");o.trim()&&(n=!0)}}n||(r.c=!1)}"children"in e[t]&&e[t].children&&Im(e[t].children)}}function Uv(e,t){for(var r=0;r0&&o.push({type:ee.paragraph,children:i.slice(0,s)});var c=[];if(s+1!(u.type===ee.htmlSelfClosing&&u.a));l.length>0&&(c=l)}return c=c.concat(e.slice(r+1)),{found:!0,beforeClose:o,afterClose:c}}}if((n.type===ee.htmlSelfClosing||n.type===ee.htmlBlock)&&n.a&&n.tag.toLowerCase()===t)return{found:!0,beforeClose:e.slice(0,r),afterClose:e.slice(r+1)}}return{found:!1,beforeClose:e,afterClose:[]}}function Lv(e){var t="";for(var r in e){var n=e[r];n===!0?t+=` ${r}`:n!==void 0&&n!=null&&n!==!1&&(t+=` ${r}="${String(n)}"`)}return t}function Pu(e,t,r,n){var i;return t===void 0?i=Lv(r):i=t.length>0&&t.charCodeAt(0)>ie?` ${t}`:t,`<${e}${i}${n}`}function xu(e){var t=e.tag,r=e.type===ee.htmlSelfClosing,n=e,i=n.b,s=``;if(!r&&n.a)return{kind:"literal",literal:(n.h||s)+(n.e||"")};if(r){var a=e;return a.a?{kind:"literal",literal:a.h||s}:a.m?{kind:"literal",literal:a.m}:{kind:"literal",literal:Pu(t,i,e.attrs," />")}}var o=Pu(t,i,e.attrs,">"),c=n.children,l=c!=null&&c.length>0;if(n.c&&n.j!==void 0)return l?{kind:"sandwich",open:o,close:s}:{kind:"literal",literal:n.j};if(n.c&&!l)return{kind:"literal",literal:o+(n.e||"")+(n.h||s)};if(c!=null&&c.length>0){for(var u="",m=0;m0&&typeof o.at(-1)=="string"?o[o.length-1]=o.at(-1)+l:o.push(l)}return o}function Wn(e){return e==null||e.tagfilter!==!1}function zv(e,t,r,n){var i=t(e,r,n);return i===null?null:Hv(i)}function Bv(e){var t=[];if(!e)return t;for(var r in e)r.charCodeAt(0)===94&&t.push({identifier:r,footnote:e[r].target});return t}function Ac(e,t,r){if(t.indexOf(".")===-1)return e?.[t]||r;for(var n=e,i=t.split("."),s=0;s=123){t=!0;break}}if(!t)return e;for(var i="",r=0;r=Ae&&s<=Pe||s>=ve&&s<=wc||s>=ze&&s<=xn)&&(a>=Ae&&a<=Pe||a>=ve&&a<=wc||a>=ze&&a<=xn)){i+=e[r]+e[r+1]+e[r+2],r+=2;continue}}if(n>=55296&&n<=57343){if(n<=56319&&r+1=56320&&o<=57343){i+=encodeURI(e[r]+e[r+1]),r++;continue}}i+=e[r];continue}i+=encodeURI(e[r])}return i}function Kv(...e){return e.filter(Boolean).join(" ")}var Gv=new Set(["title","textarea","style","xmp","iframe","noembed","noframes","script","plaintext"]),Da=/<(\/?)(title|textarea|style|xmp|iframe|noembed|noframes|script|plaintext)(\s|>|\/)/gi;function Ou(e){return Gv.has(e.toLowerCase())}function Wv(e){return Da.lastIndex=0,Da.test(e)}function ju(e){return Da.lastIndex=0,e.replace(Da,(t,r,n,i)=>`<${r}${n}${i}`)}function sl(e,t){var r=e||{},n=r.slugify,i;if(n){var s=n;i=a=>s(a,In)}else i=In;return{disableAutoLink:r.disableAutoLink,disableFrontmatter:r.disableFrontmatter,disableParsingRawHTML:r.disableParsingRawHTML,enforceAtxHeadings:r.enforceAtxHeadings,evalUnserializableExpressions:r.evalUnserializableExpressions,forceBlock:r.forceBlock,forceInline:t===void 0?r.forceInline:t,ignoreHTMLBlocks:r.ignoreHTMLBlocks,optimizeForStreaming:r.optimizeForStreaming,preserveFrontmatter:r.preserveFrontmatter,sanitizer:r.sanitizer||xr,slugify:i,tagfilter:Wn(r)}}var Jv=/^<([a-zA-Z][a-zA-Z0-9-]*)\s[^>]*>/,Yv=/^<[A-Z]/,Pc=["script","pre","style","textarea"],Ti=new Set(Pc),Xv=/<(?:pre|script|style|textarea)\b/i,ku=/<(?:pre|script|style|textarea)\b/iy,Mo=/^(\s{0,3}#[#\s]|\s{0,3}[-*+]\s|\s{0,3}\d+\.\s|\s{0,3}>\s|\s{0,3}```)/m,Iu=/^<([a-z][^ >/\n\r]*) ?([^>]*?)>/im,Nm=new Uint8Array(128);(()=>{for(var e=[Le,nt,Ze,ut,Bt,et,Nt,He,mt,Ya,de,$a,En,xn],t=0;t=i)return!1;e.charCodeAt(n)===ht&&n++;for(var s=0;n=i)break;if(e.charCodeAt(n)===ht&&s>0){for(var a=n+1;a=i)return!0}if(e.charCodeAt(n)===Ct&&n++,n>=i||e.charCodeAt(n)!==we)return!1;for(;n0}var eb=/[\u0000-\u001F\u007F]/g,tb={action:1,background:1,cite:1,data:1,formaction:1,href:1,longdesc:1,poster:1,src:1,"xlink:href":1},rb=/&#(x[0-9a-f]+|[0-9]+);?/gi;function nb(e){return e.indexOf("&#")===-1?e:e.replace(rb,(t,r)=>{var n=r.charCodeAt(0)===xm||r.charCodeAt(0)===Om?Number.parseInt(r.slice(1),16):Number.parseInt(r,10);return n>0&&n<=1114111?String.fromCodePoint(n):t})}function ib(e,t,r){if(r&&t.charCodeAt(0)===kn)return!1;var n=e.charCodeAt(0),i=e.charCodeAt(1);if((n===Cv||n===wv)&&(i===Sv||i===_v))return!(r&&t==="");var s=e.toLowerCase();if(s==="srcdoc")return!0;if(s==="style")return/url\s*\(\s*(javascript|vbscript|data:(?!image\/))/i.test(t);if(tb[s]===1){var a=nb(Wr(t));if(xr(a)===null)return!0;var o=a.replace(eb,"");return o!==a&&xr(o)===null}return!1}function xc(e){return"<"+(e.f?"/":"")+e.tag+e.g+e.b+(e.n?e.r?" />":"/>":">")}function Ru(e,t,r,n){for(var i=[],s=t,a=0;as){var c=e.slice(s,o).trim();c&&i.push(c)}s=n[a+1]}if(s=ze&&a<=Xe||a>=ve&&a<=be))return null;for(;r=ze&&e.charCodeAt(r)<=Xe||e.charCodeAt(r)>=ve&&e.charCodeAt(r)<=be||e.charCodeAt(r)>=Ae&&e.charCodeAt(r)<=Pe||e.charCodeAt(r)===we);)r++;let o=e.slice(s,r);if(!o)return null;let c=o.charCodeAt(0),l=c>=ve&&c<=be||o.indexOf("-")!==-1,u=r;for(;rv&&e.charCodeAt(r-1)===ie;let B=g?Ru(e,v,r,g):e.slice(v,r);return{r:E,u:l,f:i,b:B,q:g!=null,n:!0,g:m,attrs:S,end:r+2,tag:o}}var y=r,f=e.charCodeAt(r);if(!(f>=ze&&f<=Xe||f>=ve&&f<=be||f===Ze||f===Ct))return null;for(r++;r=ze&&C<=Xe||C>=ve&&C<=be||C>=Ae&&C<=Pe||C===Ze||C===Ht||C===Ct||C===we)r++;else break}for(var x=e.slice(y,r),h=r;r=n)return null;if(b=e.slice($,r),r++,r0;){var C=e.charCodeAt(r);C===kn?q++:C===il&&q--,r++}b=e.slice($,r),O=r}else{for(var $=r;r=c){s=!1,n=o<0?i:o+1;continue}if(u<4){var m=e.charCodeAt(l);if(m===Le||m===ut){for(var _=m,v=0,S=l;S=3){var E=!0;if(_===Le){for(var g=S;g=v){for(;f=i||e.charCodeAt(f)===de){n=f>=i?i:f+1;break}}}for(;y=i&&(n=i,a=!0);continue}}}}for(var b=l;b=4)break;s=!1}if(!s&&u<4&&b=3&&M>=c)}else s=!0;n=o<0?i:o+1}return a}function $m(e,t,r){let n=e.length;if(e.charCodeAt(t)!==et)return null;let i=t+1n||e.charCodeAt(s-1)!==ir)return null;let o=e.slice(t+1,s-1);if(o.length>999)return null;let c=Aa(o);if(!c||s>=n||e.charCodeAt(s)!==Ct)return null;s++;let l=!1;for(;s=n||e.charCodeAt(s)!==xe)return null;u=e.slice(m,s),s++;for(var _=e.indexOf(` -`,s),v=_<0?n:_,S=s;S=n||e.charCodeAt(U)===de)&&(C=e.slice(M,$),x=!0,h=U0,i=0;i126||s>=ve&&s<=be){n=!1;break}else r=!1}if(n&&!r)return e;var a=e.replace(/\s+/g," ").trim();return a.indexOf("ẞ")!==-1?a.replace(/\u1E9E/g,"ss").toLowerCase():a.toLowerCase()}function al(e){return e?@[\\\]^_`{|}~])/g,"$1")}var Oc=null,jc=-1,Pa=-1;function Ve(e,t){if(t>=jc&&t<=Pa&&e===Oc)return Pa;var r=e.indexOf(` -`,t),n=r<0?e.length:r;return Oc=e,jc=t,Pa=n,n}function Ie(e,t){let r=Ve(e,t);return r=r}function ab(e,t){if(!e)return e;var r=t.v||(t.v=Object.create(null)),n=r[e];if(n===void 0)return r[e]=0,e;for(var i=n+1,s=`${e}-${i}`;r[s]!==void 0;)i++,s=`${e}-${i}`;return r[e]=i,r[s]=0,s}function ob(e,t,r,n){let i=Ve(e,t);if(at(e,t,i),qe>3)return null;let s=t+De;if(e.charCodeAt(s)!==Wt)return null;let a=en(e,s,i,35);if(a<1||a>6||(s+=a,ss&&e.charCodeAt(o-1)===ie;)o--;for(var c=o;o>s&&e.charCodeAt(o-1)===Wt;)o--;if(os&&e.charCodeAt(o-1)===ie;)o--;else o=c;let l=e.slice(s,o),u=ri(l,!1,r,n);return{node:{type:ee.heading,level:a,children:u,id:""},end:Ie(e,i)}}function cb(e,t,r){var n=e.charCodeAt(t);if(n!==Bt&&n!==we)return!1;for(var i=t;i=r}function Jr(e,t){let r=Ve(e,t);if(at(e,t,r),qe>3)return null;let n=t+De,i=e.charCodeAt(n);if(i!==we&&i!==nt&&i!==Ze)return null;let s=0;for(;n3)return null;let i=qe,s=t+De,a=e.charCodeAt(s);if(a!==Le&&a!==ut)return null;let o=en(e,s,n,a);if(o<3)return null;s+=o;let c=Ri(e,s,n),l=n;if(a===Le){for(let B=c;Bc&&(e.charCodeAt(l-1)===ie||e.charCodeAt(l-1)===ae);)l--;let u=e.slice(c,l),m="",_="",v=u.indexOf(" ");v===-1?m=u:(m=u.slice(0,v),_=u.slice(v+1).trim()),m=ti(m);var S;if(_){Nu.lastIndex=0;for(var E;(E=Nu.exec(_))!=null;)S||(S={}),S[E[1]]=E[2]===void 0?E[3]:E[2]}let g=Ie(e,n),y=e.length,f=e.length;var C;a===Du&&o===Tu?C=Mu:(C=String.fromCharCode(a).repeat(o),Du=a,Tu=o,Mu=C);for(var x=g;x0&&O<4&&e.charCodeAt(b-1)===ie;)b--,O++;if(O<=3&&(b===0||e.charCodeAt(b-1)===de)){for(var k=h+o;kg&&e.charCodeAt(y-1)===de?e.slice(g,y-1):e.slice(g,y);else{M="";for(var q=g;q0&&M.charCodeAt(M.length-1)===de&&(M=M.slice(0,-1))}return{node:{type:ee.codeBlock,lang:m||void 0,text:M,infoString:_||void 0,attrs:S},end:f}}function qu(e,t,r){for(var n=0,i=t;i=4&&(n+=s,i=a);break}if(i!==a)break;continue}if(qe<4)break;let v=0,S=0;var c=0;for(let E=i;E<_&&S<4;E++){if(e.charCodeAt(E)===ae){var l=4-S%4;S+l>4&&(c=S+l-4),S+=l}else S++;v++}var u="";if(c>0)for(var m=0;m0&&n.charCodeAt(n.length-1)===de;)n=n.slice(0,-1);return n?{node:{type:ee.codeBlock,lang:void 0,text:n,infoString:void 0,attrs:void 0},end:i}:null}function db(e,t,r,n){let i=Ve(e,t);if(at(e,t,i),qe>3)return null;let s=t+De;if(e.charCodeAt(s)!==xe)return null;let a="",o=t,c,l=!1,u=!1,m=!1;for(;o`,a=s.toLowerCase().indexOf(i);if(a!==-1){var o=s.slice(a+i.length).replace(/<\/[a-z][a-z0-9-]*\s*>/gi,"");o.trim()&&(n=!0)}}n||(r.c=!1)}"children"in e[t]&&e[t].children&&$m(e[t].children)}}function zv(e,t){for(var r=0;r0&&o.push({type:ee.paragraph,children:s.slice(0,i)});var c=[];if(i+1!(u.type===ee.htmlSelfClosing&&u.a));l.length>0&&(c=l)}return c=c.concat(e.slice(r+1)),{found:!0,beforeClose:o,afterClose:c}}}if((n.type===ee.htmlSelfClosing||n.type===ee.htmlBlock)&&n.a&&n.tag.toLowerCase()===t)return{found:!0,beforeClose:e.slice(0,r),afterClose:e.slice(r+1)}}return{found:!1,beforeClose:e,afterClose:[]}}function Bv(e){var t="";for(var r in e){var n=e[r];n===!0?t+=` ${r}`:n!==void 0&&n!=null&&n!==!1&&(t+=` ${r}="${String(n)}"`)}return t}function Ou(e,t,r,n){var s;return t===void 0?s=Bv(r):s=t.length>0&&t.charCodeAt(0)>ie?` ${t}`:t,`<${e}${s}${n}`}function ju(e){var t=e.tag,r=e.type===ee.htmlSelfClosing,n=e,s=n.b,i=``;if(!r&&n.a)return{kind:"literal",literal:(n.h||i)+(n.e||"")};if(r){var a=e;return a.a?{kind:"literal",literal:a.h||i}:a.m?{kind:"literal",literal:a.m}:{kind:"literal",literal:Ou(t,s,e.attrs," />")}}var o=Ou(t,s,e.attrs,">"),c=n.children,l=c!=null&&c.length>0;if(n.c&&n.j!==void 0)return l?{kind:"sandwich",open:o,close:i}:{kind:"literal",literal:n.j};if(n.c&&!l)return{kind:"literal",literal:o+(n.e||"")+(n.h||i)};if(c!=null&&c.length>0){for(var u="",m=0;m0&&typeof o.at(-1)=="string"?o[o.length-1]=o.at(-1)+l:o.push(l)}return o}function Wn(e){return e==null||e.tagfilter!==!1}function Kv(e,t,r,n){var s=t(e,r,n);return s===null?null:Wv(s)}function Gv(e){var t=[];if(!e)return t;for(var r in e)r.charCodeAt(0)===94&&t.push({identifier:r,footnote:e[r].target});return t}function Pc(e,t,r){if(t.indexOf(".")===-1)return e?.[t]||r;for(var n=e,s=t.split("."),i=0;i=123){t=!0;break}}if(!t)return e;for(var s="",r=0;r=Ae&&i<=Pe||i>=ve&&i<=Cc||i>=ze&&i<=xn)&&(a>=Ae&&a<=Pe||a>=ve&&a<=Cc||a>=ze&&a<=xn)){s+=e[r]+e[r+1]+e[r+2],r+=2;continue}}if(n>=55296&&n<=57343){if(n<=56319&&r+1=56320&&o<=57343){s+=encodeURI(e[r]+e[r+1]),r++;continue}}s+=e[r];continue}s+=encodeURI(e[r])}return s}function Jv(...e){return e.filter(Boolean).join(" ")}var Yv=new Set(["title","textarea","style","xmp","iframe","noembed","noframes","script","plaintext"]),Ta=/<(\/?)(title|textarea|style|xmp|iframe|noembed|noframes|script|plaintext)(\s|>|\/)/gi;function ku(e){return Yv.has(e.toLowerCase())}function Xv(e){return Ta.lastIndex=0,Ta.test(e)}function Iu(e){return Ta.lastIndex=0,e.replace(Ta,(t,r,n,s)=>`<${r}${n}${s}`)}function al(e,t){var r=e||{},n=r.slugify,s;if(n){var i=n;s=a=>i(a,In)}else s=In;return{disableAutoLink:r.disableAutoLink,disableFrontmatter:r.disableFrontmatter,disableParsingRawHTML:r.disableParsingRawHTML,enforceAtxHeadings:r.enforceAtxHeadings,evalUnserializableExpressions:r.evalUnserializableExpressions,forceBlock:r.forceBlock,forceInline:t===void 0?r.forceInline:t,ignoreHTMLBlocks:r.ignoreHTMLBlocks,optimizeForStreaming:r.optimizeForStreaming,preserveFrontmatter:r.preserveFrontmatter,sanitizer:r.sanitizer||xr,slugify:s,tagfilter:Wn(r)}}var Zv=/^<([a-zA-Z][a-zA-Z0-9-]*)\s[^>]*>/,Qv=/^<[A-Z]/,xc=["script","pre","style","textarea"],Mi=new Set(xc),eb=/<(?:pre|script|style|textarea)\b/i,Nu=/<(?:pre|script|style|textarea)\b/iy,qo=/^(\s{0,3}#[#\s]|\s{0,3}[-*+]\s|\s{0,3}\d+\.\s|\s{0,3}>\s|\s{0,3}```)/m,Ru=/^<([a-z][^ >/\n\r]*) ?([^>]*?)>/im,Fm=new Uint8Array(128);(()=>{for(var e=[Le,nt,Ze,ut,Bt,et,Nt,He,mt,Xa,de,Fa,En,xn],t=0;t=s)return!1;e.charCodeAt(n)===ht&&n++;for(var i=0;n=s)break;if(e.charCodeAt(n)===ht&&i>0){for(var a=n+1;a=s)return!0}if(e.charCodeAt(n)===Ct&&n++,n>=s||e.charCodeAt(n)!==we)return!1;for(;n0}var nb=/[\u0000-\u001F\u007F]/g,ib={action:1,background:1,cite:1,data:1,formaction:1,href:1,longdesc:1,poster:1,src:1,"xlink:href":1},sb=/&#(x[0-9a-f]+|[0-9]+);?/gi;function ab(e){return e.indexOf("&#")===-1?e:e.replace(sb,(t,r)=>{var n=r.charCodeAt(0)===km||r.charCodeAt(0)===Im?Number.parseInt(r.slice(1),16):Number.parseInt(r,10);return n>0&&n<=1114111?String.fromCodePoint(n):t})}function ob(e,t,r){if(r&&t.charCodeAt(0)===kn)return!1;var n=e.charCodeAt(0),s=e.charCodeAt(1);if((n===Pv||n===Av)&&(s===Ev||s===Cv))return!(r&&t==="");var i=e.toLowerCase();if(i==="srcdoc")return!0;if(i==="style")return/url\s*\(\s*(javascript|vbscript|data:(?!image\/))/i.test(t);if(ib[i]===1){var a=ab(Wr(t));if(xr(a)===null)return!0;var o=a.replace(nb,"");return o!==a&&xr(o)===null}return!1}function Oc(e){return"<"+(e.f?"/":"")+e.tag+e.g+e.b+(e.n?e.r?" />":"/>":">")}function Fu(e,t,r,n){for(var s=[],i=t,a=0;ai){var c=e.slice(i,o).trim();c&&s.push(c)}i=n[a+1]}if(i=ze&&a<=Xe||a>=ve&&a<=be))return null;for(;r=ze&&e.charCodeAt(r)<=Xe||e.charCodeAt(r)>=ve&&e.charCodeAt(r)<=be||e.charCodeAt(r)>=Ae&&e.charCodeAt(r)<=Pe||e.charCodeAt(r)===we);)r++;let o=e.slice(i,r);if(!o)return null;let c=o.charCodeAt(0),l=c>=ve&&c<=be||o.indexOf("-")!==-1,u=r;for(;rv&&e.charCodeAt(r-1)===ie;let B=g?Fu(e,v,r,g):e.slice(v,r);return{r:E,u:l,f:s,b:B,q:g!=null,n:!0,g:m,attrs:S,end:r+2,tag:o}}var y=r,f=e.charCodeAt(r);if(!(f>=ze&&f<=Xe||f>=ve&&f<=be||f===Ze||f===Ct))return null;for(r++;r=ze&&C<=Xe||C>=ve&&C<=be||C>=Ae&&C<=Pe||C===Ze||C===Ht||C===Ct||C===we)r++;else break}for(var x=e.slice(y,r),h=r;r=n)return null;if(b=e.slice($,r),r++,r0;){var C=e.charCodeAt(r);C===kn?q++:C===sl&&q--,r++}b=e.slice($,r),O=r}else{for(var $=r;r=c){i=!1,n=o<0?s:o+1;continue}if(u<4){var m=e.charCodeAt(l);if(m===Le||m===ut){for(var _=m,v=0,S=l;S=3){var E=!0;if(_===Le){for(var g=S;g=v){for(;f=s||e.charCodeAt(f)===de){n=f>=s?s:f+1;break}}}for(;y=s&&(n=s,a=!0);continue}}}}for(var b=l;b=4)break;i=!1}if(!i&&u<4&&b=3&&M>=c)}else i=!0;n=o<0?s:o+1}return a}function Tm(e,t,r){let n=e.length;if(e.charCodeAt(t)!==et)return null;let s=t+1n||e.charCodeAt(i-1)!==ir)return null;let o=e.slice(t+1,i-1);if(o.length>999)return null;let c=Pa(o);if(!c||i>=n||e.charCodeAt(i)!==Ct)return null;i++;let l=!1;for(;i=n||e.charCodeAt(i)!==xe)return null;u=e.slice(m,i),i++;for(var _=e.indexOf(` +`,i),v=_<0?n:_,S=i;S=n||e.charCodeAt(U)===de)&&(C=e.slice(M,$),x=!0,h=U0,s=0;s126||i>=ve&&i<=be){n=!1;break}else r=!1}if(n&&!r)return e;var a=e.replace(/\s+/g," ").trim();return a.indexOf("ẞ")!==-1?a.replace(/\u1E9E/g,"ss").toLowerCase():a.toLowerCase()}function ol(e){return e?@[\\\]^_`{|}~])/g,"$1")}var jc=null,kc=-1,xa=-1;function Ve(e,t){if(t>=kc&&t<=xa&&e===jc)return xa;var r=e.indexOf(` +`,t),n=r<0?e.length:r;return jc=e,kc=t,xa=n,n}function Ie(e,t){let r=Ve(e,t);return r=r}function lb(e,t){if(!e)return e;var r=t.v||(t.v=Object.create(null)),n=r[e];if(n===void 0)return r[e]=0,e;for(var s=n+1,i=`${e}-${s}`;r[i]!==void 0;)s++,i=`${e}-${s}`;return r[e]=s,r[i]=0,i}function ub(e,t,r,n){let s=Ve(e,t);if(at(e,t,s),qe>3)return null;let i=t+De;if(e.charCodeAt(i)!==Wt)return null;let a=en(e,i,s,35);if(a<1||a>6||(i+=a,ii&&e.charCodeAt(o-1)===ie;)o--;for(var c=o;o>i&&e.charCodeAt(o-1)===Wt;)o--;if(oi&&e.charCodeAt(o-1)===ie;)o--;else o=c;let l=e.slice(i,o),u=ri(l,!1,r,n);return{node:{type:ee.heading,level:a,children:u,id:""},end:Ie(e,s)}}function db(e,t,r){var n=e.charCodeAt(t);if(n!==Bt&&n!==we)return!1;for(var s=t;s=r}function Jr(e,t){let r=Ve(e,t);if(at(e,t,r),qe>3)return null;let n=t+De,s=e.charCodeAt(n);if(s!==we&&s!==nt&&s!==Ze)return null;let i=0;for(;n3)return null;let s=qe,i=t+De,a=e.charCodeAt(i);if(a!==Le&&a!==ut)return null;let o=en(e,i,n,a);if(o<3)return null;i+=o;let c=Ri(e,i,n),l=n;if(a===Le){for(let B=c;Bc&&(e.charCodeAt(l-1)===ie||e.charCodeAt(l-1)===ae);)l--;let u=e.slice(c,l),m="",_="",v=u.indexOf(" ");v===-1?m=u:(m=u.slice(0,v),_=u.slice(v+1).trim()),m=ti(m);var S;if(_){$u.lastIndex=0;for(var E;(E=$u.exec(_))!=null;)S||(S={}),S[E[1]]=E[2]===void 0?E[3]:E[2]}let g=Ie(e,n),y=e.length,f=e.length;var C;a===Mu&&o===qu?C=Uu:(C=String.fromCharCode(a).repeat(o),Mu=a,qu=o,Uu=C);for(var x=g;x0&&O<4&&e.charCodeAt(b-1)===ie;)b--,O++;if(O<=3&&(b===0||e.charCodeAt(b-1)===de)){for(var k=h+o;kg&&e.charCodeAt(y-1)===de?e.slice(g,y-1):e.slice(g,y);else{M="";for(var q=g;q0&&M.charCodeAt(M.length-1)===de&&(M=M.slice(0,-1))}return{node:{type:ee.codeBlock,lang:m||void 0,text:M,infoString:_||void 0,attrs:S},end:f}}function Lu(e,t,r){for(var n=0,s=t;s=4&&(n+=i,s=a);break}if(s!==a)break;continue}if(qe<4)break;let v=0,S=0;var c=0;for(let E=s;E<_&&S<4;E++){if(e.charCodeAt(E)===ae){var l=4-S%4;S+l>4&&(c=S+l-4),S+=l}else S++;v++}var u="";if(c>0)for(var m=0;m0&&n.charCodeAt(n.length-1)===de;)n=n.slice(0,-1);return n?{node:{type:ee.codeBlock,lang:void 0,text:n,infoString:void 0,attrs:void 0},end:s}:null}function mb(e,t,r,n){let s=Ve(e,t);if(at(e,t,s),qe>3)return null;let i=t+De;if(e.charCodeAt(i)!==xe)return null;let a="",o=t,c,l=!1,u=!1,m=!1;for(;o0,o=Ie(e,Y)}else if(a&&!kt(e,o,Y)&&u){if(qe<4){var $=o+De,M=$=Ae&&M<=Pe){for(var q=$;q=Ae&&e.charCodeAt(q)<=Pe;)q++;if(q3)return null;var n=t+De;if(n>=r)return null;var i=e.charCodeAt(n),s=qe,a=n,o=n;if(i===we||i===nt||i===Qr){if(a=n+1,a=Ae&&i<=Pe){for(;oPe)break;o++}if(o>n&&o=r)return{ordered:i>=Ae&&i<=Pe,marker:i>=Ae&&i<=Pe?e[o]:e[n],start:i>=Ae&&i<=Pe?Number.parseInt(e.slice(n,o),10):void 0,contentStart:u,contentCol:m+1,markerCol:s,isEmpty:!0};for(;v=r,y=S-m;return g||y>4?(S=m+1,v=u+1,_=1):_===0&&(S=m+1,v=u,_=1),{ordered:i>=Ae&&i<=Pe,marker:i>=Ae&&i<=Pe?e[o]:e[n],start:i>=Ae&&i<=Pe?Number.parseInt(e.slice(n,o),10):void 0,contentStart:v,contentCol:S,markerCol:s,isEmpty:g}}var Qn=0;function Uu(e,t,r,n){var i=0,s=t;for(Qn=0;sn){Qn=i+o-n,s++,i=n;break}i+=o}else if(a===ie)i++;else break;s++}return s}function Lu(e,t,r,n){var i=Ve(e,t),s=Dr(e,t,i);if(!s)return null;var a=[],o=t,c=s.contentCol,l="",u=s.isEmpty,m=!1,_=!1;if(!s.isEmpty){for(var v=!1,S=s.contentStart;S0)for(var f=0;f0||$3)return null;var n=t+De;if(n>=r)return null;var s=e.charCodeAt(n),i=qe,a=n,o=n;if(s===we||s===nt||s===Qr){if(a=n+1,a=Ae&&s<=Pe){for(;oPe)break;o++}if(o>n&&o=r)return{ordered:s>=Ae&&s<=Pe,marker:s>=Ae&&s<=Pe?e[o]:e[n],start:s>=Ae&&s<=Pe?Number.parseInt(e.slice(n,o),10):void 0,contentStart:u,contentCol:m+1,markerCol:i,isEmpty:!0};for(;v=r,y=S-m;return g||y>4?(S=m+1,v=u+1,_=1):_===0&&(S=m+1,v=u,_=1),{ordered:s>=Ae&&s<=Pe,marker:s>=Ae&&s<=Pe?e[o]:e[n],start:s>=Ae&&s<=Pe?Number.parseInt(e.slice(n,o),10):void 0,contentStart:v,contentCol:S,markerCol:i,isEmpty:g}}var Qn=0;function Vu(e,t,r,n){var s=0,i=t;for(Qn=0;in){Qn=s+o-n,i++,s=n;break}s+=o}else if(a===ie)s++;else break;i++}return i}function zu(e,t,r,n){var s=Ve(e,t),i=Dr(e,t,s);if(!i)return null;var a=[],o=t,c=i.contentCol,l="",u=i.isEmpty,m=!1,_=!1;if(!i.isEmpty){for(var v=!1,S=i.contentStart;S0)for(var f=0;f0||$=c){var A=Uu(e,o,b,c);if(Qn>0){for(var w="",j=c,p=0;p=c){var A=Vu(e,o,b,c);if(Qn>0){for(var w="",j=c,p=0;p=Ae&&N<=Pe&&Dr(e,o,b)!=null;if(!D){l+=`${e.slice(H,b)} +`;o=Ie(e,b);continue}for(var T=!1,F=0;F=Ae&&R<=Pe&&Dr(e,o,b)!=null;if(!D){l+=`${e.slice(H,b)} `,o=Ie(e,b);continue}}break}if(a.push({contentCol:c,raw:l,hasBlankAfter:m,isEmpty:u}),a.length===0)return null;var V=_;if(!V)for(var K=0;K=ge&&Ye.slice(ye).trim()===""&&(he=!1),te=fe=0?ce=!0:ne&&(se=!0),te=fe=0){if(qe>=Fe){te=fe=3){if(se&&ne){V=!0;break}he=!0,le=ke,ge=Et,ne=!0,te=fe0&&Rt.charCodeAt(_t-1)===de;)_t--;var Pt=_t=3&&Pt.charCodeAt(0)===et){var Nr=Pt[1];(Nr===" "||Nr==="x"||Nr==="X")&&Pt.charCodeAt(2)===ir&&(sn={type:ee.gfmTask,completed:Nr==="x"||Nr==="X"},Pt=Pt.slice(3))}var it;if(At.isEmpty&&Pt.trim()==="")it=[];else if(V){var an=r.inList;r.inList=!0;var qi=r.i;r.i=qi||pt!==a.length-1,it=Yr(Pt,r,n),r.i=qi,r.inList=an}else{var _r=r.inList;r.inList=!0;var on=r.i;if(r.i=on||pt!==a.length-1,it=Yr(Pt,r,n),r.i=on,r.inList=_r,it.length===1&&it[0].type===ee.paragraph)it=it[0].children;else if(r.p){var Rr=[];r.p.push({src:it,dest:Rr,unwrap:!0}),it=Rr}else{for(var or=[],$t=0;$t{let E=S.indexOf(":");if(E===-1)return;let g=S.slice(0,E).trim(),y=S.slice(E+1).trim();if(g&&y){if(/url\s*\(\s*(javascript|vbscript|data:(?!image\/))/i.test(y)){v=!0;return}let f=g.indexOf("-")===-1?g:g.replace(/-([a-z])/g,(C,x)=>x.toUpperCase());l[f]=y}}),!v&&Object.keys(l).length>0&&(n[a]=l)}else if((c==="href"||c==="src")&&r?.sanitizer){let l=r.sanitizer(o,t,c);l!=null&&(n[a]=l)}else if(o==="")n[a]=!0;else if(o.length>=2&&o.charCodeAt(0)===kn&&o.charCodeAt(o.length-1)===il){var i=o.slice(1,-1);if(i.length>0){var s=i.charCodeAt(0);if(s===et||s===kn)try{n[a]=JSON.parse(i);continue}catch{}}if(i==="true"){n[a]=!0;continue}if(i==="false"){n[a]=!1;continue}if(r?.evalUnserializableExpressions)try{n[a]=(0,eval)(`(${i})`);continue}catch{}n[a]=i}else n[a]=o}return n}function zr(e,t,r){let n=t.length;if(n===0)return r;var i=t.charCodeAt(0),s=i>=ve&&i<=be||i>=ze&&i<=Xe;if(!s){for(var a=String.fromCharCode(i),o=e.length-n,c=r;c<=o;){var l=e.indexOf(a,c);if(l===-1||l>o)return-1;for(var u=!0,m=1;m=ve&&_<=be&&(_+=Qt),v>=ve&&v<=be&&(v+=Qt),_!==v){u=!1;break}}if(u)return l;c=l+1}return-1}i>=ve&&i<=be&&(i+=Qt);for(let E=r;E<=e.length-n;E++){var S=e.charCodeAt(E);if(S>=ve&&S<=be&&(S+=Qt),S!==i)continue;let g=!0;for(let y=1;y=ve&&f<=be&&(f+=Qt),C>=ve&&C<=be&&(C+=Qt),f!==C){g=!1;break}}if(g)return E}return-1}function fb(e,t,r){let n=t.length;var i=t.charCodeAt(0);i>=ve&&i<=be&&(i+=Qt);for(let a=Math.min(r,e.length-n);a>=0;a--){var s=e.charCodeAt(a);if(s>=ve&&s<=be&&(s+=Qt),s!==i)continue;let o=!0;for(let c=1;c=ve&&l<=be&&(l+=Qt),u>=ve&&u<=be&&(u+=Qt),l!==u){o=!1;break}}if(o)return a}return-1}var Ma=-1;function kc(e,t,r){let n=r.toLowerCase(),i=`<${n}`,s=`0;){let m=zr(e,i,o),_=zr(e,s,o);if(_===-1)return-1;if(m!==-1&&m<_){let v=fr(e,m);v?(v.tag.toLowerCase()===n&&!v.f&&!v.n&&!Di(v.tag)&&a++,o=v.end):o=m+1}else{var l=_+s.length,u=l3&&!r.inHTML)return null;var s=t+De;if(e.charCodeAt(s)!==He)return null;var a=e.indexOf(">",s+1);if(a!==-1&&a=1&&c<=5){var l=e.length;if(c===1){for(var u=e.length,m=0;m`,s);_>=0&&_",u);l=v>=0?Ie(e,v+1):e.length}}else{var S=c===2?"-->":c===3?"?>":c===4?">":"]]>",E=e.indexOf(S,s);E>=0&&(l=Ie(e,E+S.length))}var g=e.slice(s,l);if(c>=2)return{node:{type:ee.htmlComment,text:g,s:!1,raw:!0},end:l};var y="div",f=g.match(/^<\/?([a-zA-Z][a-zA-Z0-9-]*)/);f&&(y=f[1]);var C=fr(e,s),x={},h;C&&!C.f&&(x=dr(C.attrs,y,n),h=C.g+C.b);var b=[],O=y.toLowerCase(),k=`0&&B.charCodeAt(B.length-1)===de;)B=B.slice(0,-1);B&&(U=qt(B))}else if(C&&!C.f){var J=C.end-s;if($===-1){for(var Y=g;Y.length>0&&Y.charCodeAt(Y.length-1)===de;)Y=Y.slice(0,-1);q=qt(Y)}else{var Q=J;g.charCodeAt(Q)===de&&Q++;for(var X=$;X>Q;){var re=g.charCodeAt(X-1);if(re!==ie&&re!==ae&&re!==de&&re!==Zr)break;X--}var A=g.slice(Q,X);A&&(U=qt(A));for(var w=g.slice($);w.length>0&&w.charCodeAt(w.length-1)===de;)w=w.slice(0,-1);L=qt(w),M=g.slice(J,$).trim()}}var j=C?C.f:!1;return{node:{type:ee.htmlBlock,tag:y,attrs:x,b:h,children:b,e:U,h:L,j:q,text:M,c:!0,a:j},end:l}}if(c===6||c===7){var p=Fu(e,t),d=p0;){var he=zr(V,`<${z}`,ce),le=zr(V,te,ce);if(le===-1)break;if(he!==-1&&he=2&&Pt===He)){tt=!0;break}if(Rt=!1,Pt===He){var sn=e.charCodeAt(_t+1)|32;if((sn===Cc||sn===Pm||sn===ei)&&(ku.lastIndex=_t,ku.test(e))){Ke=!0;break}}_t++}}if(Et&&!tt&&!Ke){var Nr=Ve(e,oe);d=Nr,I=Ie(e,Nr),V=e.slice(s,d),P=e.slice(s,d),K=ft-s,G=oe-s,W=!0}}}}var it=T.b.indexOf(` +`,te);if(fe<0&&(fe=W),he){at(G,te,fe);for(var Ye=G.slice(te+De,fe),ye=0;ye=ge&&Ye.slice(ye).trim()===""&&(he=!1),te=fe=0?ce=!0:ne&&(se=!0),te=fe=0){if(qe>=Fe){te=fe=3){if(se&&ne){V=!0;break}he=!0,le=ke,ge=Et,ne=!0,te=fe0&&Rt.charCodeAt(_t-1)===de;)_t--;var Pt=_t=3&&Pt.charCodeAt(0)===et){var Nr=Pt[1];(Nr===" "||Nr==="x"||Nr==="X")&&Pt.charCodeAt(2)===ir&&(sn={type:ee.gfmTask,completed:Nr==="x"||Nr==="X"},Pt=Pt.slice(3))}var it;if(At.isEmpty&&Pt.trim()==="")it=[];else if(V){var an=r.inList;r.inList=!0;var Ui=r.i;r.i=Ui||pt!==a.length-1,it=Yr(Pt,r,n),r.i=Ui,r.inList=an}else{var _r=r.inList;r.inList=!0;var on=r.i;if(r.i=on||pt!==a.length-1,it=Yr(Pt,r,n),r.i=on,r.inList=_r,it.length===1&&it[0].type===ee.paragraph)it=it[0].children;else if(r.p){var Rr=[];r.p.push({src:it,dest:Rr,unwrap:!0}),it=Rr}else{for(var or=[],$t=0;$t{let E=S.indexOf(":");if(E===-1)return;let g=S.slice(0,E).trim(),y=S.slice(E+1).trim();if(g&&y){if(/url\s*\(\s*(javascript|vbscript|data:(?!image\/))/i.test(y)){v=!0;return}let f=g.indexOf("-")===-1?g:g.replace(/-([a-z])/g,(C,x)=>x.toUpperCase());l[f]=y}}),!v&&Object.keys(l).length>0&&(n[a]=l)}else if((c==="href"||c==="src")&&r?.sanitizer){let l=r.sanitizer(o,t,c);l!=null&&(n[a]=l)}else if(o==="")n[a]=!0;else if(o.length>=2&&o.charCodeAt(0)===kn&&o.charCodeAt(o.length-1)===sl){var s=o.slice(1,-1);if(s.length>0){var i=s.charCodeAt(0);if(i===et||i===kn)try{n[a]=JSON.parse(s);continue}catch{}}if(s==="true"){n[a]=!0;continue}if(s==="false"){n[a]=!1;continue}if(r?.evalUnserializableExpressions)try{n[a]=(0,eval)(`(${s})`);continue}catch{}n[a]=s}else n[a]=o}return n}function zr(e,t,r){let n=t.length;if(n===0)return r;var s=t.charCodeAt(0),i=s>=ve&&s<=be||s>=ze&&s<=Xe;if(!i){for(var a=String.fromCharCode(s),o=e.length-n,c=r;c<=o;){var l=e.indexOf(a,c);if(l===-1||l>o)return-1;for(var u=!0,m=1;m=ve&&_<=be&&(_+=Qt),v>=ve&&v<=be&&(v+=Qt),_!==v){u=!1;break}}if(u)return l;c=l+1}return-1}s>=ve&&s<=be&&(s+=Qt);for(let E=r;E<=e.length-n;E++){var S=e.charCodeAt(E);if(S>=ve&&S<=be&&(S+=Qt),S!==s)continue;let g=!0;for(let y=1;y=ve&&f<=be&&(f+=Qt),C>=ve&&C<=be&&(C+=Qt),f!==C){g=!1;break}}if(g)return E}return-1}function pb(e,t,r){let n=t.length;var s=t.charCodeAt(0);s>=ve&&s<=be&&(s+=Qt);for(let a=Math.min(r,e.length-n);a>=0;a--){var i=e.charCodeAt(a);if(i>=ve&&i<=be&&(i+=Qt),i!==s)continue;let o=!0;for(let c=1;c=ve&&l<=be&&(l+=Qt),u>=ve&&u<=be&&(u+=Qt),l!==u){o=!1;break}}if(o)return a}return-1}var qa=-1;function Ic(e,t,r){let n=r.toLowerCase(),s=`<${n}`,i=`0;){let m=zr(e,s,o),_=zr(e,i,o);if(_===-1)return-1;if(m!==-1&&m<_){let v=fr(e,m);v?(v.tag.toLowerCase()===n&&!v.f&&!v.n&&!Ti(v.tag)&&a++,o=v.end):o=m+1}else{var l=_+i.length,u=l3&&!r.inHTML)return null;var i=t+De;if(e.charCodeAt(i)!==He)return null;var a=e.indexOf(">",i+1);if(a!==-1&&a=1&&c<=5){var l=e.length;if(c===1){for(var u=e.length,m=0;m`,i);_>=0&&_",u);l=v>=0?Ie(e,v+1):e.length}}else{var S=c===2?"-->":c===3?"?>":c===4?">":"]]>",E=e.indexOf(S,i);E>=0&&(l=Ie(e,E+S.length))}var g=e.slice(i,l);if(c>=2)return{node:{type:ee.htmlComment,text:g,s:!1,raw:!0},end:l};var y="div",f=g.match(/^<\/?([a-zA-Z][a-zA-Z0-9-]*)/);f&&(y=f[1]);var C=fr(e,i),x={},h;C&&!C.f&&(x=dr(C.attrs,y,n),h=C.g+C.b);var b=[],O=y.toLowerCase(),k=`0&&B.charCodeAt(B.length-1)===de;)B=B.slice(0,-1);B&&(U=qt(B))}else if(C&&!C.f){var J=C.end-i;if($===-1){for(var Y=g;Y.length>0&&Y.charCodeAt(Y.length-1)===de;)Y=Y.slice(0,-1);q=qt(Y)}else{var Q=J;g.charCodeAt(Q)===de&&Q++;for(var X=$;X>Q;){var re=g.charCodeAt(X-1);if(re!==ie&&re!==ae&&re!==de&&re!==Zr)break;X--}var A=g.slice(Q,X);A&&(U=qt(A));for(var w=g.slice($);w.length>0&&w.charCodeAt(w.length-1)===de;)w=w.slice(0,-1);L=qt(w),M=g.slice(J,$).trim()}}var j=C?C.f:!1;return{node:{type:ee.htmlBlock,tag:y,attrs:x,b:h,children:b,e:U,h:L,j:q,text:M,c:!0,a:j},end:l}}if(c===6||c===7){var p=Tu(e,t),d=p0;){var he=zr(V,`<${z}`,ce),le=zr(V,te,ce);if(le===-1)break;if(he!==-1&&he=2&&Pt===He)){tt=!0;break}if(Rt=!1,Pt===He){var sn=e.charCodeAt(_t+1)|32;if((sn===Ec||sn===jm||sn===ei)&&(Nu.lastIndex=_t,Nu.test(e))){Ke=!0;break}}_t++}}if(Et&&!tt&&!Ke){var Nr=Ve(e,oe);d=Nr,I=Ie(e,Nr),V=e.slice(i,d),P=e.slice(i,d),K=ft-i,G=oe-i,W=!0}}}}var it=T.b.indexOf(` `)!==-1||T.g.indexOf(` -`)!==-1,an=!1;if(K!==-1){var qi=V.slice(G).trim();an=qi.length===0}var _r=!1,on=d,Rr=I;if(K!==-1){var or=s+G,$t=Ve(e,or-1);if(or<$t){for(var cr=or;cr<$t&&(e.charCodeAt(cr)===ie||e.charCodeAt(cr)===ae);)cr++;if(cr<$t&&e.charCodeAt(cr)===He){var Fn=fr(e,cr);Fn&&!Fn.f&&(_r=!0,on=or,Rr=or,an=!0)}}if(!_r){var cn=Ie(e,$t);if(cn=2&&Dt.charCodeAt(0)===de&&Dt.charCodeAt(Dt.length-1)===de&&!pl;up&&!yl&&!oo?Dn=[{type:ee.text,text:Tn}]:lp||oo?(r.inline=!1,Dn=Yr(Dt,r,n)):(r.inline=!0,Dn=ri(Tn,!1,r,n))}r.inline=sp,r.inHTML=ap,r.d=op}}var gl=!1;if(c===6&&K!==-1&&!r.inHTML&&!it){var dp=/<[a-zA-Z][^>]*>/.test(Dt),fp=Dt.indexOf(` +`)!==-1,vl=qo.test(Tn),co=Ru.test(Tn),fp=gl||vl||r.inHTML&&co,hp=Dt.length>=2&&Dt.charCodeAt(0)===de&&Dt.charCodeAt(Dt.length-1)===de&&!gl;hp&&!vl&&!co?Dn=[{type:ee.text,text:Tn}]:fp||co?(r.inline=!1,Dn=Yr(Dt,r,n)):(r.inline=!0,Dn=ri(Tn,!1,r,n))}r.inline=cp,r.inHTML=lp,r.d=up}}var bl=!1;if(c===6&&K!==-1&&!r.inHTML&&!it){var mp=/<[a-zA-Z][^>]*>/.test(Dt),pp=Dt.indexOf(` -`)!==-1||Mo.test(Dt);dp&&!fp&&(gl=!0)}var hp=!W&&(r.inHTML||c===7||it||!an||gl);if(hp){var ui,lr,vl=!1;if(K!==-1&&_r){var bl=!1;if(r.inHTML&&G1&&co.charCodeAt(0)===He&&co.charCodeAt(1)!==Qe}lr=bl?V.slice(T.end-s):Dt,vl=!0}else(c===7||r.inHTML)&&K!==-1?(lr=V.slice(T.end-s),lr.charCodeAt(0)===de&&(lr=lr.slice(1))):_r?ui=e.slice(s,on):it?ui=P:(lr=V.slice(T.end-s),lr.charCodeAt(0)===de&&(lr=lr.slice(1)));var _l=ui!==void 0,lo=qt(ui===void 0?lr||"":ui),Sl={type:ee.htmlBlock,tag:F,attrs:dr(T.attrs,F,n),b:T.g+T.b,children:Dn,e:_l?void 0:lo,j:_l?lo:void 0,text:lo,c:!0,a:!1};return vl&&(Sl.x=!0),{node:Sl,end:Rr}}var wl=qt(Dt);return{node:{type:ee.htmlBlock,tag:F,attrs:dr(T.attrs,F,n),b:T.g+T.b,children:Dn,e:W?void 0:wl,text:wl,c:!1,a:!1},end:Rr}}var Li=P.match(/^<(\/?)([a-zA-Z][a-zA-Z0-9-]*)/),mp=Li?Li[2]:"div",uo=Li?Li[1]==="/":!1,fo,Cl,El,Vi="";if(uo){var ho=P.indexOf(">");ho===-1?fo=P:(fo=P.slice(0,ho+1),Vi=P.slice(ho+1),Vi&&(Cl=qt(Vi)))}else El=qt(P);return{node:{type:ee.htmlBlock,tag:mp,attrs:{},children:[],e:Cl,h:fo,j:El,text:uo?Vi:P,c:!0,a:uo},end:I}}var St=fr(e,s);if(!St)return null;var $r=St.tag,mo=$r.toLowerCase(),Al=$r.charCodeAt(0),po=Al>=ve&&Al<=be;if(!(po||Ta.has(mo)||Ti.has(mo)||mo.includes("-")))return null;if(St.f)return{node:{type:ee.htmlSelfClosing,tag:$r,attrs:{},h:e.slice(s,St.end),a:!0},end:St.end};var Mn=kc(e,St.end,$r),di=[];if(Mn!==-1){var pp=Ma,zi=e.slice(St.end,pp),Bi=zi.trim();if(Bi){var yp=zi.indexOf(` +`)!==-1||qo.test(Dt);mp&&!pp&&(bl=!0)}var yp=!W&&(r.inHTML||c===7||it||!an||bl);if(yp){var ui,lr,_l=!1;if(K!==-1&&_r){var Sl=!1;if(r.inHTML&&G1&&lo.charCodeAt(0)===He&&lo.charCodeAt(1)!==Qe}lr=Sl?V.slice(T.end-i):Dt,_l=!0}else(c===7||r.inHTML)&&K!==-1?(lr=V.slice(T.end-i),lr.charCodeAt(0)===de&&(lr=lr.slice(1))):_r?ui=e.slice(i,on):it?ui=P:(lr=V.slice(T.end-i),lr.charCodeAt(0)===de&&(lr=lr.slice(1)));var wl=ui!==void 0,uo=qt(ui===void 0?lr||"":ui),Cl={type:ee.htmlBlock,tag:F,attrs:dr(T.attrs,F,n),b:T.g+T.b,children:Dn,e:wl?void 0:uo,j:wl?uo:void 0,text:uo,c:!0,a:!1};return _l&&(Cl.x=!0),{node:Cl,end:Rr}}var El=qt(Dt);return{node:{type:ee.htmlBlock,tag:F,attrs:dr(T.attrs,F,n),b:T.g+T.b,children:Dn,e:W?void 0:El,text:El,c:!1,a:!1},end:Rr}}var Vi=P.match(/^<(\/?)([a-zA-Z][a-zA-Z0-9-]*)/),gp=Vi?Vi[2]:"div",fo=Vi?Vi[1]==="/":!1,ho,Al,Pl,zi="";if(fo){var mo=P.indexOf(">");mo===-1?ho=P:(ho=P.slice(0,mo+1),zi=P.slice(mo+1),zi&&(Al=qt(zi)))}else Pl=qt(P);return{node:{type:ee.htmlBlock,tag:gp,attrs:{},children:[],e:Al,h:ho,j:Pl,text:fo?zi:P,c:!0,a:fo},end:I}}var St=fr(e,i);if(!St)return null;var $r=St.tag,po=$r.toLowerCase(),xl=$r.charCodeAt(0),yo=xl>=ve&&xl<=be;if(!(yo||Ma.has(po)||Mi.has(po)||po.includes("-")))return null;if(St.f)return{node:{type:ee.htmlSelfClosing,tag:$r,attrs:{},h:e.slice(i,St.end),a:!0},end:St.end};var Mn=Ic(e,St.end,$r),di=[];if(Mn!==-1){var vp=qa,Bi=e.slice(St.end,vp),Hi=Bi.trim();if(Hi){var bp=Bi.indexOf(` -`)!==-1,gp=Mo.test(Bi),vp=Iu.test(Bi),bp=r.inline,_p=r.inHTML,Sp=r.d;r.inHTML=!0,r.d=(r.d||0)+1,yp||gp||vp?(r.inline=!1,di=Yr(zi,r,n)):(r.inline=!0,di=ri(Bi,!1,r,n)),r.inline=bp,r.inHTML=_p,r.d=Sp}var wp=Ve(e,Mn),Cp=e.slice(Mn,wp).trim(),Pl=Cp?Mn:Ie(e,Mn),xl=po?e.slice(s,Mn):e.slice(s,Pl);return{node:{type:ee.htmlBlock,tag:$r,attrs:dr(St.attrs,$r,n),b:St.g+St.b,children:di,j:qt(xl),text:po?zi:xl,c:!0,a:!1},end:Pl}}var fi=Fu(e,St.end),Ep=fi=ve&&i<=be)return 4;if(e.slice(r+1,r+8)==="[CDATA[")return 5}for(var s=e.charCodeAt(r)===Qe,a=s?r+1:r,o=a;o=ve&&c<=be||c>=ze&&c<=Xe||c>=Ae&&c<=Pe||c===we)o++;else break}if(o===a)return 0;var l=e.slice(a,o);if(Ti.has(l.toLowerCase())){if(s)return 0;var u=e.charCodeAt(o);return u===ie||u===ae||u===xe||u===de||o>=n?1:0}if(Ta.has(l.toLowerCase())){if(s){for(var m=o;mn&&(e.charCodeAt(i-1)===ie||e.charCodeAt(i-1)===ae);)i--;nn&&e.charCodeAt(i-1)===ht&&(i-2{var y=g.indexOf("\\|")===-1?g:g.replace(/\\\|/g,"|");return y?ri(y,!1,t,r):[]})}function zu(e,t,r,n){let i=Ve(e,t);var s=e.indexOf("|",t);if(s<0||s>=i)return null;let a=Ie(e,i);if(a>=e.length)return null;let o=Ve(e,a);if(!Rm(e,a,o))return null;let c=e.slice(t,i),l=e.slice(a,o);for(var u=[],m=0,_=l.length;m<_&&(l.charCodeAt(m)===ie||l.charCodeAt(m)===ae);)m++;for(m<_&&l.charCodeAt(m)===ht&&m++;m<_;){for(;m<_&&(l.charCodeAt(m)===ie||l.charCodeAt(m)===ae);)m++;if(m>=_||l.charCodeAt(m)===ht)break;var v=l.charCodeAt(m)===Ct;for(v&&m++;m<_&&l.charCodeAt(m)===we;)m++;var S=m<_&&l.charCodeAt(m)===Ct;for(S&&m++,u.push(v&&S?"center":S?"right":v?"left":null);m<_&&(l.charCodeAt(m)===ie||l.charCodeAt(m)===ae);)m++;m<_&&l.charCodeAt(m)===ht&&m++}let E=Vu(c,r,n);if(u.length!==E.length)return null;let g=[],y=Ie(e,o);for(;y=3)break}}g.push(Vu(k,r,n)),y=Ie(e,O)}if(n.optimizeForStreaming&&g.length===0)return null;for(var h=E.length,b=0;bh&&(g[b].length=h);return{node:{type:ee.table,header:E,cells:g,align:u},end:y}}function mb(e,t,r){var n=Ve(e,t);if(at(e,t,n),qe>3)return null;var i=t+De;if(e.charCodeAt(i)!==et)return null;if(i+1=n||e.charCodeAt(t+1)!==Ir)return null;for(var i=t+2,s=i;i=n)return null;var a=`^${e.slice(s,i)}`.toLowerCase();if(i++,i>=n||e.charCodeAt(i)!==Ct)return null;for(i++;i=2&&!kt(e,l,u))c+=` +`)!==-1,_p=qo.test(Hi),Sp=Ru.test(Hi),wp=r.inline,Cp=r.inHTML,Ep=r.d;r.inHTML=!0,r.d=(r.d||0)+1,bp||_p||Sp?(r.inline=!1,di=Yr(Bi,r,n)):(r.inline=!0,di=ri(Hi,!1,r,n)),r.inline=wp,r.inHTML=Cp,r.d=Ep}var Ap=Ve(e,Mn),Pp=e.slice(Mn,Ap).trim(),Ol=Pp?Mn:Ie(e,Mn),jl=yo?e.slice(i,Mn):e.slice(i,Ol);return{node:{type:ee.htmlBlock,tag:$r,attrs:dr(St.attrs,$r,n),b:St.g+St.b,children:di,j:qt(jl),text:yo?Bi:jl,c:!0,a:!1},end:Ol}}var fi=Tu(e,St.end),xp=fi=ve&&s<=be)return 4;if(e.slice(r+1,r+8)==="[CDATA[")return 5}for(var i=e.charCodeAt(r)===Qe,a=i?r+1:r,o=a;o=ve&&c<=be||c>=ze&&c<=Xe||c>=Ae&&c<=Pe||c===we)o++;else break}if(o===a)return 0;var l=e.slice(a,o);if(Mi.has(l.toLowerCase())){if(i)return 0;var u=e.charCodeAt(o);return u===ie||u===ae||u===xe||u===de||o>=n?1:0}if(Ma.has(l.toLowerCase())){if(i){for(var m=o;mn&&(e.charCodeAt(s-1)===ie||e.charCodeAt(s-1)===ae);)s--;nn&&e.charCodeAt(s-1)===ht&&(s-2{var y=g.indexOf("\\|")===-1?g:g.replace(/\\\|/g,"|");return y?ri(y,!1,t,r):[]})}function Hu(e,t,r,n){let s=Ve(e,t);var i=e.indexOf("|",t);if(i<0||i>=s)return null;let a=Ie(e,s);if(a>=e.length)return null;let o=Ve(e,a);if(!Dm(e,a,o))return null;let c=e.slice(t,s),l=e.slice(a,o);for(var u=[],m=0,_=l.length;m<_&&(l.charCodeAt(m)===ie||l.charCodeAt(m)===ae);)m++;for(m<_&&l.charCodeAt(m)===ht&&m++;m<_;){for(;m<_&&(l.charCodeAt(m)===ie||l.charCodeAt(m)===ae);)m++;if(m>=_||l.charCodeAt(m)===ht)break;var v=l.charCodeAt(m)===Ct;for(v&&m++;m<_&&l.charCodeAt(m)===we;)m++;var S=m<_&&l.charCodeAt(m)===Ct;for(S&&m++,u.push(v&&S?"center":S?"right":v?"left":null);m<_&&(l.charCodeAt(m)===ie||l.charCodeAt(m)===ae);)m++;m<_&&l.charCodeAt(m)===ht&&m++}let E=Bu(c,r,n);if(u.length!==E.length)return null;let g=[],y=Ie(e,o);for(;y=3)break}}g.push(Bu(k,r,n)),y=Ie(e,O)}if(n.optimizeForStreaming&&g.length===0)return null;for(var h=E.length,b=0;bh&&(g[b].length=h);return{node:{type:ee.table,header:E,cells:g,align:u},end:y}}function gb(e,t,r){var n=Ve(e,t);if(at(e,t,n),qe>3)return null;var s=t+De;if(e.charCodeAt(s)!==et)return null;if(s+1=n||e.charCodeAt(t+1)!==Ir)return null;for(var s=t+2,i=s;s=n)return null;var a=`^${e.slice(i,s)}`.toLowerCase();if(s++,s>=n||e.charCodeAt(s)!==Ct)return null;for(s++;s=2&&!kt(e,l,u))c+=` ${e.slice(l,u)}`,l=Ie(e,u);else if(kt(e,l,u)){var m=Ie(e,u);if(m=2){c+=` -`,l=Ie(e,u);continue}}break}else break}var v=r.refs;return v&&!v[a]&&(v[a]={target:c,title:void 0}),{node:{type:ee.footnote},end:l}}function yb(e,t,r,n){let i=t,s=0,a=0,o=-1;for(;i=0?o:Ve(e,i);if(o=-1,kt(e,i,L))break;if(at(e,i,L),qe<4&&a>0&&!r.l){let J=e.charCodeAt(i+De);if(J===Bt||J===we){let Y=i+De;for(;Y=L){s=J===Bt?1:2,i=Ie(e,L);break}}}a=L;let B=Ie(e,L);if(B=1&&u<=6&&(l>=J||e.charCodeAt(l)===ie||e.charCodeAt(l)===ae)){i=B;break}}if(Y===Le||Y===ut){for(var m=B+De,_=0;m=3){i=B;break}}if(Y===He){var v=B+De+1,S=v=ve&&e.charCodeAt(y)<=be||e.charCodeAt(y)>=ze&&e.charCodeAt(y)<=Xe||e.charCodeAt(y)>=Ae&&e.charCodeAt(y)<=Pe||e.charCodeAt(y)===we);)y++;y>g&&(E=Ta.has(e.slice(g,y).toLowerCase()))}else if(!E){for(var f=v;f=ve&&e.charCodeAt(f)<=be||e.charCodeAt(f)>=ze&&e.charCodeAt(f)<=Xe||e.charCodeAt(f)>=Ae&&e.charCodeAt(f)<=Pe||e.charCodeAt(f)===we);)f++;if(f>v){var C=e.slice(v,f).toLowerCase();E=Ta.has(C)||Ti.has(C)}}if(E&&Dm(e,B,r,n)){i=B;break}}if(Y===we||Y===nt||Y===Qr){let Q=B+De+1;if(Q=Ae&&Y<=Pe){let Q=B+De;for(;Q=Ae&&e.charCodeAt(Q)<=Pe;)Q++;if(Qt&&(e.charCodeAt(O-1)===de||e.charCodeAt(O-1)===Zr||e.charCodeAt(O-1)===ie||e.charCodeAt(O-1)===ae);)O--;for(var k=t;k=O)return null;for(var $=!1,M=k;M=r)return null;let a=en(e,s,r,96);if(a===n){let o=e.slice(t+n,s);return o.indexOf(` -`)!==-1&&(o=o.replace(/\n/g," ")),o.length>0&&o[0]===" "&&o.at(-1)===" "&&o.trim().length>0&&(o=o.slice(1,-1)),{node:{type:ee.codeInline,text:o},end:s+a}}i=s+a}return null}function ol(e,t,r){if(e.charCodeAt(t)!==Le)return t;let n=en(e,t,r,96),i=t+n;for(;i=r)return t;let a=en(e,s,r,96);if(a===n)return s+a;i=s+a}return t}function vb(e,t,r){if(e.charCodeAt(t)!==He)return t;if(t+1",t+4);return l>=0?l+3:t}let n=t+1,i=n;for(;n=ve&&l<=be||l>=ze&&l<=Xe||l>=Ae&&l<=Pe||l===we)n++;else break}if(n===i)return t;let s=e.slice(i,n).toLowerCase(),a=!1;for(;n0;)if(e.charCodeAt(n)===He)if(n+1=ve&&e.charCodeAt(u)<=be||e.charCodeAt(u)>=ze&&e.charCodeAt(u)<=Xe);)u++;if(e.slice(l,u).toLowerCase()===s){for(;u=ve&&e.charCodeAt(u)<=be||e.charCodeAt(u)>=ze&&e.charCodeAt(u)<=Xe);)u++;e.slice(l,u).toLowerCase()===s&&c++,n++}else n++;return n}function bb(e,t,r,n,i){if(e.charCodeAt(t)!==ut||t+1>=r||e.charCodeAt(t+1)!==ut)return null;let s=t+2;for(;s+1s){s=o;continue}}if(a===ut&&e.charCodeAt(s+1)===ut){let o=e.slice(t+2,s),c=pr(o,0,o.length,n,i);return{node:{type:ee.textFormatted,tag:"del",children:c},end:s+2}}a===mt&&s+1=r||e.charCodeAt(t+1)!==Bt)return null;let s=t+2;for(;s+1s){s=o;continue}}if(a===Bt&&e.charCodeAt(s+1)===Bt&&s>t+2){let o=e.slice(t+2,s),c=pr(o,0,o.length,n,i);return{node:{type:ee.textFormatted,tag:"mark",children:c},end:s+2}}a===mt&&s+10?e.charCodeAt(t-1):32,a=t+i0?Bu(s,e,t-1):!1,u=t+if;x--){var h=t[x];if(!(!h.active||h.ch!==E.ch||!h.canOpen)&&!((E.canOpen||h.canClose)&&(h.len+E.len)%3===0&&h.len%3!==0)){C=x;break}}if(C<0){_[y]=S-1,!E.canOpen&&(E.active=!1),S++;continue}var b=t[C],O=b.len>=2&&E.len>=2,k=O?2:1;b.len-=k,E.len-=k;var $=u[C],M=u[S],q=$.node,U=M.node;q.text=q.text.slice(0,q.text.length-k),U.text=U.text.slice(k);for(var L=[],B=$.next;B&&B!==M;)L.push(B.node),B=B.next;var J={type:ee.textFormatted,tag:O?"strong":"em",children:L},Y={node:J,prev:$,next:M};$.next=Y,M.prev=Y;for(var Q=C+1;Q0&&e[A-1].type===ee.text){e[A-1].text+=p.text,w=w.next;continue}}e[A++]=j,w=w.next}e.length=A}}function Gi(e,t,r,n){return t(e,r,n)===null?null:e}var Ku=0,Ic=0,Gu=0,Nc=0,Wu=0,Rc=0,qo=0,Vt=0;function Cb(){return qo===2147483647&&(Ic=0,Nc=0,Rc=0,xa=0,qo=0),++qo}var Uo=null,xa=0,Wi=[],Lo=256;function Ju(e,t,r,n,i){let s=e.charCodeAt(t)===Nt,a=s?t+1:t;if(e.charCodeAt(a)!==et||Nc===Vt&&a>=Gu)return null;var o=xa===Vt?Uo:null,c=o===null?0:o[a];if(c<0)return null;var l=c;if(c===0){var u=e.indexOf("]",a+1);if(u<0||u>=r)return Gu=a,Nc=Vt,null;l=a+1;var m=0;Wi[m++]=a;for(var _=r-a>=Lo;l0;){var v=e.charCodeAt(l);if(v===mt&&l+1l){l=S;continue}}if(v===He){var E=Tm(e,l,r);if(E){l=E.end;continue}var g=vb(e,l,r);if(g>l){l=g;continue}}if(v===et)Wi[m++]=l;else if(v===ir){var y=Wi[--m];o===null&&_&&l-a>=Lo&&(o=Uo=new Int32Array(r),xa=Vt),o!==null&&(o[y]=l+1)}l++}if(m>0){if(o===null&&_&&l-a>=Lo&&(o=Uo=new Int32Array(r),xa=Vt),o!==null)for(;m>0;)o[Wi[--m]]=-1;return null}}var f=l-1,C=e.slice(a+1,f),x=l=r||e.charCodeAt(k)!==xe)&&(b=!1),b&&(O=e.slice(l,k),k++)}else if(b){var $=Ic===Vt?Ku:-1;if($>=0&&l>=$)b=!1;else{for(var M=0,q=!1;k=r&&!q&&($<0||l<$)&&(Ku=l,Ic=Vt),O=e.slice(l,k)}}if(b){for(l=k;l=r?b=!1:(L=e.slice(Y,l),l++)}}if(b){for(;l=r||e.charCodeAt(l)!==tr)&&(b=!1)}}if(b){if(l++,O=Wr(ti(O)),L!==void 0&&(L=Wr(ti(L))),s){var Q=pr(C,0,C.length,n,i),X=qa(Q);return{node:{type:ee.image,target:Gi(O,i?.sanitizer||xr,"img","src"),alt:X,title:L},end:l}}var re=n.inAnchor;n.inAnchor=!0;var T=re?[{type:ee.text,text:C}]:pr(C,0,C.length,n,i);return n.inAnchor=re,!n.inAnchor&&$c(T)?null:{node:{type:ee.link,target:Gi(O,i?.sanitizer||xr,"a","href"),title:L,children:T},end:l}}l=f+1,h=!0}var A="",w=l;if(!h&&x===et){var j=l+1;w=j;for(var p=!1;w=r)return null;var d=e.slice(j,w);if(d.trim())A=Aa(d);else{if($u(C))return null;A=Aa(C)}w+=1}else{if($u(C))return null;A=Aa(C)}var P=n.refs?.[A];if(!P)return null;if(s)return{node:{type:ee.image,target:Gi(P.target,i?.sanitizer||xr,"img","src"),alt:qa(pr(C,0,C.length,n,i)),title:P.title},end:w};var I=n.inAnchor;n.inAnchor=!0;var T=I?[{type:ee.text,text:C}]:pr(C,0,C.length,n,i);return n.inAnchor=I,!n.inAnchor&&$c(T)?null:{node:{type:ee.link,target:Gi(P.target,i?.sanitizer||xr,"a","href"),title:P.title,children:T},end:w}}function Tm(e,t,r){if(e.charCodeAt(t)!==He)return null;for(var n=t+1;n=r||e.charCodeAt(n)!==xe)return null;var s=e.slice(t+1,n),a=s.match(/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^\x00-\x20]*)$/);return a?{node:{type:ee.link,target:s,title:void 0,children:[{type:ee.text,text:s}]},end:n+1}:s.indexOf("@")!==-1&&/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(s)?{node:{type:ee.link,target:`mailto:${s}`,title:void 0,children:[{type:ee.text,text:s}]},end:n+1}:null}function Eb(e,t,r,n){if(e.charCodeAt(t)!==et||t+1>=r||e.charCodeAt(t+1)!==Ir||Rc===Vt&&t>=Wu)return null;let i=t+2;for(;i=r)return Wu=t,Rc=Vt,null;if(e.charCodeAt(i)!==ir)return null;let s=e.slice(t+2,i);return s?{node:{type:ee.footnoteReference,target:`#${In(s)}`,text:s},end:i+1}:null}function Ab(e,t,r,n){if(n.disableBareUrls)return null;var i="",s=!1,a=e.charCodeAt(t);if(a===$a||a===72?t+8<=r&&e.charCodeAt(t+1)===ei&&e.charCodeAt(t+2)===ei&&e.charCodeAt(t+3)===Cc&&(e.charCodeAt(t+4)===Pm&&e.charCodeAt(t+5)===Ct&&e.charCodeAt(t+6)===Qe&&e.charCodeAt(t+7)===Qe?i="https://":e.charCodeAt(t+4)===Ct&&e.charCodeAt(t+5)===Qe&&e.charCodeAt(t+6)===Qe&&(i="http://")):a===xn||a===70?t+6<=r&&e.charCodeAt(t+1)===ei&&e.charCodeAt(t+2)===Cc&&e.charCodeAt(t+3)===Ct&&e.charCodeAt(t+4)===Qe&&e.charCodeAt(t+5)===Qe&&(i="ftp://"):(a===En||a===87)&&t+4<=r&&e.charCodeAt(t+1)===En&&e.charCodeAt(t+2)===En&&e.charCodeAt(t+3)===Ht&&(i="www.",s=!0),!i)return null;let o=t+i.length;for(;ot+i.length;){let b=e.charCodeAt(_-1);if(b===Ht||b===bv||b===Ct||b===Nt||b===li||b===tr||b===nt||b===Ze||b===ut){if(b===tr){if(c>=l)break;l--}_--}else if(b===Fa){for(var v=_-2;v>t&&(e.charCodeAt(v)>=ve&&e.charCodeAt(v)<=be||e.charCodeAt(v)>=ze&&e.charCodeAt(v)<=Xe||e.charCodeAt(v)>=Ae&&e.charCodeAt(v)<=Pe);)v--;v>=t&&e.charCodeAt(v)===Ya?_=v:_--}else break}if(_<=t+i.length)return null;var S=t+(s?4:i.length),E=e.indexOf("/",S);if((E<0||E>_)&&(E=_),s&&e.indexOf(".",S)===-1)return null;for(var g=-1,y=-1,f=E-1;f>=S;f--)if(e.charCodeAt(f)===Ht)if(g<0)g=f;else{y=f;break}for(var C=y>=0?y+1:S,f=C;f=ve&&a<=be||a>=ze&&a<=Xe||a>=Ae&&a<=Pe||a===Ht||a===Nt||a===Wt||a===36||a===Sc||a===Ya||a===On||a===nt||a===Qr||a===Qe||a===Bt||a===li||a===Ir||a===Ze||a===Le||a===kn||a===ht||a===il||a===ut||a===we)i++;else break}if(i===s||i>=r||e.charCodeAt(i)!==Am)return null;i++;for(var o=i,c=-1,l=i;i=ve&&a<=be||a>=ze&&a<=Xe||a>=Ae&&a<=Pe)i++;else if((a===we||a===Ze)&&i>o)i++;else if(a===Ht){if(i===o)break;var u=e.charCodeAt(i-1);if(u===we||u===Ze||i-l>63)break;if(i+1=ve&&m<=be||m>=ze&&m<=Xe||m>=Ae&&m<=Pe)c=i,l=i+1,i++;else break}else break}else break}if(i-l>63||c<0)return null;var _=e.charCodeAt(i-1);if(!(_>=ve&&_<=be||_>=ze&&_<=Xe||_>=Ae&&_<=Pe)||i<=c+1)return null;for(var v=-1,S=c-1;S>=o;S--)if(e.charCodeAt(S)===Ht){v=S;break}for(var E=v>=0?v+1:o,S=E;S=r)return-1;if(e.charCodeAt(n)===Wt){n++;var i=n=Ae&&o<=Pe||i&&(o>=ve&&o<=wc||o>=ze&&o<=xn);if(!c)break;n++}return n===s||n-s>a?-1:n=ve&&u<=be||u>=ze&&u<=Xe||u>=Ae&&u<=Pe){n++;continue}break}return n===l?-1:n=r)return null;var a=e.charCodeAt(s);if(a===Nt&&s+1",o);return c!==-1&&c<=r-3?{node:{type:ee.htmlComment,text:e.slice(t+4,c),s:!1},end:c+3}:null}if(a===li){var l=e.indexOf("?>",s+1);return l!==-1&&l",s+8);return m!==-1&&m=ve&&u<=be){var _=e.indexOf(">",s+2);return _!==-1&&_=r)return null;var S=e.charCodeAt(v);if(!(S>=ve&&S<=be||S>=ze&&S<=Xe))return null;for(v++;v=ve&&E<=be||E>=ze&&E<=Xe||E>=Ae&&E<=Pe||E===we)v++;else break}for(;v=ve&&a<=be||a>=ze&&a<=Xe))return null;var y=fr(e,t);if(!y)return null;var f=y.tag,C=f.toLowerCase(),x=y.n;if(x||Di(f))return{node:{type:ee.htmlSelfClosing,tag:f,attrs:dr(y.attrs,f,i),m:y.q?xc(y):e.slice(t,y.end),a:!1},end:y.end};var h=Ti.has(C),b=kc(e.slice(0,r),y.end,f);if(b===-1)return{node:{type:ee.htmlSelfClosing,tag:f,attrs:dr(y.attrs,f,i),m:y.q?xc(y):e.slice(t,y.end),a:!1},end:y.end};var O=fb(e,`=0?o:Ve(e,s);if(o=-1,kt(e,s,L))break;if(at(e,s,L),qe<4&&a>0&&!r.l){let J=e.charCodeAt(s+De);if(J===Bt||J===we){let Y=s+De;for(;Y=L){i=J===Bt?1:2,s=Ie(e,L);break}}}a=L;let B=Ie(e,L);if(B=1&&u<=6&&(l>=J||e.charCodeAt(l)===ie||e.charCodeAt(l)===ae)){s=B;break}}if(Y===Le||Y===ut){for(var m=B+De,_=0;m=3){s=B;break}}if(Y===He){var v=B+De+1,S=v=ve&&e.charCodeAt(y)<=be||e.charCodeAt(y)>=ze&&e.charCodeAt(y)<=Xe||e.charCodeAt(y)>=Ae&&e.charCodeAt(y)<=Pe||e.charCodeAt(y)===we);)y++;y>g&&(E=Ma.has(e.slice(g,y).toLowerCase()))}else if(!E){for(var f=v;f=ve&&e.charCodeAt(f)<=be||e.charCodeAt(f)>=ze&&e.charCodeAt(f)<=Xe||e.charCodeAt(f)>=Ae&&e.charCodeAt(f)<=Pe||e.charCodeAt(f)===we);)f++;if(f>v){var C=e.slice(v,f).toLowerCase();E=Ma.has(C)||Mi.has(C)}}if(E&&qm(e,B,r,n)){s=B;break}}if(Y===we||Y===nt||Y===Qr){let Q=B+De+1;if(Q=Ae&&Y<=Pe){let Q=B+De;for(;Q=Ae&&e.charCodeAt(Q)<=Pe;)Q++;if(Qt&&(e.charCodeAt(O-1)===de||e.charCodeAt(O-1)===Zr||e.charCodeAt(O-1)===ie||e.charCodeAt(O-1)===ae);)O--;for(var k=t;k=O)return null;for(var $=!1,M=k;M=r)return null;let a=en(e,i,r,96);if(a===n){let o=e.slice(t+n,i);return o.indexOf(` +`)!==-1&&(o=o.replace(/\n/g," ")),o.length>0&&o[0]===" "&&o.at(-1)===" "&&o.trim().length>0&&(o=o.slice(1,-1)),{node:{type:ee.codeInline,text:o},end:i+a}}s=i+a}return null}function cl(e,t,r){if(e.charCodeAt(t)!==Le)return t;let n=en(e,t,r,96),s=t+n;for(;s=r)return t;let a=en(e,i,r,96);if(a===n)return i+a;s=i+a}return t}function Sb(e,t,r){if(e.charCodeAt(t)!==He)return t;if(t+1",t+4);return l>=0?l+3:t}let n=t+1,s=n;for(;n=ve&&l<=be||l>=ze&&l<=Xe||l>=Ae&&l<=Pe||l===we)n++;else break}if(n===s)return t;let i=e.slice(s,n).toLowerCase(),a=!1;for(;n0;)if(e.charCodeAt(n)===He)if(n+1=ve&&e.charCodeAt(u)<=be||e.charCodeAt(u)>=ze&&e.charCodeAt(u)<=Xe);)u++;if(e.slice(l,u).toLowerCase()===i){for(;u=ve&&e.charCodeAt(u)<=be||e.charCodeAt(u)>=ze&&e.charCodeAt(u)<=Xe);)u++;e.slice(l,u).toLowerCase()===i&&c++,n++}else n++;return n}function wb(e,t,r,n,s){if(e.charCodeAt(t)!==ut||t+1>=r||e.charCodeAt(t+1)!==ut)return null;let i=t+2;for(;i+1i){i=o;continue}}if(a===ut&&e.charCodeAt(i+1)===ut){let o=e.slice(t+2,i),c=pr(o,0,o.length,n,s);return{node:{type:ee.textFormatted,tag:"del",children:c},end:i+2}}a===mt&&i+1=r||e.charCodeAt(t+1)!==Bt)return null;let i=t+2;for(;i+1i){i=o;continue}}if(a===Bt&&e.charCodeAt(i+1)===Bt&&i>t+2){let o=e.slice(t+2,i),c=pr(o,0,o.length,n,s);return{node:{type:ee.textFormatted,tag:"mark",children:c},end:i+2}}a===mt&&i+10?e.charCodeAt(t-1):32,a=t+s0?Ku(i,e,t-1):!1,u=t+sf;x--){var h=t[x];if(!(!h.active||h.ch!==E.ch||!h.canOpen)&&!((E.canOpen||h.canClose)&&(h.len+E.len)%3===0&&h.len%3!==0)){C=x;break}}if(C<0){_[y]=S-1,!E.canOpen&&(E.active=!1),S++;continue}var b=t[C],O=b.len>=2&&E.len>=2,k=O?2:1;b.len-=k,E.len-=k;var $=u[C],M=u[S],q=$.node,U=M.node;q.text=q.text.slice(0,q.text.length-k),U.text=U.text.slice(k);for(var L=[],B=$.next;B&&B!==M;)L.push(B.node),B=B.next;var J={type:ee.textFormatted,tag:O?"strong":"em",children:L},Y={node:J,prev:$,next:M};$.next=Y,M.prev=Y;for(var Q=C+1;Q0&&e[A-1].type===ee.text){e[A-1].text+=p.text,w=w.next;continue}}e[A++]=j,w=w.next}e.length=A}}function Wi(e,t,r,n){return t(e,r,n)===null?null:e}var Wu=0,Nc=0,Ju=0,Rc=0,Yu=0,$c=0,Uo=0,Vt=0;function Pb(){return Uo===2147483647&&(Nc=0,Rc=0,$c=0,Oa=0,Uo=0),++Uo}var Lo=null,Oa=0,Ji=[],Vo=256;function Xu(e,t,r,n,s){let i=e.charCodeAt(t)===Nt,a=i?t+1:t;if(e.charCodeAt(a)!==et||Rc===Vt&&a>=Ju)return null;var o=Oa===Vt?Lo:null,c=o===null?0:o[a];if(c<0)return null;var l=c;if(c===0){var u=e.indexOf("]",a+1);if(u<0||u>=r)return Ju=a,Rc=Vt,null;l=a+1;var m=0;Ji[m++]=a;for(var _=r-a>=Vo;l0;){var v=e.charCodeAt(l);if(v===mt&&l+1l){l=S;continue}}if(v===He){var E=Um(e,l,r);if(E){l=E.end;continue}var g=Sb(e,l,r);if(g>l){l=g;continue}}if(v===et)Ji[m++]=l;else if(v===ir){var y=Ji[--m];o===null&&_&&l-a>=Vo&&(o=Lo=new Int32Array(r),Oa=Vt),o!==null&&(o[y]=l+1)}l++}if(m>0){if(o===null&&_&&l-a>=Vo&&(o=Lo=new Int32Array(r),Oa=Vt),o!==null)for(;m>0;)o[Ji[--m]]=-1;return null}}var f=l-1,C=e.slice(a+1,f),x=l=r||e.charCodeAt(k)!==xe)&&(b=!1),b&&(O=e.slice(l,k),k++)}else if(b){var $=Nc===Vt?Wu:-1;if($>=0&&l>=$)b=!1;else{for(var M=0,q=!1;k=r&&!q&&($<0||l<$)&&(Wu=l,Nc=Vt),O=e.slice(l,k)}}if(b){for(l=k;l=r?b=!1:(L=e.slice(Y,l),l++)}}if(b){for(;l=r||e.charCodeAt(l)!==tr)&&(b=!1)}}if(b){if(l++,O=Wr(ti(O)),L!==void 0&&(L=Wr(ti(L))),i){var Q=pr(C,0,C.length,n,s),X=Ua(Q);return{node:{type:ee.image,target:Wi(O,s?.sanitizer||xr,"img","src"),alt:X,title:L},end:l}}var re=n.inAnchor;n.inAnchor=!0;var T=re?[{type:ee.text,text:C}]:pr(C,0,C.length,n,s);return n.inAnchor=re,!n.inAnchor&&Fc(T)?null:{node:{type:ee.link,target:Wi(O,s?.sanitizer||xr,"a","href"),title:L,children:T},end:l}}l=f+1,h=!0}var A="",w=l;if(!h&&x===et){var j=l+1;w=j;for(var p=!1;w=r)return null;var d=e.slice(j,w);if(d.trim())A=Pa(d);else{if(Du(C))return null;A=Pa(C)}w+=1}else{if(Du(C))return null;A=Pa(C)}var P=n.refs?.[A];if(!P)return null;if(i)return{node:{type:ee.image,target:Wi(P.target,s?.sanitizer||xr,"img","src"),alt:Ua(pr(C,0,C.length,n,s)),title:P.title},end:w};var I=n.inAnchor;n.inAnchor=!0;var T=I?[{type:ee.text,text:C}]:pr(C,0,C.length,n,s);return n.inAnchor=I,!n.inAnchor&&Fc(T)?null:{node:{type:ee.link,target:Wi(P.target,s?.sanitizer||xr,"a","href"),title:P.title,children:T},end:w}}function Um(e,t,r){if(e.charCodeAt(t)!==He)return null;for(var n=t+1;n=r||e.charCodeAt(n)!==xe)return null;var i=e.slice(t+1,n),a=i.match(/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^\x00-\x20]*)$/);return a?{node:{type:ee.link,target:i,title:void 0,children:[{type:ee.text,text:i}]},end:n+1}:i.indexOf("@")!==-1&&/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(i)?{node:{type:ee.link,target:`mailto:${i}`,title:void 0,children:[{type:ee.text,text:i}]},end:n+1}:null}function xb(e,t,r,n){if(e.charCodeAt(t)!==et||t+1>=r||e.charCodeAt(t+1)!==Ir||$c===Vt&&t>=Yu)return null;let s=t+2;for(;s=r)return Yu=t,$c=Vt,null;if(e.charCodeAt(s)!==ir)return null;let i=e.slice(t+2,s);return i?{node:{type:ee.footnoteReference,target:`#${In(i)}`,text:i},end:s+1}:null}function Ob(e,t,r,n){if(n.disableBareUrls)return null;var s="",i=!1,a=e.charCodeAt(t);if(a===Fa||a===72?t+8<=r&&e.charCodeAt(t+1)===ei&&e.charCodeAt(t+2)===ei&&e.charCodeAt(t+3)===Ec&&(e.charCodeAt(t+4)===jm&&e.charCodeAt(t+5)===Ct&&e.charCodeAt(t+6)===Qe&&e.charCodeAt(t+7)===Qe?s="https://":e.charCodeAt(t+4)===Ct&&e.charCodeAt(t+5)===Qe&&e.charCodeAt(t+6)===Qe&&(s="http://")):a===xn||a===70?t+6<=r&&e.charCodeAt(t+1)===ei&&e.charCodeAt(t+2)===Ec&&e.charCodeAt(t+3)===Ct&&e.charCodeAt(t+4)===Qe&&e.charCodeAt(t+5)===Qe&&(s="ftp://"):(a===En||a===87)&&t+4<=r&&e.charCodeAt(t+1)===En&&e.charCodeAt(t+2)===En&&e.charCodeAt(t+3)===Ht&&(s="www.",i=!0),!s)return null;let o=t+s.length;for(;ot+s.length;){let b=e.charCodeAt(_-1);if(b===Ht||b===wv||b===Ct||b===Nt||b===li||b===tr||b===nt||b===Ze||b===ut){if(b===tr){if(c>=l)break;l--}_--}else if(b===Da){for(var v=_-2;v>t&&(e.charCodeAt(v)>=ve&&e.charCodeAt(v)<=be||e.charCodeAt(v)>=ze&&e.charCodeAt(v)<=Xe||e.charCodeAt(v)>=Ae&&e.charCodeAt(v)<=Pe);)v--;v>=t&&e.charCodeAt(v)===Xa?_=v:_--}else break}if(_<=t+s.length)return null;var S=t+(i?4:s.length),E=e.indexOf("/",S);if((E<0||E>_)&&(E=_),i&&e.indexOf(".",S)===-1)return null;for(var g=-1,y=-1,f=E-1;f>=S;f--)if(e.charCodeAt(f)===Ht)if(g<0)g=f;else{y=f;break}for(var C=y>=0?y+1:S,f=C;f=ve&&a<=be||a>=ze&&a<=Xe||a>=Ae&&a<=Pe||a===Ht||a===Nt||a===Wt||a===36||a===wc||a===Xa||a===On||a===nt||a===Qr||a===Qe||a===Bt||a===li||a===Ir||a===Ze||a===Le||a===kn||a===ht||a===sl||a===ut||a===we)s++;else break}if(s===i||s>=r||e.charCodeAt(s)!==Om)return null;s++;for(var o=s,c=-1,l=s;s=ve&&a<=be||a>=ze&&a<=Xe||a>=Ae&&a<=Pe)s++;else if((a===we||a===Ze)&&s>o)s++;else if(a===Ht){if(s===o)break;var u=e.charCodeAt(s-1);if(u===we||u===Ze||s-l>63)break;if(s+1=ve&&m<=be||m>=ze&&m<=Xe||m>=Ae&&m<=Pe)c=s,l=s+1,s++;else break}else break}else break}if(s-l>63||c<0)return null;var _=e.charCodeAt(s-1);if(!(_>=ve&&_<=be||_>=ze&&_<=Xe||_>=Ae&&_<=Pe)||s<=c+1)return null;for(var v=-1,S=c-1;S>=o;S--)if(e.charCodeAt(S)===Ht){v=S;break}for(var E=v>=0?v+1:o,S=E;S=r)return-1;if(e.charCodeAt(n)===Wt){n++;var s=n=Ae&&o<=Pe||s&&(o>=ve&&o<=Cc||o>=ze&&o<=xn);if(!c)break;n++}return n===i||n-i>a?-1:n=ve&&u<=be||u>=ze&&u<=Xe||u>=Ae&&u<=Pe){n++;continue}break}return n===l?-1:n=r)return null;var a=e.charCodeAt(i);if(a===Nt&&i+1",o);return c!==-1&&c<=r-3?{node:{type:ee.htmlComment,text:e.slice(t+4,c),s:!1},end:c+3}:null}if(a===li){var l=e.indexOf("?>",i+1);return l!==-1&&l",i+8);return m!==-1&&m=ve&&u<=be){var _=e.indexOf(">",i+2);return _!==-1&&_=r)return null;var S=e.charCodeAt(v);if(!(S>=ve&&S<=be||S>=ze&&S<=Xe))return null;for(v++;v=ve&&E<=be||E>=ze&&E<=Xe||E>=Ae&&E<=Pe||E===we)v++;else break}for(;v=ve&&a<=be||a>=ze&&a<=Xe))return null;var y=fr(e,t);if(!y)return null;var f=y.tag,C=f.toLowerCase(),x=y.n;if(x||Ti(f))return{node:{type:ee.htmlSelfClosing,tag:f,attrs:dr(y.attrs,f,s),m:y.q?Oc(y):e.slice(t,y.end),a:!1},end:y.end};var h=Mi.has(C),b=Ic(e.slice(0,r),y.end,f);if(b===-1)return{node:{type:ee.htmlSelfClosing,tag:f,attrs:dr(y.attrs,f,s),m:y.q?Oc(y):e.slice(t,y.end),a:!1},end:y.end};var O=pb(e,`jb)return Oi--,[{type:ee.text,text:e.slice(t,r)}];var s=Vt;Vt=Cb();let a=n;if(i.optimizeForStreaming){let ye=function(tt,pt){for(var At=1,Rt=pt+1;Rt=0&&C.push([g,2]),l%2===1&&S>=0&&C.push([S,2]),u%2===1&&E>=0&&C.push([E,1]),o%2===1&&_>=0&&C.push([_,2]),c%2===1&&v>=0&&C.push([v,1]),C.sort((tt,pt)=>pt[0]-tt[0]);for(var x=0;x0&&oe.charCodeAt(U-1)===Nt,J=B?U-1:U,Y=ye(oe,U);if(Y===-1)k=J,q=B,$=U+1,M=oe.length;else{var Q=Y+1;if(Q>=oe.length)k=J,q=B,$=U+1,M=Y;else if(oe.charCodeAt(Q)===er){var X=oe.indexOf(")",Q+1);X===-1?(k=J,q=B,$=U+1,M=Y,U=oe.length):U=X}else if(oe.charCodeAt(Q)===et){var re=oe.indexOf("]",Q+1);re===-1?(k=J,q=B,$=U+1,M=Y,U=oe.length):U=re}else U=Y}}}if(k>=0){var A=q?"":oe.slice($,M);oe=oe.slice(0,k)+A,O=!0}}let Ke=oe.match(/<([A-Z][A-Za-z0-9]*)(?:\s[^>]*)?>([^<]*)$/);if(Ke&&Ke.index!==void 0){var w=Ke[0].length-Ke[2].length,j=w>=2&&Ke[0].charCodeAt(w-2)===Qe;if(!j){for(var p=!1,d=0,P=0;P=r&&(H=-1);tF)&&(I.push(fn(z+e.slice(F,t))),z="");var V=e.slice(t,t+D.len),K=fn(V);T.push({idx:I.length,ch:ye,len:D.len,canOpen:D.canOpen,canClose:D.canClose,active:!0}),I.push(K),t+=D.len,F=t;continue}t+=D.len-1}}else if(ye===ut)oe=bb(e,t,r,a,i);else if(ye===Bt)oe=_b(e,t,r,a,i);else if(ye===et)t+1=0&&H-t<=64&&!a.inAnchor&&!i.disableAutoLink&&!i.disableBareUrls&&(ye>=ve&&ye<=be||ye>=ze&&ye<=Xe||ye>=Ae&&ye<=Pe)&&(oe=Pb(e,t,r,i),!oe&&t>=H&&(H=e.indexOf("@",t+1),H>=r&&(H=-1))),ye===de&&a.k){var se=!1,ce=0;if(t>F&&e.charCodeAt(t-1)===mt)se=!0,ce=1;else{for(var he=0,le=t-1;le>=F&&e.charCodeAt(le)===ie;)he++,le--;he>=2&&(se=!0,ce=he)}if(se){for((z||t-ce>F)&&(I.push(fn(z+e.slice(F,t-ce))),z=""),I.push({type:ee.breakLine}),t++;tF&&e.charCodeAt(t-1)===ie,Fe=t+1F&&e.charCodeAt(fe-1)===ie;)fe--;for(z+=`${e.slice(F,fe)} -`,t++;tF)&&(I.push(fn(z+e.slice(F,t))),z=""),I.push(oe.node),t=oe.end,F=t;else{if(ye===mt&&t+1F)&&(I.push(fn(z+e.slice(F,t))),z=""),I.push(fn(e[t+1])),t+=2,F=t;continue}}if(t++,H<0||H-t>64)for(;t=0&&H-t<=64);){var Ye=e.charCodeAt(t);if(YeF)&&(I.push(fn(z+e.slice(F,r))),z=""),T.length>0&&wb(I,T),Vt=s,Oi--,I}var kb=500;function Yr(e,t,r){var n=t.o||0;if(n>kb)return[{type:ee.text,text:e}];if(t.o=n+1,r.optimizeForStreaming&&!(t.i||t.w)){for(var i=e.length;i>0&&e.charCodeAt(i-1)===de;)i--;for(var s=i;s>0&&e.charCodeAt(s-1)!==de;)s--;if(i>s&&e.charCodeAt(s)===ht){for(var a=!1,o=s+1;o0;){for(var S=v;S>0&&e.charCodeAt(S-1)!==de;)S--;if(e.charCodeAt(S)!==ht)break;_=S;for(var E=!0,g=!1,y=S;y0?e.slice(0,s).trimEnd():e.slice(0,_).trimEnd()}for(var C=-1,x=-1,h=-1,b=!1,O=e.length-1;O>=0;O--)if(e.charCodeAt(O)===He){for(var k=O+1=ve&&k<=be||k>=ze&&k<=Xe,M=k===Qe&&O+2=ve&&e.charCodeAt(O+2)<=be||e.charCodeAt(O+2)>=ze&&e.charCodeAt(O+2)<=Xe),q=k===Nt||k===li,U=e.length;U>O+1&&e.charCodeAt(U-1)===de;)U--;var L=O+1>=U;if($||M||q||L){var B=O+1;if((M||$)&&(B=O+2),$||M)for(;B=ve&&J<=be||J>=ze&&J<=Xe||J>=Ae&&J<=Pe)B++;else break}for(var Y=$||M?B:O+2;Y=e.length)C=O,b=!0;else if(($||M)&&e.charCodeAt(Y-1)!==Qe){for(var Q=!1,X=Y+1;X=0){for(var re=0,A=0;A0&&e.charCodeAt(j-1)===de;)j--;if(j>0){for(var p=j;p>0&&e.charCodeAt(p-1)!==de;)p--;for(var d=p,P=0;d0&&d0&&e.charCodeAt(T-1)!==de;)T--;kt(e,T,I)||(e=e.slice(0,p).trimEnd())}}var F=e.length;if(F>0){for(var z=e.lastIndexOf(` -`),H=z===-1?0:z+1,N=F,D=H,V=0;D=N||e.charCodeAt(W)===ie||e.charCodeAt(W)===ae){for(var te=W;te=N&&(G=!0)}}else if(K>=Ae&&K<=Pe){for(var ne=D;ne=Ae&&e.charCodeAt(ne)<=Pe;)ne++;if(ne=N||e.charCodeAt(se)===ie||e.charCodeAt(se)===ae){for(var ce=se;ce=N&&(G=!0)}}}G&&(e=e.slice(0,H).trimEnd())}}}if(t.inline)return pr(e,0,e.length,t,r);let he=[],le=0,ge=e.length;if(le===0&&!r.disableFrontmatter&&e.startsWith("---")){let ke=Av(e);if(ke?.hasValidYaml){if(r.preserveFrontmatter!==!1){let Et=e.slice(0,ke.endPos).trimEnd();he.push({type:ee.frontmatter,text:Et})}le=ke.endPos}}for(;leNb)return Oi--,[{type:ee.text,text:e.slice(t,r)}];var i=Vt;Vt=Pb();let a=n;if(s.optimizeForStreaming){let ye=function(tt,pt){for(var At=1,Rt=pt+1;Rt=0&&C.push([g,2]),l%2===1&&S>=0&&C.push([S,2]),u%2===1&&E>=0&&C.push([E,1]),o%2===1&&_>=0&&C.push([_,2]),c%2===1&&v>=0&&C.push([v,1]),C.sort((tt,pt)=>pt[0]-tt[0]);for(var x=0;x0&&oe.charCodeAt(U-1)===Nt,J=B?U-1:U,Y=ye(oe,U);if(Y===-1)k=J,q=B,$=U+1,M=oe.length;else{var Q=Y+1;if(Q>=oe.length)k=J,q=B,$=U+1,M=Y;else if(oe.charCodeAt(Q)===er){var X=oe.indexOf(")",Q+1);X===-1?(k=J,q=B,$=U+1,M=Y,U=oe.length):U=X}else if(oe.charCodeAt(Q)===et){var re=oe.indexOf("]",Q+1);re===-1?(k=J,q=B,$=U+1,M=Y,U=oe.length):U=re}else U=Y}}}if(k>=0){var A=q?"":oe.slice($,M);oe=oe.slice(0,k)+A,O=!0}}let Ke=oe.match(/<([A-Z][A-Za-z0-9]*)(?:\s[^>]*)?>([^<]*)$/);if(Ke&&Ke.index!==void 0){var w=Ke[0].length-Ke[2].length,j=w>=2&&Ke[0].charCodeAt(w-2)===Qe;if(!j){for(var p=!1,d=0,P=0;P=r&&(H=-1);tF)&&(I.push(fn(z+e.slice(F,t))),z="");var V=e.slice(t,t+D.len),K=fn(V);T.push({idx:I.length,ch:ye,len:D.len,canOpen:D.canOpen,canClose:D.canClose,active:!0}),I.push(K),t+=D.len,F=t;continue}t+=D.len-1}}else if(ye===ut)oe=wb(e,t,r,a,s);else if(ye===Bt)oe=Cb(e,t,r,a,s);else if(ye===et)t+1=0&&H-t<=64&&!a.inAnchor&&!s.disableAutoLink&&!s.disableBareUrls&&(ye>=ve&&ye<=be||ye>=ze&&ye<=Xe||ye>=Ae&&ye<=Pe)&&(oe=jb(e,t,r,s),!oe&&t>=H&&(H=e.indexOf("@",t+1),H>=r&&(H=-1))),ye===de&&a.k){var se=!1,ce=0;if(t>F&&e.charCodeAt(t-1)===mt)se=!0,ce=1;else{for(var he=0,le=t-1;le>=F&&e.charCodeAt(le)===ie;)he++,le--;he>=2&&(se=!0,ce=he)}if(se){for((z||t-ce>F)&&(I.push(fn(z+e.slice(F,t-ce))),z=""),I.push({type:ee.breakLine}),t++;tF&&e.charCodeAt(t-1)===ie,Fe=t+1F&&e.charCodeAt(fe-1)===ie;)fe--;for(z+=`${e.slice(F,fe)} +`,t++;tF)&&(I.push(fn(z+e.slice(F,t))),z=""),I.push(oe.node),t=oe.end,F=t;else{if(ye===mt&&t+1F)&&(I.push(fn(z+e.slice(F,t))),z=""),I.push(fn(e[t+1])),t+=2,F=t;continue}}if(t++,H<0||H-t>64)for(;t=0&&H-t<=64);){var Ye=e.charCodeAt(t);if(YeF)&&(I.push(fn(z+e.slice(F,r))),z=""),T.length>0&&Ab(I,T),Vt=i,Oi--,I}var Rb=500;function Yr(e,t,r){var n=t.o||0;if(n>Rb)return[{type:ee.text,text:e}];if(t.o=n+1,r.optimizeForStreaming&&!(t.i||t.w)){for(var s=e.length;s>0&&e.charCodeAt(s-1)===de;)s--;for(var i=s;i>0&&e.charCodeAt(i-1)!==de;)i--;if(s>i&&e.charCodeAt(i)===ht){for(var a=!1,o=i+1;o0;){for(var S=v;S>0&&e.charCodeAt(S-1)!==de;)S--;if(e.charCodeAt(S)!==ht)break;_=S;for(var E=!0,g=!1,y=S;y0?e.slice(0,i).trimEnd():e.slice(0,_).trimEnd()}for(var C=-1,x=-1,h=-1,b=!1,O=e.length-1;O>=0;O--)if(e.charCodeAt(O)===He){for(var k=O+1=ve&&k<=be||k>=ze&&k<=Xe,M=k===Qe&&O+2=ve&&e.charCodeAt(O+2)<=be||e.charCodeAt(O+2)>=ze&&e.charCodeAt(O+2)<=Xe),q=k===Nt||k===li,U=e.length;U>O+1&&e.charCodeAt(U-1)===de;)U--;var L=O+1>=U;if($||M||q||L){var B=O+1;if((M||$)&&(B=O+2),$||M)for(;B=ve&&J<=be||J>=ze&&J<=Xe||J>=Ae&&J<=Pe)B++;else break}for(var Y=$||M?B:O+2;Y=e.length)C=O,b=!0;else if(($||M)&&e.charCodeAt(Y-1)!==Qe){for(var Q=!1,X=Y+1;X=0){for(var re=0,A=0;A0&&e.charCodeAt(j-1)===de;)j--;if(j>0){for(var p=j;p>0&&e.charCodeAt(p-1)!==de;)p--;for(var d=p,P=0;d0&&d0&&e.charCodeAt(T-1)!==de;)T--;kt(e,T,I)||(e=e.slice(0,p).trimEnd())}}var F=e.length;if(F>0){for(var z=e.lastIndexOf(` +`),H=z===-1?0:z+1,R=F,D=H,V=0;D=R||e.charCodeAt(W)===ie||e.charCodeAt(W)===ae){for(var te=W;te=R&&(G=!0)}}else if(K>=Ae&&K<=Pe){for(var ne=D;ne=Ae&&e.charCodeAt(ne)<=Pe;)ne++;if(ne=R||e.charCodeAt(se)===ie||e.charCodeAt(se)===ae){for(var ce=se;ce=R&&(G=!0)}}}G&&(e=e.slice(0,H).trimEnd())}}}if(t.inline)return pr(e,0,e.length,t,r);let he=[],le=0,ge=e.length;if(le===0&&!r.disableFrontmatter&&e.startsWith("---")){let ke=Ov(e);if(ke?.hasValidYaml){if(r.preserveFrontmatter!==!1){let Et=e.slice(0,ke.endPos).trimEnd();he.push({type:ee.frontmatter,text:Et})}le=ke.endPos}}for(;le=ge)break;var Ye=e.charCodeAt(le)===Ec;at(e,le,fe);let ke=null;if(Oc=e,jc=le,Pa=fe,!Ye&&qe>=4&&!t.inHTML)ke=ub(e,le);else if(!Ye){let Et=le+De,Ke=e.charCodeAt(Et);Ke===Wt?ke=ob(e,le,t,r):Ke===xe?ke=db(e,le,t,r):Ke===Le||Ke===ut?ke=lb(e,le):Ke===we||Ke===nt||Ke===Ze?(ke=Jr(e,le),!ke&&(ke=Lu(e,le,t,r))):Ke===Qr||Ke>=Ae&&Ke<=Pe?ke=Lu(e,le,t,r):Ke===He?ke=Dm(e,le,t,r):Ke===ht?ke=zu(e,le,t,r):Ke===et&&(ke=mb(e,le,t))}if(!ke){for(var ye=!1,oe=le;oe"u"?void 0:Z.createContext(void 0);function Xu(e,t,r,n,i,s,a,o,c){switch(e.type){case ee.blockQuote:{let y={key:r.key};return e.alert&&(y.className=`markdown-alert-${s(e.alert.toLowerCase(),In)}`,e.children.unshift(Tv(e.alert))),n("blockquote",y,t(e.children,r))}case ee.breakLine:return n("br",{key:r.key});case ee.breakThematic:return n("hr",{key:r.key});case ee.frontmatter:return o.preserveFrontmatter?n("pre",{key:r.key},e.text):null;case ee.codeBlock:{let y=e.lang?Wr(e.lang):"";var l=e.attrs?jm(e.attrs):{};return l.className=y?`language-${y} lang-${y}`:"",n("pre",{key:r.key},n("code",l,e.text))}case ee.codeInline:return n("code",{key:r.key},e.text);case ee.footnoteReference:return n("a",{key:r.key,href:i(e.target,"a","href")||void 0},n("sup",null,e.text));case ee.gfmTask:return n("input",{checked:e.completed,key:r.key,readOnly:!0,type:"checkbox"});case ee.heading:return n(`h${e.level}`,{id:e.id,key:r.key},t(e.children,r));case ee.htmlBlock:{let y=e;if(Wn(o)&&Ou(y.tag)){var u=xu(y);return u.kind==="literal"?n("span",{key:r.key},u.literal):n("span",{key:r.key},...Vv(u.open,y.children?t(y.children,r):null,u.close))}let f=y.j,C=f!==void 0,x=C?f:y.a?y.e||"":(y.e||"")+(y.h||"");if(x&&y.c){let h=y.tag.toLowerCase(),b=Zv(h),O=y.children,k=O!=null&&O.length>0;if(b){let J=C?f:y.e||"",Y=Wn(o)?ju(J):J;if(/<[a-z][^>]{0,100}>/i.test(x)){var m=Ut(r.key,e.attrs);return m.dangerouslySetInnerHTML={__html:Y},c(e.tag,m)}return c(e.tag,Ut(r.key,e.attrs),Y)}let $=new RegExp(`^<${y.tag}(\\s|>)`,"i");if(k&&!$.test(x)&&Wn(o)&&Wv(x))return c(e.tag,Ut(r.key,e.attrs),t(O,r));if(Qv(x)){let J=Wn(o)?ju(x):x;var _=Ut(r.key,e.attrs);return _.dangerouslySetInnerHTML={__html:J},c(e.tag,_)}let M=sl({slugify:o.slugify,sanitizer:i,tagfilter:!0}),q=Fv(x);if(new RegExp(`^<${y.tag}(\\s[^>]*)?>(\\s*)?$`,"i").test(q))return y.children&&y.children.length>0?c(e.tag,Ut(r.key,e.attrs),t(y.children,r)):c(e.tag,Ut(r.key,e.attrs));let U=cl(q,{inline:!1,refs:a,inHTML:!1},M);Im(U);let L=y.tag.toLowerCase(),B=C;if(B&&k)return c(e.tag,Ut(r.key,e.attrs),t(O,r));if(B)return t(U.flatMap(Zn),r);var v=Uv(U,L);if(v.found&&v.afterClose.length>0){var S=v.beforeClose.flatMap(Zn),E=v.afterClose.flatMap(Zn);return Tc(Z.Fragment,{children:[c(e.tag,Ut(r.key,e.attrs),t(S,r)),t(E,r)]},r.key)}return c(e.tag,Ut(r.key,e.attrs),t(U.flatMap(Zn),r))}return Di(e.tag)?c(e.tag,Ut(r.key,e.attrs)):c(e.tag,Ut(r.key,e.attrs),e.children?t(e.children,r):"")}case ee.htmlSelfClosing:{let y=e;if(Wn(o)&&Ou(y.tag)){var g=xu(y);return n("span",{key:r.key},g.kind==="literal"?g.literal:g.open+(g.close||""))}return c(e.tag,Ut(r.key,e.attrs))}case ee.image:{let y=e.target===null?null:i(e.target,"img","src");return n("img",{key:r.key,alt:e.alt&&e.alt.length>0?e.alt:void 0,title:e.title||void 0,src:y||void 0})}case ee.link:{let y={key:r.key};if(e.target!=null){let f=zv(e.target,i,"a","href");f!=null&&(y.href=f)}return e.title&&(y.title=e.title),n("a",y,t(e.children,r))}case ee.table:{let y=e;return n("table",{key:r.key},n("thead",{key:"thead"},n("tr",null,y.header.map(function(f,C){return n("th",{key:C,style:y.align[C]===null?{}:{textAlign:y.align[C]}},t(f,r))}))),y.cells.length>0&&n("tbody",{key:"tbody"},y.cells.map(function(f,C){return n("tr",{key:C},f.map(function(x,h){return n("td",{key:h,style:y.align[h]===null?{}:{textAlign:y.align[h]}},t(x,r))}))})))}case ee.text:return e.text;case ee.textFormatted:return n(e.tag,{key:r.key},t(e.children,r));case ee.orderedList:case ee.unorderedList:{let y=e.type===ee.orderedList?"ol":"ul";return n(y,{key:r.key,start:e.type===ee.orderedList?e.start:void 0},e.items.map(function(f,C){return n("li",{key:C},t(f,r))}))}case ee.paragraph:return n("p",{key:r.key},t(e.children,r));case ee.ref:return null;default:return null}}var Nb=(e,t,r,n,i,s,a)=>{var o=l=>l.map(u=>"text"in u?u.text:""),c=(l,u={})=>{var m=Array.isArray(l)?l:[l],_=(u.renderDepth||0)+1;if(_>2500)return o(m);u.renderDepth=_;for(var v=u.key,S=[],E=!1,g=0;g{let r=Ac(t,e,void 0);return r?typeof r=="function"||typeof r=="object"&&"render"in r?r:Ac(t,`${e}.component`,e):e};function $b(e,t){let r={...t||{}};r.overrides=r.overrides||{};let n=r.slugify||In,i=r.sanitizer||xr,s=r.createElement,a=km(r.overrides),o=C=>Mc(C,{...r,wrapper:null});function c(C){for(var x in C){var h=C[x];if(typeof h=="string"&&h.length>0&&h.charCodeAt(0)===He&&(Jv.test(h)||Yv.test(h)||Ib(h,0))){var b=o(h.trim());C[x]=x==="innerHTML"&&Array.isArray(b)?b[0]:b}}}function l(C,x,...h){var b=x||{},O=C;if(a){var k=Ac(r.overrides,`${C}.props`,{});O=Rb(C,r.overrides),b={...b,...k,className:Kv(b.className,k.className)||void 0}}if(!s){var $=b.key;return $!=null&&delete b.key,h.length===1?b.children=h[0]:h.length>1&&(b.children=h),Tc(O,b,$)}return s(O,b,...h)}function u(C,x,...h){return x&&c(x),l(C,x,...h)}let m=sl(r,r.forceInline),_=e[0]&&e[0].type===ee.refCollection?e[0].refs:{},v=Nb(r.renderRule,l,i,n,_,r,u),S=v(e,{inline:r.forceInline,refs:_}),E=Bv(_);if(E.length>0&&S.push(l("footer",{key:"footer"},E.map(function(C){let x=C.identifier.charCodeAt(0)===Ir?C.identifier.slice(1):C.identifier,h=cl(C.footnote,{inline:!0,refs:_},m);return l("div",{id:n(x,In),key:C.identifier},`${x}: `,v(h,{inline:!0,refs:_}))}))),r.wrapper===null)return S;let g=r.wrapper||(r.forceInline?"span":"div"),y;if(S.length>1||r.forceWrapper)y=S;else return S.length===1?S[0]:null;var f=r.wrapperProps?{...r.wrapperProps}:{};return f.children=y,Tc(g,f,"outer")}function Mc(e="",t={}){let r={...t||{}};r.overrides=r.overrides||{},r.slugify,r.sanitizer;function n(s){let a=r.forceInline||!(r.forceBlock||jv.test(s)),o=sl(r,a),c=a?s:qv(s),l=cl(c,{inline:a,refs:i},o);return $b(l,{...r,forceInline:a})}let i={};return n(e)}function Fb(e){let t=Z.useRef(e),r=t.current;if(r!==e){var n=!0,i=0;for(var s in e)if(i++,!Object.is(r[s],e[s])){n=!1;break}if(n){var a=0;for(var o in r)a++;n=a===i}n||(t.current=e)}return t.current}var Mi=({children:e,options:t,...r})=>{if(!(typeof Z.useContext<"u")){let o={...t,overrides:{...t?.overrides},wrapperProps:{...t?.wrapperProps,...r}};return Mc(e??"",o)}let n=Yu?Z.useContext(Yu):void 0,i=Fb(r),s=Z.useMemo(()=>({...n,...t,overrides:{...n?.overrides,...t?.overrides},wrapperProps:{...n?.wrapperProps,...t?.wrapperProps,...i}}),[n,t,i]),a=e??"";return Z.useMemo(()=>Mc(a,s),[a,s])};const Mm=Symbol("remove-this-key"),Zu=Symbol("reset");function Db(e,t){return Array.isArray(e.required)&&e.required.includes(t)}function Tb(e,t){switch(t){case"array":return[];case"boolean":return!1;case"null":return null;case"number":return 0;case"object":return{};case"string":default:return e($e.NewStringDefault)}}function qm(e){return!!e?.[Sn]}function Qu(e){return Object.keys(e).filter(t=>qm(e[t]))}function Mb(e){const{fieldPathId:t,schema:r,registry:n,uiSchema:i,errorSchema:s,formData:a,onChange:o,onBlur:c,onFocus:l,disabled:u,readonly:m,required:_,hideError:v,propertyName:S,handleKeyRename:E,handleRemoveProperty:g,addedByAdditionalProperties:y}=e,[f,C]=Z.useState(!1),{globalFormOptions:x,fields:h}=n,{SchemaField:b}=h,O=ci(nr(S,x,t.path)),k=Z.useCallback((U,L,B,J)=>{let Y=U;U===void 0&&y&&je(L,O.path)&&(Y=""),o(Y,L,B,J)},[o,y,O]),$=Z.useCallback(U=>{S!==U&&C(!0),E(S,U)},[S,E]),M=Z.useCallback(U=>{const{target:{value:L}}=U;$(L)},[$]),q=Z.useCallback(()=>{g(S)},[S,g]);return R.jsx(b,{name:S,required:_,schema:r,uiSchema:i,errorSchema:s,fieldPathId:O,formData:a,wasPropertyKeyModified:f,onKeyRename:$,onKeyRenameBlur:M,onRemoveProperty:q,onChange:k,onBlur:c,onFocus:l,registry:n,disabled:u,readonly:m,hideError:v})}const qb=Z.memo(Mb);function Ub(e){const{schema:t,uiSchema:r={},formData:n,errorSchema:i,fieldPathId:s,name:a,required:o=!1,disabled:c,readonly:l,hideError:u,onBlur:m,onFocus:_,onChange:v,registry:S,title:E}=e,{fields:g,schemaUtils:y,translateString:f,globalUiOptions:C}=S,{OptionalDataControlsField:x}=g,h=Z.useRef(n);h.current=n;const b=Z.useMemo(()=>y.retrieveSchema(t,n,!0),[y,t,n]),O=Z.useMemo(()=>pe(r,C),[r,C]),k=Z.useMemo(()=>b.properties??{},[b.properties]),$=e.childFieldPathId??s,M=Z.useRef({previousKey:"",currentKey:void 0}),[q,U]=Z.useState(()=>Qu(k)),L=Z.useMemo(()=>{const T=new Set(Qu(k));return Object.keys(k).filter(F=>!T.has(F))},[k]),B=O.title??b.title??E??a,J=O.description??b.description,Y=Fi(S,b,o,r),Q=oi(n);let X=[];const re=Z.useCallback((T,F)=>{const{duplicateKeySuffixSeparator:z="-"}=pe(r,C);let H=0,N=T;for(;lt(F,N);)H+=1,N=`${T}${z}${H}`;return N},[r,C]),A=Z.useCallback(()=>{if(!(b.additionalProperties||b.patternProperties))return;const T={...n},F=re("newKey",T);if(b.patternProperties)st(T,F,null);else{let z,H,N;if(ue(b.additionalProperties)){z=b.additionalProperties.type,H=b.additionalProperties.const,N=b.additionalProperties.default;let V=b.additionalProperties;Je in V&&(V=y.retrieveSchema({[Je]:V[Je]},n),z=V.type,H=V.const,N=y.getDefaultFormState(V,N)),!z&&(Ne in V||Se in V)&&(z="object")}const D=H??N??Tb(f,z);st(T,F,D)}M.current.previousKey===F&&(M.current.currentKey=F,M.current.previousKey=re(F,T)),U(z=>[...z,F]),v(T,$.path)},[n,v,f,y,$,re,b]),w=Z.useCallback((T,F)=>{if(T!==F){const z=h.current,H=re(F,z),N={...z},D={[T]:H},V=Object.keys(N).map(G=>({[Object.hasOwn(D,G)?D[G]:G]:N[G]})),K=Object.assign({},...V);h.current=K,T!==M.current.currentKey&&(M.current.previousKey=T),M.current.currentKey=H,U(G=>G.map(W=>W===T?H:W)),v(K,$.path)}},[v,$,re]),j=Z.useCallback(T=>{U(F=>F.filter(z=>z!==T)),v(Mm,[...$.path,T])},[v,$]),p=Z.useCallback(T=>M.current.currentKey===T?M.current.previousKey:T,[]);if(!Y||Q)try{const T=new Set(L),F=q.filter(z=>Object.hasOwn(k,z)&&!T.has(z));X=_0([...L,...F],O.order)}catch(T){return R.jsxs("div",{children:[R.jsx("p",{className:"rjsf-config-error",style:{color:"red"},children:R.jsx(Mi,{options:{disableParsingRawHTML:!0},children:f($e.InvalidObjectField,[a||"root",T.message])})}),R.jsx("pre",{children:JSON.stringify(b)})]})}const d=_e("ObjectFieldTemplate",S,O),P=Y?R.jsx(x,{...e,fieldPathId:$,schema:b}):void 0,I={title:O.label===!1?"":B,description:O.label===!1?void 0:J,properties:X.map(T=>{const F=qm(b.properties?.[T]),z=F?r.additionalProperties:r[T],H=pe(z).widget==="hidden";return{content:R.jsx(qb,{propertyName:T,required:Db(b,T),schema:gr(b,T),uiSchema:z,errorSchema:me(i,T),fieldPathId:$,formData:me(n,T),handleKeyRename:w,handleRemoveProperty:j,addedByAdditionalProperties:F,onChange:v,onBlur:m,onFocus:_,registry:S,disabled:c,readonly:l,hideError:u},p(T)),name:T,readonly:l,disabled:c,required:o,hidden:H}}),readonly:l,disabled:c,required:o,fieldPathId:s,uiSchema:r,errorSchema:i,schema:b,formData:n,registry:S,optionalDataControl:P,className:Y?"rjsf-optional-object-field":void 0};return R.jsx(d,{...I,onAddProperty:A})}function Lb(e){const{schema:t,uiSchema:r={},formData:n,disabled:i=!1,readonly:s=!1,onChange:a,errorSchema:o,fieldPathId:c,registry:l}=e,{globalUiOptions:u={},schemaUtils:m,translateString:_}=l,v=pe(r,u),S=_e("OptionalDataControlsTemplate",l,v),E=oi(n);let g,y,f,C;if(i||s)g=Ro(c,"Msg"),y=E?void 0:_($e.OptionalObjectEmptyMsg);else{const x=E?$e.OptionalObjectRemove:$e.OptionalObjectAdd;y=_(x),E?(g=Ro(c,"Remove"),C=()=>a(void 0,c.path,o)):(g=Ro(c,"Add"),f=()=>{let h=m.getDefaultFormState(t,n,"excludeObjectChildren");h===void 0&&(h=Gt(t)==="array"?[]:{}),a(h,c.path,o)})}return y&&R.jsx(S,{id:g,registry:l,schema:t,uiSchema:r,label:y,onAddClick:f,onRemoveClick:C})}const Vb={array:"ArrayField",boolean:"BooleanField",integer:"NumberField",number:"NumberField",object:"ObjectField",string:"StringField",null:"NullField"};function zb(e,t,r){const{field:n}=t,{fields:i,schemaUtils:s}=r;if(typeof n=="function")return n;if(typeof n=="string"&&n in i)return i[n];const a=Gt(e),o=Array.isArray(a)?a[0]:a||"",c=e.$id;let l=Vb[o];return c&&c in i&&(l=c),(e.anyOf||e.oneOf)&&!s.isSelect(e)&&l!=="ObjectField"?()=>null:l in i?i[l]:i.FallbackField}function Bb(e){const{schema:t,fieldPathId:r,uiSchema:n,formData:i,errorSchema:s,name:a,onChange:o,onKeyRename:c,onKeyRenameBlur:l,onRemoveProperty:u,required:m=!1,registry:_,wasPropertyKeyModified:v=!1}=e,{schemaUtils:S,globalFormOptions:E,globalUiOptions:g,fields:y}=_,{AnyOfField:f,OneOfField:C,CyclicSchemaField:x}=y,h=r[Ue],b=Z.useCallback((ge,Fe,fe,Ye)=>o(ge,Fe,fe,Ye||h),[h,o]);if(t[Vc])return R.jsx(x,{...e});const O=S0(t,n,_),k=pe(O,g),$=_e("FieldTemplate",_,k),M=_e("DescriptionFieldTemplate",_,k),q=_e("FieldHelpTemplate",_,k),U=_e("FieldErrorTemplate",_,k),L=S.retrieveSchema(t,i),B=zb(L,k,_),Y=!!L.deprecated?k.deprecatedHandling??"label":void 0,Q=!!(k.disabled??e.disabled)||Y==="disable",X=!!(k.readonly??(e.readonly||e.schema.readOnly||L.readOnly)),re=k.hideError,A=re===void 0?e.hideError:!!re,w=!!(k.autofocus??e.autofocus);if(Object.keys(L).length===0)return null;let j=S.getDisplayLabel(L,O,g);const p=k.field&&k.fieldReplacesAnyOrOneOf===!0;let d,P,I={fieldPathId:r};if((Ne in L||Se in L)&&!p&&!S.isSelect(L)){L[Ne]?(d=f,P=L[Ne].map(fe=>S.retrieveSchema(ue(fe)?fe:{},i))):L[Se]&&(d=C,P=L[Se].map(fe=>S.retrieveSchema(ue(fe)?fe:{},i)));const ge=Fi(_,L,m,O),Fe=oi(i);j=j&&(!ge||Fe),I={childFieldPathId:r,fieldPathId:nr("XxxOf",E,r)}}const{__errors:T,...F}=s||{},{"ui:classNames":z,classNames:H,"ui:style":N,...D}=O;if(Br in D){const{classNames:ge,style:Fe,...fe}=D[Br];D[Br]=fe}const V=R.jsx(B,{...e,onChange:b,...I,schema:L,uiSchema:D,disabled:Q,readonly:X,hideError:A,autofocus:w,errorSchema:F,rawErrors:T}),K=r[Ue];let G;v?G=a:G=Sn in L?a:k.title||e.schema.title||L.title||e.title||a,Y==="label"&&(G=_.translateString($e.DeprecatedLabel,[G]));const W=k.description||e.schema.description||L.description||"",{help:te}=k,ne=k.widget==="hidden"||Y==="hide",se=["rjsf-field",`rjsf-field-${Gt(L)}`];!A&&T&&T.length>0&&se.push("rjsf-field-error"),k.classNames&&se.push(k.classNames);const ce=R.jsx(q,{help:te,fieldPathId:r,schema:L,uiSchema:O,hasErrors:!A&&T&&T.length>0,registry:_}),he=A||d&&!S.isSelect(L)?void 0:R.jsx(U,{errors:T,errorSchema:s,fieldPathId:r,schema:L,uiSchema:O,registry:_}),le={description:R.jsx(M,{id:ai(K),description:W,schema:L,uiSchema:O,registry:_}),rawDescription:W,help:ce,rawHelp:typeof te=="string"?te:void 0,errors:he,rawErrors:A?void 0:T,fieldPathId:r,id:K,label:G,hidden:ne,onChange:o,onKeyRename:c,onKeyRenameBlur:l,onRemoveProperty:u,required:m,disabled:Q,readonly:X,hideError:A,displayLabel:j,classNames:se.join(" ").trim(),style:k.style,formData:i,schema:L,uiSchema:O,registry:_};return R.jsx($,{...le,children:R.jsxs(R.Fragment,{children:[V,d&&R.jsx(d,{name:a,disabled:Q,readonly:X,hideError:A,errorSchema:s,formData:i,fieldPathId:r,onBlur:e.onBlur,onChange:e.onChange,onFocus:e.onFocus,options:P,registry:_,required:m,schema:L,uiSchema:O})]})})}const Hb=Z.memo(Bb,(e,t)=>{const{experimental_componentUpdateStrategy:r="customDeep"}=t.registry.globalFormOptions;return r==="always"?!1:r==="shallow"?bc(e,t):je(e,t)});function Kb(e){const{schema:t,name:r,uiSchema:n,fieldPathId:i,formData:s,required:a,disabled:o=!1,readonly:c=!1,autofocus:l=!1,onChange:u,onBlur:m,onFocus:_,registry:v,rawErrors:S,hideError:E,title:g}=e,{title:y,format:f}=t,{widgets:C,schemaUtils:x,globalUiOptions:h}=v,b=x.isSelect(t)?Pn(t,n):void 0;let O=b?"select":"text";f&&p0(t,f,C)&&(O=f);const{widget:k=O,placeholder:$="",title:M,...q}=pe(n),U=x.getDisplayLabel(t,n,h),L=M??g??y??r,B=vr(t,k,C),J=Z.useCallback((Y,Q,X)=>u(Y,i.path,Q,X),[u,i]);return R.jsx(B,{options:{...q,enumOptions:b},schema:t,uiSchema:n,id:i.$id,name:r,label:L,hideLabel:!U,hideError:E,value:s,onChange:J,onBlur:m,onFocus:_,required:a,disabled:o,readonly:c,autofocus:l,registry:v,placeholder:$,rawErrors:S,htmlName:i.name})}function Gb(){return{AnyOfField:_u,ArrayField:H0,BooleanField:K0,CyclicSchemaField:G0,FallbackField:X0,LayoutGridField:nl,LayoutHeaderField:uv,LayoutMultiSchemaField:dv,NumberField:pv,ObjectField:Ub,OneOfField:_u,OptionalDataControlsField:Lb,SchemaField:Hb,StringField:Kb,NullField:fv}}function Wb(e){const{fieldPathId:t,description:r,registry:n,schema:i,uiSchema:s}=e,a=pe(s,n.globalUiOptions),{label:o=!0}=a;if(!r||!o)return null;const c=_e("DescriptionFieldTemplate",n,a);return R.jsx(c,{id:ai(t),description:r,schema:i,uiSchema:s,registry:n})}function Jb(e){const{disabled:t,hasCopy:r,hasMoveDown:n,hasMoveUp:i,hasRemove:s,fieldPathId:a,onCopyItem:o,onRemoveItem:c,onMoveDownItem:l,onMoveUpItem:u,readonly:m,registry:_,uiSchema:v}=e,{CopyButton:S,MoveDownButton:E,MoveUpButton:g,RemoveButton:y}=_.templates.ButtonTemplates;return R.jsxs(R.Fragment,{children:[(i||n)&&R.jsx(g,{id:_n(a,"moveUp"),className:"rjsf-array-item-move-up",disabled:t||m||!i,onClick:u,uiSchema:v,registry:_}),(i||n)&&R.jsx(E,{id:_n(a,"moveDown"),className:"rjsf-array-item-move-down",disabled:t||m||!n,onClick:l,uiSchema:v,registry:_}),r&&R.jsx(S,{id:_n(a,"copy"),className:"rjsf-array-item-copy",disabled:t||m,onClick:o,uiSchema:v,registry:_}),s&&R.jsx(y,{id:_n(a,"remove"),className:"rjsf-array-item-remove",disabled:t||m,onClick:c,uiSchema:v,registry:_})]})}function Yb(e){const{children:t,className:r,buttonsProps:n,displayLabel:i,hasDescription:s,hasToolbar:a,registry:o,uiSchema:c}=e,l=pe(c),u=_e("ArrayFieldItemButtonsTemplate",o,l),m={flex:1,paddingLeft:6,paddingRight:6,fontWeight:"bold"},_=s?31:9,v={display:"flex",alignItems:i?"center":"baseline"},S={display:"flex",justifyContent:"flex-end",marginTop:i?`${_}px`:0};return R.jsxs("div",{className:r,style:v,children:[R.jsx("div",{className:a?"col-xs-9 col-md-10 col-xl-11":"col-xs-12",children:t}),a&&R.jsx("div",{className:"col-xs-3 col-md-2 col-xl-1 array-item-toolbox",children:R.jsx("div",{className:"btn-group",style:S,children:R.jsx(u,{...n,style:m})})})]})}function Xb(e){const{canAdd:t,className:r,disabled:n,fieldPathId:i,uiSchema:s,items:a,optionalDataControl:o,onAddClick:c,readonly:l,registry:u,required:m,schema:_,title:v}=e,S=pe(s),E=_e("ArrayFieldDescriptionTemplate",u,S),g=_e("ArrayFieldTitleTemplate",u,S),y=!l&&!n,{ButtonTemplates:{AddButton:f}}=u.templates;return R.jsxs("fieldset",{className:r,id:i.$id,children:[R.jsx(g,{fieldPathId:i,title:S.title||v,required:m,schema:_,uiSchema:s,registry:u,optionalDataControl:y?o:void 0}),R.jsx(E,{fieldPathId:i,description:S.description||_.description,schema:_,uiSchema:s,registry:u}),y?void 0:o,R.jsx("div",{className:"row array-item-list",children:a}),t&&R.jsx(f,{id:_n(i,"add"),className:"rjsf-array-item-add",onClick:c,disabled:n||l,uiSchema:s,registry:u})]})}function Zb(e){const{fieldPathId:t,title:r,schema:n,uiSchema:i,required:s,registry:a,optionalDataControl:o}=e,c=pe(i,a.globalUiOptions),{label:l=!0}=c;if(!r||!l)return null;const u=_e("TitleFieldTemplate",a,c);return R.jsx(u,{id:el(t),title:r,required:s,schema:n,uiSchema:i,registry:a,optionalDataControl:o})}function Qb(e){const{id:t,schema:r}=e,{examples:n,default:i}=r;return Array.isArray(n)?R.jsx("datalist",{id:Qc(t),children:n.concat(i!==void 0&&!n.map(String).includes(String(i))?[i]:[]).map(s=>R.jsx("option",{value:s},String(s)))},`datalist_${t}`):null}function e_(e){const{id:t,name:r,htmlName:n,value:i,readonly:s,disabled:a,autofocus:o,onBlur:c,onFocus:l,onChange:u,onChangeOverride:m,options:_,schema:v,uiSchema:S,registry:E,rawErrors:g,type:y,hideLabel:f,hideError:C,...x}=e,{ClearButton:h}=E.templates.ButtonTemplates;if(!t)throw console.log("No id for",e),new Error(`no id for props ${JSON.stringify(e)}`);const b={...x,...c0(v,y,_)};let O;b.type==="number"||b.type==="integer"?O=i||i===0?i:"":O=i??"";const k=Z.useCallback(({target:{value:U}})=>u(U===""?_.emptyValue:U),[u,_]),$=Z.useCallback(({target:U})=>c(t,U?.value),[c,t]),M=Z.useCallback(({target:U})=>l(t,U?.value),[l,t]),q=Z.useCallback(U=>{U.preventDefault(),U.stopPropagation(),u(_.emptyValue)},[u,_.emptyValue]);return R.jsxs(R.Fragment,{children:[R.jsx("input",{id:t,name:n||t,className:"form-control",readOnly:s,disabled:a,autoFocus:o,value:O,...b,list:v.examples?Qc(t):void 0,onChange:m||k,onBlur:$,onFocus:M,"aria-describedby":$n(t,!!v.examples)}),_.allowClearTextInputs&&!s&&!a&&O&&R.jsx(h,{registry:E,onClick:q}),R.jsx(Qb,{id:t,schema:v})]})}function t_(e){const{iconType:t="default",icon:r,className:n,uiSchema:i,registry:s,...a}=e;return R.jsx("button",{type:"button",className:`btn btn-${t} ${n}`,...a,children:R.jsx("i",{className:`glyphicon glyphicon-${r}`})})}const tn=Z.memo(t_);function r_(e){const{registry:{translateString:t}}=e;return R.jsx(tn,{title:t($e.CopyButton),...e,icon:"copy"})}const n_=Z.memo(r_);function i_(e){const{registry:{translateString:t}}=e;return R.jsx(tn,{title:t($e.MoveDownButton),...e,icon:"arrow-down"})}const s_=Z.memo(i_);function a_(e){const{registry:{translateString:t}}=e;return R.jsx(tn,{title:t($e.MoveUpButton),...e,icon:"arrow-up"})}const o_=Z.memo(a_);function c_(e){const{registry:{translateString:t}}=e;return R.jsx(tn,{title:t($e.RemoveButton),...e,iconType:"danger",icon:"remove"})}const l_=Z.memo(c_);function u_({id:e,className:t,onClick:r,disabled:n,registry:i,...s}){const{translateString:a}=i;return R.jsx(tn,{id:e,iconType:"default",icon:"remove",className:"btn-clear col-xs-12",title:a($e.ClearButton),onClick:r,disabled:n,registry:i,...s})}const d_=Z.memo(u_);function f_({id:e,className:t,onClick:r,disabled:n,registry:i}){const{translateString:s}=i;return R.jsx("div",{className:"row",children:R.jsx("p",{className:`col-xs-4 col-sm-2 col-lg-1 col-xs-offset-8 col-sm-offset-10 col-lg-offset-11 text-right ${t}`,children:R.jsx(tn,{id:e,iconType:"info",icon:"plus",className:"btn-add col-xs-12",title:s($e.AddButton),onClick:r,disabled:n,registry:i})})})}function h_({uiSchema:e}){const{submitText:t,norender:r,props:n={}}=l0(e);return r?null:R.jsx("div",{children:R.jsx("button",{type:"submit",...n,className:`btn btn-info ${n.className||""}`,children:t})})}function m_(){return{SubmitButton:h_,AddButton:f_,CopyButton:n_,MoveDownButton:s_,MoveUpButton:o_,RemoveButton:l_,ClearButton:d_}}function p_(e){const{name:t,fieldPathId:r,registry:n,onExpand:i}=e,{translateString:s}=n,a=`${r[Ue]}-button`;return R.jsxs("div",{style:{marginTop:"1rem"},children:[R.jsx("div",{className:"text-danger",children:s($e.CycleDetected,[t])}),R.jsxs("div",{children:[R.jsx("button",{id:a,type:"button",className:"btn btn-sm btn-warning",onClick:()=>i(r[Ue]),children:s($e.ExpandButton)})," "]})]})}const Um=Zc();function Lm({description:e,registry:t,uiSchema:r={}}){const{globalUiOptions:n}=t;return pe(r,n).enableMarkdownInDescription&&typeof e=="string"?R.jsx(Mi,{options:{disableParsingRawHTML:!0},"data-testid":Um.markdown,children:e}):e}Lm.TEST_IDS=Um;function y_(e){const{id:t,description:r,registry:n,uiSchema:i}=e;return r?R.jsx("div",{id:t,className:"field-description",children:R.jsx(Lm,{description:r,registry:n,uiSchema:i})}):null}function g_({errors:e,registry:t}){const{translateString:r}=t;return R.jsxs("div",{className:"panel panel-danger errors",children:[R.jsx("div",{className:"panel-heading",children:R.jsx("h3",{className:"panel-title",children:r($e.ErrorsLabel)})}),R.jsx("ul",{className:"list-group",children:e.map((n,i)=>R.jsx("li",{className:"list-group-item text-danger",children:n.stack},i))})]})}function v_(e){const{schema:t,registry:r,typeSelector:n,schemaField:i}=e,s=_e("MultiSchemaFieldTemplate",r);return R.jsx(s,{selector:n,optionSchemaField:i,schema:t,registry:r})}function b_(e){const{errors:t=[],fieldPathId:r}=e;if(t.length===0)return null;const n=pm(r);return R.jsx("div",{children:R.jsx("ul",{id:n,className:"error-detail bs-callout bs-callout-info",children:t.filter(i=>!!i).map((i,s)=>R.jsx("li",{className:"text-danger",children:i},s))})})}const Vm=Zc();function zm({help:e,registry:t,uiSchema:r={}}){const{globalUiOptions:n}=t;return pe(r,n).enableMarkdownInHelp&&typeof e=="string"?R.jsx(Mi,{options:{disableParsingRawHTML:!0},"data-testid":Vm.markdown,children:e}):e}zm.TEST_IDS=Vm;function __(e){const{fieldPathId:t,help:r,uiSchema:n,registry:i}=e;return r?R.jsx("div",{id:ym(t),className:"help-block",children:R.jsx(zm,{help:r,registry:i,uiSchema:n})}):null}const S_="*";function Bm(e){const{label:t,required:r,id:n}=e;return t?R.jsxs("label",{className:"control-label",htmlFor:n,children:[t,r&&R.jsx("span",{className:"required",children:S_})]}):null}function w_(e){const{id:t,label:r,children:n,errors:i,help:s,description:a,hidden:o,required:c,displayLabel:l,registry:u,uiSchema:m}=e,_=pe(m),v=_e("WrapIfAdditionalTemplate",u,_);if(o)return R.jsx("div",{className:"hidden",children:n});const S=_.widget==="checkbox";return R.jsxs(v,{...e,children:[l&&!S&&R.jsx(Bm,{label:r,required:c,id:t}),l&&a?a:null,n,i,s]})}function C_(e){const{children:t,column:r,className:n,...i}=e;return R.jsx("div",{className:n,...i,children:t})}function E_(e){const{selector:t,optionSchemaField:r}=e;return R.jsxs("div",{className:"panel panel-default panel-body",children:[R.jsx("div",{className:"form-group",children:t}),r]})}function A_(e){const{className:t,description:r,disabled:n,formData:i,fieldPathId:s,onAddProperty:a,optionalDataControl:o,properties:c,readonly:l,registry:u,required:m,schema:_,title:v,uiSchema:S}=e,E=pe(S),g=_e("TitleFieldTemplate",u,E),y=_e("DescriptionFieldTemplate",u,E);if((_.oneOf||_.anyOf)&&!_.properties&&c.length===0)return null;const C=!l&&!n,{ButtonTemplates:{AddButton:x}}=u.templates;return R.jsxs("fieldset",{className:t,id:s.$id,children:[v&&R.jsx(g,{id:el(s),title:v,required:m,schema:_,uiSchema:S,registry:u,optionalDataControl:C?o:void 0}),r&&R.jsx(y,{id:ai(s),description:r,schema:_,uiSchema:S,registry:u}),C?void 0:o,c.map(h=>h.content),Ey(_,S,i)&&R.jsx(x,{id:_n(s,"add"),className:"rjsf-object-property-expand",onClick:a,disabled:n||l,uiSchema:S,registry:u})]})}function P_(e){const{id:t,registry:r,label:n,onAddClick:i,onRemoveClick:s}=e;return i?R.jsx(tn,{id:t,registry:r,icon:"plus",className:"rjsf-add-optional-data btn-sm",onClick:i,title:n}):s?R.jsx(tn,{id:t,registry:r,icon:"remove",className:"rjsf-remove-optional-data btn-sm",onClick:s,title:n}):R.jsx("em",{id:t,children:n})}const x_="*";function O_(e){const{id:t,title:r,required:n,optionalDataControl:i}=e;return R.jsxs("legend",{id:t,children:[r,n&&R.jsx("span",{className:"required",children:x_}),i&&R.jsx("span",{className:"pull-right",style:{marginBottom:"2px"},children:i})]})}function j_(e){const{schema:t,fieldPathId:r,reason:n,registry:i}=e,{translateString:s}=i;let a=$e.UnsupportedField;const o=[];return r?.$id&&(a=$e.UnsupportedFieldWithId,o.push(r.$id)),n&&(a=a===$e.UnsupportedField?$e.UnsupportedFieldWithReason:$e.UnsupportedFieldWithIdAndReason,o.push(n)),R.jsxs("div",{className:"unsupported-field",children:[R.jsx("p",{children:R.jsx(Mi,{options:{disableParsingRawHTML:!0},children:s(a,o)})}),t&&R.jsx("pre",{children:JSON.stringify(t,null,2)})]})}function k_(e){const{id:t,classNames:r,style:n,disabled:i,displayLabel:s,label:a,onKeyRenameBlur:o,onRemoveProperty:c,rawDescription:l,readonly:u,required:m,schema:_,hideError:v,rawErrors:S,children:E,uiSchema:g,registry:y}=e,{templates:f,translateString:C}=y,{RemoveButton:x}=f.ButtonTemplates,h=C($e.KeyLabel,[a]),b=Sn in _,O=!!l,k=["form-group",r];!v&&S&&S.length>0&&k.push("has-error has-danger");const $=k.join(" ").trim();if(!b)return R.jsx("div",{className:$,style:n,children:E});const M=O?46:26;return R.jsx("div",{className:$,style:n,children:R.jsxs("div",{className:"row",children:[R.jsx("div",{className:"col-xs-5 form-additional",children:R.jsxs("div",{className:"form-group",children:[s&&R.jsx(Bm,{label:h,required:m,id:`${t}-key`}),s&&l&&R.jsx("div",{children:" "}),R.jsx("input",{className:"form-control",type:"text",id:`${t}-key`,onBlur:o,defaultValue:a},a)]})}),R.jsx("div",{className:"form-additional form-group col-xs-5",children:E}),R.jsx("div",{className:"col-xs-2",style:{marginTop:s?`${M}px`:void 0},children:R.jsx(x,{id:_n(t,"remove"),className:"rjsf-object-property-remove btn-block",style:{border:"0"},disabled:i||u,onClick:c,uiSchema:g,registry:y})})]})})}function I_(){return{ArrayFieldDescriptionTemplate:Wb,ArrayFieldItemTemplate:Yb,ArrayFieldItemButtonsTemplate:Jb,ArrayFieldTemplate:Xb,ArrayFieldTitleTemplate:Zb,ButtonTemplates:m_(),BaseInputTemplate:e_,CyclicSchemaExpandTemplate:p_,DescriptionFieldTemplate:y_,ErrorListTemplate:g_,FallbackFieldTemplate:v_,FieldTemplate:w_,FieldErrorTemplate:b_,FieldHelpTemplate:__,GridTemplate:C_,MultiSchemaFieldTemplate:E_,ObjectFieldTemplate:A_,OptionalDataControlsTemplate:P_,TitleFieldTemplate:O_,UnsupportedFieldTemplate:j_,WrapIfAdditionalTemplate:k_}}function N_({time:e=!0,...t}){const{AltDateWidget:r}=t.registry.widgets;return R.jsx(r,{time:e,...t})}function R_(e){const{disabled:t=!1,readonly:r=!1,autofocus:n=!1,options:i,id:s,name:a,registry:o,onBlur:c,onFocus:l}=e,{translateString:u}=o,{elements:m,handleChange:_,handleClear:v,handleSetNow:S}=O0(e);return R.jsxs("ul",{className:"list-inline",children:[m.map((E,g)=>R.jsx("li",{className:"list-inline-item",children:R.jsx(x0,{rootId:s,name:a,select:_,...E,disabled:t,readonly:r,registry:o,onBlur:c,onFocus:l,autofocus:n&&g===0})},g)),(i.hideNowButton!=="undefined"?!i.hideNowButton:!0)&&R.jsx("li",{className:"list-inline-item",children:R.jsx("button",{type:"button",className:"btn btn-info btn-now",onClick:S,children:u($e.NowLabel)})}),(i.hideClearButton!=="undefined"?!i.hideClearButton:!0)&&R.jsx("li",{className:"list-inline-item",children:R.jsx("button",{type:"button",className:"btn btn-warning btn-clear",onClick:v,children:u($e.ClearLabel)})})]})}function $_({id:e,disabled:t,options:r,value:n,autofocus:i=!1,readonly:s,onChange:a,onBlur:o,onFocus:c,htmlName:l}){const{inline:u=!1,enumOptions:m,enumDisabled:_,emptyValue:v}=r,S=Xc(r),E=Array.isArray(n)?n:[n],g=Z.useCallback(({target:f})=>o(e,Cn(f?.value,m,S,v)),[o,e,m,v,S]),y=Z.useCallback(({target:f})=>c(e,Cn(f?.value,m,S,v)),[c,e,m,v,S]);return R.jsx("div",{className:"checkboxes",id:e,children:Array.isArray(m)&&m.map((f,C)=>{const x=Ga(f.value,E),h=Array.isArray(_)&&_.includes(f.value),b=t||h||s?"disabled":"",O=$=>{$.target.checked?a(s0(C,E,m)):a(n0(C,E,m))},k=R.jsxs("span",{children:[R.jsx("input",{type:"checkbox",id:gm(e,C),name:l||e,checked:x,value:Yc(f.value,C,S),disabled:t||h||s,autoFocus:i&&C===0,onChange:O,onBlur:g,onFocus:y,"aria-describedby":$n(e)}),R.jsx("span",{children:f.label})]});return u?R.jsx("label",{className:`checkbox-inline ${b}`,children:k},String(f.value)):R.jsx("div",{className:`checkbox ${b}`,children:R.jsx("label",{children:k})},String(f.value))})})}function F_({schema:e,uiSchema:t,options:r,id:n,value:i,disabled:s,readonly:a,label:o,hideLabel:c,autofocus:l=!1,onBlur:u,onFocus:m,onChange:_,registry:v,htmlName:S,required:E}){const g=_e("DescriptionFieldTemplate",v,r),y=Ea(e)&&E,f=Z.useCallback(k=>_(k.target.checked),[_]),C=Z.useCallback(k=>u(n,k.target.checked),[u,n]),x=Z.useCallback(k=>m(n,k.target.checked),[m,n]),O=pe(t).widget==="checkbox"?void 0:r.description??e.description;return R.jsxs("div",{className:`checkbox ${s||a?"disabled":""}`,children:[!c&&O&&R.jsx(g,{id:ai(n),description:O,schema:e,uiSchema:t,registry:v}),R.jsxs("label",{children:[R.jsx("input",{type:"checkbox",id:n,name:S||n,checked:typeof i>"u"?!1:i,required:E,disabled:s||a,autoFocus:l,onChange:f,onBlur:C,onFocus:x,"aria-describedby":$n(n)}),g0(R.jsxs("span",{children:[o,y&&R.jsx("span",{className:"required",children:"*"})]}),c)]})]})}function D_(e){const{disabled:t,readonly:r,options:n,registry:i}=e,s=_e("BaseInputTemplate",i,n);return R.jsx(s,{type:"color",...e,disabled:t||r})}function T_(e){const{onChange:t,value:r,options:n,registry:i}=e,s=_e("BaseInputTemplate",i,n);return R.jsx(s,{type:"datetime-local",...e,value:R0(r),onChange:a=>t(v0(a))})}function M_(e){const{onChange:t,options:r,registry:n}=e,i=_e("BaseInputTemplate",n,r),s=Z.useCallback(a=>t(a||void 0),[t]);return R.jsx(i,{type:"date",...e,onChange:s})}function q_(e){const{options:t,registry:r}=e,n=_e("BaseInputTemplate",r,t);return R.jsx(n,{type:"email",...e})}function U_({fileInfo:e,registry:t}){const{translateString:r}=t,{dataURL:n,type:i,name:s}=e;if(!n)return null;const a=r($e.PreviewLabel);return["image/jpeg","image/png"].includes(i)?R.jsx("img",{src:n,alt:a,style:{maxWidth:"100%"},className:"file-preview"}):R.jsxs(R.Fragment,{children:[" ",R.jsx("a",{download:`preview-${s}`,href:n,className:"file-download",children:a})]})}function L_({filesInfo:e,registry:t,preview:r,onRemove:n,options:i}){if(e.length===0)return null;const{translateString:s}=t,{RemoveButton:a}=_e("ButtonTemplates",t,i);return R.jsx("ul",{className:"file-info",children:e.map((o,c)=>{const{name:l,size:u,type:m}=o,_=()=>n(c);return R.jsxs("li",{children:[R.jsx(Mi,{children:s($e.FilesInfo,[l,m,String(u)])}),r&&R.jsx(U_,{fileInfo:o,registry:t}),R.jsx(a,{onClick:_,registry:t})]},c)})})}function V_(e){const{disabled:t,readonly:r,required:n,multiple:i,onChange:s,value:a,options:o,registry:c}=e,{filesInfo:l,handleChange:u,handleRemove:m}=N0(a,s,i),_=_e("BaseInputTemplate",c,o),v=S=>{S.target.files&&u(S.target.files)};return R.jsxs("div",{children:[R.jsx(_,{...e,disabled:t||r,type:"file",required:a?!1:n,onChangeOverride:v,value:"",accept:o.accept?String(o.accept):void 0}),R.jsx(L_,{filesInfo:l,onRemove:m,registry:c,preview:o.filePreview,options:o})]})}function z_({id:e,value:t,htmlName:r}){return R.jsx("input",{type:"hidden",id:e,name:r||e,value:typeof t>"u"?"":t})}function B_(e){const{options:t,registry:r}=e,n=_e("BaseInputTemplate",r,t);return R.jsx(n,{type:"password",...e})}function H_({options:e,value:t,required:r,disabled:n,readonly:i,autofocus:s=!1,onBlur:a,onFocus:o,onChange:c,id:l,htmlName:u}){const{enumOptions:m,enumDisabled:_,inline:v,emptyValue:S}=e,E=Xc(e),g=Z.useCallback(({target:f})=>a(l,Cn(f?.value,m,E,S)),[a,m,S,l,E]),y=Z.useCallback(({target:f})=>o(l,Cn(f?.value,m,E,S)),[o,m,S,l,E]);return R.jsx("div",{className:"field-radio-group",id:l,role:"radiogroup",children:Array.isArray(m)&&m.map((f,C)=>{const x=Ga(f.value,t),h=Array.isArray(_)&&_.includes(f.value),b=n||h||i?"disabled":"",O=()=>c(f.value),k=R.jsxs("span",{children:[R.jsx("input",{type:"radio",id:gm(l,C),checked:x,name:u||l,required:r,value:Yc(f.value,C,E),disabled:n||h||i,autoFocus:s&&C===0,onChange:O,onBlur:g,onFocus:y,"aria-describedby":$n(l)}),R.jsx("span",{children:f.label})]});return v?R.jsx("label",{className:`radio-inline ${b}`,children:k},String(f.value)):R.jsx("div",{className:`radio ${b}`,children:R.jsx("label",{children:k})},String(f.value))})})}function K_(e){const{value:t,registry:{templates:{BaseInputTemplate:r}}}=e;return R.jsxs("div",{className:"field-range-wrapper",children:[R.jsx(r,{type:"range",...e}),R.jsx("span",{className:"range-view",children:t})]})}function G_({id:e,value:t,required:r,disabled:n,readonly:i,onChange:s,onFocus:a,onBlur:o,schema:c,options:l,htmlName:u}){const{stars:m=5,shape:_="star"}=l,v=c.maximum?Math.min(c.maximum,5):Math.min(Math.max(m,1),5),S=c.minimum||0,E=Z.useCallback(C=>{!n&&!i&&s(C)},[s,n,i]),g=Z.useCallback(C=>{if(a){const x=Number(C.target.dataset.value);a(e,x)}},[a,e]),y=Z.useCallback(C=>{if(o){const x=Number(C.target.dataset.value);o(e,x)}},[o,e]),f=C=>_==="heart"?C?"♥":"♡":C?"★":"☆";return R.jsxs("div",{className:"rating-widget",style:{display:"inline-flex",fontSize:"1.5rem",cursor:n||i?"default":"pointer"},children:[[...Array(v)].map((C,x)=>{const h=S+x,b=h<=t;return R.jsx("span",{onClick:()=>E(h),onKeyDown:O=>(O.key==="Enter"||O.key===" ")&&E(h),onFocus:g,onBlur:y,"data-value":h,tabIndex:n||i?-1:0,role:"radio","aria-checked":h===t,"aria-label":`${h} ${_==="heart"?"heart":"star"}${h===1?"":"s"}`,style:{color:b?"#FFD700":"#ccc",padding:"0 0.2rem",transition:"color 0.2s",userSelect:"none"},children:f(b)},x)}),R.jsx("input",{type:"hidden",id:e,name:u||e,value:t||"",required:r,disabled:n||i,"aria-hidden":"true"})]})}function Vo(e,t){return t?Array.from(e.target.options).slice().filter(r=>r.selected).map(r=>r.value):e.target.value}function W_({schema:e,id:t,options:r,value:n,required:i,disabled:s,readonly:a,multiple:o=!1,autofocus:c=!1,onChange:l,onBlur:u,onFocus:m,placeholder:_,htmlName:v,registry:S,uiSchema:E}){const{enumOptions:g,enumDisabled:y,emptyValue:f}=r,C=o?[]:"",x=Xc(r),h=Z.useCallback(M=>{const q=Vo(M,o);return m(t,Cn(q,g,x,f))},[m,t,o,g,f,x]),b=Z.useCallback(M=>{const q=Vo(M,o);return u(t,Cn(q,g,x,f))},[u,t,o,g,f,x]),O=Z.useCallback(M=>{const q=Vo(M,o);return l(Cn(q,g,x,f))},[l,o,g,f,x]),k=i0(n,g,o,x,C),$=!o&&e.default===void 0;return b0(t,e,g,o),R.jsxs(R.Fragment,{children:[R.jsx(w0,{id:t,multiple:o,options:r,registry:S,uiSchema:E,value:n}),R.jsxs("select",{id:t,name:v||t,multiple:o,className:"form-control",value:k,required:i,disabled:s||a,autoFocus:c,onBlur:b,onFocus:h,onChange:O,"aria-describedby":$n(t),children:[$&&R.jsx("option",{value:"",children:_}),Array.isArray(g)&&g.map(({value:M,label:q},U)=>{const L=y&&y.includes(M);return R.jsx("option",{value:Yc(M,U,x),disabled:L,children:q},String(M))})]})]})}function J_({id:e,options:t,placeholder:r,value:n,required:i,disabled:s,readonly:a,autofocus:o=!1,onChange:c,onBlur:l,onFocus:u,htmlName:m}){const _=Z.useCallback(({target:{value:E}})=>c(E===""?t.emptyValue:E),[c,t.emptyValue]),v=Z.useCallback(({target:E})=>l(e,E?.value),[l,e]),S=Z.useCallback(({target:E})=>u(e,E?.value),[e,u]);return R.jsx("textarea",{id:e,name:m||e,className:"form-control",value:n||"",placeholder:r,required:i,disabled:s,readOnly:a,autoFocus:o,rows:t.rows,onBlur:v,onFocus:S,onChange:_,"aria-describedby":$n(e)})}function Y_(e){const{options:t,registry:r}=e,n=_e("BaseInputTemplate",r,t);return R.jsx(n,{...e})}function X_(e){const{onChange:t,options:r,registry:n,schema:i,value:s}=e,a=_e("BaseInputTemplate",n,r),o=typeof i.multipleOf=="number"&&Number.isFinite(i.multipleOf)&&i.multipleOf<60,c=Z.useCallback(u=>{t(u?o?u:`${u}:00`:void 0)},[o,t]),l=typeof s=="string"&&!o&&/^\d{2}:\d{2}:00$/.test(s)?s.slice(0,-3):s;return R.jsx(a,{type:"time",...e,value:l,onChange:c})}function Z_(e){const{options:t,registry:r}=e,n=_e("BaseInputTemplate",r,t);return R.jsx(n,{type:"number",...e})}function Q_(e){const{options:t,registry:r}=e,n=_e("BaseInputTemplate",r,t);return R.jsx(n,{type:"url",...e})}function eS(){return{AltDateWidget:R_,AltDateTimeWidget:N_,CheckboxWidget:F_,CheckboxesWidget:$_,ColorWidget:D_,DateWidget:M_,DateTimeWidget:T_,EmailWidget:q_,FileWidget:V_,HiddenWidget:z_,PasswordWidget:B_,RadioWidget:H_,RangeWidget:K_,RatingWidget:G_,SelectWidget:W_,TextWidget:Y_,TextareaWidget:J_,TimeWidget:X_,UpDownWidget:Z_,URLWidget:Q_}}function tS(){return{fields:Gb(),templates:I_(),widgets:eS(),rootSchema:{},formContext:{},translateString:r0,globalFormOptions:{idPrefix:Dh,idSeparator:Th,useFallbackUiForUnsupportedType:!1}}}function Ln(e,t){const{schema:r,uiSchema:n,fieldPathId:i,schemaUtils:s,formData:a,edit:o,errors:c,errorSchema:l}=e;return{schema:r,uiSchema:n,fieldPathId:i,schemaUtils:s,formData:a,edit:o,errors:c,errorSchema:l,...t!==void 0&&{status:t}}}class Vr extends Z.Component{formElement;pendingChanges=[];isProcessingUserChange=!1;static getDerivedStateFromProps(t,r){if(t.extraErrors!==r.prevExtraErrors){const n={errors:r.schemaValidationErrors||[],errorSchema:r.schemaValidationErrorSchema||{}};let{errors:i,errorSchema:s}=n;return t.extraErrors&&({errors:i,errorSchema:s}=xi(n,t.extraErrors)),r.customErrors&&({errors:i,errorSchema:s}=xi({errors:i,errorSchema:s},r.customErrors.ErrorSchema,!0)),{prevExtraErrors:t.extraErrors,errors:i,errorSchema:s}}return null}constructor(t){if(super(t),!t.validator)throw new Error("A validator is required for Form functionality to work");const{formData:r,initialFormData:n,onChange:i}=t,s=r??n;this.state={...this.getStateFromProps(t,s,void 0,void 0,void 0,!0),prevExtraErrors:t.extraErrors},i&&!je(this.state.formData,s)&&i(Ln(this.state)),this.formElement=Z.createRef()}getSnapshotBeforeUpdate(t,r){if(!je(this.props,t)){const n=Ca(this.props.formData,t.formData),i=Ca(this.props.formData,this.state.formData),s=!je(t.schema,this.props.schema),a=n.length>0||!je(t.formData,this.props.formData),o=i.length>0||!je(this.state.formData,this.props.formData),c=this.getStateFromProps(this.props,this.props.formData,s||a?void 0:this.state.retrievedSchema,s,()=>Ca(this.props.formData,t.formData,!0),!o),l=!je(c,r);return{nextState:c,shouldUpdate:l}}return{shouldUpdate:!1}}componentDidUpdate(t,r,n){if(n.shouldUpdate){const{nextState:i}=n,s=!je(i.formData,this.props.formData),a=this.isProcessingUserChange;if(this.isProcessingUserChange=!1,a&&s)return;s&&!je(i.formData,r.formData)&&this.props.onChange&&this.props.onChange(Ln(i)),this.setState(i)}}getStateFromProps(t,r,n,i=!1,s=()=>[],a=!1,o=!1){const c=this.state||{},l="schema"in t?t.schema:this.props.schema,u="validator"in t?t.validator:this.props.validator,m=("uiSchema"in t?t.uiSchema:this.props.uiSchema)||{},_=t.formData===void 0&&this.props.formData===void 0,v=typeof r<"u",S="liveValidate"in t?t.liveValidate:this.props.liveValidate,E=v&&!t.noValidate&&S,g="experimental_defaultFormStateBehavior"in t?t.experimental_defaultFormStateBehavior:this.props.experimental_defaultFormStateBehavior,y="experimental_customMergeAllOf"in t?t.experimental_customMergeAllOf:this.props.experimental_customMergeAllOf;let{schemaUtils:f}=c;(!f||f.doesSchemaUtilsDiffer(u,l,g,y))&&(f=Qg(u,l,g,y));const C=f.getRootSchema();let x=r;r===Zu?x=void 0:r===void 0&&_&&(x=c.formData);let h,b,O=!1;const k=[];do{h=f.getDefaultFormState(C,x,!1,c.initialDefaultsGenerated);const X=o?zt({formData:h}):"";if(b=this.updateRetrievedSchema(n??f.retrieveSchema(C,h)),o&&!k.includes(X)&&!je(b,c.retrievedSchema)){const re=f.sanitizeDataForNewSchema(b,c.retrievedSchema,h);if(O=!je(re,h),O){h=re,x=re;const A=zt({formData:re});O=!k.includes(A),k.push(A)}k.push(X)}else O=!1}while(O);const $=()=>t.noValidate||i?{errors:[],errorSchema:{}}:t.liveValidate?{errors:c.errors||[],errorSchema:c.errorSchema||{}}:{errors:c.schemaValidationErrors||[],errorSchema:c.schemaValidationErrorSchema||{}};let M,q,{schemaValidationErrors:U,schemaValidationErrorSchema:L}=c;if(E&&!a){const X=this.liveValidate(C,f,c.errorSchema,h,void 0,c.customErrors,n,n!==void 0);M=X.errors,q=X.errorSchema,U=X.schemaValidationErrors,L=X.schemaValidationErrorSchema}else{const X=$();if(M=X.errors,q=X.errorSchema,!E){const A=s();if(A.length>0){const w=A.reduce((j,p)=>{const d=rr(p);for(let P=1;PKg(t,r);getFieldNames=(t,r)=>Gg(t,r);omitExtraData=t=>{const{schema:r,schemaUtils:n}=this.state;return n.omitExtraData(r,t)};setFieldValue=(t,r)=>{const{registry:n}=this.state,i=Array.isArray(t)?t:t.split("."),s=nr("",n.globalFormOptions,i);this.onChange(r,i,void 0,s[Ue])};onChange=(t,r,n,i)=>{this.pendingChanges.push({newValue:t,path:r,newErrorSchema:n,id:i}),this.pendingChanges.length===1&&this.processPendingChange()};processPendingChange(){if(this.pendingChanges.length===0)return;this.isProcessingUserChange=!0;const{newValue:t,path:r,id:n}=this.pendingChanges[0],{newErrorSchema:i}=this.pendingChanges[0],{extraErrors:s,omitExtraData:a,liveOmit:o,noValidate:c,liveValidate:l,onChange:u,disabled:m,readonly:_}=this.props,{formData:v,schemaUtils:S,schema:E,fieldPathId:g,schemaValidationErrorSchema:y,errors:f}=this.state;let{customErrors:C,retrievedSchema:x}=this.state,h=y;const b=g.path[0]||"",O=!r||r.length===0||r.length===1&&r[0]===b;let k=O?t:structuredClone(v);const $=ue(k)&&Object.keys(k).length>0&&Object.values(k).every(J=>J===void 0),M=v==null,q=$&&M?void 0:k;if(ue(k)||Array.isArray(k)){let J=!1;if(t===Mm)tg(k,r);else if(!O){let X=t;if(t===void 0)if(typeof r[r.length-1]=="number")X=null;else{const{field:A}=S.findFieldInSchema(E,r,v),w=A;!(w&&(Se in w||Ne in w))&&w!==void 0&&(J=!0)}J?st(k,r,void 0):st(k,r,X)}const Y=x&&!O&&!ue(t)&&!Array.isArray(t)&&!m&&!_,Q=this.getStateFromProps(this.props,q,void 0,void 0,void 0,!0,Y);k=Q.formData,x=Q.retrievedSchema,J&&k&&st(k,r,void 0)}const U=!c&&(l===!0||l==="onChange");let L={formData:k,retrievedSchema:x},B=k;if(a===!0&&(o===!0||o==="onChange")&&(B=this.omitExtraData(k),L={...L,formData:B}),i){const J=O?y:me(y,r);if(J&&Object.keys(J).length>0)O?h=i:(h=structuredClone(y),st(h,r,i,!0));else if(C||(C=new fm),O){const Y=i[vt];Y&&C.setErrors(Y)}else st(C.ErrorSchema,r,i,!0)}else C&&me(C.ErrorSchema,[...r,vt])&&C.clearErrors(r);if(U&&this.pendingChanges.length===1){const J=this.liveValidate(E,S,h,B,s,C,x);L={...L,formData:B,...J,customErrors:C}}else if(!c&&i){const J=Vr.mergeErrors({errorSchema:h,errors:f},s,C);L={...L,formData:B,...J,customErrors:C}}this.setState(L,()=>{u&&u(Ln({...this.state,...L}),n),this.pendingChanges.shift(),this.processPendingChange()})}updateRetrievedSchema(t){return je(t,this.state?.retrievedSchema)?this.state.retrievedSchema:t}reset=()=>{const{formData:t,initialFormData:r=Zu,onChange:n}=this.props,a={formData:this.getStateFromProps(this.props,t??r,void 0,void 0,void 0,!0).formData,errorSchema:{},errors:[],schemaValidationErrors:[],schemaValidationErrorSchema:{},initialDefaultsGenerated:!1,customErrors:void 0};this.setState(a,()=>n?.(Ln({...this.state,...a})))};onBlur=(t,r)=>{const{onBlur:n,omitExtraData:i,liveOmit:s,liveValidate:a}=this.props;if(n&&n(t,r),i===!0&&s==="onBlur"||a==="onBlur"){const{onChange:o,extraErrors:c}=this.props,{formData:l}=this.state;let u=l,m={formData:u};if(i===!0&&s==="onBlur"&&(u=this.omitExtraData(l),m={formData:u}),a==="onBlur"){const{schema:v,schemaUtils:S,errorSchema:E,customErrors:g,retrievedSchema:y}=this.state,f=this.liveValidate(v,S,E,u,c,g,y);m={formData:u,...f,customErrors:g}}const _=Object.keys(m).filter(v=>!v.startsWith("schemaValidation")).some(v=>{const S=this.state[v],E=m[v];return!je(S,E)});this.setState(m,()=>{o&&_&&o(Ln({...this.state,...m}),t)})}};onFocus=(t,r)=>{const{onFocus:n}=this.props;n&&n(t,r)};onSubmit=t=>{if(t.preventDefault(),t.target!==t.currentTarget)return;t.persist();const{omitExtraData:r,extraErrors:n,noValidate:i,onSubmit:s}=this.props;let{formData:a}=this.state;if(r===!0&&(a=this.omitExtraData(a)),i||this.validateFormWithFormData(a)){const o=n||{},c=n?vm(n):[];this.setState({formData:a,errors:c,errorSchema:o,schemaValidationErrors:[],schemaValidationErrorSchema:{}},()=>{s&&s(Ln({...this.state,formData:a},"submitted"),t)})}};static getGlobalFormOptions(t){const{uiSchema:r={},experimental_componentUpdateStrategy:n,idSeparator:i=Th,idPrefix:s=Dh,nameGenerator:a,useFallbackUiForUnsupportedType:o=!1}=t;return{idPrefix:r["ui:rootFieldId"]||s,idSeparator:i,useFallbackUiForUnsupportedType:o,...n!==void 0&&{experimental_componentUpdateStrategy:n},...a!==void 0&&{nameGenerator:a}}}static getRegistry(t,r,n){const{translateString:i,uiSchema:s={}}=t,{fields:a,templates:o,widgets:c,formContext:l,translateString:u}=tS();return{fields:{...a,...t.fields},templates:{...o,...t.templates,ButtonTemplates:{...o.ButtonTemplates,...t.templates?.ButtonTemplates}},widgets:{...c,...t.widgets},rootSchema:r,formContext:t.formContext||l,schemaUtils:n,translateString:i||u,globalUiOptions:s[mc],globalFormOptions:Vr.getGlobalFormOptions(t),uiSchemaDefinitions:s[wy]??{}}}submit=()=>{if(this.formElement.current){const t=new CustomEvent("submit",{cancelable:!0});t.preventDefault(),this.formElement.current.dispatchEvent(t),this.formElement.current.requestSubmit()}};focusOnError(t){const{idPrefix:r="root",idSeparator:n="_"}=this.props,{property:i}=t,s=rr(i??"");s.unshift(r);const a=s.join(n);let o=this.formElement.current.elements[a];o||(o=this.formElement.current.querySelector(`input[id^="${a}"], button[id^="${a}"]`)),o?.length&&(o=o[0]),o&&o.focus()}validateFormWithFormData=t=>{const{extraErrors:r,extraErrorsBlockSubmit:n,focusOnFirstError:i,onError:s}=this.props,{errors:a}=this.state,o=this.validate(t),{errors:c,errorSchema:l}=r?Vr.mergeErrors(o,r):o,u=o.errors.length>0||r&&n;return u?(i&&(typeof i=="function"?i(c[0]):this.focusOnError(c[0])),this.setState({errors:c,errorSchema:l,schemaValidationErrors:o.errors,schemaValidationErrorSchema:o.errorSchema},()=>{s?s(c):console.error("Form validation failed",c)})):c.length>0?this.setState({errors:c,errorSchema:l,schemaValidationErrors:[],schemaValidationErrorSchema:{}}):a.length>0&&this.setState({errors:[],errorSchema:{},schemaValidationErrors:[],schemaValidationErrorSchema:{}}),!u};validateForm(){const{omitExtraData:t}=this.props;let{formData:r}=this.state;return t===!0&&(r=this.omitExtraData(r)),this.validateFormWithFormData(r)}render(){const{children:t,id:r,className:n="",tagName:i,name:s,method:a,target:o,action:c,autoComplete:l,enctype:u,acceptCharset:m,noHtml5Validate:_=!1,disabled:v,readonly:S,showErrorList:E="top",_internalFormWrapper:g}=this.props,{schema:y,uiSchema:f,formData:C,errorSchema:x,fieldPathId:h,registry:b}=this.state,{SchemaField:O}=b.fields,{SubmitButton:k}=b.templates.ButtonTemplates,$=g?i:void 0,M=g||i||"form";let{[ja]:q={}}=pe(f);v&&(q={...q,props:{...q.props,disabled:!0}});const U={[Br]:{[ja]:q}};return R.jsxs(M,{className:n||"rjsf",id:r,name:s,method:a,target:o,action:c,autoComplete:l,encType:u,acceptCharset:m,noValidate:_,onSubmit:this.onSubmit,as:$,ref:this.formElement,children:[E==="top"&&this.renderErrors(b),R.jsx(O,{name:"",schema:y,uiSchema:f,errorSchema:x,fieldPathId:h,formData:C,onChange:this.onChange,onBlur:this.onBlur,onFocus:this.onFocus,registry:b,disabled:v,readonly:S}),t||R.jsx(k,{uiSchema:U,registry:b}),E==="bottom"&&this.renderErrors(b)]})}}function rS(e,t="none"){return t==="all"?e:e.reduce((r,n)=>{const{message:i,schemaPath:s}=n,a=t!=="anyOf"?s?.indexOf(`/${Ne}/`):void 0,o=t!=="oneOf"?s?.indexOf(`/${Se}/`):void 0;let c;return a&&a>=0?c=s?.substring(0,a):o&&o>=0&&(c=s?.substring(0,o)),(c?r.find(u=>u.message===i&&u.schemaPath?.startsWith(c)):void 0)||r.push(n),r},[])}function nS(e=[],t,r,n){const i=e.map(s=>{const{instancePath:a,keyword:o,params:c,schemaPath:l,parentSchema:u,...m}=s;let{message:_=""}=m,v=a.replace(/\//g,"."),S=`${v} ${_}`.trim(),E="";const g=[...c.deps?.split(", ")||[],c.missingProperty,c.property].filter(y=>y);if(g.length>0)g.forEach(y=>{const f=v?`${v}.${y}`:y;let C=pe(me(t,rr(f))).title;if(C===void 0){const x=l.replace(/\/properties\//g,"/").split("/").slice(1,-1).concat([y]);C=pe(me(t,x)).title}if(C===void 0){const x=v.replace(/^\./,"").split(".").filter(Boolean);C=me(t,[...x,y,"title"])}if(C)_=_.replace(`'${y}'`,`'${C}'`),E=C;else{const x=me(u,[rt,y,"title"]);if(x)_=_.replace(`'${y}'`,`'${x}'`),E=x;else if(n){const h=v.replace(/^\./,"").split(".").filter(Boolean),b=[];for(const k of h)b.push(rt,k);b.push(rt,y,"title");const O=me(n,b);O&&(_=_.replace(`'${y}'`,`'${O}'`),E=O)}}}),S=_;else{const y=pe(me(t,rr(v))).title;if(y)S=`'${y}' ${_}`.trim(),E=y;else{const f=u?.title;f&&(S=`'${f}' ${_}`.trim(),E=f)}}return"missingProperty"in c&&(v=v?`${v}.${c.missingProperty}`:c.missingProperty),{name:o,property:v,message:_,params:c,stack:S,schemaPath:l,title:E}});return rS(i,r)}function iS(e,t,r,n,i,s,a,o){const{validationError:c}=t;let l=nS(t.errors,a,o,n);c&&(l=[...l,{stack:c.message}]),typeof s=="function"&&(l=s(l,a));let u=E0(l);if(c&&(u={...u,$schema:{__errors:[c.message]}}),typeof i!="function")return{errors:l,errorSchema:u};const m=sm(e,n,r,n,!0),_=i(m,pc(m),a,u),v=A0(_);return xi({errors:l,errorSchema:u},v)}var Ji={exports:{}},zo={},Sr={},hn={},Bo={},Ho={},Ko={},ed;function Ua(){return ed||(ed=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.regexpCode=e.getEsmExportName=e.getProperty=e.safeStringify=e.stringify=e.strConcat=e.addCodeArg=e.str=e._=e.nil=e._Code=e.Name=e.IDENTIFIER=e._CodeOrName=void 0;class t{}e._CodeOrName=t,e.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class r extends t{constructor(f){if(super(),!e.IDENTIFIER.test(f))throw new Error("CodeGen: name must be a valid identifier");this.str=f}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}e.Name=r;class n extends t{constructor(f){super(),this._items=typeof f=="string"?[f]:f}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;const f=this._items[0];return f===""||f==='""'}get str(){var f;return(f=this._str)!==null&&f!==void 0?f:this._str=this._items.reduce((C,x)=>`${C}${x}`,"")}get names(){var f;return(f=this._names)!==null&&f!==void 0?f:this._names=this._items.reduce((C,x)=>(x instanceof r&&(C[x.str]=(C[x.str]||0)+1),C),{})}}e._Code=n,e.nil=new n("");function i(y,...f){const C=[y[0]];let x=0;for(;x{if(m.scopePath===void 0)throw new Error(`CodeGen: name "${m}" has no value`);return(0,t._)`${l}${m.scopePath}`})}scopeCode(l=this._values,u,m){return this._reduceValues(l,_=>{if(_.value===void 0)throw new Error(`CodeGen: name "${_}" has no value`);return _.value.code},u,m)}_reduceValues(l,u,m={},_){let v=t.nil;for(const S in l){const E=l[S];if(!E)continue;const g=m[S]=m[S]||new Map;E.forEach(y=>{if(g.has(y))return;g.set(y,n.Started);let f=u(y);if(f){const C=this.opts.es5?e.varKinds.var:e.varKinds.const;v=(0,t._)`${v}${C} ${y} = ${f};${this.opts._n}`}else if(f=_?.(y))v=(0,t._)`${v}${f}${this.opts._n}`;else throw new r(y);g.set(y,n.Completed)})}return v}}e.ValueScope=o})(Go)),Go}var nd;function Re(){return nd||(nd=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.or=e.and=e.not=e.CodeGen=e.operators=e.varKinds=e.ValueScopeName=e.ValueScope=e.Scope=e.Name=e.regexpCode=e.stringify=e.getProperty=e.nil=e.strConcat=e.str=e._=void 0;const t=Ua(),r=rd();var n=Ua();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return n._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return n.str}}),Object.defineProperty(e,"strConcat",{enumerable:!0,get:function(){return n.strConcat}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return n.nil}}),Object.defineProperty(e,"getProperty",{enumerable:!0,get:function(){return n.getProperty}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return n.stringify}}),Object.defineProperty(e,"regexpCode",{enumerable:!0,get:function(){return n.regexpCode}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return n.Name}});var i=rd();Object.defineProperty(e,"Scope",{enumerable:!0,get:function(){return i.Scope}}),Object.defineProperty(e,"ValueScope",{enumerable:!0,get:function(){return i.ValueScope}}),Object.defineProperty(e,"ValueScopeName",{enumerable:!0,get:function(){return i.ValueScopeName}}),Object.defineProperty(e,"varKinds",{enumerable:!0,get:function(){return i.varKinds}}),e.operators={GT:new t._Code(">"),GTE:new t._Code(">="),LT:new t._Code("<"),LTE:new t._Code("<="),EQ:new t._Code("==="),NEQ:new t._Code("!=="),NOT:new t._Code("!"),OR:new t._Code("||"),AND:new t._Code("&&"),ADD:new t._Code("+")};class s{optimizeNodes(){return this}optimizeNames(d,P){return this}}class a extends s{constructor(d,P,I){super(),this.varKind=d,this.name=P,this.rhs=I}render({es5:d,_n:P}){const I=d?r.varKinds.var:this.varKind,T=this.rhs===void 0?"":` = ${this.rhs}`;return`${I} ${this.name}${T};`+P}optimizeNames(d,P){if(d[this.name.str])return this.rhs&&(this.rhs=B(this.rhs,d,P)),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}}class o extends s{constructor(d,P,I){super(),this.lhs=d,this.rhs=P,this.sideEffects=I}render({_n:d}){return`${this.lhs} = ${this.rhs};`+d}optimizeNames(d,P){if(!(this.lhs instanceof t.Name&&!d[this.lhs.str]&&!this.sideEffects))return this.rhs=B(this.rhs,d,P),this}get names(){const d=this.lhs instanceof t.Name?{}:{...this.lhs.names};return L(d,this.rhs)}}class c extends o{constructor(d,P,I,T){super(d,I,T),this.op=P}render({_n:d}){return`${this.lhs} ${this.op}= ${this.rhs};`+d}}class l extends s{constructor(d){super(),this.label=d,this.names={}}render({_n:d}){return`${this.label}:`+d}}class u extends s{constructor(d){super(),this.label=d,this.names={}}render({_n:d}){return`break${this.label?` ${this.label}`:""};`+d}}class m extends s{constructor(d){super(),this.error=d}render({_n:d}){return`throw ${this.error};`+d}get names(){return this.error.names}}class _ extends s{constructor(d){super(),this.code=d}render({_n:d}){return`${this.code};`+d}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(d,P){return this.code=B(this.code,d,P),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}}class v extends s{constructor(d=[]){super(),this.nodes=d}render(d){return this.nodes.reduce((P,I)=>P+I.render(d),"")}optimizeNodes(){const{nodes:d}=this;let P=d.length;for(;P--;){const I=d[P].optimizeNodes();Array.isArray(I)?d.splice(P,1,...I):I?d[P]=I:d.splice(P,1)}return d.length>0?this:void 0}optimizeNames(d,P){const{nodes:I}=this;let T=I.length;for(;T--;){const F=I[T];F.optimizeNames(d,P)||(J(d,F.names),I.splice(T,1))}return I.length>0?this:void 0}get names(){return this.nodes.reduce((d,P)=>U(d,P.names),{})}}class S extends v{render(d){return"{"+d._n+super.render(d)+"}"+d._n}}class E extends v{}class g extends S{}g.kind="else";class y extends S{constructor(d,P){super(P),this.condition=d}render(d){let P=`if(${this.condition})`+super.render(d);return this.else&&(P+="else "+this.else.render(d)),P}optimizeNodes(){super.optimizeNodes();const d=this.condition;if(d===!0)return this.nodes;let P=this.else;if(P){const I=P.optimizeNodes();P=this.else=Array.isArray(I)?new g(I):I}if(P)return d===!1?P instanceof y?P:P.nodes:this.nodes.length?this:new y(Y(d),P instanceof y?[P]:P.nodes);if(!(d===!1||!this.nodes.length))return this}optimizeNames(d,P){var I;if(this.else=(I=this.else)===null||I===void 0?void 0:I.optimizeNames(d,P),!!(super.optimizeNames(d,P)||this.else))return this.condition=B(this.condition,d,P),this}get names(){const d=super.names;return L(d,this.condition),this.else&&U(d,this.else.names),d}}y.kind="if";class f extends S{}f.kind="for";class C extends f{constructor(d){super(),this.iteration=d}render(d){return`for(${this.iteration})`+super.render(d)}optimizeNames(d,P){if(super.optimizeNames(d,P))return this.iteration=B(this.iteration,d,P),this}get names(){return U(super.names,this.iteration.names)}}class x extends f{constructor(d,P,I,T){super(),this.varKind=d,this.name=P,this.from=I,this.to=T}render(d){const P=d.es5?r.varKinds.var:this.varKind,{name:I,from:T,to:F}=this;return`for(${P} ${I}=${T}; ${I}<${F}; ${I}++)`+super.render(d)}get names(){const d=L(super.names,this.from);return L(d,this.to)}}class h extends f{constructor(d,P,I,T){super(),this.loop=d,this.varKind=P,this.name=I,this.iterable=T}render(d){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(d)}optimizeNames(d,P){if(super.optimizeNames(d,P))return this.iterable=B(this.iterable,d,P),this}get names(){return U(super.names,this.iterable.names)}}class b extends S{constructor(d,P,I){super(),this.name=d,this.args=P,this.async=I}render(d){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(d)}}b.kind="func";class O extends v{render(d){return"return "+super.render(d)}}O.kind="return";class k extends S{render(d){let P="try"+super.render(d);return this.catch&&(P+=this.catch.render(d)),this.finally&&(P+=this.finally.render(d)),P}optimizeNodes(){var d,P;return super.optimizeNodes(),(d=this.catch)===null||d===void 0||d.optimizeNodes(),(P=this.finally)===null||P===void 0||P.optimizeNodes(),this}optimizeNames(d,P){var I,T;return super.optimizeNames(d,P),(I=this.catch)===null||I===void 0||I.optimizeNames(d,P),(T=this.finally)===null||T===void 0||T.optimizeNames(d,P),this}get names(){const d=super.names;return this.catch&&U(d,this.catch.names),this.finally&&U(d,this.finally.names),d}}class $ extends S{constructor(d){super(),this.error=d}render(d){return`catch(${this.error})`+super.render(d)}}$.kind="catch";class M extends S{render(d){return"finally"+super.render(d)}}M.kind="finally";class q{constructor(d,P={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...P,_n:P.lines?` -`:""},this._extScope=d,this._scope=new r.Scope({parent:d}),this._nodes=[new E]}toString(){return this._root.render(this.opts)}name(d){return this._scope.name(d)}scopeName(d){return this._extScope.name(d)}scopeValue(d,P){const I=this._extScope.value(d,P);return(this._values[I.prefix]||(this._values[I.prefix]=new Set)).add(I),I}getScopeValue(d,P){return this._extScope.getValue(d,P)}scopeRefs(d){return this._extScope.scopeRefs(d,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(d,P,I,T){const F=this._scope.toName(P);return I!==void 0&&T&&(this._constants[F.str]=I),this._leafNode(new a(d,F,I)),F}const(d,P,I){return this._def(r.varKinds.const,d,P,I)}let(d,P,I){return this._def(r.varKinds.let,d,P,I)}var(d,P,I){return this._def(r.varKinds.var,d,P,I)}assign(d,P,I){return this._leafNode(new o(d,P,I))}add(d,P){return this._leafNode(new c(d,e.operators.ADD,P))}code(d){return typeof d=="function"?d():d!==t.nil&&this._leafNode(new _(d)),this}object(...d){const P=["{"];for(const[I,T]of d)P.length>1&&P.push(","),P.push(I),(I!==T||this.opts.es5)&&(P.push(":"),(0,t.addCodeArg)(P,T));return P.push("}"),new t._Code(P)}if(d,P,I){if(this._blockNode(new y(d)),P&&I)this.code(P).else().code(I).endIf();else if(P)this.code(P).endIf();else if(I)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(d){return this._elseNode(new y(d))}else(){return this._elseNode(new g)}endIf(){return this._endBlockNode(y,g)}_for(d,P){return this._blockNode(d),P&&this.code(P).endFor(),this}for(d,P){return this._for(new C(d),P)}forRange(d,P,I,T,F=this.opts.es5?r.varKinds.var:r.varKinds.let){const z=this._scope.toName(d);return this._for(new x(F,z,P,I),()=>T(z))}forOf(d,P,I,T=r.varKinds.const){const F=this._scope.toName(d);if(this.opts.es5){const z=P instanceof t.Name?P:this.var("_arr",P);return this.forRange("_i",0,(0,t._)`${z}.length`,H=>{this.var(F,(0,t._)`${z}[${H}]`),I(F)})}return this._for(new h("of",T,F,P),()=>I(F))}forIn(d,P,I,T=this.opts.es5?r.varKinds.var:r.varKinds.const){if(this.opts.ownProperties)return this.forOf(d,(0,t._)`Object.keys(${P})`,I);const F=this._scope.toName(d);return this._for(new h("in",T,F,P),()=>I(F))}endFor(){return this._endBlockNode(f)}label(d){return this._leafNode(new l(d))}break(d){return this._leafNode(new u(d))}return(d){const P=new O;if(this._blockNode(P),this.code(d),P.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(O)}try(d,P,I){if(!P&&!I)throw new Error('CodeGen: "try" without "catch" and "finally"');const T=new k;if(this._blockNode(T),this.code(d),P){const F=this.name("e");this._currNode=T.catch=new $(F),P(F)}return I&&(this._currNode=T.finally=new M,this.code(I)),this._endBlockNode($,M)}throw(d){return this._leafNode(new m(d))}block(d,P){return this._blockStarts.push(this._nodes.length),d&&this.code(d).endBlock(P),this}endBlock(d){const P=this._blockStarts.pop();if(P===void 0)throw new Error("CodeGen: not in self-balancing block");const I=this._nodes.length-P;if(I<0||d!==void 0&&I!==d)throw new Error(`CodeGen: wrong number of nodes: ${I} vs ${d} expected`);return this._nodes.length=P,this}func(d,P=t.nil,I,T){return this._blockNode(new b(d,P,I)),T&&this.code(T).endFunc(),this}endFunc(){return this._endBlockNode(b)}optimize(d=1){for(;d-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(d){return this._currNode.nodes.push(d),this}_blockNode(d){this._currNode.nodes.push(d),this._nodes.push(d)}_endBlockNode(d,P){const I=this._currNode;if(I instanceof d||P&&I instanceof P)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${P?`${d.kind}/${P.kind}`:d.kind}"`)}_elseNode(d){const P=this._currNode;if(!(P instanceof y))throw new Error('CodeGen: "else" without "if"');return this._currNode=P.else=d,this}get _root(){return this._nodes[0]}get _currNode(){const d=this._nodes;return d[d.length-1]}set _currNode(d){const P=this._nodes;P[P.length-1]=d}}e.CodeGen=q;function U(p,d){for(const P in d)p[P]=(p[P]||0)+(d[P]||0);return p}function L(p,d){return d instanceof t._CodeOrName?U(p,d.names):p}function B(p,d,P){if(p instanceof t.Name)return I(p);if(!T(p))return p;return new t._Code(p._items.reduce((F,z)=>(z instanceof t.Name&&(z=I(z)),z instanceof t._Code?F.push(...z._items):F.push(z),F),[]));function I(F){const z=P[F.str];return z===void 0||d[F.str]!==1?F:(delete d[F.str],z)}function T(F){return F instanceof t._Code&&F._items.some(z=>z instanceof t.Name&&d[z.str]===1&&P[z.str]!==void 0)}}function J(p,d){for(const P in d)p[P]=(p[P]||0)-(d[P]||0)}function Y(p){return typeof p=="boolean"||typeof p=="number"||p===null?!p:(0,t._)`!${j(p)}`}e.not=Y;const Q=w(e.operators.AND);function X(...p){return p.reduce(Q)}e.and=X;const re=w(e.operators.OR);function A(...p){return p.reduce(re)}e.or=A;function w(p){return(d,P)=>d===t.nil?P:P===t.nil?d:(0,t._)`${j(d)} ${p} ${j(P)}`}function j(p){return p instanceof t.Name?p:(0,t._)`(${p})`}})(Ho)),Ho}var Ce={},id;function Te(){if(id)return Ce;id=1,Object.defineProperty(Ce,"__esModule",{value:!0}),Ce.checkStrictMode=Ce.getErrorPath=Ce.Type=Ce.useFunc=Ce.setEvaluated=Ce.evaluatedPropsToName=Ce.mergeEvaluated=Ce.eachItem=Ce.unescapeJsonPointer=Ce.escapeJsonPointer=Ce.escapeFragment=Ce.unescapeFragment=Ce.schemaRefOrVal=Ce.schemaHasRulesButRef=Ce.schemaHasRules=Ce.checkUnknownRules=Ce.alwaysValidSchema=Ce.toHash=void 0;const e=Re(),t=Ua();function r(h){const b={};for(const O of h)b[O]=!0;return b}Ce.toHash=r;function n(h,b){return typeof b=="boolean"?b:Object.keys(b).length===0?!0:(i(h,b),!s(b,h.self.RULES.all))}Ce.alwaysValidSchema=n;function i(h,b=h.schema){const{opts:O,self:k}=h;if(!O.strictSchema||typeof b=="boolean")return;const $=k.RULES.keywords;for(const M in b)$[M]||x(h,`unknown keyword: "${M}"`)}Ce.checkUnknownRules=i;function s(h,b){if(typeof h=="boolean")return!h;for(const O in h)if(b[O])return!0;return!1}Ce.schemaHasRules=s;function a(h,b){if(typeof h=="boolean")return!h;for(const O in h)if(O!=="$ref"&&b.all[O])return!0;return!1}Ce.schemaHasRulesButRef=a;function o({topSchemaRef:h,schemaPath:b},O,k,$){if(!$){if(typeof O=="number"||typeof O=="boolean")return O;if(typeof O=="string")return(0,e._)`${O}`}return(0,e._)`${h}${b}${(0,e.getProperty)(k)}`}Ce.schemaRefOrVal=o;function c(h){return m(decodeURIComponent(h))}Ce.unescapeFragment=c;function l(h){return encodeURIComponent(u(h))}Ce.escapeFragment=l;function u(h){return typeof h=="number"?`${h}`:h.replace(/~/g,"~0").replace(/\//g,"~1")}Ce.escapeJsonPointer=u;function m(h){return h.replace(/~1/g,"/").replace(/~0/g,"~")}Ce.unescapeJsonPointer=m;function _(h,b){if(Array.isArray(h))for(const O of h)b(O);else b(h)}Ce.eachItem=_;function v({mergeNames:h,mergeToName:b,mergeValues:O,resultToName:k}){return($,M,q,U)=>{const L=q===void 0?M:q instanceof e.Name?(M instanceof e.Name?h($,M,q):b($,M,q),q):M instanceof e.Name?(b($,q,M),M):O(M,q);return U===e.Name&&!(L instanceof e.Name)?k($,L):L}}Ce.mergeEvaluated={props:v({mergeNames:(h,b,O)=>h.if((0,e._)`${O} !== true && ${b} !== undefined`,()=>{h.if((0,e._)`${b} === true`,()=>h.assign(O,!0),()=>h.assign(O,(0,e._)`${O} || {}`).code((0,e._)`Object.assign(${O}, ${b})`))}),mergeToName:(h,b,O)=>h.if((0,e._)`${O} !== true`,()=>{b===!0?h.assign(O,!0):(h.assign(O,(0,e._)`${O} || {}`),E(h,O,b))}),mergeValues:(h,b)=>h===!0?!0:{...h,...b},resultToName:S}),items:v({mergeNames:(h,b,O)=>h.if((0,e._)`${O} !== true && ${b} !== undefined`,()=>h.assign(O,(0,e._)`${b} === true ? true : ${O} > ${b} ? ${O} : ${b}`)),mergeToName:(h,b,O)=>h.if((0,e._)`${O} !== true`,()=>h.assign(O,b===!0?!0:(0,e._)`${O} > ${b} ? ${O} : ${b}`)),mergeValues:(h,b)=>h===!0?!0:Math.max(h,b),resultToName:(h,b)=>h.var("items",b)})};function S(h,b){if(b===!0)return h.var("props",!0);const O=h.var("props",(0,e._)`{}`);return b!==void 0&&E(h,O,b),O}Ce.evaluatedPropsToName=S;function E(h,b,O){Object.keys(O).forEach(k=>h.assign((0,e._)`${b}${(0,e.getProperty)(k)}`,!0))}Ce.setEvaluated=E;const g={};function y(h,b){return h.scopeValue("func",{ref:b,code:g[b.code]||(g[b.code]=new t._Code(b.code))})}Ce.useFunc=y;var f;(function(h){h[h.Num=0]="Num",h[h.Str=1]="Str"})(f||(Ce.Type=f={}));function C(h,b,O){if(h instanceof e.Name){const k=b===f.Num;return O?k?(0,e._)`"[" + ${h} + "]"`:(0,e._)`"['" + ${h} + "']"`:k?(0,e._)`"/" + ${h}`:(0,e._)`"/" + ${h}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return O?(0,e.getProperty)(h).toString():"/"+u(h)}Ce.getErrorPath=C;function x(h,b,O=h.opts.strictSchema){if(O){if(b=`strict mode: ${b}`,O===!0)throw new Error(b);h.self.logger.warn(b)}}return Ce.checkStrictMode=x,Ce}var Yi={},sd;function rn(){if(sd)return Yi;sd=1,Object.defineProperty(Yi,"__esModule",{value:!0});const e=Re(),t={data:new e.Name("data"),valCxt:new e.Name("valCxt"),instancePath:new e.Name("instancePath"),parentData:new e.Name("parentData"),parentDataProperty:new e.Name("parentDataProperty"),rootData:new e.Name("rootData"),dynamicAnchors:new e.Name("dynamicAnchors"),vErrors:new e.Name("vErrors"),errors:new e.Name("errors"),this:new e.Name("this"),self:new e.Name("self"),scope:new e.Name("scope"),json:new e.Name("json"),jsonPos:new e.Name("jsonPos"),jsonLen:new e.Name("jsonLen"),jsonPart:new e.Name("jsonPart")};return Yi.default=t,Yi}var ad;function Za(){return ad||(ad=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.extendErrors=e.resetErrorsCount=e.reportExtraError=e.reportError=e.keyword$DataError=e.keywordError=void 0;const t=Re(),r=Te(),n=rn();e.keywordError={message:({keyword:g})=>(0,t.str)`must pass "${g}" keyword validation`},e.keyword$DataError={message:({keyword:g,schemaType:y})=>y?(0,t.str)`"${g}" keyword must be ${y} ($data)`:(0,t.str)`"${g}" keyword is invalid ($data)`};function i(g,y=e.keywordError,f,C){const{it:x}=g,{gen:h,compositeRule:b,allErrors:O}=x,k=m(g,y,f);C??(b||O)?c(h,k):l(x,(0,t._)`[${k}]`)}e.reportError=i;function s(g,y=e.keywordError,f){const{it:C}=g,{gen:x,compositeRule:h,allErrors:b}=C,O=m(g,y,f);c(x,O),h||b||l(C,n.default.vErrors)}e.reportExtraError=s;function a(g,y){g.assign(n.default.errors,y),g.if((0,t._)`${n.default.vErrors} !== null`,()=>g.if(y,()=>g.assign((0,t._)`${n.default.vErrors}.length`,y),()=>g.assign(n.default.vErrors,null)))}e.resetErrorsCount=a;function o({gen:g,keyword:y,schemaValue:f,data:C,errsCount:x,it:h}){if(x===void 0)throw new Error("ajv implementation error");const b=g.name("err");g.forRange("i",x,n.default.errors,O=>{g.const(b,(0,t._)`${n.default.vErrors}[${O}]`),g.if((0,t._)`${b}.instancePath === undefined`,()=>g.assign((0,t._)`${b}.instancePath`,(0,t.strConcat)(n.default.instancePath,h.errorPath))),g.assign((0,t._)`${b}.schemaPath`,(0,t.str)`${h.errSchemaPath}/${y}`),h.opts.verbose&&(g.assign((0,t._)`${b}.schema`,f),g.assign((0,t._)`${b}.data`,C))})}e.extendErrors=o;function c(g,y){const f=g.const("err",y);g.if((0,t._)`${n.default.vErrors} === null`,()=>g.assign(n.default.vErrors,(0,t._)`[${f}]`),(0,t._)`${n.default.vErrors}.push(${f})`),g.code((0,t._)`${n.default.errors}++`)}function l(g,y){const{gen:f,validateName:C,schemaEnv:x}=g;x.$async?f.throw((0,t._)`new ${g.ValidationError}(${y})`):(f.assign((0,t._)`${C}.errors`,y),f.return(!1))}const u={keyword:new t.Name("keyword"),schemaPath:new t.Name("schemaPath"),params:new t.Name("params"),propertyName:new t.Name("propertyName"),message:new t.Name("message"),schema:new t.Name("schema"),parentSchema:new t.Name("parentSchema")};function m(g,y,f){const{createErrors:C}=g.it;return C===!1?(0,t._)`{}`:_(g,y,f)}function _(g,y,f={}){const{gen:C,it:x}=g,h=[v(x,f),S(g,f)];return E(g,y,h),C.object(...h)}function v({errorPath:g},{instancePath:y}){const f=y?(0,t.str)`${g}${(0,r.getErrorPath)(y,r.Type.Str)}`:g;return[n.default.instancePath,(0,t.strConcat)(n.default.instancePath,f)]}function S({keyword:g,it:{errSchemaPath:y}},{schemaPath:f,parentSchema:C}){let x=C?y:(0,t.str)`${y}/${g}`;return f&&(x=(0,t.str)`${x}${(0,r.getErrorPath)(f,r.Type.Str)}`),[u.schemaPath,x]}function E(g,{params:y,message:f},C){const{keyword:x,data:h,schemaValue:b,it:O}=g,{opts:k,propertyName:$,topSchemaRef:M,schemaPath:q}=O;C.push([u.keyword,x],[u.params,typeof y=="function"?y(g):y||(0,t._)`{}`]),k.messages&&C.push([u.message,typeof f=="function"?f(g):f]),k.verbose&&C.push([u.schema,b],[u.parentSchema,(0,t._)`${M}${q}`],[n.default.data,h]),$&&C.push([u.propertyName,$])}})(Bo)),Bo}var od;function sS(){if(od)return hn;od=1,Object.defineProperty(hn,"__esModule",{value:!0}),hn.boolOrEmptySchema=hn.topBoolOrEmptySchema=void 0;const e=Za(),t=Re(),r=rn(),n={message:"boolean schema is false"};function i(o){const{gen:c,schema:l,validateName:u}=o;l===!1?a(o,!1):typeof l=="object"&&l.$async===!0?c.return(r.default.data):(c.assign((0,t._)`${u}.errors`,null),c.return(!0))}hn.topBoolOrEmptySchema=i;function s(o,c){const{gen:l,schema:u}=o;u===!1?(l.var(c,!1),a(o)):l.var(c,!0)}hn.boolOrEmptySchema=s;function a(o,c){const{gen:l,data:u}=o,m={gen:l,keyword:"false schema",data:u,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:o};(0,e.reportError)(m,n,void 0,c)}return hn}var yt={},mn={},cd;function Hm(){if(cd)return mn;cd=1,Object.defineProperty(mn,"__esModule",{value:!0}),mn.getRules=mn.isJSONType=void 0;const e=["string","number","integer","boolean","null","object","array"],t=new Set(e);function r(i){return typeof i=="string"&&t.has(i)}mn.isJSONType=r;function n(){const i={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...i,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},i.number,i.string,i.array,i.object],post:{rules:[]},all:{},keywords:{}}}return mn.getRules=n,mn}var wr={},ld;function Km(){if(ld)return wr;ld=1,Object.defineProperty(wr,"__esModule",{value:!0}),wr.shouldUseRule=wr.shouldUseGroup=wr.schemaHasRulesForType=void 0;function e({schema:n,self:i},s){const a=i.RULES.types[s];return a&&a!==!0&&t(n,a)}wr.schemaHasRulesForType=e;function t(n,i){return i.rules.some(s=>r(n,s))}wr.shouldUseGroup=t;function r(n,i){var s;return n[i.keyword]!==void 0||((s=i.definition.implements)===null||s===void 0?void 0:s.some(a=>n[a]!==void 0))}return wr.shouldUseRule=r,wr}var ud;function La(){if(ud)return yt;ud=1,Object.defineProperty(yt,"__esModule",{value:!0}),yt.reportTypeError=yt.checkDataTypes=yt.checkDataType=yt.coerceAndCheckDataType=yt.getJSONTypes=yt.getSchemaTypes=yt.DataType=void 0;const e=Hm(),t=Km(),r=Za(),n=Re(),i=Te();var s;(function(f){f[f.Correct=0]="Correct",f[f.Wrong=1]="Wrong"})(s||(yt.DataType=s={}));function a(f){const C=o(f.type);if(C.includes("null")){if(f.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!C.length&&f.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');f.nullable===!0&&C.push("null")}return C}yt.getSchemaTypes=a;function o(f){const C=Array.isArray(f)?f:f?[f]:[];if(C.every(e.isJSONType))return C;throw new Error("type must be JSONType or JSONType[]: "+C.join(","))}yt.getJSONTypes=o;function c(f,C){const{gen:x,data:h,opts:b}=f,O=u(C,b.coerceTypes),k=C.length>0&&!(O.length===0&&C.length===1&&(0,t.schemaHasRulesForType)(f,C[0]));if(k){const $=S(C,h,b.strictNumbers,s.Wrong);x.if($,()=>{O.length?m(f,C,O):g(f)})}return k}yt.coerceAndCheckDataType=c;const l=new Set(["string","number","integer","boolean","null"]);function u(f,C){return C?f.filter(x=>l.has(x)||C==="array"&&x==="array"):[]}function m(f,C,x){const{gen:h,data:b,opts:O}=f,k=h.let("dataType",(0,n._)`typeof ${b}`),$=h.let("coerced",(0,n._)`undefined`);O.coerceTypes==="array"&&h.if((0,n._)`${k} == 'object' && Array.isArray(${b}) && ${b}.length == 1`,()=>h.assign(b,(0,n._)`${b}[0]`).assign(k,(0,n._)`typeof ${b}`).if(S(C,b,O.strictNumbers),()=>h.assign($,b))),h.if((0,n._)`${$} !== undefined`);for(const q of x)(l.has(q)||q==="array"&&O.coerceTypes==="array")&&M(q);h.else(),g(f),h.endIf(),h.if((0,n._)`${$} !== undefined`,()=>{h.assign(b,$),_(f,$)});function M(q){switch(q){case"string":h.elseIf((0,n._)`${k} == "number" || ${k} == "boolean"`).assign($,(0,n._)`"" + ${b}`).elseIf((0,n._)`${b} === null`).assign($,(0,n._)`""`);return;case"number":h.elseIf((0,n._)`${k} == "boolean" || ${b} === null +`,le),fe=Fe<0?ge:Fe);if(le>=ge)break;var Ye=e.charCodeAt(le)===Ac;at(e,le,fe);let ke=null;if(jc=e,kc=le,xa=fe,!Ye&&qe>=4&&!t.inHTML)ke=hb(e,le);else if(!Ye){let Et=le+De,Ke=e.charCodeAt(Et);Ke===Wt?ke=ub(e,le,t,r):Ke===xe?ke=mb(e,le,t,r):Ke===Le||Ke===ut?ke=fb(e,le):Ke===we||Ke===nt||Ke===Ze?(ke=Jr(e,le),!ke&&(ke=zu(e,le,t,r))):Ke===Qr||Ke>=Ae&&Ke<=Pe?ke=zu(e,le,t,r):Ke===He?ke=qm(e,le,t,r):Ke===ht?ke=Hu(e,le,t,r):Ke===et&&(ke=gb(e,le,t))}if(!ke){for(var ye=!1,oe=le;oe"u"?void 0:Z.createContext(void 0);function Qu(e,t,r,n,s,i,a,o,c){switch(e.type){case ee.blockQuote:{let y={key:r.key};return e.alert&&(y.className=`markdown-alert-${i(e.alert.toLowerCase(),In)}`,e.children.unshift(Uv(e.alert))),n("blockquote",y,t(e.children,r))}case ee.breakLine:return n("br",{key:r.key});case ee.breakThematic:return n("hr",{key:r.key});case ee.frontmatter:return o.preserveFrontmatter?n("pre",{key:r.key},e.text):null;case ee.codeBlock:{let y=e.lang?Wr(e.lang):"";var l=e.attrs?Nm(e.attrs):{};return l.className=y?`language-${y} lang-${y}`:"",n("pre",{key:r.key},n("code",l,e.text))}case ee.codeInline:return n("code",{key:r.key},e.text);case ee.footnoteReference:return n("a",{key:r.key,href:s(e.target,"a","href")||void 0},n("sup",null,e.text));case ee.gfmTask:return n("input",{checked:e.completed,key:r.key,readOnly:!0,type:"checkbox"});case ee.heading:return n(`h${e.level}`,{id:e.id,key:r.key},t(e.children,r));case ee.htmlBlock:{let y=e;if(Wn(o)&&ku(y.tag)){var u=ju(y);return u.kind==="literal"?n("span",{key:r.key},u.literal):n("span",{key:r.key},...Hv(u.open,y.children?t(y.children,r):null,u.close))}let f=y.j,C=f!==void 0,x=C?f:y.a?y.e||"":(y.e||"")+(y.h||"");if(x&&y.c){let h=y.tag.toLowerCase(),b=tb(h),O=y.children,k=O!=null&&O.length>0;if(b){let J=C?f:y.e||"",Y=Wn(o)?Iu(J):J;if(/<[a-z][^>]{0,100}>/i.test(x)){var m=Ut(r.key,e.attrs);return m.dangerouslySetInnerHTML={__html:Y},c(e.tag,m)}return c(e.tag,Ut(r.key,e.attrs),Y)}let $=new RegExp(`^<${y.tag}(\\s|>)`,"i");if(k&&!$.test(x)&&Wn(o)&&Xv(x))return c(e.tag,Ut(r.key,e.attrs),t(O,r));if(rb(x)){let J=Wn(o)?Iu(x):x;var _=Ut(r.key,e.attrs);return _.dangerouslySetInnerHTML={__html:J},c(e.tag,_)}let M=al({slugify:o.slugify,sanitizer:s,tagfilter:!0}),q=Mv(x);if(new RegExp(`^<${y.tag}(\\s[^>]*)?>(\\s*)?$`,"i").test(q))return y.children&&y.children.length>0?c(e.tag,Ut(r.key,e.attrs),t(y.children,r)):c(e.tag,Ut(r.key,e.attrs));let U=ll(q,{inline:!1,refs:a,inHTML:!1},M);$m(U);let L=y.tag.toLowerCase(),B=C;if(B&&k)return c(e.tag,Ut(r.key,e.attrs),t(O,r));if(B)return t(U.flatMap(Zn),r);var v=zv(U,L);if(v.found&&v.afterClose.length>0){var S=v.beforeClose.flatMap(Zn),E=v.afterClose.flatMap(Zn);return Mc(Z.Fragment,{children:[c(e.tag,Ut(r.key,e.attrs),t(S,r)),t(E,r)]},r.key)}return c(e.tag,Ut(r.key,e.attrs),t(U.flatMap(Zn),r))}return Ti(e.tag)?c(e.tag,Ut(r.key,e.attrs)):c(e.tag,Ut(r.key,e.attrs),e.children?t(e.children,r):"")}case ee.htmlSelfClosing:{let y=e;if(Wn(o)&&ku(y.tag)){var g=ju(y);return n("span",{key:r.key},g.kind==="literal"?g.literal:g.open+(g.close||""))}return c(e.tag,Ut(r.key,e.attrs))}case ee.image:{let y=e.target===null?null:s(e.target,"img","src");return n("img",{key:r.key,alt:e.alt&&e.alt.length>0?e.alt:void 0,title:e.title||void 0,src:y||void 0})}case ee.link:{let y={key:r.key};if(e.target!=null){let f=Kv(e.target,s,"a","href");f!=null&&(y.href=f)}return e.title&&(y.title=e.title),n("a",y,t(e.children,r))}case ee.table:{let y=e;return n("table",{key:r.key},n("thead",{key:"thead"},n("tr",null,y.header.map(function(f,C){return n("th",{key:C,style:y.align[C]===null?{}:{textAlign:y.align[C]}},t(f,r))}))),y.cells.length>0&&n("tbody",{key:"tbody"},y.cells.map(function(f,C){return n("tr",{key:C},f.map(function(x,h){return n("td",{key:h,style:y.align[h]===null?{}:{textAlign:y.align[h]}},t(x,r))}))})))}case ee.text:return e.text;case ee.textFormatted:return n(e.tag,{key:r.key},t(e.children,r));case ee.orderedList:case ee.unorderedList:{let y=e.type===ee.orderedList?"ol":"ul";return n(y,{key:r.key,start:e.type===ee.orderedList?e.start:void 0},e.items.map(function(f,C){return n("li",{key:C},t(f,r))}))}case ee.paragraph:return n("p",{key:r.key},t(e.children,r));case ee.ref:return null;default:return null}}var Fb=(e,t,r,n,s,i,a)=>{var o=l=>l.map(u=>"text"in u?u.text:""),c=(l,u={})=>{var m=Array.isArray(l)?l:[l],_=(u.renderDepth||0)+1;if(_>2500)return o(m);u.renderDepth=_;for(var v=u.key,S=[],E=!1,g=0;g{let r=Pc(t,e,void 0);return r?typeof r=="function"||typeof r=="object"&&"render"in r?r:Pc(t,`${e}.component`,e):e};function Tb(e,t){let r={...t||{}};r.overrides=r.overrides||{};let n=r.slugify||In,s=r.sanitizer||xr,i=r.createElement,a=Rm(r.overrides),o=C=>qc(C,{...r,wrapper:null});function c(C){for(var x in C){var h=C[x];if(typeof h=="string"&&h.length>0&&h.charCodeAt(0)===He&&(Zv.test(h)||Qv.test(h)||$b(h,0))){var b=o(h.trim());C[x]=x==="innerHTML"&&Array.isArray(b)?b[0]:b}}}function l(C,x,...h){var b=x||{},O=C;if(a){var k=Pc(r.overrides,`${C}.props`,{});O=Db(C,r.overrides),b={...b,...k,className:Jv(b.className,k.className)||void 0}}if(!i){var $=b.key;return $!=null&&delete b.key,h.length===1?b.children=h[0]:h.length>1&&(b.children=h),Mc(O,b,$)}return i(O,b,...h)}function u(C,x,...h){return x&&c(x),l(C,x,...h)}let m=al(r,r.forceInline),_=e[0]&&e[0].type===ee.refCollection?e[0].refs:{},v=Fb(r.renderRule,l,s,n,_,r,u),S=v(e,{inline:r.forceInline,refs:_}),E=Gv(_);if(E.length>0&&S.push(l("footer",{key:"footer"},E.map(function(C){let x=C.identifier.charCodeAt(0)===Ir?C.identifier.slice(1):C.identifier,h=ll(C.footnote,{inline:!0,refs:_},m);return l("div",{id:n(x,In),key:C.identifier},`${x}: `,v(h,{inline:!0,refs:_}))}))),r.wrapper===null)return S;let g=r.wrapper||(r.forceInline?"span":"div"),y;if(S.length>1||r.forceWrapper)y=S;else return S.length===1?S[0]:null;var f=r.wrapperProps?{...r.wrapperProps}:{};return f.children=y,Mc(g,f,"outer")}function qc(e="",t={}){let r={...t||{}};r.overrides=r.overrides||{},r.slugify,r.sanitizer;function n(i){let a=r.forceInline||!(r.forceBlock||Nv.test(i)),o=al(r,a),c=a?i:Vv(i),l=ll(c,{inline:a,refs:s},o);return Tb(l,{...r,forceInline:a})}let s={};return n(e)}function Mb(e){let t=Z.useRef(e),r=t.current;if(r!==e){var n=!0,s=0;for(var i in e)if(s++,!Object.is(r[i],e[i])){n=!1;break}if(n){var a=0;for(var o in r)a++;n=a===s}n||(t.current=e)}return t.current}var qi=({children:e,options:t,...r})=>{if(!(typeof Z.useContext<"u")){let o={...t,overrides:{...t?.overrides},wrapperProps:{...t?.wrapperProps,...r}};return qc(e??"",o)}let n=Zu?Z.useContext(Zu):void 0,s=Mb(r),i=Z.useMemo(()=>({...n,...t,overrides:{...n?.overrides,...t?.overrides},wrapperProps:{...n?.wrapperProps,...t?.wrapperProps,...s}}),[n,t,s]),a=e??"";return Z.useMemo(()=>qc(a,i),[a,i])};const Lm=Symbol("remove-this-key"),ed=Symbol("reset");function qb(e,t){return Array.isArray(e.required)&&e.required.includes(t)}function Ub(e,t){switch(t){case"array":return[];case"boolean":return!1;case"null":return null;case"number":return 0;case"object":return{};case"string":default:return e($e.NewStringDefault)}}function Vm(e){return!!e?.[Sn]}function td(e){return Object.keys(e).filter(t=>Vm(e[t]))}function Lb(e){const{fieldPathId:t,schema:r,registry:n,uiSchema:s,errorSchema:i,formData:a,onChange:o,onBlur:c,onFocus:l,disabled:u,readonly:m,required:_,hideError:v,propertyName:S,handleKeyRename:E,handleRemoveProperty:g,addedByAdditionalProperties:y}=e,[f,C]=Z.useState(!1),{globalFormOptions:x,fields:h}=n,{SchemaField:b}=h,O=ci(nr(S,x,t.path)),k=Z.useCallback((U,L,B,J)=>{let Y=U;U===void 0&&y&&je(L,O.path)&&(Y=""),o(Y,L,B,J)},[o,y,O]),$=Z.useCallback(U=>{S!==U&&C(!0),E(S,U)},[S,E]),M=Z.useCallback(U=>{const{target:{value:L}}=U;$(L)},[$]),q=Z.useCallback(()=>{g(S)},[S,g]);return N.jsx(b,{name:S,required:_,schema:r,uiSchema:s,errorSchema:i,fieldPathId:O,formData:a,wasPropertyKeyModified:f,onKeyRename:$,onKeyRenameBlur:M,onRemoveProperty:q,onChange:k,onBlur:c,onFocus:l,registry:n,disabled:u,readonly:m,hideError:v})}const Vb=Z.memo(Lb);function zb(e){const{schema:t,uiSchema:r={},formData:n,errorSchema:s,fieldPathId:i,name:a,required:o=!1,disabled:c,readonly:l,hideError:u,onBlur:m,onFocus:_,onChange:v,registry:S,title:E}=e,{fields:g,schemaUtils:y,translateString:f,globalUiOptions:C}=S,{OptionalDataControlsField:x}=g,h=Z.useRef(n);h.current=n;const b=Z.useMemo(()=>y.retrieveSchema(t,n,!0),[y,t,n]),O=Z.useMemo(()=>pe(r,C),[r,C]),k=Z.useMemo(()=>b.properties??{},[b.properties]),$=e.childFieldPathId??i,M=Z.useRef({previousKey:"",currentKey:void 0}),[q,U]=Z.useState(()=>td(k)),L=Z.useMemo(()=>{const T=new Set(td(k));return Object.keys(k).filter(F=>!T.has(F))},[k]),B=O.title??b.title??E??a,J=O.description??b.description,Y=Di(S,b,o,r),Q=oi(n);let X=[];const re=Z.useCallback((T,F)=>{const{duplicateKeySuffixSeparator:z="-"}=pe(r,C);let H=0,R=T;for(;lt(F,R);)H+=1,R=`${T}${z}${H}`;return R},[r,C]),A=Z.useCallback(()=>{if(!(b.additionalProperties||b.patternProperties))return;const T={...n},F=re("newKey",T);if(b.patternProperties)st(T,F,null);else{let z,H,R;if(ue(b.additionalProperties)){z=b.additionalProperties.type,H=b.additionalProperties.const,R=b.additionalProperties.default;let V=b.additionalProperties;Je in V&&(V=y.retrieveSchema({[Je]:V[Je]},n),z=V.type,H=V.const,R=y.getDefaultFormState(V,R)),!z&&(Ne in V||Se in V)&&(z="object")}const D=H??R??Ub(f,z);st(T,F,D)}M.current.previousKey===F&&(M.current.currentKey=F,M.current.previousKey=re(F,T)),U(z=>[...z,F]),v(T,$.path)},[n,v,f,y,$,re,b]),w=Z.useCallback((T,F)=>{if(T!==F){const z=h.current,H=re(F,z),R={...z},D={[T]:H},V=Object.keys(R).map(G=>({[Object.hasOwn(D,G)?D[G]:G]:R[G]})),K=Object.assign({},...V);h.current=K,T!==M.current.currentKey&&(M.current.previousKey=T),M.current.currentKey=H,U(G=>G.map(W=>W===T?H:W)),v(K,$.path)}},[v,$,re]),j=Z.useCallback(T=>{U(F=>F.filter(z=>z!==T)),v(Lm,[...$.path,T])},[v,$]),p=Z.useCallback(T=>M.current.currentKey===T?M.current.previousKey:T,[]);if(!Y||Q)try{const T=new Set(L),F=q.filter(z=>Object.hasOwn(k,z)&&!T.has(z));X=C0([...L,...F],O.order)}catch(T){return N.jsxs("div",{children:[N.jsx("p",{className:"rjsf-config-error",style:{color:"red"},children:N.jsx(qi,{options:{disableParsingRawHTML:!0},children:f($e.InvalidObjectField,[a||"root",T.message])})}),N.jsx("pre",{children:JSON.stringify(b)})]})}const d=_e("ObjectFieldTemplate",S,O),P=Y?N.jsx(x,{...e,fieldPathId:$,schema:b}):void 0,I={title:O.label===!1?"":B,description:O.label===!1?void 0:J,properties:X.map(T=>{const F=Vm(b.properties?.[T]),z=F?r.additionalProperties:r[T],H=pe(z).widget==="hidden";return{content:N.jsx(Vb,{propertyName:T,required:qb(b,T),schema:gr(b,T),uiSchema:z,errorSchema:me(s,T),fieldPathId:$,formData:me(n,T),handleKeyRename:w,handleRemoveProperty:j,addedByAdditionalProperties:F,onChange:v,onBlur:m,onFocus:_,registry:S,disabled:c,readonly:l,hideError:u},p(T)),name:T,readonly:l,disabled:c,required:o,hidden:H}}),readonly:l,disabled:c,required:o,fieldPathId:i,uiSchema:r,errorSchema:s,schema:b,formData:n,registry:S,optionalDataControl:P,className:Y?"rjsf-optional-object-field":void 0};return N.jsx(d,{...I,onAddProperty:A})}function Bb(e){const{schema:t,uiSchema:r={},formData:n,disabled:s=!1,readonly:i=!1,onChange:a,errorSchema:o,fieldPathId:c,registry:l}=e,{globalUiOptions:u={},schemaUtils:m,translateString:_}=l,v=pe(r,u),S=_e("OptionalDataControlsTemplate",l,v),E=oi(n);let g,y,f,C;if(s||i)g=$o(c,"Msg"),y=E?void 0:_($e.OptionalObjectEmptyMsg);else{const x=E?$e.OptionalObjectRemove:$e.OptionalObjectAdd;y=_(x),E?(g=$o(c,"Remove"),C=()=>a(void 0,c.path,o)):(g=$o(c,"Add"),f=()=>{let h=m.getDefaultFormState(t,n,"excludeObjectChildren");h===void 0&&(h=Gt(t)==="array"?[]:{}),a(h,c.path,o)})}return y&&N.jsx(S,{id:g,registry:l,schema:t,uiSchema:r,label:y,onAddClick:f,onRemoveClick:C})}const Hb={array:"ArrayField",boolean:"BooleanField",integer:"NumberField",number:"NumberField",object:"ObjectField",string:"StringField",null:"NullField"};function Kb(e,t,r){const{field:n}=t,{fields:s,schemaUtils:i}=r;if(typeof n=="function")return n;if(typeof n=="string"&&n in s)return s[n];const a=Gt(e),o=Array.isArray(a)?a[0]:a||"",c=e.$id;let l=Hb[o];return c&&c in s&&(l=c),(e.anyOf||e.oneOf)&&!i.isSelect(e)&&l!=="ObjectField"?()=>null:l in s?s[l]:s.FallbackField}function Gb(e){const{schema:t,fieldPathId:r,uiSchema:n,formData:s,errorSchema:i,name:a,onChange:o,onKeyRename:c,onKeyRenameBlur:l,onRemoveProperty:u,required:m=!1,registry:_,wasPropertyKeyModified:v=!1}=e,{schemaUtils:S,globalFormOptions:E,globalUiOptions:g,fields:y}=_,{AnyOfField:f,OneOfField:C,CyclicSchemaField:x}=y,h=r[Ue],b=Z.useCallback((ge,Fe,fe,Ye)=>o(ge,Fe,fe,Ye||h),[h,o]);if(t[zc])return N.jsx(x,{...e});const O=E0(t,n,_),k=pe(O,g),$=_e("FieldTemplate",_,k),M=_e("DescriptionFieldTemplate",_,k),q=_e("FieldHelpTemplate",_,k),U=_e("FieldErrorTemplate",_,k),L=S.retrieveSchema(t,s),B=Kb(L,k,_),Y=!!L.deprecated?k.deprecatedHandling??"label":void 0,Q=!!(k.disabled??e.disabled)||Y==="disable",X=!!(k.readonly??(e.readonly||e.schema.readOnly||L.readOnly)),re=k.hideError,A=re===void 0?e.hideError:!!re,w=!!(k.autofocus??e.autofocus);if(Object.keys(L).length===0)return null;let j=S.getDisplayLabel(L,O,g);const p=k.field&&k.fieldReplacesAnyOrOneOf===!0;let d,P,I={fieldPathId:r};if((Ne in L||Se in L)&&!p&&!S.isSelect(L)){L[Ne]?(d=f,P=L[Ne].map(fe=>S.retrieveSchema(ue(fe)?fe:{},s))):L[Se]&&(d=C,P=L[Se].map(fe=>S.retrieveSchema(ue(fe)?fe:{},s)));const ge=Di(_,L,m,O),Fe=oi(s);j=j&&(!ge||Fe),I={childFieldPathId:r,fieldPathId:nr("XxxOf",E,r)}}const{__errors:T,...F}=i||{},{"ui:classNames":z,classNames:H,"ui:style":R,...D}=O;if(Br in D){const{classNames:ge,style:Fe,...fe}=D[Br];D[Br]=fe}const V=N.jsx(B,{...e,onChange:b,...I,schema:L,uiSchema:D,disabled:Q,readonly:X,hideError:A,autofocus:w,errorSchema:F,rawErrors:T}),K=r[Ue];let G;v?G=a:G=Sn in L?a:k.title||e.schema.title||L.title||e.title||a,Y==="label"&&(G=_.translateString($e.DeprecatedLabel,[G]));const W=k.description||e.schema.description||L.description||"",{help:te}=k,ne=k.widget==="hidden"||Y==="hide",se=["rjsf-field",`rjsf-field-${Gt(L)}`];!A&&T&&T.length>0&&se.push("rjsf-field-error"),k.classNames&&se.push(k.classNames);const ce=N.jsx(q,{help:te,fieldPathId:r,schema:L,uiSchema:O,hasErrors:!A&&T&&T.length>0,registry:_}),he=A||d&&!S.isSelect(L)?void 0:N.jsx(U,{errors:T,errorSchema:i,fieldPathId:r,schema:L,uiSchema:O,registry:_}),le={description:N.jsx(M,{id:ai(K),description:W,schema:L,uiSchema:O,registry:_}),rawDescription:W,help:ce,rawHelp:typeof te=="string"?te:void 0,errors:he,rawErrors:A?void 0:T,fieldPathId:r,id:K,label:G,hidden:ne,onChange:o,onKeyRename:c,onKeyRenameBlur:l,onRemoveProperty:u,required:m,disabled:Q,readonly:X,hideError:A,displayLabel:j,classNames:se.join(" ").trim(),style:k.style,formData:s,schema:L,uiSchema:O,registry:_};return N.jsx($,{...le,children:N.jsxs(N.Fragment,{children:[V,d&&N.jsx(d,{name:a,disabled:Q,readonly:X,hideError:A,errorSchema:i,formData:s,fieldPathId:r,onBlur:e.onBlur,onChange:e.onChange,onFocus:e.onFocus,options:P,registry:_,required:m,schema:L,uiSchema:O})]})})}const Wb=Z.memo(Gb,(e,t)=>{const{experimental_componentUpdateStrategy:r="customDeep"}=t.registry.globalFormOptions;return r==="always"?!1:r==="shallow"?_c(e,t):je(e,t)});function Jb(e){const{schema:t,name:r,uiSchema:n,fieldPathId:s,formData:i,required:a,disabled:o=!1,readonly:c=!1,autofocus:l=!1,onChange:u,onBlur:m,onFocus:_,registry:v,rawErrors:S,hideError:E,title:g}=e,{title:y,format:f}=t,{widgets:C,schemaUtils:x,globalUiOptions:h}=v,b=x.isSelect(t)?Pn(t,n):void 0;let O=b?"select":"text";f&&v0(t,f,C)&&(O=f);const{widget:k=O,placeholder:$="",title:M,...q}=pe(n),U=x.getDisplayLabel(t,n,h),L=M??g??y??r,B=vr(t,k,C),J=Z.useCallback((Y,Q,X)=>u(Y,s.path,Q,X),[u,s]);return N.jsx(B,{options:{...q,enumOptions:b},schema:t,uiSchema:n,id:s.$id,name:r,label:L,hideLabel:!U,hideError:E,value:i,onChange:J,onBlur:m,onFocus:_,required:a,disabled:o,readonly:c,autofocus:l,registry:v,placeholder:$,rawErrors:S,htmlName:s.name})}function Yb(){return{AnyOfField:wu,ArrayField:W0,BooleanField:J0,CyclicSchemaField:Y0,FallbackField:ev,LayoutGridField:il,LayoutHeaderField:hv,LayoutMultiSchemaField:mv,NumberField:vv,ObjectField:zb,OneOfField:wu,OptionalDataControlsField:Bb,SchemaField:Wb,StringField:Jb,NullField:pv}}function Xb(e){const{fieldPathId:t,description:r,registry:n,schema:s,uiSchema:i}=e,a=pe(i,n.globalUiOptions),{label:o=!0}=a;if(!r||!o)return null;const c=_e("DescriptionFieldTemplate",n,a);return N.jsx(c,{id:ai(t),description:r,schema:s,uiSchema:i,registry:n})}function Zb(e){const{disabled:t,hasCopy:r,hasMoveDown:n,hasMoveUp:s,hasRemove:i,fieldPathId:a,onCopyItem:o,onRemoveItem:c,onMoveDownItem:l,onMoveUpItem:u,readonly:m,registry:_,uiSchema:v}=e,{CopyButton:S,MoveDownButton:E,MoveUpButton:g,RemoveButton:y}=_.templates.ButtonTemplates;return N.jsxs(N.Fragment,{children:[(s||n)&&N.jsx(g,{id:_n(a,"moveUp"),className:"rjsf-array-item-move-up",disabled:t||m||!s,onClick:u,uiSchema:v,registry:_}),(s||n)&&N.jsx(E,{id:_n(a,"moveDown"),className:"rjsf-array-item-move-down",disabled:t||m||!n,onClick:l,uiSchema:v,registry:_}),r&&N.jsx(S,{id:_n(a,"copy"),className:"rjsf-array-item-copy",disabled:t||m,onClick:o,uiSchema:v,registry:_}),i&&N.jsx(y,{id:_n(a,"remove"),className:"rjsf-array-item-remove",disabled:t||m,onClick:c,uiSchema:v,registry:_})]})}function Qb(e){const{children:t,className:r,buttonsProps:n,displayLabel:s,hasDescription:i,hasToolbar:a,registry:o,uiSchema:c}=e,l=pe(c),u=_e("ArrayFieldItemButtonsTemplate",o,l),m={flex:1,paddingLeft:6,paddingRight:6,fontWeight:"bold"},_=i?31:9,v={display:"flex",alignItems:s?"center":"baseline"},S={display:"flex",justifyContent:"flex-end",marginTop:s?`${_}px`:0};return N.jsxs("div",{className:r,style:v,children:[N.jsx("div",{className:a?"col-xs-9 col-md-10 col-xl-11":"col-xs-12",children:t}),a&&N.jsx("div",{className:"col-xs-3 col-md-2 col-xl-1 array-item-toolbox",children:N.jsx("div",{className:"btn-group",style:S,children:N.jsx(u,{...n,style:m})})})]})}function e_(e){const{canAdd:t,className:r,disabled:n,fieldPathId:s,uiSchema:i,items:a,optionalDataControl:o,onAddClick:c,readonly:l,registry:u,required:m,schema:_,title:v}=e,S=pe(i),E=_e("ArrayFieldDescriptionTemplate",u,S),g=_e("ArrayFieldTitleTemplate",u,S),y=!l&&!n,{ButtonTemplates:{AddButton:f}}=u.templates;return N.jsxs("fieldset",{className:r,id:s.$id,children:[N.jsx(g,{fieldPathId:s,title:S.title||v,required:m,schema:_,uiSchema:i,registry:u,optionalDataControl:y?o:void 0}),N.jsx(E,{fieldPathId:s,description:S.description||_.description,schema:_,uiSchema:i,registry:u}),y?void 0:o,N.jsx("div",{className:"row array-item-list",children:a}),t&&N.jsx(f,{id:_n(s,"add"),className:"rjsf-array-item-add",onClick:c,disabled:n||l,uiSchema:i,registry:u})]})}function t_(e){const{fieldPathId:t,title:r,schema:n,uiSchema:s,required:i,registry:a,optionalDataControl:o}=e,c=pe(s,a.globalUiOptions),{label:l=!0}=c;if(!r||!l)return null;const u=_e("TitleFieldTemplate",a,c);return N.jsx(u,{id:tl(t),title:r,required:i,schema:n,uiSchema:s,registry:a,optionalDataControl:o})}function r_(e){const{id:t,schema:r}=e,{examples:n,default:s}=r;return Array.isArray(n)?N.jsx("datalist",{id:el(t),children:n.concat(s!==void 0&&!n.map(String).includes(String(s))?[s]:[]).map(i=>N.jsx("option",{value:i},String(i)))},`datalist_${t}`):null}function n_(e){const{id:t,name:r,htmlName:n,value:s,readonly:i,disabled:a,autofocus:o,onBlur:c,onFocus:l,onChange:u,onChangeOverride:m,options:_,schema:v,uiSchema:S,registry:E,rawErrors:g,type:y,hideLabel:f,hideError:C,...x}=e,{ClearButton:h}=E.templates.ButtonTemplates;if(!t)throw console.log("No id for",e),new Error(`no id for props ${JSON.stringify(e)}`);const b={...x,...d0(v,y,_)};let O;b.type==="number"||b.type==="integer"?O=s||s===0?s:"":O=s??"";const k=Z.useCallback(({target:{value:U}})=>u(U===""?_.emptyValue:U),[u,_]),$=Z.useCallback(({target:U})=>c(t,U?.value),[c,t]),M=Z.useCallback(({target:U})=>l(t,U?.value),[l,t]),q=Z.useCallback(U=>{U.preventDefault(),U.stopPropagation(),u(_.emptyValue)},[u,_.emptyValue]);return N.jsxs(N.Fragment,{children:[N.jsx("input",{id:t,name:n||t,className:"form-control",readOnly:i,disabled:a,autoFocus:o,value:O,...b,list:v.examples?el(t):void 0,onChange:m||k,onBlur:$,onFocus:M,"aria-describedby":$n(t,!!v.examples)}),_.allowClearTextInputs&&!i&&!a&&O&&N.jsx(h,{registry:E,onClick:q}),N.jsx(r_,{id:t,schema:v})]})}function i_(e){const{iconType:t="default",icon:r,className:n,uiSchema:s,registry:i,...a}=e;return N.jsx("button",{type:"button",className:`btn btn-${t} ${n}`,...a,children:N.jsx("i",{className:`glyphicon glyphicon-${r}`})})}const tn=Z.memo(i_);function s_(e){const{registry:{translateString:t}}=e;return N.jsx(tn,{title:t($e.CopyButton),...e,icon:"copy"})}const a_=Z.memo(s_);function o_(e){const{registry:{translateString:t}}=e;return N.jsx(tn,{title:t($e.MoveDownButton),...e,icon:"arrow-down"})}const c_=Z.memo(o_);function l_(e){const{registry:{translateString:t}}=e;return N.jsx(tn,{title:t($e.MoveUpButton),...e,icon:"arrow-up"})}const u_=Z.memo(l_);function d_(e){const{registry:{translateString:t}}=e;return N.jsx(tn,{title:t($e.RemoveButton),...e,iconType:"danger",icon:"remove"})}const f_=Z.memo(d_);function h_({id:e,className:t,onClick:r,disabled:n,registry:s,...i}){const{translateString:a}=s;return N.jsx(tn,{id:e,iconType:"default",icon:"remove",className:"btn-clear col-xs-12",title:a($e.ClearButton),onClick:r,disabled:n,registry:s,...i})}const m_=Z.memo(h_);function p_({id:e,className:t,onClick:r,disabled:n,registry:s}){const{translateString:i}=s;return N.jsx("div",{className:"row",children:N.jsx("p",{className:`col-xs-4 col-sm-2 col-lg-1 col-xs-offset-8 col-sm-offset-10 col-lg-offset-11 text-right ${t}`,children:N.jsx(tn,{id:e,iconType:"info",icon:"plus",className:"btn-add col-xs-12",title:i($e.AddButton),onClick:r,disabled:n,registry:s})})})}function y_({uiSchema:e}){const{submitText:t,norender:r,props:n={}}=f0(e);return r?null:N.jsx("div",{children:N.jsx("button",{type:"submit",...n,className:`btn btn-info ${n.className||""}`,children:t})})}function g_(){return{SubmitButton:y_,AddButton:p_,CopyButton:a_,MoveDownButton:c_,MoveUpButton:u_,RemoveButton:f_,ClearButton:m_}}function v_(e){const{name:t,fieldPathId:r,registry:n,onExpand:s}=e,{translateString:i}=n,a=`${r[Ue]}-button`;return N.jsxs("div",{style:{marginTop:"1rem"},children:[N.jsx("div",{className:"text-danger",children:i($e.CycleDetected,[t])}),N.jsxs("div",{children:[N.jsx("button",{id:a,type:"button",className:"btn btn-sm btn-warning",onClick:()=>s(r[Ue]),children:i($e.ExpandButton)})," "]})]})}const zm=Qc();function Bm({description:e,registry:t,uiSchema:r={}}){const{globalUiOptions:n}=t;return pe(r,n).enableMarkdownInDescription&&typeof e=="string"?N.jsx(qi,{options:{disableParsingRawHTML:!0},"data-testid":zm.markdown,children:e}):e}Bm.TEST_IDS=zm;function b_(e){const{id:t,description:r,registry:n,uiSchema:s}=e;return r?N.jsx("div",{id:t,className:"field-description",children:N.jsx(Bm,{description:r,registry:n,uiSchema:s})}):null}function __({errors:e,registry:t}){const{translateString:r}=t;return N.jsxs("div",{className:"panel panel-danger errors",children:[N.jsx("div",{className:"panel-heading",children:N.jsx("h3",{className:"panel-title",children:r($e.ErrorsLabel)})}),N.jsx("ul",{className:"list-group",children:e.map((n,s)=>N.jsx("li",{className:"list-group-item text-danger",children:n.stack},s))})]})}function S_(e){const{schema:t,registry:r,typeSelector:n,schemaField:s}=e,i=_e("MultiSchemaFieldTemplate",r);return N.jsx(i,{selector:n,optionSchemaField:s,schema:t,registry:r})}function w_(e){const{errors:t=[],fieldPathId:r}=e;if(t.length===0)return null;const n=vm(r);return N.jsx("div",{children:N.jsx("ul",{id:n,className:"error-detail bs-callout bs-callout-info",children:t.filter(s=>!!s).map((s,i)=>N.jsx("li",{className:"text-danger",children:s},i))})})}const Hm=Qc();function Km({help:e,registry:t,uiSchema:r={}}){const{globalUiOptions:n}=t;return pe(r,n).enableMarkdownInHelp&&typeof e=="string"?N.jsx(qi,{options:{disableParsingRawHTML:!0},"data-testid":Hm.markdown,children:e}):e}Km.TEST_IDS=Hm;function C_(e){const{fieldPathId:t,help:r,uiSchema:n,registry:s}=e;return r?N.jsx("div",{id:bm(t),className:"help-block",children:N.jsx(Km,{help:r,registry:s,uiSchema:n})}):null}const E_="*";function Gm(e){const{label:t,required:r,id:n}=e;return t?N.jsxs("label",{className:"control-label",htmlFor:n,children:[t,r&&N.jsx("span",{className:"required",children:E_})]}):null}function A_(e){const{id:t,label:r,children:n,errors:s,help:i,description:a,hidden:o,required:c,displayLabel:l,registry:u,uiSchema:m}=e,_=pe(m),v=_e("WrapIfAdditionalTemplate",u,_);if(o)return N.jsx("div",{className:"hidden",children:n});const S=_.widget==="checkbox";return N.jsxs(v,{...e,children:[l&&!S&&N.jsx(Gm,{label:r,required:c,id:t}),l&&a?a:null,n,s,i]})}function P_(e){const{children:t,column:r,className:n,...s}=e;return N.jsx("div",{className:n,...s,children:t})}function x_(e){const{selector:t,optionSchemaField:r}=e;return N.jsxs("div",{className:"panel panel-default panel-body",children:[N.jsx("div",{className:"form-group",children:t}),r]})}function O_(e){const{className:t,description:r,disabled:n,formData:s,fieldPathId:i,onAddProperty:a,optionalDataControl:o,properties:c,readonly:l,registry:u,required:m,schema:_,title:v,uiSchema:S}=e,E=pe(S),g=_e("TitleFieldTemplate",u,E),y=_e("DescriptionFieldTemplate",u,E);if((_.oneOf||_.anyOf)&&!_.properties&&c.length===0)return null;const C=!l&&!n,{ButtonTemplates:{AddButton:x}}=u.templates;return N.jsxs("fieldset",{className:t,id:i.$id,children:[v&&N.jsx(g,{id:tl(i),title:v,required:m,schema:_,uiSchema:S,registry:u,optionalDataControl:C?o:void 0}),r&&N.jsx(y,{id:ai(i),description:r,schema:_,uiSchema:S,registry:u}),C?void 0:o,c.map(h=>h.content),xy(_,S,s)&&N.jsx(x,{id:_n(i,"add"),className:"rjsf-object-property-expand",onClick:a,disabled:n||l,uiSchema:S,registry:u})]})}function j_(e){const{id:t,registry:r,label:n,onAddClick:s,onRemoveClick:i}=e;return s?N.jsx(tn,{id:t,registry:r,icon:"plus",className:"rjsf-add-optional-data btn-sm",onClick:s,title:n}):i?N.jsx(tn,{id:t,registry:r,icon:"remove",className:"rjsf-remove-optional-data btn-sm",onClick:i,title:n}):N.jsx("em",{id:t,children:n})}const k_="*";function I_(e){const{id:t,title:r,required:n,optionalDataControl:s}=e;return N.jsxs("legend",{id:t,children:[r,n&&N.jsx("span",{className:"required",children:k_}),s&&N.jsx("span",{className:"pull-right",style:{marginBottom:"2px"},children:s})]})}function N_(e){const{schema:t,fieldPathId:r,reason:n,registry:s}=e,{translateString:i}=s;let a=$e.UnsupportedField;const o=[];return r?.$id&&(a=$e.UnsupportedFieldWithId,o.push(r.$id)),n&&(a=a===$e.UnsupportedField?$e.UnsupportedFieldWithReason:$e.UnsupportedFieldWithIdAndReason,o.push(n)),N.jsxs("div",{className:"unsupported-field",children:[N.jsx("p",{children:N.jsx(qi,{options:{disableParsingRawHTML:!0},children:i(a,o)})}),t&&N.jsx("pre",{children:JSON.stringify(t,null,2)})]})}function R_(e){const{id:t,classNames:r,style:n,disabled:s,displayLabel:i,label:a,onKeyRenameBlur:o,onRemoveProperty:c,rawDescription:l,readonly:u,required:m,schema:_,hideError:v,rawErrors:S,children:E,uiSchema:g,registry:y}=e,{templates:f,translateString:C}=y,{RemoveButton:x}=f.ButtonTemplates,h=C($e.KeyLabel,[a]),b=Sn in _,O=!!l,k=["form-group",r];!v&&S&&S.length>0&&k.push("has-error has-danger");const $=k.join(" ").trim();if(!b)return N.jsx("div",{className:$,style:n,children:E});const M=O?46:26;return N.jsx("div",{className:$,style:n,children:N.jsxs("div",{className:"row",children:[N.jsx("div",{className:"col-xs-5 form-additional",children:N.jsxs("div",{className:"form-group",children:[i&&N.jsx(Gm,{label:h,required:m,id:`${t}-key`}),i&&l&&N.jsx("div",{children:" "}),N.jsx("input",{className:"form-control",type:"text",id:`${t}-key`,onBlur:o,defaultValue:a},a)]})}),N.jsx("div",{className:"form-additional form-group col-xs-5",children:E}),N.jsx("div",{className:"col-xs-2",style:{marginTop:i?`${M}px`:void 0},children:N.jsx(x,{id:_n(t,"remove"),className:"rjsf-object-property-remove btn-block",style:{border:"0"},disabled:s||u,onClick:c,uiSchema:g,registry:y})})]})})}function $_(){return{ArrayFieldDescriptionTemplate:Xb,ArrayFieldItemTemplate:Qb,ArrayFieldItemButtonsTemplate:Zb,ArrayFieldTemplate:e_,ArrayFieldTitleTemplate:t_,ButtonTemplates:g_(),BaseInputTemplate:n_,CyclicSchemaExpandTemplate:v_,DescriptionFieldTemplate:b_,ErrorListTemplate:__,FallbackFieldTemplate:S_,FieldTemplate:A_,FieldErrorTemplate:w_,FieldHelpTemplate:C_,GridTemplate:P_,MultiSchemaFieldTemplate:x_,ObjectFieldTemplate:O_,OptionalDataControlsTemplate:j_,TitleFieldTemplate:I_,UnsupportedFieldTemplate:N_,WrapIfAdditionalTemplate:R_}}function F_({time:e=!0,...t}){const{AltDateWidget:r}=t.registry.widgets;return N.jsx(r,{time:e,...t})}function D_(e){const{disabled:t=!1,readonly:r=!1,autofocus:n=!1,options:s,id:i,name:a,registry:o,onBlur:c,onFocus:l}=e,{translateString:u}=o,{elements:m,handleChange:_,handleClear:v,handleSetNow:S}=I0(e);return N.jsxs("ul",{className:"list-inline",children:[m.map((E,g)=>N.jsx("li",{className:"list-inline-item",children:N.jsx(k0,{rootId:i,name:a,select:_,...E,disabled:t,readonly:r,registry:o,onBlur:c,onFocus:l,autofocus:n&&g===0})},g)),(s.hideNowButton!=="undefined"?!s.hideNowButton:!0)&&N.jsx("li",{className:"list-inline-item",children:N.jsx("button",{type:"button",className:"btn btn-info btn-now",onClick:S,children:u($e.NowLabel)})}),(s.hideClearButton!=="undefined"?!s.hideClearButton:!0)&&N.jsx("li",{className:"list-inline-item",children:N.jsx("button",{type:"button",className:"btn btn-warning btn-clear",onClick:v,children:u($e.ClearLabel)})})]})}function T_({id:e,disabled:t,options:r,value:n,autofocus:s=!1,readonly:i,onChange:a,onBlur:o,onFocus:c,htmlName:l}){const{inline:u=!1,enumOptions:m,enumDisabled:_,emptyValue:v}=r,S=Zc(r),E=Array.isArray(n)?n:[n],g=Z.useCallback(({target:f})=>o(e,Cn(f?.value,m,S,v)),[o,e,m,v,S]),y=Z.useCallback(({target:f})=>c(e,Cn(f?.value,m,S,v)),[c,e,m,v,S]);return N.jsx("div",{className:"checkboxes",id:e,children:Array.isArray(m)&&m.map((f,C)=>{const x=Wa(f.value,E),h=Array.isArray(_)&&_.includes(f.value),b=t||h||i?"disabled":"",O=$=>{$.target.checked?a(c0(C,E,m)):a(a0(C,E,m))},k=N.jsxs("span",{children:[N.jsx("input",{type:"checkbox",id:_m(e,C),name:l||e,checked:x,value:Xc(f.value,C,S),disabled:t||h||i,autoFocus:s&&C===0,onChange:O,onBlur:g,onFocus:y,"aria-describedby":$n(e)}),N.jsx("span",{children:f.label})]});return u?N.jsx("label",{className:`checkbox-inline ${b}`,children:k},String(f.value)):N.jsx("div",{className:`checkbox ${b}`,children:N.jsx("label",{children:k})},String(f.value))})})}function M_({schema:e,uiSchema:t,options:r,id:n,value:s,disabled:i,readonly:a,label:o,hideLabel:c,autofocus:l=!1,onBlur:u,onFocus:m,onChange:_,registry:v,htmlName:S,required:E}){const g=_e("DescriptionFieldTemplate",v,r),y=Aa(e)&&E,f=Z.useCallback(k=>_(k.target.checked),[_]),C=Z.useCallback(k=>u(n,k.target.checked),[u,n]),x=Z.useCallback(k=>m(n,k.target.checked),[m,n]),O=pe(t).widget==="checkbox"?void 0:r.description??e.description;return N.jsxs("div",{className:`checkbox ${i||a?"disabled":""}`,children:[!c&&O&&N.jsx(g,{id:ai(n),description:O,schema:e,uiSchema:t,registry:v}),N.jsxs("label",{children:[N.jsx("input",{type:"checkbox",id:n,name:S||n,checked:typeof s>"u"?!1:s,required:E,disabled:i||a,autoFocus:l,onChange:f,onBlur:C,onFocus:x,"aria-describedby":$n(n)}),_0(N.jsxs("span",{children:[o,y&&N.jsx("span",{className:"required",children:"*"})]}),c)]})]})}function q_(e){const{disabled:t,readonly:r,options:n,registry:s}=e,i=_e("BaseInputTemplate",s,n);return N.jsx(i,{type:"color",...e,disabled:t||r})}function U_(e){const{onChange:t,value:r,options:n,registry:s}=e,i=_e("BaseInputTemplate",s,n);return N.jsx(i,{type:"datetime-local",...e,value:D0(r),onChange:a=>t(S0(a))})}function L_(e){const{onChange:t,options:r,registry:n}=e,s=_e("BaseInputTemplate",n,r),i=Z.useCallback(a=>t(a||void 0),[t]);return N.jsx(s,{type:"date",...e,onChange:i})}function V_(e){const{options:t,registry:r}=e,n=_e("BaseInputTemplate",r,t);return N.jsx(n,{type:"email",...e})}function z_({fileInfo:e,registry:t}){const{translateString:r}=t,{dataURL:n,type:s,name:i}=e;if(!n)return null;const a=r($e.PreviewLabel);return["image/jpeg","image/png"].includes(s)?N.jsx("img",{src:n,alt:a,style:{maxWidth:"100%"},className:"file-preview"}):N.jsxs(N.Fragment,{children:[" ",N.jsx("a",{download:`preview-${i}`,href:n,className:"file-download",children:a})]})}function B_({filesInfo:e,registry:t,preview:r,onRemove:n,options:s}){if(e.length===0)return null;const{translateString:i}=t,{RemoveButton:a}=_e("ButtonTemplates",t,s);return N.jsx("ul",{className:"file-info",children:e.map((o,c)=>{const{name:l,size:u,type:m}=o,_=()=>n(c);return N.jsxs("li",{children:[N.jsx(qi,{children:i($e.FilesInfo,[l,m,String(u)])}),r&&N.jsx(z_,{fileInfo:o,registry:t}),N.jsx(a,{onClick:_,registry:t})]},c)})})}function H_(e){const{disabled:t,readonly:r,required:n,multiple:s,onChange:i,value:a,options:o,registry:c}=e,{filesInfo:l,handleChange:u,handleRemove:m}=F0(a,i,s),_=_e("BaseInputTemplate",c,o),v=S=>{S.target.files&&u(S.target.files)};return N.jsxs("div",{children:[N.jsx(_,{...e,disabled:t||r,type:"file",required:a?!1:n,onChangeOverride:v,value:"",accept:o.accept?String(o.accept):void 0}),N.jsx(B_,{filesInfo:l,onRemove:m,registry:c,preview:o.filePreview,options:o})]})}function K_({id:e,value:t,htmlName:r}){return N.jsx("input",{type:"hidden",id:e,name:r||e,value:typeof t>"u"?"":t})}function G_(e){const{options:t,registry:r}=e,n=_e("BaseInputTemplate",r,t);return N.jsx(n,{type:"password",...e})}function W_({options:e,value:t,required:r,disabled:n,readonly:s,autofocus:i=!1,onBlur:a,onFocus:o,onChange:c,id:l,htmlName:u}){const{enumOptions:m,enumDisabled:_,inline:v,emptyValue:S}=e,E=Zc(e),g=Z.useCallback(({target:f})=>a(l,Cn(f?.value,m,E,S)),[a,m,S,l,E]),y=Z.useCallback(({target:f})=>o(l,Cn(f?.value,m,E,S)),[o,m,S,l,E]);return N.jsx("div",{className:"field-radio-group",id:l,role:"radiogroup",children:Array.isArray(m)&&m.map((f,C)=>{const x=Wa(f.value,t),h=Array.isArray(_)&&_.includes(f.value),b=n||h||s?"disabled":"",O=()=>c(f.value),k=N.jsxs("span",{children:[N.jsx("input",{type:"radio",id:_m(l,C),checked:x,name:u||l,required:r,value:Xc(f.value,C,E),disabled:n||h||s,autoFocus:i&&C===0,onChange:O,onBlur:g,onFocus:y,"aria-describedby":$n(l)}),N.jsx("span",{children:f.label})]});return v?N.jsx("label",{className:`radio-inline ${b}`,children:k},String(f.value)):N.jsx("div",{className:`radio ${b}`,children:N.jsx("label",{children:k})},String(f.value))})})}function J_(e){const{value:t,registry:{templates:{BaseInputTemplate:r}}}=e;return N.jsxs("div",{className:"field-range-wrapper",children:[N.jsx(r,{type:"range",...e}),N.jsx("span",{className:"range-view",children:t})]})}function Y_({id:e,value:t,required:r,disabled:n,readonly:s,onChange:i,onFocus:a,onBlur:o,schema:c,options:l,htmlName:u}){const{stars:m=5,shape:_="star"}=l,v=c.maximum?Math.min(c.maximum,5):Math.min(Math.max(m,1),5),S=c.minimum||0,E=Z.useCallback(C=>{!n&&!s&&i(C)},[i,n,s]),g=Z.useCallback(C=>{if(a){const x=Number(C.target.dataset.value);a(e,x)}},[a,e]),y=Z.useCallback(C=>{if(o){const x=Number(C.target.dataset.value);o(e,x)}},[o,e]),f=C=>_==="heart"?C?"♥":"♡":C?"★":"☆";return N.jsxs("div",{className:"rating-widget",style:{display:"inline-flex",fontSize:"1.5rem",cursor:n||s?"default":"pointer"},children:[[...Array(v)].map((C,x)=>{const h=S+x,b=h<=t;return N.jsx("span",{onClick:()=>E(h),onKeyDown:O=>(O.key==="Enter"||O.key===" ")&&E(h),onFocus:g,onBlur:y,"data-value":h,tabIndex:n||s?-1:0,role:"radio","aria-checked":h===t,"aria-label":`${h} ${_==="heart"?"heart":"star"}${h===1?"":"s"}`,style:{color:b?"#FFD700":"#ccc",padding:"0 0.2rem",transition:"color 0.2s",userSelect:"none"},children:f(b)},x)}),N.jsx("input",{type:"hidden",id:e,name:u||e,value:t||"",required:r,disabled:n||s,"aria-hidden":"true"})]})}function zo(e,t){return t?Array.from(e.target.options).slice().filter(r=>r.selected).map(r=>r.value):e.target.value}function X_({schema:e,id:t,options:r,value:n,required:s,disabled:i,readonly:a,multiple:o=!1,autofocus:c=!1,onChange:l,onBlur:u,onFocus:m,placeholder:_,htmlName:v,registry:S,uiSchema:E}){const{enumOptions:g,enumDisabled:y,emptyValue:f}=r,C=o?[]:"",x=Zc(r),h=Z.useCallback(M=>{const q=zo(M,o);return m(t,Cn(q,g,x,f))},[m,t,o,g,f,x]),b=Z.useCallback(M=>{const q=zo(M,o);return u(t,Cn(q,g,x,f))},[u,t,o,g,f,x]),O=Z.useCallback(M=>{const q=zo(M,o);return l(Cn(q,g,x,f))},[l,o,g,f,x]),k=o0(n,g,o,x,C),$=!o&&e.default===void 0;return w0(t,e,g,o),N.jsxs(N.Fragment,{children:[N.jsx(A0,{id:t,multiple:o,options:r,registry:S,uiSchema:E,value:n}),N.jsxs("select",{id:t,name:v||t,multiple:o,className:"form-control",value:k,required:s,disabled:i||a,autoFocus:c,onBlur:b,onFocus:h,onChange:O,"aria-describedby":$n(t),children:[$&&N.jsx("option",{value:"",children:_}),Array.isArray(g)&&g.map(({value:M,label:q},U)=>{const L=y&&y.includes(M);return N.jsx("option",{value:Xc(M,U,x),disabled:L,children:q},String(M))})]})]})}function Z_({id:e,options:t,placeholder:r,value:n,required:s,disabled:i,readonly:a,autofocus:o=!1,onChange:c,onBlur:l,onFocus:u,htmlName:m}){const _=Z.useCallback(({target:{value:E}})=>c(E===""?t.emptyValue:E),[c,t.emptyValue]),v=Z.useCallback(({target:E})=>l(e,E?.value),[l,e]),S=Z.useCallback(({target:E})=>u(e,E?.value),[e,u]);return N.jsx("textarea",{id:e,name:m||e,className:"form-control",value:n||"",placeholder:r,required:s,disabled:i,readOnly:a,autoFocus:o,rows:t.rows,onBlur:v,onFocus:S,onChange:_,"aria-describedby":$n(e)})}function Q_(e){const{options:t,registry:r}=e,n=_e("BaseInputTemplate",r,t);return N.jsx(n,{...e})}function eS(e){const{onChange:t,options:r,registry:n,schema:s,value:i}=e,a=_e("BaseInputTemplate",n,r),o=typeof s.multipleOf=="number"&&Number.isFinite(s.multipleOf)&&s.multipleOf<60,c=Z.useCallback(u=>{t(u?o?u:`${u}:00`:void 0)},[o,t]),l=typeof i=="string"&&!o&&/^\d{2}:\d{2}:00$/.test(i)?i.slice(0,-3):i;return N.jsx(a,{type:"time",...e,value:l,onChange:c})}function tS(e){const{options:t,registry:r}=e,n=_e("BaseInputTemplate",r,t);return N.jsx(n,{type:"number",...e})}function rS(e){const{options:t,registry:r}=e,n=_e("BaseInputTemplate",r,t);return N.jsx(n,{type:"url",...e})}function nS(){return{AltDateWidget:D_,AltDateTimeWidget:F_,CheckboxWidget:M_,CheckboxesWidget:T_,ColorWidget:q_,DateWidget:L_,DateTimeWidget:U_,EmailWidget:V_,FileWidget:H_,HiddenWidget:K_,PasswordWidget:G_,RadioWidget:W_,RangeWidget:J_,RatingWidget:Y_,SelectWidget:X_,TextWidget:Q_,TextareaWidget:Z_,TimeWidget:eS,UpDownWidget:tS,URLWidget:rS}}function iS(){return{fields:Yb(),templates:$_(),widgets:nS(),rootSchema:{},formContext:{},translateString:s0,globalFormOptions:{idPrefix:qh,idSeparator:Uh,useFallbackUiForUnsupportedType:!1}}}function Ln(e,t){const{schema:r,uiSchema:n,fieldPathId:s,schemaUtils:i,formData:a,edit:o,errors:c,errorSchema:l}=e;return{schema:r,uiSchema:n,fieldPathId:s,schemaUtils:i,formData:a,edit:o,errors:c,errorSchema:l,...t!==void 0&&{status:t}}}class Vr extends Z.Component{formElement;pendingChanges=[];isProcessingUserChange=!1;static getDerivedStateFromProps(t,r){if(t.extraErrors!==r.prevExtraErrors){const n={errors:r.schemaValidationErrors||[],errorSchema:r.schemaValidationErrorSchema||{}};let{errors:s,errorSchema:i}=n;return t.extraErrors&&({errors:s,errorSchema:i}=xi(n,t.extraErrors)),r.customErrors&&({errors:s,errorSchema:i}=xi({errors:s,errorSchema:i},r.customErrors.ErrorSchema,!0)),{prevExtraErrors:t.extraErrors,errors:s,errorSchema:i}}return null}constructor(t){if(super(t),!t.validator)throw new Error("A validator is required for Form functionality to work");const{formData:r,initialFormData:n,onChange:s}=t,i=r??n;this.state={...this.getStateFromProps(t,i,void 0,void 0,void 0,!0),prevExtraErrors:t.extraErrors},s&&!je(this.state.formData,i)&&s(Ln(this.state)),this.formElement=Z.createRef()}getSnapshotBeforeUpdate(t,r){if(!je(this.props,t)){const n=Ea(this.props.formData,t.formData),s=Ea(this.props.formData,this.state.formData),i=!je(t.schema,this.props.schema),a=n.length>0||!je(t.formData,this.props.formData),o=s.length>0||!je(this.state.formData,this.props.formData),c=this.getStateFromProps(this.props,this.props.formData,i||a?void 0:this.state.retrievedSchema,i,()=>Ea(this.props.formData,t.formData,!0),!o),l=!je(c,r);return{nextState:c,shouldUpdate:l}}return{shouldUpdate:!1}}componentDidUpdate(t,r,n){if(n.shouldUpdate){const{nextState:s}=n,i=!je(s.formData,this.props.formData),a=this.isProcessingUserChange;if(this.isProcessingUserChange=!1,a&&i)return;i&&!je(s.formData,r.formData)&&this.props.onChange&&this.props.onChange(Ln(s)),this.setState(s)}}getStateFromProps(t,r,n,s=!1,i=()=>[],a=!1,o=!1){const c=this.state||{},l="schema"in t?t.schema:this.props.schema,u="validator"in t?t.validator:this.props.validator,m=("uiSchema"in t?t.uiSchema:this.props.uiSchema)||{},_=t.formData===void 0&&this.props.formData===void 0,v=typeof r<"u",S="liveValidate"in t?t.liveValidate:this.props.liveValidate,E=v&&!t.noValidate&&S,g="experimental_defaultFormStateBehavior"in t?t.experimental_defaultFormStateBehavior:this.props.experimental_defaultFormStateBehavior,y="experimental_customMergeAllOf"in t?t.experimental_customMergeAllOf:this.props.experimental_customMergeAllOf;let{schemaUtils:f}=c;(!f||f.doesSchemaUtilsDiffer(u,l,g,y))&&(f=r0(u,l,g,y));const C=f.getRootSchema();let x=r;r===ed?x=void 0:r===void 0&&_&&(x=c.formData);let h,b,O=!1;const k=[];do{h=f.getDefaultFormState(C,x,!1,c.initialDefaultsGenerated);const X=o?zt({formData:h}):"";if(b=this.updateRetrievedSchema(n??f.retrieveSchema(C,h)),o&&!k.includes(X)&&!je(b,c.retrievedSchema)){const re=f.sanitizeDataForNewSchema(b,c.retrievedSchema,h);if(O=!je(re,h),O){h=re,x=re;const A=zt({formData:re});O=!k.includes(A),k.push(A)}k.push(X)}else O=!1}while(O);const $=()=>t.noValidate||s?{errors:[],errorSchema:{}}:t.liveValidate?{errors:c.errors||[],errorSchema:c.errorSchema||{}}:{errors:c.schemaValidationErrors||[],errorSchema:c.schemaValidationErrorSchema||{}};let M,q,{schemaValidationErrors:U,schemaValidationErrorSchema:L}=c;if(E&&!a){const X=this.liveValidate(C,f,c.errorSchema,h,void 0,c.customErrors,n,n!==void 0);M=X.errors,q=X.errorSchema,U=X.schemaValidationErrors,L=X.schemaValidationErrorSchema}else{const X=$();if(M=X.errors,q=X.errorSchema,!E){const A=i();if(A.length>0){const w=A.reduce((j,p)=>{const d=rr(p);for(let P=1;PJg(t,r);getFieldNames=(t,r)=>Yg(t,r);omitExtraData=t=>{const{schema:r,schemaUtils:n}=this.state;return n.omitExtraData(r,t)};setFieldValue=(t,r)=>{const{registry:n}=this.state,s=Array.isArray(t)?t:t.split("."),i=nr("",n.globalFormOptions,s);this.onChange(r,s,void 0,i[Ue])};onChange=(t,r,n,s)=>{this.pendingChanges.push({newValue:t,path:r,newErrorSchema:n,id:s}),this.pendingChanges.length===1&&this.processPendingChange()};processPendingChange(){if(this.pendingChanges.length===0)return;this.isProcessingUserChange=!0;const{newValue:t,path:r,id:n}=this.pendingChanges[0],{newErrorSchema:s}=this.pendingChanges[0],{extraErrors:i,omitExtraData:a,liveOmit:o,noValidate:c,liveValidate:l,onChange:u,disabled:m,readonly:_}=this.props,{formData:v,schemaUtils:S,schema:E,fieldPathId:g,schemaValidationErrorSchema:y,errors:f}=this.state;let{customErrors:C,retrievedSchema:x}=this.state,h=y;const b=g.path[0]||"",O=!r||r.length===0||r.length===1&&r[0]===b;let k=O?t:structuredClone(v);const $=ue(k)&&Object.keys(k).length>0&&Object.values(k).every(J=>J===void 0),M=v==null,q=$&&M?void 0:k;if(ue(k)||Array.isArray(k)){let J=!1;if(t===Lm)ig(k,r);else if(!O){let X=t;if(t===void 0)if(typeof r[r.length-1]=="number")X=null;else{const{field:A}=S.findFieldInSchema(E,r,v),w=A;!(w&&(Se in w||Ne in w))&&w!==void 0&&(J=!0)}J?st(k,r,void 0):st(k,r,X)}const Y=x&&!O&&!ue(t)&&!Array.isArray(t)&&!m&&!_,Q=this.getStateFromProps(this.props,q,void 0,void 0,void 0,!0,Y);k=Q.formData,x=Q.retrievedSchema,J&&k&&st(k,r,void 0)}const U=!c&&(l===!0||l==="onChange");let L={formData:k,retrievedSchema:x},B=k;if(a===!0&&(o===!0||o==="onChange")&&(B=this.omitExtraData(k),L={...L,formData:B}),s){const J=O?y:me(y,r);if(J&&Object.keys(J).length>0)O?h=s:(h=structuredClone(y),st(h,r,s,!0));else if(C||(C=new pm),O){const Y=s[vt];Y&&C.setErrors(Y)}else st(C.ErrorSchema,r,s,!0)}else C&&me(C.ErrorSchema,[...r,vt])&&C.clearErrors(r);if(U&&this.pendingChanges.length===1){const J=this.liveValidate(E,S,h,B,i,C,x);L={...L,formData:B,...J,customErrors:C}}else if(!c&&s){const J=Vr.mergeErrors({errorSchema:h,errors:f},i,C);L={...L,formData:B,...J,customErrors:C}}this.setState(L,()=>{u&&u(Ln({...this.state,...L}),n),this.pendingChanges.shift(),this.processPendingChange()})}updateRetrievedSchema(t){return je(t,this.state?.retrievedSchema)?this.state.retrievedSchema:t}reset=()=>{const{formData:t,initialFormData:r=ed,onChange:n}=this.props,a={formData:this.getStateFromProps(this.props,t??r,void 0,void 0,void 0,!0).formData,errorSchema:{},errors:[],schemaValidationErrors:[],schemaValidationErrorSchema:{},initialDefaultsGenerated:!1,customErrors:void 0};this.setState(a,()=>n?.(Ln({...this.state,...a})))};onBlur=(t,r)=>{const{onBlur:n,omitExtraData:s,liveOmit:i,liveValidate:a}=this.props;if(n&&n(t,r),s===!0&&i==="onBlur"||a==="onBlur"){const{onChange:o,extraErrors:c}=this.props,{formData:l}=this.state;let u=l,m={formData:u};if(s===!0&&i==="onBlur"&&(u=this.omitExtraData(l),m={formData:u}),a==="onBlur"){const{schema:v,schemaUtils:S,errorSchema:E,customErrors:g,retrievedSchema:y}=this.state,f=this.liveValidate(v,S,E,u,c,g,y);m={formData:u,...f,customErrors:g}}const _=Object.keys(m).filter(v=>!v.startsWith("schemaValidation")).some(v=>{const S=this.state[v],E=m[v];return!je(S,E)});this.setState(m,()=>{o&&_&&o(Ln({...this.state,...m}),t)})}};onFocus=(t,r)=>{const{onFocus:n}=this.props;n&&n(t,r)};onSubmit=t=>{if(t.preventDefault(),t.target!==t.currentTarget)return;t.persist();const{omitExtraData:r,extraErrors:n,noValidate:s,onSubmit:i}=this.props;let{formData:a}=this.state;if(r===!0&&(a=this.omitExtraData(a)),s||this.validateFormWithFormData(a)){const o=n||{},c=n?Sm(n):[];this.setState({formData:a,errors:c,errorSchema:o,schemaValidationErrors:[],schemaValidationErrorSchema:{}},()=>{i&&i(Ln({...this.state,formData:a},"submitted"),t)})}};static getGlobalFormOptions(t){const{uiSchema:r={},experimental_componentUpdateStrategy:n,idSeparator:s=Uh,idPrefix:i=qh,nameGenerator:a,useFallbackUiForUnsupportedType:o=!1}=t;return{idPrefix:r["ui:rootFieldId"]||i,idSeparator:s,useFallbackUiForUnsupportedType:o,...n!==void 0&&{experimental_componentUpdateStrategy:n},...a!==void 0&&{nameGenerator:a}}}static getRegistry(t,r,n){const{translateString:s,uiSchema:i={}}=t,{fields:a,templates:o,widgets:c,formContext:l,translateString:u}=iS();return{fields:{...a,...t.fields},templates:{...o,...t.templates,ButtonTemplates:{...o.ButtonTemplates,...t.templates?.ButtonTemplates}},widgets:{...c,...t.widgets},rootSchema:r,formContext:t.formContext||l,schemaUtils:n,translateString:s||u,globalUiOptions:i[pc],globalFormOptions:Vr.getGlobalFormOptions(t),uiSchemaDefinitions:i[Ay]??{}}}submit=()=>{if(this.formElement.current){const t=new CustomEvent("submit",{cancelable:!0});t.preventDefault(),this.formElement.current.dispatchEvent(t),this.formElement.current.requestSubmit()}};focusOnError(t){const{idPrefix:r="root",idSeparator:n="_"}=this.props,{property:s}=t,i=rr(s??"");i.unshift(r);const a=i.join(n);let o=this.formElement.current.elements[a];o||(o=this.formElement.current.querySelector(`input[id^="${a}"], button[id^="${a}"]`)),o?.length&&(o=o[0]),o&&o.focus()}validateFormWithFormData=t=>{const{extraErrors:r,extraErrorsBlockSubmit:n,focusOnFirstError:s,onError:i}=this.props,{errors:a}=this.state,o=this.validate(t),{errors:c,errorSchema:l}=r?Vr.mergeErrors(o,r):o,u=o.errors.length>0||r&&n;return u?(s&&(typeof s=="function"?s(c[0]):this.focusOnError(c[0])),this.setState({errors:c,errorSchema:l,schemaValidationErrors:o.errors,schemaValidationErrorSchema:o.errorSchema},()=>{i?i(c):console.error("Form validation failed",c)})):c.length>0?this.setState({errors:c,errorSchema:l,schemaValidationErrors:[],schemaValidationErrorSchema:{}}):a.length>0&&this.setState({errors:[],errorSchema:{},schemaValidationErrors:[],schemaValidationErrorSchema:{}}),!u};validateForm(){const{omitExtraData:t}=this.props;let{formData:r}=this.state;return t===!0&&(r=this.omitExtraData(r)),this.validateFormWithFormData(r)}render(){const{children:t,id:r,className:n="",tagName:s,name:i,method:a,target:o,action:c,autoComplete:l,enctype:u,acceptCharset:m,noHtml5Validate:_=!1,disabled:v,readonly:S,showErrorList:E="top",_internalFormWrapper:g}=this.props,{schema:y,uiSchema:f,formData:C,errorSchema:x,fieldPathId:h,registry:b}=this.state,{SchemaField:O}=b.fields,{SubmitButton:k}=b.templates.ButtonTemplates,$=g?s:void 0,M=g||s||"form";let{[ka]:q={}}=pe(f);v&&(q={...q,props:{...q.props,disabled:!0}});const U={[Br]:{[ka]:q}};return N.jsxs(M,{className:n||"rjsf",id:r,name:i,method:a,target:o,action:c,autoComplete:l,encType:u,acceptCharset:m,noValidate:_,onSubmit:this.onSubmit,as:$,ref:this.formElement,children:[E==="top"&&this.renderErrors(b),N.jsx(O,{name:"",schema:y,uiSchema:f,errorSchema:x,fieldPathId:h,formData:C,onChange:this.onChange,onBlur:this.onBlur,onFocus:this.onFocus,registry:b,disabled:v,readonly:S}),t||N.jsx(k,{uiSchema:U,registry:b}),E==="bottom"&&this.renderErrors(b)]})}}function sS(e,t="none"){return t==="all"?e:e.reduce((r,n)=>{const{message:s,schemaPath:i}=n,a=t!=="anyOf"?i?.indexOf(`/${Ne}/`):void 0,o=t!=="oneOf"?i?.indexOf(`/${Se}/`):void 0;let c;return a&&a>=0?c=i?.substring(0,a):o&&o>=0&&(c=i?.substring(0,o)),(c?r.find(u=>u.message===s&&u.schemaPath?.startsWith(c)):void 0)||r.push(n),r},[])}function aS(e=[],t,r,n){const s=e.map(i=>{const{instancePath:a,keyword:o,params:c,schemaPath:l,parentSchema:u,...m}=i;let{message:_=""}=m,v=a.replace(/\//g,"."),S=`${v} ${_}`.trim(),E="";const g=[...c.deps?.split(", ")||[],c.missingProperty,c.property].filter(y=>y);if(g.length>0)g.forEach(y=>{const f=v?`${v}.${y}`:y;let C=pe(me(t,rr(f))).title;if(C===void 0){const x=l.replace(/\/properties\//g,"/").split("/").slice(1,-1).concat([y]);C=pe(me(t,x)).title}if(C===void 0){const x=v.replace(/^\./,"").split(".").filter(Boolean);C=me(t,[...x,y,"title"])}if(C)_=_.replace(`'${y}'`,`'${C}'`),E=C;else{const x=me(u,[rt,y,"title"]);if(x)_=_.replace(`'${y}'`,`'${x}'`),E=x;else if(n){const h=v.replace(/^\./,"").split(".").filter(Boolean),b=[];for(const k of h)b.push(rt,k);b.push(rt,y,"title");const O=me(n,b);O&&(_=_.replace(`'${y}'`,`'${O}'`),E=O)}}}),S=_;else{const y=pe(me(t,rr(v))).title;if(y)S=`'${y}' ${_}`.trim(),E=y;else{const f=u?.title;f&&(S=`'${f}' ${_}`.trim(),E=f)}}return"missingProperty"in c&&(v=v?`${v}.${c.missingProperty}`:c.missingProperty),{name:o,property:v,message:_,params:c,stack:S,schemaPath:l,title:E}});return sS(s,r)}function oS(e,t,r,n,s,i,a,o){const{validationError:c}=t;let l=aS(t.errors,a,o,n);c&&(l=[...l,{stack:c.message}]),typeof i=="function"&&(l=i(l,a));let u=x0(l);if(c&&(u={...u,$schema:{__errors:[c.message]}}),typeof s!="function")return{errors:l,errorSchema:u};const m=cm(e,n,r,n,!0),_=s(m,yc(m),a,u),v=O0(_);return xi({errors:l,errorSchema:u},v)}var Yi={exports:{}},Bo={},Sr={},hn={},Ho={},Ko={},Go={},rd;function La(){return rd||(rd=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.regexpCode=e.getEsmExportName=e.getProperty=e.safeStringify=e.stringify=e.strConcat=e.addCodeArg=e.str=e._=e.nil=e._Code=e.Name=e.IDENTIFIER=e._CodeOrName=void 0;class t{}e._CodeOrName=t,e.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class r extends t{constructor(f){if(super(),!e.IDENTIFIER.test(f))throw new Error("CodeGen: name must be a valid identifier");this.str=f}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}e.Name=r;class n extends t{constructor(f){super(),this._items=typeof f=="string"?[f]:f}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;const f=this._items[0];return f===""||f==='""'}get str(){var f;return(f=this._str)!==null&&f!==void 0?f:this._str=this._items.reduce((C,x)=>`${C}${x}`,"")}get names(){var f;return(f=this._names)!==null&&f!==void 0?f:this._names=this._items.reduce((C,x)=>(x instanceof r&&(C[x.str]=(C[x.str]||0)+1),C),{})}}e._Code=n,e.nil=new n("");function s(y,...f){const C=[y[0]];let x=0;for(;x{if(m.scopePath===void 0)throw new Error(`CodeGen: name "${m}" has no value`);return(0,t._)`${l}${m.scopePath}`})}scopeCode(l=this._values,u,m){return this._reduceValues(l,_=>{if(_.value===void 0)throw new Error(`CodeGen: name "${_}" has no value`);return _.value.code},u,m)}_reduceValues(l,u,m={},_){let v=t.nil;for(const S in l){const E=l[S];if(!E)continue;const g=m[S]=m[S]||new Map;E.forEach(y=>{if(g.has(y))return;g.set(y,n.Started);let f=u(y);if(f){const C=this.opts.es5?e.varKinds.var:e.varKinds.const;v=(0,t._)`${v}${C} ${y} = ${f};${this.opts._n}`}else if(f=_?.(y))v=(0,t._)`${v}${f}${this.opts._n}`;else throw new r(y);g.set(y,n.Completed)})}return v}}e.ValueScope=o})(Wo)),Wo}var sd;function Re(){return sd||(sd=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.or=e.and=e.not=e.CodeGen=e.operators=e.varKinds=e.ValueScopeName=e.ValueScope=e.Scope=e.Name=e.regexpCode=e.stringify=e.getProperty=e.nil=e.strConcat=e.str=e._=void 0;const t=La(),r=id();var n=La();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return n._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return n.str}}),Object.defineProperty(e,"strConcat",{enumerable:!0,get:function(){return n.strConcat}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return n.nil}}),Object.defineProperty(e,"getProperty",{enumerable:!0,get:function(){return n.getProperty}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return n.stringify}}),Object.defineProperty(e,"regexpCode",{enumerable:!0,get:function(){return n.regexpCode}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return n.Name}});var s=id();Object.defineProperty(e,"Scope",{enumerable:!0,get:function(){return s.Scope}}),Object.defineProperty(e,"ValueScope",{enumerable:!0,get:function(){return s.ValueScope}}),Object.defineProperty(e,"ValueScopeName",{enumerable:!0,get:function(){return s.ValueScopeName}}),Object.defineProperty(e,"varKinds",{enumerable:!0,get:function(){return s.varKinds}}),e.operators={GT:new t._Code(">"),GTE:new t._Code(">="),LT:new t._Code("<"),LTE:new t._Code("<="),EQ:new t._Code("==="),NEQ:new t._Code("!=="),NOT:new t._Code("!"),OR:new t._Code("||"),AND:new t._Code("&&"),ADD:new t._Code("+")};class i{optimizeNodes(){return this}optimizeNames(d,P){return this}}class a extends i{constructor(d,P,I){super(),this.varKind=d,this.name=P,this.rhs=I}render({es5:d,_n:P}){const I=d?r.varKinds.var:this.varKind,T=this.rhs===void 0?"":` = ${this.rhs}`;return`${I} ${this.name}${T};`+P}optimizeNames(d,P){if(d[this.name.str])return this.rhs&&(this.rhs=B(this.rhs,d,P)),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}}class o extends i{constructor(d,P,I){super(),this.lhs=d,this.rhs=P,this.sideEffects=I}render({_n:d}){return`${this.lhs} = ${this.rhs};`+d}optimizeNames(d,P){if(!(this.lhs instanceof t.Name&&!d[this.lhs.str]&&!this.sideEffects))return this.rhs=B(this.rhs,d,P),this}get names(){const d=this.lhs instanceof t.Name?{}:{...this.lhs.names};return L(d,this.rhs)}}class c extends o{constructor(d,P,I,T){super(d,I,T),this.op=P}render({_n:d}){return`${this.lhs} ${this.op}= ${this.rhs};`+d}}class l extends i{constructor(d){super(),this.label=d,this.names={}}render({_n:d}){return`${this.label}:`+d}}class u extends i{constructor(d){super(),this.label=d,this.names={}}render({_n:d}){return`break${this.label?` ${this.label}`:""};`+d}}class m extends i{constructor(d){super(),this.error=d}render({_n:d}){return`throw ${this.error};`+d}get names(){return this.error.names}}class _ extends i{constructor(d){super(),this.code=d}render({_n:d}){return`${this.code};`+d}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(d,P){return this.code=B(this.code,d,P),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}}class v extends i{constructor(d=[]){super(),this.nodes=d}render(d){return this.nodes.reduce((P,I)=>P+I.render(d),"")}optimizeNodes(){const{nodes:d}=this;let P=d.length;for(;P--;){const I=d[P].optimizeNodes();Array.isArray(I)?d.splice(P,1,...I):I?d[P]=I:d.splice(P,1)}return d.length>0?this:void 0}optimizeNames(d,P){const{nodes:I}=this;let T=I.length;for(;T--;){const F=I[T];F.optimizeNames(d,P)||(J(d,F.names),I.splice(T,1))}return I.length>0?this:void 0}get names(){return this.nodes.reduce((d,P)=>U(d,P.names),{})}}class S extends v{render(d){return"{"+d._n+super.render(d)+"}"+d._n}}class E extends v{}class g extends S{}g.kind="else";class y extends S{constructor(d,P){super(P),this.condition=d}render(d){let P=`if(${this.condition})`+super.render(d);return this.else&&(P+="else "+this.else.render(d)),P}optimizeNodes(){super.optimizeNodes();const d=this.condition;if(d===!0)return this.nodes;let P=this.else;if(P){const I=P.optimizeNodes();P=this.else=Array.isArray(I)?new g(I):I}if(P)return d===!1?P instanceof y?P:P.nodes:this.nodes.length?this:new y(Y(d),P instanceof y?[P]:P.nodes);if(!(d===!1||!this.nodes.length))return this}optimizeNames(d,P){var I;if(this.else=(I=this.else)===null||I===void 0?void 0:I.optimizeNames(d,P),!!(super.optimizeNames(d,P)||this.else))return this.condition=B(this.condition,d,P),this}get names(){const d=super.names;return L(d,this.condition),this.else&&U(d,this.else.names),d}}y.kind="if";class f extends S{}f.kind="for";class C extends f{constructor(d){super(),this.iteration=d}render(d){return`for(${this.iteration})`+super.render(d)}optimizeNames(d,P){if(super.optimizeNames(d,P))return this.iteration=B(this.iteration,d,P),this}get names(){return U(super.names,this.iteration.names)}}class x extends f{constructor(d,P,I,T){super(),this.varKind=d,this.name=P,this.from=I,this.to=T}render(d){const P=d.es5?r.varKinds.var:this.varKind,{name:I,from:T,to:F}=this;return`for(${P} ${I}=${T}; ${I}<${F}; ${I}++)`+super.render(d)}get names(){const d=L(super.names,this.from);return L(d,this.to)}}class h extends f{constructor(d,P,I,T){super(),this.loop=d,this.varKind=P,this.name=I,this.iterable=T}render(d){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(d)}optimizeNames(d,P){if(super.optimizeNames(d,P))return this.iterable=B(this.iterable,d,P),this}get names(){return U(super.names,this.iterable.names)}}class b extends S{constructor(d,P,I){super(),this.name=d,this.args=P,this.async=I}render(d){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(d)}}b.kind="func";class O extends v{render(d){return"return "+super.render(d)}}O.kind="return";class k extends S{render(d){let P="try"+super.render(d);return this.catch&&(P+=this.catch.render(d)),this.finally&&(P+=this.finally.render(d)),P}optimizeNodes(){var d,P;return super.optimizeNodes(),(d=this.catch)===null||d===void 0||d.optimizeNodes(),(P=this.finally)===null||P===void 0||P.optimizeNodes(),this}optimizeNames(d,P){var I,T;return super.optimizeNames(d,P),(I=this.catch)===null||I===void 0||I.optimizeNames(d,P),(T=this.finally)===null||T===void 0||T.optimizeNames(d,P),this}get names(){const d=super.names;return this.catch&&U(d,this.catch.names),this.finally&&U(d,this.finally.names),d}}class $ extends S{constructor(d){super(),this.error=d}render(d){return`catch(${this.error})`+super.render(d)}}$.kind="catch";class M extends S{render(d){return"finally"+super.render(d)}}M.kind="finally";class q{constructor(d,P={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...P,_n:P.lines?` +`:""},this._extScope=d,this._scope=new r.Scope({parent:d}),this._nodes=[new E]}toString(){return this._root.render(this.opts)}name(d){return this._scope.name(d)}scopeName(d){return this._extScope.name(d)}scopeValue(d,P){const I=this._extScope.value(d,P);return(this._values[I.prefix]||(this._values[I.prefix]=new Set)).add(I),I}getScopeValue(d,P){return this._extScope.getValue(d,P)}scopeRefs(d){return this._extScope.scopeRefs(d,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(d,P,I,T){const F=this._scope.toName(P);return I!==void 0&&T&&(this._constants[F.str]=I),this._leafNode(new a(d,F,I)),F}const(d,P,I){return this._def(r.varKinds.const,d,P,I)}let(d,P,I){return this._def(r.varKinds.let,d,P,I)}var(d,P,I){return this._def(r.varKinds.var,d,P,I)}assign(d,P,I){return this._leafNode(new o(d,P,I))}add(d,P){return this._leafNode(new c(d,e.operators.ADD,P))}code(d){return typeof d=="function"?d():d!==t.nil&&this._leafNode(new _(d)),this}object(...d){const P=["{"];for(const[I,T]of d)P.length>1&&P.push(","),P.push(I),(I!==T||this.opts.es5)&&(P.push(":"),(0,t.addCodeArg)(P,T));return P.push("}"),new t._Code(P)}if(d,P,I){if(this._blockNode(new y(d)),P&&I)this.code(P).else().code(I).endIf();else if(P)this.code(P).endIf();else if(I)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(d){return this._elseNode(new y(d))}else(){return this._elseNode(new g)}endIf(){return this._endBlockNode(y,g)}_for(d,P){return this._blockNode(d),P&&this.code(P).endFor(),this}for(d,P){return this._for(new C(d),P)}forRange(d,P,I,T,F=this.opts.es5?r.varKinds.var:r.varKinds.let){const z=this._scope.toName(d);return this._for(new x(F,z,P,I),()=>T(z))}forOf(d,P,I,T=r.varKinds.const){const F=this._scope.toName(d);if(this.opts.es5){const z=P instanceof t.Name?P:this.var("_arr",P);return this.forRange("_i",0,(0,t._)`${z}.length`,H=>{this.var(F,(0,t._)`${z}[${H}]`),I(F)})}return this._for(new h("of",T,F,P),()=>I(F))}forIn(d,P,I,T=this.opts.es5?r.varKinds.var:r.varKinds.const){if(this.opts.ownProperties)return this.forOf(d,(0,t._)`Object.keys(${P})`,I);const F=this._scope.toName(d);return this._for(new h("in",T,F,P),()=>I(F))}endFor(){return this._endBlockNode(f)}label(d){return this._leafNode(new l(d))}break(d){return this._leafNode(new u(d))}return(d){const P=new O;if(this._blockNode(P),this.code(d),P.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(O)}try(d,P,I){if(!P&&!I)throw new Error('CodeGen: "try" without "catch" and "finally"');const T=new k;if(this._blockNode(T),this.code(d),P){const F=this.name("e");this._currNode=T.catch=new $(F),P(F)}return I&&(this._currNode=T.finally=new M,this.code(I)),this._endBlockNode($,M)}throw(d){return this._leafNode(new m(d))}block(d,P){return this._blockStarts.push(this._nodes.length),d&&this.code(d).endBlock(P),this}endBlock(d){const P=this._blockStarts.pop();if(P===void 0)throw new Error("CodeGen: not in self-balancing block");const I=this._nodes.length-P;if(I<0||d!==void 0&&I!==d)throw new Error(`CodeGen: wrong number of nodes: ${I} vs ${d} expected`);return this._nodes.length=P,this}func(d,P=t.nil,I,T){return this._blockNode(new b(d,P,I)),T&&this.code(T).endFunc(),this}endFunc(){return this._endBlockNode(b)}optimize(d=1){for(;d-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(d){return this._currNode.nodes.push(d),this}_blockNode(d){this._currNode.nodes.push(d),this._nodes.push(d)}_endBlockNode(d,P){const I=this._currNode;if(I instanceof d||P&&I instanceof P)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${P?`${d.kind}/${P.kind}`:d.kind}"`)}_elseNode(d){const P=this._currNode;if(!(P instanceof y))throw new Error('CodeGen: "else" without "if"');return this._currNode=P.else=d,this}get _root(){return this._nodes[0]}get _currNode(){const d=this._nodes;return d[d.length-1]}set _currNode(d){const P=this._nodes;P[P.length-1]=d}}e.CodeGen=q;function U(p,d){for(const P in d)p[P]=(p[P]||0)+(d[P]||0);return p}function L(p,d){return d instanceof t._CodeOrName?U(p,d.names):p}function B(p,d,P){if(p instanceof t.Name)return I(p);if(!T(p))return p;return new t._Code(p._items.reduce((F,z)=>(z instanceof t.Name&&(z=I(z)),z instanceof t._Code?F.push(...z._items):F.push(z),F),[]));function I(F){const z=P[F.str];return z===void 0||d[F.str]!==1?F:(delete d[F.str],z)}function T(F){return F instanceof t._Code&&F._items.some(z=>z instanceof t.Name&&d[z.str]===1&&P[z.str]!==void 0)}}function J(p,d){for(const P in d)p[P]=(p[P]||0)-(d[P]||0)}function Y(p){return typeof p=="boolean"||typeof p=="number"||p===null?!p:(0,t._)`!${j(p)}`}e.not=Y;const Q=w(e.operators.AND);function X(...p){return p.reduce(Q)}e.and=X;const re=w(e.operators.OR);function A(...p){return p.reduce(re)}e.or=A;function w(p){return(d,P)=>d===t.nil?P:P===t.nil?d:(0,t._)`${j(d)} ${p} ${j(P)}`}function j(p){return p instanceof t.Name?p:(0,t._)`(${p})`}})(Ko)),Ko}var Ce={},ad;function Te(){if(ad)return Ce;ad=1,Object.defineProperty(Ce,"__esModule",{value:!0}),Ce.checkStrictMode=Ce.getErrorPath=Ce.Type=Ce.useFunc=Ce.setEvaluated=Ce.evaluatedPropsToName=Ce.mergeEvaluated=Ce.eachItem=Ce.unescapeJsonPointer=Ce.escapeJsonPointer=Ce.escapeFragment=Ce.unescapeFragment=Ce.schemaRefOrVal=Ce.schemaHasRulesButRef=Ce.schemaHasRules=Ce.checkUnknownRules=Ce.alwaysValidSchema=Ce.toHash=void 0;const e=Re(),t=La();function r(h){const b={};for(const O of h)b[O]=!0;return b}Ce.toHash=r;function n(h,b){return typeof b=="boolean"?b:Object.keys(b).length===0?!0:(s(h,b),!i(b,h.self.RULES.all))}Ce.alwaysValidSchema=n;function s(h,b=h.schema){const{opts:O,self:k}=h;if(!O.strictSchema||typeof b=="boolean")return;const $=k.RULES.keywords;for(const M in b)$[M]||x(h,`unknown keyword: "${M}"`)}Ce.checkUnknownRules=s;function i(h,b){if(typeof h=="boolean")return!h;for(const O in h)if(b[O])return!0;return!1}Ce.schemaHasRules=i;function a(h,b){if(typeof h=="boolean")return!h;for(const O in h)if(O!=="$ref"&&b.all[O])return!0;return!1}Ce.schemaHasRulesButRef=a;function o({topSchemaRef:h,schemaPath:b},O,k,$){if(!$){if(typeof O=="number"||typeof O=="boolean")return O;if(typeof O=="string")return(0,e._)`${O}`}return(0,e._)`${h}${b}${(0,e.getProperty)(k)}`}Ce.schemaRefOrVal=o;function c(h){return m(decodeURIComponent(h))}Ce.unescapeFragment=c;function l(h){return encodeURIComponent(u(h))}Ce.escapeFragment=l;function u(h){return typeof h=="number"?`${h}`:h.replace(/~/g,"~0").replace(/\//g,"~1")}Ce.escapeJsonPointer=u;function m(h){return h.replace(/~1/g,"/").replace(/~0/g,"~")}Ce.unescapeJsonPointer=m;function _(h,b){if(Array.isArray(h))for(const O of h)b(O);else b(h)}Ce.eachItem=_;function v({mergeNames:h,mergeToName:b,mergeValues:O,resultToName:k}){return($,M,q,U)=>{const L=q===void 0?M:q instanceof e.Name?(M instanceof e.Name?h($,M,q):b($,M,q),q):M instanceof e.Name?(b($,q,M),M):O(M,q);return U===e.Name&&!(L instanceof e.Name)?k($,L):L}}Ce.mergeEvaluated={props:v({mergeNames:(h,b,O)=>h.if((0,e._)`${O} !== true && ${b} !== undefined`,()=>{h.if((0,e._)`${b} === true`,()=>h.assign(O,!0),()=>h.assign(O,(0,e._)`${O} || {}`).code((0,e._)`Object.assign(${O}, ${b})`))}),mergeToName:(h,b,O)=>h.if((0,e._)`${O} !== true`,()=>{b===!0?h.assign(O,!0):(h.assign(O,(0,e._)`${O} || {}`),E(h,O,b))}),mergeValues:(h,b)=>h===!0?!0:{...h,...b},resultToName:S}),items:v({mergeNames:(h,b,O)=>h.if((0,e._)`${O} !== true && ${b} !== undefined`,()=>h.assign(O,(0,e._)`${b} === true ? true : ${O} > ${b} ? ${O} : ${b}`)),mergeToName:(h,b,O)=>h.if((0,e._)`${O} !== true`,()=>h.assign(O,b===!0?!0:(0,e._)`${O} > ${b} ? ${O} : ${b}`)),mergeValues:(h,b)=>h===!0?!0:Math.max(h,b),resultToName:(h,b)=>h.var("items",b)})};function S(h,b){if(b===!0)return h.var("props",!0);const O=h.var("props",(0,e._)`{}`);return b!==void 0&&E(h,O,b),O}Ce.evaluatedPropsToName=S;function E(h,b,O){Object.keys(O).forEach(k=>h.assign((0,e._)`${b}${(0,e.getProperty)(k)}`,!0))}Ce.setEvaluated=E;const g={};function y(h,b){return h.scopeValue("func",{ref:b,code:g[b.code]||(g[b.code]=new t._Code(b.code))})}Ce.useFunc=y;var f;(function(h){h[h.Num=0]="Num",h[h.Str=1]="Str"})(f||(Ce.Type=f={}));function C(h,b,O){if(h instanceof e.Name){const k=b===f.Num;return O?k?(0,e._)`"[" + ${h} + "]"`:(0,e._)`"['" + ${h} + "']"`:k?(0,e._)`"/" + ${h}`:(0,e._)`"/" + ${h}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return O?(0,e.getProperty)(h).toString():"/"+u(h)}Ce.getErrorPath=C;function x(h,b,O=h.opts.strictSchema){if(O){if(b=`strict mode: ${b}`,O===!0)throw new Error(b);h.self.logger.warn(b)}}return Ce.checkStrictMode=x,Ce}var Xi={},od;function rn(){if(od)return Xi;od=1,Object.defineProperty(Xi,"__esModule",{value:!0});const e=Re(),t={data:new e.Name("data"),valCxt:new e.Name("valCxt"),instancePath:new e.Name("instancePath"),parentData:new e.Name("parentData"),parentDataProperty:new e.Name("parentDataProperty"),rootData:new e.Name("rootData"),dynamicAnchors:new e.Name("dynamicAnchors"),vErrors:new e.Name("vErrors"),errors:new e.Name("errors"),this:new e.Name("this"),self:new e.Name("self"),scope:new e.Name("scope"),json:new e.Name("json"),jsonPos:new e.Name("jsonPos"),jsonLen:new e.Name("jsonLen"),jsonPart:new e.Name("jsonPart")};return Xi.default=t,Xi}var cd;function Qa(){return cd||(cd=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.extendErrors=e.resetErrorsCount=e.reportExtraError=e.reportError=e.keyword$DataError=e.keywordError=void 0;const t=Re(),r=Te(),n=rn();e.keywordError={message:({keyword:g})=>(0,t.str)`must pass "${g}" keyword validation`},e.keyword$DataError={message:({keyword:g,schemaType:y})=>y?(0,t.str)`"${g}" keyword must be ${y} ($data)`:(0,t.str)`"${g}" keyword is invalid ($data)`};function s(g,y=e.keywordError,f,C){const{it:x}=g,{gen:h,compositeRule:b,allErrors:O}=x,k=m(g,y,f);C??(b||O)?c(h,k):l(x,(0,t._)`[${k}]`)}e.reportError=s;function i(g,y=e.keywordError,f){const{it:C}=g,{gen:x,compositeRule:h,allErrors:b}=C,O=m(g,y,f);c(x,O),h||b||l(C,n.default.vErrors)}e.reportExtraError=i;function a(g,y){g.assign(n.default.errors,y),g.if((0,t._)`${n.default.vErrors} !== null`,()=>g.if(y,()=>g.assign((0,t._)`${n.default.vErrors}.length`,y),()=>g.assign(n.default.vErrors,null)))}e.resetErrorsCount=a;function o({gen:g,keyword:y,schemaValue:f,data:C,errsCount:x,it:h}){if(x===void 0)throw new Error("ajv implementation error");const b=g.name("err");g.forRange("i",x,n.default.errors,O=>{g.const(b,(0,t._)`${n.default.vErrors}[${O}]`),g.if((0,t._)`${b}.instancePath === undefined`,()=>g.assign((0,t._)`${b}.instancePath`,(0,t.strConcat)(n.default.instancePath,h.errorPath))),g.assign((0,t._)`${b}.schemaPath`,(0,t.str)`${h.errSchemaPath}/${y}`),h.opts.verbose&&(g.assign((0,t._)`${b}.schema`,f),g.assign((0,t._)`${b}.data`,C))})}e.extendErrors=o;function c(g,y){const f=g.const("err",y);g.if((0,t._)`${n.default.vErrors} === null`,()=>g.assign(n.default.vErrors,(0,t._)`[${f}]`),(0,t._)`${n.default.vErrors}.push(${f})`),g.code((0,t._)`${n.default.errors}++`)}function l(g,y){const{gen:f,validateName:C,schemaEnv:x}=g;x.$async?f.throw((0,t._)`new ${g.ValidationError}(${y})`):(f.assign((0,t._)`${C}.errors`,y),f.return(!1))}const u={keyword:new t.Name("keyword"),schemaPath:new t.Name("schemaPath"),params:new t.Name("params"),propertyName:new t.Name("propertyName"),message:new t.Name("message"),schema:new t.Name("schema"),parentSchema:new t.Name("parentSchema")};function m(g,y,f){const{createErrors:C}=g.it;return C===!1?(0,t._)`{}`:_(g,y,f)}function _(g,y,f={}){const{gen:C,it:x}=g,h=[v(x,f),S(g,f)];return E(g,y,h),C.object(...h)}function v({errorPath:g},{instancePath:y}){const f=y?(0,t.str)`${g}${(0,r.getErrorPath)(y,r.Type.Str)}`:g;return[n.default.instancePath,(0,t.strConcat)(n.default.instancePath,f)]}function S({keyword:g,it:{errSchemaPath:y}},{schemaPath:f,parentSchema:C}){let x=C?y:(0,t.str)`${y}/${g}`;return f&&(x=(0,t.str)`${x}${(0,r.getErrorPath)(f,r.Type.Str)}`),[u.schemaPath,x]}function E(g,{params:y,message:f},C){const{keyword:x,data:h,schemaValue:b,it:O}=g,{opts:k,propertyName:$,topSchemaRef:M,schemaPath:q}=O;C.push([u.keyword,x],[u.params,typeof y=="function"?y(g):y||(0,t._)`{}`]),k.messages&&C.push([u.message,typeof f=="function"?f(g):f]),k.verbose&&C.push([u.schema,b],[u.parentSchema,(0,t._)`${M}${q}`],[n.default.data,h]),$&&C.push([u.propertyName,$])}})(Ho)),Ho}var ld;function cS(){if(ld)return hn;ld=1,Object.defineProperty(hn,"__esModule",{value:!0}),hn.boolOrEmptySchema=hn.topBoolOrEmptySchema=void 0;const e=Qa(),t=Re(),r=rn(),n={message:"boolean schema is false"};function s(o){const{gen:c,schema:l,validateName:u}=o;l===!1?a(o,!1):typeof l=="object"&&l.$async===!0?c.return(r.default.data):(c.assign((0,t._)`${u}.errors`,null),c.return(!0))}hn.topBoolOrEmptySchema=s;function i(o,c){const{gen:l,schema:u}=o;u===!1?(l.var(c,!1),a(o)):l.var(c,!0)}hn.boolOrEmptySchema=i;function a(o,c){const{gen:l,data:u}=o,m={gen:l,keyword:"false schema",data:u,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:o};(0,e.reportError)(m,n,void 0,c)}return hn}var yt={},mn={},ud;function Wm(){if(ud)return mn;ud=1,Object.defineProperty(mn,"__esModule",{value:!0}),mn.getRules=mn.isJSONType=void 0;const e=["string","number","integer","boolean","null","object","array"],t=new Set(e);function r(s){return typeof s=="string"&&t.has(s)}mn.isJSONType=r;function n(){const s={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...s,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},s.number,s.string,s.array,s.object],post:{rules:[]},all:{},keywords:{}}}return mn.getRules=n,mn}var wr={},dd;function Jm(){if(dd)return wr;dd=1,Object.defineProperty(wr,"__esModule",{value:!0}),wr.shouldUseRule=wr.shouldUseGroup=wr.schemaHasRulesForType=void 0;function e({schema:n,self:s},i){const a=s.RULES.types[i];return a&&a!==!0&&t(n,a)}wr.schemaHasRulesForType=e;function t(n,s){return s.rules.some(i=>r(n,i))}wr.shouldUseGroup=t;function r(n,s){var i;return n[s.keyword]!==void 0||((i=s.definition.implements)===null||i===void 0?void 0:i.some(a=>n[a]!==void 0))}return wr.shouldUseRule=r,wr}var fd;function Va(){if(fd)return yt;fd=1,Object.defineProperty(yt,"__esModule",{value:!0}),yt.reportTypeError=yt.checkDataTypes=yt.checkDataType=yt.coerceAndCheckDataType=yt.getJSONTypes=yt.getSchemaTypes=yt.DataType=void 0;const e=Wm(),t=Jm(),r=Qa(),n=Re(),s=Te();var i;(function(f){f[f.Correct=0]="Correct",f[f.Wrong=1]="Wrong"})(i||(yt.DataType=i={}));function a(f){const C=o(f.type);if(C.includes("null")){if(f.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!C.length&&f.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');f.nullable===!0&&C.push("null")}return C}yt.getSchemaTypes=a;function o(f){const C=Array.isArray(f)?f:f?[f]:[];if(C.every(e.isJSONType))return C;throw new Error("type must be JSONType or JSONType[]: "+C.join(","))}yt.getJSONTypes=o;function c(f,C){const{gen:x,data:h,opts:b}=f,O=u(C,b.coerceTypes),k=C.length>0&&!(O.length===0&&C.length===1&&(0,t.schemaHasRulesForType)(f,C[0]));if(k){const $=S(C,h,b.strictNumbers,i.Wrong);x.if($,()=>{O.length?m(f,C,O):g(f)})}return k}yt.coerceAndCheckDataType=c;const l=new Set(["string","number","integer","boolean","null"]);function u(f,C){return C?f.filter(x=>l.has(x)||C==="array"&&x==="array"):[]}function m(f,C,x){const{gen:h,data:b,opts:O}=f,k=h.let("dataType",(0,n._)`typeof ${b}`),$=h.let("coerced",(0,n._)`undefined`);O.coerceTypes==="array"&&h.if((0,n._)`${k} == 'object' && Array.isArray(${b}) && ${b}.length == 1`,()=>h.assign(b,(0,n._)`${b}[0]`).assign(k,(0,n._)`typeof ${b}`).if(S(C,b,O.strictNumbers),()=>h.assign($,b))),h.if((0,n._)`${$} !== undefined`);for(const q of x)(l.has(q)||q==="array"&&O.coerceTypes==="array")&&M(q);h.else(),g(f),h.endIf(),h.if((0,n._)`${$} !== undefined`,()=>{h.assign(b,$),_(f,$)});function M(q){switch(q){case"string":h.elseIf((0,n._)`${k} == "number" || ${k} == "boolean"`).assign($,(0,n._)`"" + ${b}`).elseIf((0,n._)`${b} === null`).assign($,(0,n._)`""`);return;case"number":h.elseIf((0,n._)`${k} == "boolean" || ${b} === null || (${k} == "string" && ${b} && ${b} == +${b})`).assign($,(0,n._)`+${b}`);return;case"integer":h.elseIf((0,n._)`${k} === "boolean" || ${b} === null || (${k} === "string" && ${b} && ${b} == +${b} && !(${b} % 1))`).assign($,(0,n._)`+${b}`);return;case"boolean":h.elseIf((0,n._)`${b} === "false" || ${b} === 0 || ${b} === null`).assign($,!1).elseIf((0,n._)`${b} === "true" || ${b} === 1`).assign($,!0);return;case"null":h.elseIf((0,n._)`${b} === "" || ${b} === 0 || ${b} === false`),h.assign($,null);return;case"array":h.elseIf((0,n._)`${k} === "string" || ${k} === "number" - || ${k} === "boolean" || ${b} === null`).assign($,(0,n._)`[${b}]`)}}}function _({gen:f,parentData:C,parentDataProperty:x},h){f.if((0,n._)`${C} !== undefined`,()=>f.assign((0,n._)`${C}[${x}]`,h))}function v(f,C,x,h=s.Correct){const b=h===s.Correct?n.operators.EQ:n.operators.NEQ;let O;switch(f){case"null":return(0,n._)`${C} ${b} null`;case"array":O=(0,n._)`Array.isArray(${C})`;break;case"object":O=(0,n._)`${C} && typeof ${C} == "object" && !Array.isArray(${C})`;break;case"integer":O=k((0,n._)`!(${C} % 1) && !isNaN(${C})`);break;case"number":O=k();break;default:return(0,n._)`typeof ${C} ${b} ${f}`}return h===s.Correct?O:(0,n.not)(O);function k($=n.nil){return(0,n.and)((0,n._)`typeof ${C} == "number"`,$,x?(0,n._)`isFinite(${C})`:n.nil)}}yt.checkDataType=v;function S(f,C,x,h){if(f.length===1)return v(f[0],C,x,h);let b;const O=(0,i.toHash)(f);if(O.array&&O.object){const k=(0,n._)`typeof ${C} != "object"`;b=O.null?k:(0,n._)`!${C} || ${k}`,delete O.null,delete O.array,delete O.object}else b=n.nil;O.number&&delete O.integer;for(const k in O)b=(0,n.and)(b,v(k,C,x,h));return b}yt.checkDataTypes=S;const E={message:({schema:f})=>`must be ${f}`,params:({schema:f,schemaValue:C})=>typeof f=="string"?(0,n._)`{type: ${f}}`:(0,n._)`{type: ${C}}`};function g(f){const C=y(f);(0,r.reportError)(C,E)}yt.reportTypeError=g;function y(f){const{gen:C,data:x,schema:h}=f,b=(0,i.schemaRefOrVal)(f,h,"type");return{gen:C,keyword:"type",data:x,schema:h.type,schemaCode:b,schemaValue:b,parentSchema:h,params:{},it:f}}return yt}var vi={},dd;function aS(){if(dd)return vi;dd=1,Object.defineProperty(vi,"__esModule",{value:!0}),vi.assignDefaults=void 0;const e=Re(),t=Te();function r(i,s){const{properties:a,items:o}=i.schema;if(s==="object"&&a)for(const c in a)n(i,c,a[c].default);else s==="array"&&Array.isArray(o)&&o.forEach((c,l)=>n(i,l,c.default))}vi.assignDefaults=r;function n(i,s,a){const{gen:o,compositeRule:c,data:l,opts:u}=i;if(a===void 0)return;const m=(0,e._)`${l}${(0,e.getProperty)(s)}`;if(c){(0,t.checkStrictMode)(i,`default is ignored for: ${m}`);return}let _=(0,e._)`${m} === undefined`;u.useDefaults==="empty"&&(_=(0,e._)`${_} || ${m} === null || ${m} === ""`),o.if(_,(0,e._)`${m} = ${(0,e.stringify)(a)}`)}return vi}var Xt={},Ge={},fd;function sr(){if(fd)return Ge;fd=1,Object.defineProperty(Ge,"__esModule",{value:!0}),Ge.validateUnion=Ge.validateArray=Ge.usePattern=Ge.callValidateCode=Ge.schemaProperties=Ge.allSchemaProperties=Ge.noPropertyInData=Ge.propertyInData=Ge.isOwnProperty=Ge.hasPropFunc=Ge.reportMissingProp=Ge.checkMissingProp=Ge.checkReportMissingProp=void 0;const e=Re(),t=Te(),r=rn(),n=Te();function i(f,C){const{gen:x,data:h,it:b}=f;x.if(u(x,h,C,b.opts.ownProperties),()=>{f.setParams({missingProperty:(0,e._)`${C}`},!0),f.error()})}Ge.checkReportMissingProp=i;function s({gen:f,data:C,it:{opts:x}},h,b){return(0,e.or)(...h.map(O=>(0,e.and)(u(f,C,O,x.ownProperties),(0,e._)`${b} = ${O}`)))}Ge.checkMissingProp=s;function a(f,C){f.setParams({missingProperty:C},!0),f.error()}Ge.reportMissingProp=a;function o(f){return f.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,e._)`Object.prototype.hasOwnProperty`})}Ge.hasPropFunc=o;function c(f,C,x){return(0,e._)`${o(f)}.call(${C}, ${x})`}Ge.isOwnProperty=c;function l(f,C,x,h){const b=(0,e._)`${C}${(0,e.getProperty)(x)} !== undefined`;return h?(0,e._)`${b} && ${c(f,C,x)}`:b}Ge.propertyInData=l;function u(f,C,x,h){const b=(0,e._)`${C}${(0,e.getProperty)(x)} === undefined`;return h?(0,e.or)(b,(0,e.not)(c(f,C,x))):b}Ge.noPropertyInData=u;function m(f){return f?Object.keys(f).filter(C=>C!=="__proto__"):[]}Ge.allSchemaProperties=m;function _(f,C){return m(C).filter(x=>!(0,t.alwaysValidSchema)(f,C[x]))}Ge.schemaProperties=_;function v({schemaCode:f,data:C,it:{gen:x,topSchemaRef:h,schemaPath:b,errorPath:O},it:k},$,M,q){const U=q?(0,e._)`${f}, ${C}, ${h}${b}`:C,L=[[r.default.instancePath,(0,e.strConcat)(r.default.instancePath,O)],[r.default.parentData,k.parentData],[r.default.parentDataProperty,k.parentDataProperty],[r.default.rootData,r.default.rootData]];k.opts.dynamicRef&&L.push([r.default.dynamicAnchors,r.default.dynamicAnchors]);const B=(0,e._)`${U}, ${x.object(...L)}`;return M!==e.nil?(0,e._)`${$}.call(${M}, ${B})`:(0,e._)`${$}(${B})`}Ge.callValidateCode=v;const S=(0,e._)`new RegExp`;function E({gen:f,it:{opts:C}},x){const h=C.unicodeRegExp?"u":"",{regExp:b}=C.code,O=b(x,h);return f.scopeValue("pattern",{key:O.toString(),ref:O,code:(0,e._)`${b.code==="new RegExp"?S:(0,n.useFunc)(f,b)}(${x}, ${h})`})}Ge.usePattern=E;function g(f){const{gen:C,data:x,keyword:h,it:b}=f,O=C.name("valid");if(b.allErrors){const $=C.let("valid",!0);return k(()=>C.assign($,!1)),$}return C.var(O,!0),k(()=>C.break()),O;function k($){const M=C.const("len",(0,e._)`${x}.length`);C.forRange("i",0,M,q=>{f.subschema({keyword:h,dataProp:q,dataPropType:t.Type.Num},O),C.if((0,e.not)(O),$)})}}Ge.validateArray=g;function y(f){const{gen:C,schema:x,keyword:h,it:b}=f;if(!Array.isArray(x))throw new Error("ajv implementation error");if(x.some(M=>(0,t.alwaysValidSchema)(b,M))&&!b.opts.unevaluated)return;const k=C.let("valid",!1),$=C.name("_valid");C.block(()=>x.forEach((M,q)=>{const U=f.subschema({keyword:h,schemaProp:q,compositeRule:!0},$);C.assign(k,(0,e._)`${k} || ${$}`),f.mergeValidEvaluated(U,$)||C.if((0,e.not)(k))})),f.result(k,()=>f.reset(),()=>f.error(!0))}return Ge.validateUnion=y,Ge}var hd;function oS(){if(hd)return Xt;hd=1,Object.defineProperty(Xt,"__esModule",{value:!0}),Xt.validateKeywordUsage=Xt.validSchemaType=Xt.funcKeywordCode=Xt.macroKeywordCode=void 0;const e=Re(),t=rn(),r=sr(),n=Za();function i(_,v){const{gen:S,keyword:E,schema:g,parentSchema:y,it:f}=_,C=v.macro.call(f.self,g,y,f),x=l(S,E,C);f.opts.validateSchema!==!1&&f.self.validateSchema(C,!0);const h=S.name("valid");_.subschema({schema:C,schemaPath:e.nil,errSchemaPath:`${f.errSchemaPath}/${E}`,topSchemaRef:x,compositeRule:!0},h),_.pass(h,()=>_.error(!0))}Xt.macroKeywordCode=i;function s(_,v){var S;const{gen:E,keyword:g,schema:y,parentSchema:f,$data:C,it:x}=_;c(x,v);const h=!C&&v.compile?v.compile.call(x.self,y,f,x):v.validate,b=l(E,g,h),O=E.let("valid");_.block$data(O,k),_.ok((S=v.valid)!==null&&S!==void 0?S:O);function k(){if(v.errors===!1)q(),v.modifying&&a(_),U(()=>_.error());else{const L=v.async?$():M();v.modifying&&a(_),U(()=>o(_,L))}}function $(){const L=E.let("ruleErrs",null);return E.try(()=>q((0,e._)`await `),B=>E.assign(O,!1).if((0,e._)`${B} instanceof ${x.ValidationError}`,()=>E.assign(L,(0,e._)`${B}.errors`),()=>E.throw(B))),L}function M(){const L=(0,e._)`${b}.errors`;return E.assign(L,null),q(e.nil),L}function q(L=v.async?(0,e._)`await `:e.nil){const B=x.opts.passContext?t.default.this:t.default.self,J=!("compile"in v&&!C||v.schema===!1);E.assign(O,(0,e._)`${L}${(0,r.callValidateCode)(_,b,B,J)}`,v.modifying)}function U(L){var B;E.if((0,e.not)((B=v.valid)!==null&&B!==void 0?B:O),L)}}Xt.funcKeywordCode=s;function a(_){const{gen:v,data:S,it:E}=_;v.if(E.parentData,()=>v.assign(S,(0,e._)`${E.parentData}[${E.parentDataProperty}]`))}function o(_,v){const{gen:S}=_;S.if((0,e._)`Array.isArray(${v})`,()=>{S.assign(t.default.vErrors,(0,e._)`${t.default.vErrors} === null ? ${v} : ${t.default.vErrors}.concat(${v})`).assign(t.default.errors,(0,e._)`${t.default.vErrors}.length`),(0,n.extendErrors)(_)},()=>_.error())}function c({schemaEnv:_},v){if(v.async&&!_.$async)throw new Error("async keyword in sync schema")}function l(_,v,S){if(S===void 0)throw new Error(`keyword "${v}" failed to compile`);return _.scopeValue("keyword",typeof S=="function"?{ref:S}:{ref:S,code:(0,e.stringify)(S)})}function u(_,v,S=!1){return!v.length||v.some(E=>E==="array"?Array.isArray(_):E==="object"?_&&typeof _=="object"&&!Array.isArray(_):typeof _==E||S&&typeof _>"u")}Xt.validSchemaType=u;function m({schema:_,opts:v,self:S,errSchemaPath:E},g,y){if(Array.isArray(g.keyword)?!g.keyword.includes(y):g.keyword!==y)throw new Error("ajv implementation error");const f=g.dependencies;if(f?.some(C=>!Object.prototype.hasOwnProperty.call(_,C)))throw new Error(`parent schema must have dependencies of ${y}: ${f.join(",")}`);if(g.validateSchema&&!g.validateSchema(_[y])){const x=`keyword "${y}" value is invalid at path "${E}": `+S.errorsText(g.validateSchema.errors);if(v.validateSchema==="log")S.logger.error(x);else throw new Error(x)}}return Xt.validateKeywordUsage=m,Xt}var Cr={},md;function cS(){if(md)return Cr;md=1,Object.defineProperty(Cr,"__esModule",{value:!0}),Cr.extendSubschemaMode=Cr.extendSubschemaData=Cr.getSubschema=void 0;const e=Re(),t=Te();function r(s,{keyword:a,schemaProp:o,schema:c,schemaPath:l,errSchemaPath:u,topSchemaRef:m}){if(a!==void 0&&c!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(a!==void 0){const _=s.schema[a];return o===void 0?{schema:_,schemaPath:(0,e._)`${s.schemaPath}${(0,e.getProperty)(a)}`,errSchemaPath:`${s.errSchemaPath}/${a}`}:{schema:_[o],schemaPath:(0,e._)`${s.schemaPath}${(0,e.getProperty)(a)}${(0,e.getProperty)(o)}`,errSchemaPath:`${s.errSchemaPath}/${a}/${(0,t.escapeFragment)(o)}`}}if(c!==void 0){if(l===void 0||u===void 0||m===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:c,schemaPath:l,topSchemaRef:m,errSchemaPath:u}}throw new Error('either "keyword" or "schema" must be passed')}Cr.getSubschema=r;function n(s,a,{dataProp:o,dataPropType:c,data:l,dataTypes:u,propertyName:m}){if(l!==void 0&&o!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');const{gen:_}=a;if(o!==void 0){const{errorPath:S,dataPathArr:E,opts:g}=a,y=_.let("data",(0,e._)`${a.data}${(0,e.getProperty)(o)}`,!0);v(y),s.errorPath=(0,e.str)`${S}${(0,t.getErrorPath)(o,c,g.jsPropertySyntax)}`,s.parentDataProperty=(0,e._)`${o}`,s.dataPathArr=[...E,s.parentDataProperty]}if(l!==void 0){const S=l instanceof e.Name?l:_.let("data",l,!0);v(S),m!==void 0&&(s.propertyName=m)}u&&(s.dataTypes=u);function v(S){s.data=S,s.dataLevel=a.dataLevel+1,s.dataTypes=[],a.definedProperties=new Set,s.parentData=a.data,s.dataNames=[...a.dataNames,S]}}Cr.extendSubschemaData=n;function i(s,{jtdDiscriminator:a,jtdMetadata:o,compositeRule:c,createErrors:l,allErrors:u}){c!==void 0&&(s.compositeRule=c),l!==void 0&&(s.createErrors=l),u!==void 0&&(s.allErrors=u),s.jtdDiscriminator=a,s.jtdMetadata=o}return Cr.extendSubschemaMode=i,Cr}var xt={},Wo,pd;function Qa(){return pd||(pd=1,Wo=function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;var n,i,s;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(i=n;i--!==0;)if(!e(t[i],r[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(s=Object.keys(t),n=s.length,n!==Object.keys(r).length)return!1;for(i=n;i--!==0;)if(!Object.prototype.hasOwnProperty.call(r,s[i]))return!1;for(i=n;i--!==0;){var a=s[i];if(!e(t[a],r[a]))return!1}return!0}return t!==t&&r!==r}),Wo}var Jo={exports:{}},yd;function lS(){if(yd)return Jo.exports;yd=1;var e=Jo.exports=function(n,i,s){typeof i=="function"&&(s=i,i={}),s=i.cb||s;var a=typeof s=="function"?s:s.pre||function(){},o=s.post||function(){};t(i,a,o,n,"",n)};e.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},e.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},e.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},e.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function t(n,i,s,a,o,c,l,u,m,_){if(a&&typeof a=="object"&&!Array.isArray(a)){i(a,o,c,l,u,m,_);for(var v in a){var S=a[v];if(Array.isArray(S)){if(v in e.arrayKeywords)for(var E=0;Eg+=o(f)),g===1/0))return 1/0}return g}function c(E,g="",y){y!==!1&&(g=m(g));const f=E.parse(g);return l(E,f)}xt.getFullPath=c;function l(E,g){return E.serialize(g).split("#")[0]+"#"}xt._getFullPath=l;const u=/#\/?$/;function m(E){return E?E.replace(u,""):""}xt.normalizeId=m;function _(E,g,y){return y=m(y),E.resolve(g,y)}xt.resolveUrl=_;const v=/^[a-z_][-a-z0-9._]*$/i;function S(E,g){if(typeof E=="boolean")return{};const{schemaId:y,uriResolver:f}=this.opts,C=m(E[y]||g),x={"":C},h=c(f,C,!1),b={},O=new Set;return r(E,{allKeys:!0},(M,q,U,L)=>{if(L===void 0)return;const B=h+q;let J=x[L];typeof M[y]=="string"&&(J=Y.call(this,M[y])),Q.call(this,M.$anchor),Q.call(this,M.$dynamicAnchor),x[q]=J;function Y(X){const re=this.opts.uriResolver.resolve;if(X=m(J?re(J,X):X),O.has(X))throw $(X);O.add(X);let A=this.refs[X];return typeof A=="string"&&(A=this.refs[A]),typeof A=="object"?k(M,A.schema,X):X!==m(B)&&(X[0]==="#"?(k(M,b[X],X),b[X]=M):this.refs[X]=B),X}function Q(X){if(typeof X=="string"){if(!v.test(X))throw new Error(`invalid anchor "${X}"`);Y.call(this,`#${X}`)}}}),b;function k(M,q,U){if(q!==void 0&&!t(M,q))throw $(U)}function $(M){return new Error(`reference "${M}" resolves to more than one schema`)}}return xt.getSchemaRefs=S,xt}var vd;function to(){if(vd)return Sr;vd=1,Object.defineProperty(Sr,"__esModule",{value:!0}),Sr.getData=Sr.KeywordCxt=Sr.validateFunctionCode=void 0;const e=sS(),t=La(),r=Km(),n=La(),i=aS(),s=oS(),a=cS(),o=Re(),c=rn(),l=eo(),u=Te(),m=Za();function _(N){if(h(N)&&(O(N),x(N))){g(N);return}v(N,()=>(0,e.topBoolOrEmptySchema)(N))}Sr.validateFunctionCode=_;function v({gen:N,validateName:D,schema:V,schemaEnv:K,opts:G},W){G.code.es5?N.func(D,(0,o._)`${c.default.data}, ${c.default.valCxt}`,K.$async,()=>{N.code((0,o._)`"use strict"; ${f(V,G)}`),E(N,G),N.code(W)}):N.func(D,(0,o._)`${c.default.data}, ${S(G)}`,K.$async,()=>N.code(f(V,G)).code(W))}function S(N){return(0,o._)`{${c.default.instancePath}="", ${c.default.parentData}, ${c.default.parentDataProperty}, ${c.default.rootData}=${c.default.data}${N.dynamicRef?(0,o._)`, ${c.default.dynamicAnchors}={}`:o.nil}}={}`}function E(N,D){N.if(c.default.valCxt,()=>{N.var(c.default.instancePath,(0,o._)`${c.default.valCxt}.${c.default.instancePath}`),N.var(c.default.parentData,(0,o._)`${c.default.valCxt}.${c.default.parentData}`),N.var(c.default.parentDataProperty,(0,o._)`${c.default.valCxt}.${c.default.parentDataProperty}`),N.var(c.default.rootData,(0,o._)`${c.default.valCxt}.${c.default.rootData}`),D.dynamicRef&&N.var(c.default.dynamicAnchors,(0,o._)`${c.default.valCxt}.${c.default.dynamicAnchors}`)},()=>{N.var(c.default.instancePath,(0,o._)`""`),N.var(c.default.parentData,(0,o._)`undefined`),N.var(c.default.parentDataProperty,(0,o._)`undefined`),N.var(c.default.rootData,c.default.data),D.dynamicRef&&N.var(c.default.dynamicAnchors,(0,o._)`{}`)})}function g(N){const{schema:D,opts:V,gen:K}=N;v(N,()=>{V.$comment&&D.$comment&&L(N),M(N),K.let(c.default.vErrors,null),K.let(c.default.errors,0),V.unevaluated&&y(N),k(N),B(N)})}function y(N){const{gen:D,validateName:V}=N;N.evaluated=D.const("evaluated",(0,o._)`${V}.evaluated`),D.if((0,o._)`${N.evaluated}.dynamicProps`,()=>D.assign((0,o._)`${N.evaluated}.props`,(0,o._)`undefined`)),D.if((0,o._)`${N.evaluated}.dynamicItems`,()=>D.assign((0,o._)`${N.evaluated}.items`,(0,o._)`undefined`))}function f(N,D){const V=typeof N=="object"&&N[D.schemaId];return V&&(D.code.source||D.code.process)?(0,o._)`/*# sourceURL=${V} */`:o.nil}function C(N,D){if(h(N)&&(O(N),x(N))){b(N,D);return}(0,e.boolOrEmptySchema)(N,D)}function x({schema:N,self:D}){if(typeof N=="boolean")return!N;for(const V in N)if(D.RULES.all[V])return!0;return!1}function h(N){return typeof N.schema!="boolean"}function b(N,D){const{schema:V,gen:K,opts:G}=N;G.$comment&&V.$comment&&L(N),q(N),U(N);const W=K.const("_errs",c.default.errors);k(N,W),K.var(D,(0,o._)`${W} === ${c.default.errors}`)}function O(N){(0,u.checkUnknownRules)(N),$(N)}function k(N,D){if(N.opts.jtd)return Y(N,[],!1,D);const V=(0,t.getSchemaTypes)(N.schema),K=(0,t.coerceAndCheckDataType)(N,V);Y(N,V,!K,D)}function $(N){const{schema:D,errSchemaPath:V,opts:K,self:G}=N;D.$ref&&K.ignoreKeywordsWithRef&&(0,u.schemaHasRulesButRef)(D,G.RULES)&&G.logger.warn(`$ref: keywords ignored in schema at path "${V}"`)}function M(N){const{schema:D,opts:V}=N;D.default!==void 0&&V.useDefaults&&V.strictSchema&&(0,u.checkStrictMode)(N,"default is ignored in the schema root")}function q(N){const D=N.schema[N.opts.schemaId];D&&(N.baseId=(0,l.resolveUrl)(N.opts.uriResolver,N.baseId,D))}function U(N){if(N.schema.$async&&!N.schemaEnv.$async)throw new Error("async schema in sync schema")}function L({gen:N,schemaEnv:D,schema:V,errSchemaPath:K,opts:G}){const W=V.$comment;if(G.$comment===!0)N.code((0,o._)`${c.default.self}.logger.log(${W})`);else if(typeof G.$comment=="function"){const te=(0,o.str)`${K}/$comment`,ne=N.scopeValue("root",{ref:D.root});N.code((0,o._)`${c.default.self}.opts.$comment(${W}, ${te}, ${ne}.schema)`)}}function B(N){const{gen:D,schemaEnv:V,validateName:K,ValidationError:G,opts:W}=N;V.$async?D.if((0,o._)`${c.default.errors} === 0`,()=>D.return(c.default.data),()=>D.throw((0,o._)`new ${G}(${c.default.vErrors})`)):(D.assign((0,o._)`${K}.errors`,c.default.vErrors),W.unevaluated&&J(N),D.return((0,o._)`${c.default.errors} === 0`))}function J({gen:N,evaluated:D,props:V,items:K}){V instanceof o.Name&&N.assign((0,o._)`${D}.props`,V),K instanceof o.Name&&N.assign((0,o._)`${D}.items`,K)}function Y(N,D,V,K){const{gen:G,schema:W,data:te,allErrors:ne,opts:se,self:ce}=N,{RULES:he}=ce;if(W.$ref&&(se.ignoreKeywordsWithRef||!(0,u.schemaHasRulesButRef)(W,he))){G.block(()=>T(N,"$ref",he.all.$ref.definition));return}se.jtd||X(N,D),G.block(()=>{for(const ge of he.rules)le(ge);le(he.post)});function le(ge){(0,r.shouldUseGroup)(W,ge)&&(ge.type?(G.if((0,n.checkDataType)(ge.type,te,se.strictNumbers)),Q(N,ge),D.length===1&&D[0]===ge.type&&V&&(G.else(),(0,n.reportTypeError)(N)),G.endIf()):Q(N,ge),ne||G.if((0,o._)`${c.default.errors} === ${K||0}`))}}function Q(N,D){const{gen:V,schema:K,opts:{useDefaults:G}}=N;G&&(0,i.assignDefaults)(N,D.type),V.block(()=>{for(const W of D.rules)(0,r.shouldUseRule)(K,W)&&T(N,W.keyword,W.definition,D.type)})}function X(N,D){N.schemaEnv.meta||!N.opts.strictTypes||(re(N,D),N.opts.allowUnionTypes||A(N,D),w(N,N.dataTypes))}function re(N,D){if(D.length){if(!N.dataTypes.length){N.dataTypes=D;return}D.forEach(V=>{p(N.dataTypes,V)||P(N,`type "${V}" not allowed by context "${N.dataTypes.join(",")}"`)}),d(N,D)}}function A(N,D){D.length>1&&!(D.length===2&&D.includes("null"))&&P(N,"use allowUnionTypes to allow union type keyword")}function w(N,D){const V=N.self.RULES.all;for(const K in V){const G=V[K];if(typeof G=="object"&&(0,r.shouldUseRule)(N.schema,G)){const{type:W}=G.definition;W.length&&!W.some(te=>j(D,te))&&P(N,`missing type "${W.join(",")}" for keyword "${K}"`)}}}function j(N,D){return N.includes(D)||D==="number"&&N.includes("integer")}function p(N,D){return N.includes(D)||D==="integer"&&N.includes("number")}function d(N,D){const V=[];for(const K of N.dataTypes)p(D,K)?V.push(K):D.includes("integer")&&K==="number"&&V.push("integer");N.dataTypes=V}function P(N,D){const V=N.schemaEnv.baseId+N.errSchemaPath;D+=` at "${V}" (strictTypes)`,(0,u.checkStrictMode)(N,D,N.opts.strictTypes)}class I{constructor(D,V,K){if((0,s.validateKeywordUsage)(D,V,K),this.gen=D.gen,this.allErrors=D.allErrors,this.keyword=K,this.data=D.data,this.schema=D.schema[K],this.$data=V.$data&&D.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,u.schemaRefOrVal)(D,this.schema,K,this.$data),this.schemaType=V.schemaType,this.parentSchema=D.schema,this.params={},this.it=D,this.def=V,this.$data)this.schemaCode=D.gen.const("vSchema",H(this.$data,D));else if(this.schemaCode=this.schemaValue,!(0,s.validSchemaType)(this.schema,V.schemaType,V.allowUndefined))throw new Error(`${K} value must be ${JSON.stringify(V.schemaType)}`);("code"in V?V.trackErrors:V.errors!==!1)&&(this.errsCount=D.gen.const("_errs",c.default.errors))}result(D,V,K){this.failResult((0,o.not)(D),V,K)}failResult(D,V,K){this.gen.if(D),K?K():this.error(),V?(this.gen.else(),V(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(D,V){this.failResult((0,o.not)(D),void 0,V)}fail(D){if(D===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(D),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(D){if(!this.$data)return this.fail(D);const{schemaCode:V}=this;this.fail((0,o._)`${V} !== undefined && (${(0,o.or)(this.invalid$data(),D)})`)}error(D,V,K){if(V){this.setParams(V),this._error(D,K),this.setParams({});return}this._error(D,K)}_error(D,V){(D?m.reportExtraError:m.reportError)(this,this.def.error,V)}$dataError(){(0,m.reportError)(this,this.def.$dataError||m.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,m.resetErrorsCount)(this.gen,this.errsCount)}ok(D){this.allErrors||this.gen.if(D)}setParams(D,V){V?Object.assign(this.params,D):this.params=D}block$data(D,V,K=o.nil){this.gen.block(()=>{this.check$data(D,K),V()})}check$data(D=o.nil,V=o.nil){if(!this.$data)return;const{gen:K,schemaCode:G,schemaType:W,def:te}=this;K.if((0,o.or)((0,o._)`${G} === undefined`,V)),D!==o.nil&&K.assign(D,!0),(W.length||te.validateSchema)&&(K.elseIf(this.invalid$data()),this.$dataError(),D!==o.nil&&K.assign(D,!1)),K.else()}invalid$data(){const{gen:D,schemaCode:V,schemaType:K,def:G,it:W}=this;return(0,o.or)(te(),ne());function te(){if(K.length){if(!(V instanceof o.Name))throw new Error("ajv implementation error");const se=Array.isArray(K)?K:[K];return(0,o._)`${(0,n.checkDataTypes)(se,V,W.opts.strictNumbers,n.DataType.Wrong)}`}return o.nil}function ne(){if(G.validateSchema){const se=D.scopeValue("validate$data",{ref:G.validateSchema});return(0,o._)`!${se}(${V})`}return o.nil}}subschema(D,V){const K=(0,a.getSubschema)(this.it,D);(0,a.extendSubschemaData)(K,this.it,D),(0,a.extendSubschemaMode)(K,D);const G={...this.it,...K,items:void 0,props:void 0};return C(G,V),G}mergeEvaluated(D,V){const{it:K,gen:G}=this;K.opts.unevaluated&&(K.props!==!0&&D.props!==void 0&&(K.props=u.mergeEvaluated.props(G,D.props,K.props,V)),K.items!==!0&&D.items!==void 0&&(K.items=u.mergeEvaluated.items(G,D.items,K.items,V)))}mergeValidEvaluated(D,V){const{it:K,gen:G}=this;if(K.opts.unevaluated&&(K.props!==!0||K.items!==!0))return G.if(V,()=>this.mergeEvaluated(D,o.Name)),!0}}Sr.KeywordCxt=I;function T(N,D,V,K){const G=new I(N,V,D);"code"in V?V.code(G,K):G.$data&&V.validate?(0,s.funcKeywordCode)(G,V):"macro"in V?(0,s.macroKeywordCode)(G,V):(V.compile||V.validate)&&(0,s.funcKeywordCode)(G,V)}const F=/^\/(?:[^~]|~0|~1)*$/,z=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function H(N,{dataLevel:D,dataNames:V,dataPathArr:K}){let G,W;if(N==="")return c.default.rootData;if(N[0]==="/"){if(!F.test(N))throw new Error(`Invalid JSON-pointer: ${N}`);G=N,W=c.default.rootData}else{const ce=z.exec(N);if(!ce)throw new Error(`Invalid JSON-pointer: ${N}`);const he=+ce[1];if(G=ce[2],G==="#"){if(he>=D)throw new Error(se("property/index",he));return K[D-he]}if(he>D)throw new Error(se("data",he));if(W=V[D-he],!G)return W}let te=W;const ne=G.split("/");for(const ce of ne)ce&&(W=(0,o._)`${W}${(0,o.getProperty)((0,u.unescapeJsonPointer)(ce))}`,te=(0,o._)`${te} && ${W}`);return te;function se(ce,he){return`Cannot access ${ce} ${he} levels up, current level is ${D}`}}return Sr.getData=H,Sr}var Xi={},bd;function ll(){if(bd)return Xi;bd=1,Object.defineProperty(Xi,"__esModule",{value:!0});class e extends Error{constructor(r){super("validation failed"),this.errors=r,this.ajv=this.validation=!0}}return Xi.default=e,Xi}var Zi={},_d;function ro(){if(_d)return Zi;_d=1,Object.defineProperty(Zi,"__esModule",{value:!0});const e=eo();class t extends Error{constructor(n,i,s,a){super(a||`can't resolve reference ${s} from id ${i}`),this.missingRef=(0,e.resolveUrl)(n,i,s),this.missingSchema=(0,e.normalizeId)((0,e.getFullPath)(n,this.missingRef))}}return Zi.default=t,Zi}var Tt={},Sd;function ul(){if(Sd)return Tt;Sd=1,Object.defineProperty(Tt,"__esModule",{value:!0}),Tt.resolveSchema=Tt.getCompilingSchema=Tt.resolveRef=Tt.compileSchema=Tt.SchemaEnv=void 0;const e=Re(),t=ll(),r=rn(),n=eo(),i=Te(),s=to();class a{constructor(y){var f;this.refs={},this.dynamicAnchors={};let C;typeof y.schema=="object"&&(C=y.schema),this.schema=y.schema,this.schemaId=y.schemaId,this.root=y.root||this,this.baseId=(f=y.baseId)!==null&&f!==void 0?f:(0,n.normalizeId)(C?.[y.schemaId||"$id"]),this.schemaPath=y.schemaPath,this.localRefs=y.localRefs,this.meta=y.meta,this.$async=C?.$async,this.refs={}}}Tt.SchemaEnv=a;function o(g){const y=u.call(this,g);if(y)return y;const f=(0,n.getFullPath)(this.opts.uriResolver,g.root.baseId),{es5:C,lines:x}=this.opts.code,{ownProperties:h}=this.opts,b=new e.CodeGen(this.scope,{es5:C,lines:x,ownProperties:h});let O;g.$async&&(O=b.scopeValue("Error",{ref:t.default,code:(0,e._)`require("ajv/dist/runtime/validation_error").default`}));const k=b.scopeName("validate");g.validateName=k;const $={gen:b,allErrors:this.opts.allErrors,data:r.default.data,parentData:r.default.parentData,parentDataProperty:r.default.parentDataProperty,dataNames:[r.default.data],dataPathArr:[e.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:b.scopeValue("schema",this.opts.code.source===!0?{ref:g.schema,code:(0,e.stringify)(g.schema)}:{ref:g.schema}),validateName:k,ValidationError:O,schema:g.schema,schemaEnv:g,rootId:f,baseId:g.baseId||f,schemaPath:e.nil,errSchemaPath:g.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,e._)`""`,opts:this.opts,self:this};let M;try{this._compilations.add(g),(0,s.validateFunctionCode)($),b.optimize(this.opts.code.optimize);const q=b.toString();M=`${b.scopeRefs(r.default.scope)}return ${q}`,this.opts.code.process&&(M=this.opts.code.process(M,g));const L=new Function(`${r.default.self}`,`${r.default.scope}`,M)(this,this.scope.get());if(this.scope.value(k,{ref:L}),L.errors=null,L.schema=g.schema,L.schemaEnv=g,g.$async&&(L.$async=!0),this.opts.code.source===!0&&(L.source={validateName:k,validateCode:q,scopeValues:b._values}),this.opts.unevaluated){const{props:B,items:J}=$;L.evaluated={props:B instanceof e.Name?void 0:B,items:J instanceof e.Name?void 0:J,dynamicProps:B instanceof e.Name,dynamicItems:J instanceof e.Name},L.source&&(L.source.evaluated=(0,e.stringify)(L.evaluated))}return g.validate=L,g}catch(q){throw delete g.validate,delete g.validateName,M&&this.logger.error("Error compiling schema, function code:",M),q}finally{this._compilations.delete(g)}}Tt.compileSchema=o;function c(g,y,f){var C;f=(0,n.resolveUrl)(this.opts.uriResolver,y,f);const x=g.refs[f];if(x)return x;let h=_.call(this,g,f);if(h===void 0){const b=(C=g.localRefs)===null||C===void 0?void 0:C[f],{schemaId:O}=this.opts;b&&(h=new a({schema:b,schemaId:O,root:g,baseId:y}))}if(h!==void 0)return g.refs[f]=l.call(this,h)}Tt.resolveRef=c;function l(g){return(0,n.inlineRef)(g.schema,this.opts.inlineRefs)?g.schema:g.validate?g:o.call(this,g)}function u(g){for(const y of this._compilations)if(m(y,g))return y}Tt.getCompilingSchema=u;function m(g,y){return g.schema===y.schema&&g.root===y.root&&g.baseId===y.baseId}function _(g,y){let f;for(;typeof(f=this.refs[y])=="string";)y=f;return f||this.schemas[y]||v.call(this,g,y)}function v(g,y){const f=this.opts.uriResolver.parse(y),C=(0,n._getFullPath)(this.opts.uriResolver,f);let x=(0,n.getFullPath)(this.opts.uriResolver,g.baseId,void 0);if(Object.keys(g.schema).length>0&&C===x)return E.call(this,f,g);const h=(0,n.normalizeId)(C),b=this.refs[h]||this.schemas[h];if(typeof b=="string"){const O=v.call(this,g,b);return typeof O?.schema!="object"?void 0:E.call(this,f,O)}if(typeof b?.schema=="object"){if(b.validate||o.call(this,b),h===(0,n.normalizeId)(y)){const{schema:O}=b,{schemaId:k}=this.opts,$=O[k];return $&&(x=(0,n.resolveUrl)(this.opts.uriResolver,x,$)),new a({schema:O,schemaId:k,root:g,baseId:x})}return E.call(this,f,b)}}Tt.resolveSchema=v;const S=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function E(g,{baseId:y,schema:f,root:C}){var x;if(((x=g.fragment)===null||x===void 0?void 0:x[0])!=="/")return;for(const O of g.fragment.slice(1).split("/")){if(typeof f=="boolean")return;const k=f[(0,i.unescapeFragment)(O)];if(k===void 0)return;f=k;const $=typeof f=="object"&&f[this.opts.schemaId];!S.has(O)&&$&&(y=(0,n.resolveUrl)(this.opts.uriResolver,y,$))}let h;if(typeof f!="boolean"&&f.$ref&&!(0,i.schemaHasRulesButRef)(f,this.RULES)){const O=(0,n.resolveUrl)(this.opts.uriResolver,y,f.$ref);h=v.call(this,C,O)}const{schemaId:b}=this.opts;if(h=h||new a({schema:f,schemaId:b,root:C,baseId:y}),h.schema!==h.root.schema)return h}return Tt}const uS="https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",dS="Meta-schema for $data reference (JSON AnySchema extension proposal)",fS="object",hS=["$data"],mS={$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},pS=!1,yS={$id:uS,description:dS,type:fS,required:hS,properties:mS,additionalProperties:pS};var Qi={},bi={exports:{}},Yo,wd;function Gm(){if(wd)return Yo;wd=1;const e=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),t=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u),r=RegExp.prototype.test.bind(/^\d*$/u),n=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),i=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),s=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/]$/u),a=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/?]$/u),o=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:]$/u),c=new Array(256);{const A="0123456789ABCDEF";for(let w=0;w<256;w++)c[w]="%"+A[w>>4]+A[w&15]}function l(A){return A<2048?c[192|A>>6]+c[128|A&63]:A<65536?c[224|A>>12]+c[128|A>>6&63]+c[128|A&63]:c[240|A>>18]+c[128|A>>12&63]+c[128|A>>6&63]+c[128|A&63]}function u(A){let w="",j=0,p=0;for(p=0;p=48&&j<=57||j>=65&&j<=70||j>=97&&j<=102))return"";w+=A[p];break}for(p+=1;p=48&&j<=57||j>=65&&j<=70||j>=97&&j<=102))return"";w+=A[p]}return w}const m=RegExp.prototype.test.bind(/^[\dA-Fa-f]{1,4}$/),_=RegExp.prototype.test.bind(/^[vV][\dA-Fa-f]+\.[A-Za-z\d\-._~!$&'()*+,;=:]+$/),v=RegExp.prototype.test.bind(/^[A-Za-z\d\-._~]$/),S=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function E(A){if(A.length===0)return!1;for(let w=0;wj&&(j=d,w=p)):(p=-1,d=0);if(j<2)return A.join(":");const P=A.slice(0,w).join(":"),I=A.slice(w+j).join(":");return P+"::"+I}function y(A){const w=A.indexOf("::");if(w!==-1&&A.indexOf("::",w+1)!==-1)return;const j=w===-1?A.split(":"):A.slice(0,w).split(":"),p=w===-1?[]:A.slice(w+2).split(":");w!==-1&&(j.length===1&&j[0]===""&&(j.length=0),p.length===1&&p[0]===""&&(p.length=0));const d=j.concat(p);let P=0;for(let T=0;T=8)return;const I=d.slice(0,j.length);for(let T=P;T<8;T++)I.push("0");for(let T=j.length;Th[p])}function $(A,w=!1){if(A.indexOf("%")===-1)return A;let j="";for(let p=0;p57343)w+=l(d);else if(d<=56319&&j+1=56320&&P<=57343?(w+=l(65536+(d-55296<<10)+(P-56320)),j++):w+=l(65533)}else w+=l(65533)}}return w}function q(A,w=!1){let j="",p=w&&A[0]!=="/";for(let d=0;d57343)j+=l(I);else if(I<=56319&&d+1=56320&&T<=57343?(j+=l(65536+(I-55296<<10)+(T-56320)),d++):j+=l(65533)}else j+=l(65533)}}return j}function U(A,w){let j="";for(let p=0;p57343)j+=l(P);else if(P<=56319&&p+1=56320&&I<=57343?(j+=l(65536+(P-55296<<10)+(I-56320)),p++):j+=l(65533)}else j+=l(65533)}}return j}function L(A){return U(A,o)}function B(A){return U(A,a)}function J(A){return U(A,a)}function Y(A){return A>=48&&A<=57||A>=65&&A<=90||A>=97&&A<=122||A===42||A===43||A===45||A===46||A===47||A===64||A===95}function Q(A){let w="";for(let j=0;j57343)w+=l(d);else if(d<=56319&&j+1=56320&&P<=57343?(w+=l(65536+(d-55296<<10)+(P-56320)),j++):w+=l(65533)}else w+=l(65533)}}return w}function X(A){let w="";for(let j=0;j65535))return"URI port is malformed."}function M(A){if(A===void 0)return!1;let w=A.indexOf("%");for(;w!==-1;){if(w+2>=A.length||!/^[\da-f]{2}$/iu.test(A.slice(w+1,w+3)))return!0;w=A.indexOf("%",w+3)}return!1}function q(A){return A[0]==="["&&A[A.length-1]==="]"}function U(A){const w=A[4];return M(A[3])||w!==void 0&&!q(w)&&M(w)||M(A[6])||M(A[7])||M(A[8])}function L(A,w,j,p){if(!w.unicodeSupport&&(!j||!j.unicodeSupport)&&A.host&&!q(A.host)&&(w.domainHost||j&&j.domainHost)&&p===!1&&m(A.host))try{A.host=new URL("http://"+A.host).hostname}catch(d){return A.error=A.error||"Host's domain name can not be converted to ASCII: "+d,!0}return!1}function B(A,w){const j=Object.assign({},w),p={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0};let d=!1,P=!1,I=!1,T=!1,F=!1,z=!1,H=!1;j.reference==="suffix"&&(j.scheme?A=j.scheme+":"+A:A="//"+A);const N=A.match(O);N!==null&&N[1].indexOf("\\")!==-1&&(p.error="URI authority must not contain a literal backslash.",d=!0);const D=A.match(k);if(D!==null){const K=D[1],G=K.replace(/[\t\n\r]/g,"");G.length>=2&&(G.slice(0,2)!=="//"?(p.error=p.error||"URI authority must not contain a literal backslash.",d=!0):K.length!==G.length&&(p.error=p.error||"URI authority introducer must not contain whitespace.",d=!0))}const V=A.match(b);if(V){if(p.scheme=V[1],p.userinfo=V[3],p.host=V[4],p.port=parseInt(V[5],10),p.path=V[6]||"",p.query=V[7],p.fragment=V[8],p.scheme!==void 0){const W=unescape(p.scheme);S.test(W)?p.scheme=W.toLowerCase():(p.error=p.error||E,z=!0)}P=U(V),P&&(p.error=p.error||"URI contains malformed percent-encoding."),isNaN(p.port)&&(p.port=V[5]);const K=$(p,V);if(K!==void 0&&(p.error=p.error||K,d=!0),p.host)if(u(p.host)===!1){const te=q(p.host),ne=p.host.indexOf("[")!==-1||p.host.indexOf("]")!==-1,se=e(p.host);H=se.isIPV6||se.isIPVFuture===!0,F=ne&&(!te||se.error===!0),p.host=H?se.host:se.host.toLowerCase(),F&&(p.error=p.error||"URI host is malformed.",d=!0)}else H=!0;p.scheme===void 0&&p.userinfo===void 0&&p.host===void 0&&p.port===void 0&&p.query===void 0&&!p.path?p.reference="same-document":p.scheme===void 0?p.reference="relative":p.fragment===void 0?p.reference="absolute":p.reference="uri",j.reference&&j.reference!=="suffix"&&j.reference!==p.reference&&(p.error=p.error||"URI is not a "+j.reference+" reference.");const G=v(j.scheme||p.scheme);if(F||(T=L(p,j,G,H)),!G||G&&!G.skipNormalize){if(A.indexOf("%")!==-1&&p.host!==void 0&&!F){const W=H?p.host:n(p.host,!0);p.host=l(W,H)}p.path&&(p.path=i(p.path)),p.query&&(p.query=a(p.query)),p.fragment&&(p.fragment=a(p.fragment))}G&&G.parse&&(G.parse(p,j),G===_.urn&&p.nid===void 0&&(I=!0))}else p.error=p.error||"URI can not be parsed.";return{parsed:p,malformedAuthorityOrPort:d,malformedPercentEncoding:P,malformedSchemeSpecific:I,malformedHost:T,malformedScheme:z}}function J(A,w){return B(A,w).parsed}function Y(A,w){return Q(A,w).normalized}function Q(A,w){const{parsed:j,malformedAuthorityOrPort:p,malformedPercentEncoding:d,malformedSchemeSpecific:P,malformedHost:I,malformedScheme:T}=B(A,w);return{normalized:p||d||P||I||T?A:h(j,w),malformedAuthorityOrPort:p,malformedPercentEncoding:d,malformedSchemeSpecific:P,malformedHost:I,malformedScheme:T}}function X(A,w){if(typeof A!="string"&&typeof A!="object")return;let j;try{j=typeof A=="string"?A:h(A,w)}catch{return}const{normalized:p,malformedAuthorityOrPort:d,malformedPercentEncoding:P,malformedSchemeSpecific:I,malformedHost:T,malformedScheme:F}=Q(j,w);return d||P||I||T||F?void 0:p}const re={SCHEMES:_,normalize:y,resolve:f,resolveComponent:C,equal:x,serialize:h,parse:J};return bi.exports=re,bi.exports.default=re,bi.exports.fastUri=re,bi.exports}var Ad;function bS(){if(Ad)return Qi;Ad=1,Object.defineProperty(Qi,"__esModule",{value:!0});const e=vS();return e.code='require("ajv/dist/runtime/uri").default',Qi.default=e,Qi}var Pd;function _S(){return Pd||(Pd=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=void 0;var t=to();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return t.KeywordCxt}});var r=Re();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return r._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return r.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return r.CodeGen}});const n=ll(),i=ro(),s=Hm(),a=ul(),o=Re(),c=eo(),l=La(),u=Te(),m=yS,_=bS(),v=(A,w)=>new RegExp(A,w);v.code="new RegExp";const S=["removeAdditional","useDefaults","coerceTypes"],E=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),g={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},y={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},f=200;function C(A){var w,j,p,d,P,I,T,F,z,H,N,D,V,K,G,W,te,ne,se,ce,he,le,ge,Fe,fe;const Ye=A.strict,ye=(w=A.code)===null||w===void 0?void 0:w.optimize,oe=ye===!0||ye===void 0?1:ye||0,ft=(p=(j=A.code)===null||j===void 0?void 0:j.regExp)!==null&&p!==void 0?p:v,ke=(d=A.uriResolver)!==null&&d!==void 0?d:_.default;return{strictSchema:(I=(P=A.strictSchema)!==null&&P!==void 0?P:Ye)!==null&&I!==void 0?I:!0,strictNumbers:(F=(T=A.strictNumbers)!==null&&T!==void 0?T:Ye)!==null&&F!==void 0?F:!0,strictTypes:(H=(z=A.strictTypes)!==null&&z!==void 0?z:Ye)!==null&&H!==void 0?H:"log",strictTuples:(D=(N=A.strictTuples)!==null&&N!==void 0?N:Ye)!==null&&D!==void 0?D:"log",strictRequired:(K=(V=A.strictRequired)!==null&&V!==void 0?V:Ye)!==null&&K!==void 0?K:!1,code:A.code?{...A.code,optimize:oe,regExp:ft}:{optimize:oe,regExp:ft},loopRequired:(G=A.loopRequired)!==null&&G!==void 0?G:f,loopEnum:(W=A.loopEnum)!==null&&W!==void 0?W:f,meta:(te=A.meta)!==null&&te!==void 0?te:!0,messages:(ne=A.messages)!==null&&ne!==void 0?ne:!0,inlineRefs:(se=A.inlineRefs)!==null&&se!==void 0?se:!0,schemaId:(ce=A.schemaId)!==null&&ce!==void 0?ce:"$id",addUsedSchema:(he=A.addUsedSchema)!==null&&he!==void 0?he:!0,validateSchema:(le=A.validateSchema)!==null&&le!==void 0?le:!0,validateFormats:(ge=A.validateFormats)!==null&&ge!==void 0?ge:!0,unicodeRegExp:(Fe=A.unicodeRegExp)!==null&&Fe!==void 0?Fe:!0,int32range:(fe=A.int32range)!==null&&fe!==void 0?fe:!0,uriResolver:ke}}class x{constructor(w={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,w=this.opts={...w,...C(w)};const{es5:j,lines:p}=this.opts.code;this.scope=new o.ValueScope({scope:{},prefixes:E,es5:j,lines:p}),this.logger=U(w.logger);const d=w.validateFormats;w.validateFormats=!1,this.RULES=(0,s.getRules)(),h.call(this,g,w,"NOT SUPPORTED"),h.call(this,y,w,"DEPRECATED","warn"),this._metaOpts=M.call(this),w.formats&&k.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),w.keywords&&$.call(this,w.keywords),typeof w.meta=="object"&&this.addMetaSchema(w.meta),O.call(this),w.validateFormats=d}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){const{$data:w,meta:j,schemaId:p}=this.opts;let d=m;p==="id"&&(d={...m},d.id=d.$id,delete d.$id),j&&w&&this.addMetaSchema(d,d[p],!1)}defaultMeta(){const{meta:w,schemaId:j}=this.opts;return this.opts.defaultMeta=typeof w=="object"?w[j]||w:void 0}validate(w,j){let p;if(typeof w=="string"){if(p=this.getSchema(w),!p)throw new Error(`no schema with key or ref "${w}"`)}else p=this.compile(w);const d=p(j);return"$async"in p||(this.errors=p.errors),d}compile(w,j){const p=this._addSchema(w,j);return p.validate||this._compileSchemaEnv(p)}compileAsync(w,j){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");const{loadSchema:p}=this.opts;return d.call(this,w,j);async function d(H,N){await P.call(this,H.$schema);const D=this._addSchema(H,N);return D.validate||I.call(this,D)}async function P(H){H&&!this.getSchema(H)&&await d.call(this,{$ref:H},!0)}async function I(H){try{return this._compileSchemaEnv(H)}catch(N){if(!(N instanceof i.default))throw N;return T.call(this,N),await F.call(this,N.missingSchema),I.call(this,H)}}function T({missingSchema:H,missingRef:N}){if(this.refs[H])throw new Error(`AnySchema ${H} is loaded but ${N} cannot be resolved`)}async function F(H){const N=await z.call(this,H);this.refs[H]||await P.call(this,N.$schema),this.refs[H]||this.addSchema(N,H,j)}async function z(H){const N=this._loading[H];if(N)return N;try{return await(this._loading[H]=p(H))}finally{delete this._loading[H]}}}addSchema(w,j,p,d=this.opts.validateSchema){if(Array.isArray(w)){for(const I of w)this.addSchema(I,void 0,p,d);return this}let P;if(typeof w=="object"){const{schemaId:I}=this.opts;if(P=w[I],P!==void 0&&typeof P!="string")throw new Error(`schema ${I} must be string`)}return j=(0,c.normalizeId)(j||P),this._checkUnique(j),this.schemas[j]=this._addSchema(w,p,j,d,!0),this}addMetaSchema(w,j,p=this.opts.validateSchema){return this.addSchema(w,j,!0,p),this}validateSchema(w,j){if(typeof w=="boolean")return!0;let p;if(p=w.$schema,p!==void 0&&typeof p!="string")throw new Error("$schema must be a string");if(p=p||this.opts.defaultMeta||this.defaultMeta(),!p)return this.logger.warn("meta-schema not available"),this.errors=null,!0;const d=this.validate(p,w);if(!d&&j){const P="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(P);else throw new Error(P)}return d}getSchema(w){let j;for(;typeof(j=b.call(this,w))=="string";)w=j;if(j===void 0){const{schemaId:p}=this.opts,d=new a.SchemaEnv({schema:{},schemaId:p});if(j=a.resolveSchema.call(this,d,w),!j)return;this.refs[w]=j}return j.validate||this._compileSchemaEnv(j)}removeSchema(w){if(w instanceof RegExp)return this._removeAllSchemas(this.schemas,w),this._removeAllSchemas(this.refs,w),this;switch(typeof w){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{const j=b.call(this,w);return typeof j=="object"&&this._cache.delete(j.schema),delete this.schemas[w],delete this.refs[w],this}case"object":{const j=w;this._cache.delete(j);let p=w[this.opts.schemaId];return p&&(p=(0,c.normalizeId)(p),delete this.schemas[p],delete this.refs[p]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(w){for(const j of w)this.addKeyword(j);return this}addKeyword(w,j){let p;if(typeof w=="string")p=w,typeof j=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),j.keyword=p);else if(typeof w=="object"&&j===void 0){if(j=w,p=j.keyword,Array.isArray(p)&&!p.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(B.call(this,p,j),!j)return(0,u.eachItem)(p,P=>J.call(this,P)),this;Q.call(this,j);const d={...j,type:(0,l.getJSONTypes)(j.type),schemaType:(0,l.getJSONTypes)(j.schemaType)};return(0,u.eachItem)(p,d.type.length===0?P=>J.call(this,P,d):P=>d.type.forEach(I=>J.call(this,P,d,I))),this}getKeyword(w){const j=this.RULES.all[w];return typeof j=="object"?j.definition:!!j}removeKeyword(w){const{RULES:j}=this;delete j.keywords[w],delete j.all[w];for(const p of j.rules){const d=p.rules.findIndex(P=>P.keyword===w);d>=0&&p.rules.splice(d,1)}return this}addFormat(w,j){return typeof j=="string"&&(j=new RegExp(j)),this.formats[w]=j,this}errorsText(w=this.errors,{separator:j=", ",dataVar:p="data"}={}){return!w||w.length===0?"No errors":w.map(d=>`${p}${d.instancePath} ${d.message}`).reduce((d,P)=>d+j+P)}$dataMetaSchema(w,j){const p=this.RULES.all;w=JSON.parse(JSON.stringify(w));for(const d of j){const P=d.split("/").slice(1);let I=w;for(const T of P)I=I[T];for(const T in p){const F=p[T];if(typeof F!="object")continue;const{$data:z}=F.definition,H=I[T];z&&H&&(I[T]=re(H))}}return w}_removeAllSchemas(w,j){for(const p in w){const d=w[p];(!j||j.test(p))&&(typeof d=="string"?delete w[p]:d&&!d.meta&&(this._cache.delete(d.schema),delete w[p]))}}_addSchema(w,j,p,d=this.opts.validateSchema,P=this.opts.addUsedSchema){let I;const{schemaId:T}=this.opts;if(typeof w=="object")I=w[T];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof w!="boolean")throw new Error("schema must be object or boolean")}let F=this._cache.get(w);if(F!==void 0)return F;p=(0,c.normalizeId)(I||p);const z=c.getSchemaRefs.call(this,w,p);return F=new a.SchemaEnv({schema:w,schemaId:T,meta:j,baseId:p,localRefs:z}),this._cache.set(F.schema,F),P&&!p.startsWith("#")&&(p&&this._checkUnique(p),this.refs[p]=F),d&&this.validateSchema(w,!0),F}_checkUnique(w){if(this.schemas[w]||this.refs[w])throw new Error(`schema with key or id "${w}" already exists`)}_compileSchemaEnv(w){if(w.meta?this._compileMetaSchema(w):a.compileSchema.call(this,w),!w.validate)throw new Error("ajv implementation error");return w.validate}_compileMetaSchema(w){const j=this.opts;this.opts=this._metaOpts;try{a.compileSchema.call(this,w)}finally{this.opts=j}}}x.ValidationError=n.default,x.MissingRefError=i.default,e.default=x;function h(A,w,j,p="error"){for(const d in A){const P=d;P in w&&this.logger[p](`${j}: option ${d}. ${A[P]}`)}}function b(A){return A=(0,c.normalizeId)(A),this.schemas[A]||this.refs[A]}function O(){const A=this.opts.schemas;if(A)if(Array.isArray(A))this.addSchema(A);else for(const w in A)this.addSchema(A[w],w)}function k(){for(const A in this.opts.formats){const w=this.opts.formats[A];w&&this.addFormat(A,w)}}function $(A){if(Array.isArray(A)){this.addVocabulary(A);return}this.logger.warn("keywords option as map is deprecated, pass array");for(const w in A){const j=A[w];j.keyword||(j.keyword=w),this.addKeyword(j)}}function M(){const A={...this.opts};for(const w of S)delete A[w];return A}const q={log(){},warn(){},error(){}};function U(A){if(A===!1)return q;if(A===void 0)return console;if(A.log&&A.warn&&A.error)return A;throw new Error("logger must implement log, warn and error methods")}const L=/^[a-z_$][a-z0-9_$:-]*$/i;function B(A,w){const{RULES:j}=this;if((0,u.eachItem)(A,p=>{if(j.keywords[p])throw new Error(`Keyword ${p} is already defined`);if(!L.test(p))throw new Error(`Keyword ${p} has invalid name`)}),!!w&&w.$data&&!("code"in w||"validate"in w))throw new Error('$data keyword must have "code" or "validate" function')}function J(A,w,j){var p;const d=w?.post;if(j&&d)throw new Error('keyword with "post" flag cannot have "type"');const{RULES:P}=this;let I=d?P.post:P.rules.find(({type:F})=>F===j);if(I||(I={type:j,rules:[]},P.rules.push(I)),P.keywords[A]=!0,!w)return;const T={keyword:A,definition:{...w,type:(0,l.getJSONTypes)(w.type),schemaType:(0,l.getJSONTypes)(w.schemaType)}};w.before?Y.call(this,I,T,w.before):I.rules.push(T),P.all[A]=T,(p=w.implements)===null||p===void 0||p.forEach(F=>this.addKeyword(F))}function Y(A,w,j){const p=A.rules.findIndex(d=>d.keyword===j);p>=0?A.rules.splice(p,0,w):(A.rules.push(w),this.logger.warn(`rule ${j} is not defined`))}function Q(A){let{metaSchema:w}=A;w!==void 0&&(A.$data&&this.opts.$data&&(w=re(w)),A.validateSchema=this.compile(w,!0))}const X={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function re(A){return{anyOf:[A,X]}}})(zo)),zo}var es={},ts={},rs={},xd;function SS(){if(xd)return rs;xd=1,Object.defineProperty(rs,"__esModule",{value:!0});const e={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};return rs.default=e,rs}var Tr={},Od;function wS(){if(Od)return Tr;Od=1,Object.defineProperty(Tr,"__esModule",{value:!0}),Tr.callRef=Tr.getValidate=void 0;const e=ro(),t=sr(),r=Re(),n=rn(),i=ul(),s=Te(),a={keyword:"$ref",schemaType:"string",code(l){const{gen:u,schema:m,it:_}=l,{baseId:v,schemaEnv:S,validateName:E,opts:g,self:y}=_,{root:f}=S;if((m==="#"||m==="#/")&&v===f.baseId)return x();const C=i.resolveRef.call(y,f,v,m);if(C===void 0)throw new e.default(_.opts.uriResolver,v,m);if(C instanceof i.SchemaEnv)return h(C);return b(C);function x(){if(S===f)return c(l,E,S,S.$async);const O=u.scopeValue("root",{ref:f});return c(l,(0,r._)`${O}.validate`,f,f.$async)}function h(O){const k=o(l,O);c(l,k,O,O.$async)}function b(O){const k=u.scopeValue("schema",g.code.source===!0?{ref:O,code:(0,r.stringify)(O)}:{ref:O}),$=u.name("valid"),M=l.subschema({schema:O,dataTypes:[],schemaPath:r.nil,topSchemaRef:k,errSchemaPath:m},$);l.mergeEvaluated(M),l.ok($)}}};function o(l,u){const{gen:m}=l;return u.validate?m.scopeValue("validate",{ref:u.validate}):(0,r._)`${m.scopeValue("wrapper",{ref:u})}.validate`}Tr.getValidate=o;function c(l,u,m,_){const{gen:v,it:S}=l,{allErrors:E,schemaEnv:g,opts:y}=S,f=y.passContext?n.default.this:r.nil;_?C():x();function C(){if(!g.$async)throw new Error("async schema referenced by sync schema");const O=v.let("valid");v.try(()=>{v.code((0,r._)`await ${(0,t.callValidateCode)(l,u,f)}`),b(u),E||v.assign(O,!0)},k=>{v.if((0,r._)`!(${k} instanceof ${S.ValidationError})`,()=>v.throw(k)),h(k),E||v.assign(O,!1)}),l.ok(O)}function x(){l.result((0,t.callValidateCode)(l,u,f),()=>b(u),()=>h(u))}function h(O){const k=(0,r._)`${O}.errors`;v.assign(n.default.vErrors,(0,r._)`${n.default.vErrors} === null ? ${k} : ${n.default.vErrors}.concat(${k})`),v.assign(n.default.errors,(0,r._)`${n.default.vErrors}.length`)}function b(O){var k;if(!S.opts.unevaluated)return;const $=(k=m?.validate)===null||k===void 0?void 0:k.evaluated;if(S.props!==!0)if($&&!$.dynamicProps)$.props!==void 0&&(S.props=s.mergeEvaluated.props(v,$.props,S.props));else{const M=v.var("props",(0,r._)`${O}.evaluated.props`);S.props=s.mergeEvaluated.props(v,M,S.props,r.Name)}if(S.items!==!0)if($&&!$.dynamicItems)$.items!==void 0&&(S.items=s.mergeEvaluated.items(v,$.items,S.items));else{const M=v.var("items",(0,r._)`${O}.evaluated.items`);S.items=s.mergeEvaluated.items(v,M,S.items,r.Name)}}}return Tr.callRef=c,Tr.default=a,Tr}var jd;function CS(){if(jd)return ts;jd=1,Object.defineProperty(ts,"__esModule",{value:!0});const e=SS(),t=wS(),r=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",e.default,t.default];return ts.default=r,ts}var ns={},is={},kd;function ES(){if(kd)return is;kd=1,Object.defineProperty(is,"__esModule",{value:!0});const e=Re(),t=e.operators,r={maximum:{okStr:"<=",ok:t.LTE,fail:t.GT},minimum:{okStr:">=",ok:t.GTE,fail:t.LT},exclusiveMaximum:{okStr:"<",ok:t.LT,fail:t.GTE},exclusiveMinimum:{okStr:">",ok:t.GT,fail:t.LTE}},n={message:({keyword:s,schemaCode:a})=>(0,e.str)`must be ${r[s].okStr} ${a}`,params:({keyword:s,schemaCode:a})=>(0,e._)`{comparison: ${r[s].okStr}, limit: ${a}}`},i={keyword:Object.keys(r),type:"number",schemaType:"number",$data:!0,error:n,code(s){const{keyword:a,data:o,schemaCode:c}=s;s.fail$data((0,e._)`${o} ${r[a].fail} ${c} || isNaN(${o})`)}};return is.default=i,is}var ss={},Id;function AS(){if(Id)return ss;Id=1,Object.defineProperty(ss,"__esModule",{value:!0});const e=Re(),r={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:{message:({schemaCode:n})=>(0,e.str)`must be multiple of ${n}`,params:({schemaCode:n})=>(0,e._)`{multipleOf: ${n}}`},code(n){const{gen:i,data:s,schemaCode:a,it:o}=n,c=o.opts.multipleOfPrecision,l=i.let("res"),u=c?(0,e._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${c}`:(0,e._)`${l} !== parseInt(${l})`;n.fail$data((0,e._)`(${a} === 0 || (${l} = ${s}/${a}, ${u}))`)}};return ss.default=r,ss}var as={},os={},Nd;function PS(){if(Nd)return os;Nd=1,Object.defineProperty(os,"__esModule",{value:!0});function e(t){const r=t.length;let n=0,i=0,s;for(;i=55296&&s<=56319&&i(0,e._)`{limit: ${s}}`},code(s){const{keyword:a,data:o,schemaCode:c,it:l}=s,u=a==="maxLength"?e.operators.GT:e.operators.LT,m=l.opts.unicode===!1?(0,e._)`${o}.length`:(0,e._)`${(0,t.useFunc)(s.gen,r.default)}(${o})`;s.fail$data((0,e._)`${m} ${u} ${c}`)}};return as.default=i,as}var cs={},$d;function OS(){if($d)return cs;$d=1,Object.defineProperty(cs,"__esModule",{value:!0});const e=sr(),t=Te(),r=Re(),i={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:{message:({schemaCode:s})=>(0,r.str)`must match pattern "${s}"`,params:({schemaCode:s})=>(0,r._)`{pattern: ${s}}`},code(s){const{gen:a,data:o,$data:c,schema:l,schemaCode:u,it:m}=s,_=m.opts.unicodeRegExp?"u":"";if(c){const{regExp:v}=m.opts.code,S=v.code==="new RegExp"?(0,r._)`new RegExp`:(0,t.useFunc)(a,v),E=a.let("valid");a.try(()=>a.assign(E,(0,r._)`${S}(${u}, ${_}).test(${o})`),()=>a.assign(E,!1)),s.fail$data((0,r._)`!${E}`)}else{const v=(0,e.usePattern)(s,l);s.fail$data((0,r._)`!${v}.test(${o})`)}}};return cs.default=i,cs}var ls={},Fd;function jS(){if(Fd)return ls;Fd=1,Object.defineProperty(ls,"__esModule",{value:!0});const e=Re(),r={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:{message({keyword:n,schemaCode:i}){const s=n==="maxProperties"?"more":"fewer";return(0,e.str)`must NOT have ${s} than ${i} properties`},params:({schemaCode:n})=>(0,e._)`{limit: ${n}}`},code(n){const{keyword:i,data:s,schemaCode:a}=n,o=i==="maxProperties"?e.operators.GT:e.operators.LT;n.fail$data((0,e._)`Object.keys(${s}).length ${o} ${a}`)}};return ls.default=r,ls}var us={},Dd;function kS(){if(Dd)return us;Dd=1,Object.defineProperty(us,"__esModule",{value:!0});const e=sr(),t=Re(),r=Te(),i={keyword:"required",type:"object",schemaType:"array",$data:!0,error:{message:({params:{missingProperty:s}})=>(0,t.str)`must have required property '${s}'`,params:({params:{missingProperty:s}})=>(0,t._)`{missingProperty: ${s}}`},code(s){const{gen:a,schema:o,schemaCode:c,data:l,$data:u,it:m}=s,{opts:_}=m;if(!u&&o.length===0)return;const v=o.length>=_.loopRequired;if(m.allErrors?S():E(),_.strictRequired){const f=s.parentSchema.properties,{definedProperties:C}=s.it;for(const x of o)if(f?.[x]===void 0&&!C.has(x)){const h=m.schemaEnv.baseId+m.errSchemaPath,b=`required property "${x}" is not defined at "${h}" (strictRequired)`;(0,r.checkStrictMode)(m,b,m.opts.strictRequired)}}function S(){if(v||u)s.block$data(t.nil,g);else for(const f of o)(0,e.checkReportMissingProp)(s,f)}function E(){const f=a.let("missing");if(v||u){const C=a.let("valid",!0);s.block$data(C,()=>y(f,C)),s.ok(C)}else a.if((0,e.checkMissingProp)(s,o,f)),(0,e.reportMissingProp)(s,f),a.else()}function g(){a.forOf("prop",c,f=>{s.setParams({missingProperty:f}),a.if((0,e.noPropertyInData)(a,l,f,_.ownProperties),()=>s.error())})}function y(f,C){s.setParams({missingProperty:f}),a.forOf(f,c,()=>{a.assign(C,(0,e.propertyInData)(a,l,f,_.ownProperties)),a.if((0,t.not)(C),()=>{s.error(),a.break()})},t.nil)}}};return us.default=i,us}var ds={},Td;function IS(){if(Td)return ds;Td=1,Object.defineProperty(ds,"__esModule",{value:!0});const e=Re(),r={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:{message({keyword:n,schemaCode:i}){const s=n==="maxItems"?"more":"fewer";return(0,e.str)`must NOT have ${s} than ${i} items`},params:({schemaCode:n})=>(0,e._)`{limit: ${n}}`},code(n){const{keyword:i,data:s,schemaCode:a}=n,o=i==="maxItems"?e.operators.GT:e.operators.LT;n.fail$data((0,e._)`${s}.length ${o} ${a}`)}};return ds.default=r,ds}var fs={},hs={},Md;function dl(){if(Md)return hs;Md=1,Object.defineProperty(hs,"__esModule",{value:!0});const e=Qa();return e.code='require("ajv/dist/runtime/equal").default',hs.default=e,hs}var qd;function NS(){if(qd)return fs;qd=1,Object.defineProperty(fs,"__esModule",{value:!0});const e=La(),t=Re(),r=Te(),n=dl(),s={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:{message:({params:{i:a,j:o}})=>(0,t.str)`must NOT have duplicate items (items ## ${o} and ${a} are identical)`,params:({params:{i:a,j:o}})=>(0,t._)`{i: ${a}, j: ${o}}`},code(a){const{gen:o,data:c,$data:l,schema:u,parentSchema:m,schemaCode:_,it:v}=a;if(!l&&!u)return;const S=o.let("valid"),E=m.items?(0,e.getSchemaTypes)(m.items):[];a.block$data(S,g,(0,t._)`${_} === false`),a.ok(S);function g(){const x=o.let("i",(0,t._)`${c}.length`),h=o.let("j");a.setParams({i:x,j:h}),o.assign(S,!0),o.if((0,t._)`${x} > 1`,()=>(y()?f:C)(x,h))}function y(){return E.length>0&&!E.some(x=>x==="object"||x==="array")}function f(x,h){const b=o.name("item"),O=(0,e.checkDataTypes)(E,b,v.opts.strictNumbers,e.DataType.Wrong),k=o.const("indices",(0,t._)`{}`);o.for((0,t._)`;${x}--;`,()=>{o.let(b,(0,t._)`${c}[${x}]`),o.if(O,(0,t._)`continue`),E.length>1&&o.if((0,t._)`typeof ${b} == "string"`,(0,t._)`${b} += "_"`),o.if((0,t._)`typeof ${k}[${b}] == "number"`,()=>{o.assign(h,(0,t._)`${k}[${b}]`),a.error(),o.assign(S,!1).break()}).code((0,t._)`${k}[${b}] = ${x}`)})}function C(x,h){const b=(0,r.useFunc)(o,n.default),O=o.name("outer");o.label(O).for((0,t._)`;${x}--;`,()=>o.for((0,t._)`${h} = ${x}; ${h}--;`,()=>o.if((0,t._)`${b}(${c}[${x}], ${c}[${h}])`,()=>{a.error(),o.assign(S,!1).break(O)})))}}};return fs.default=s,fs}var ms={},Ud;function RS(){if(Ud)return ms;Ud=1,Object.defineProperty(ms,"__esModule",{value:!0});const e=Re(),t=Te(),r=dl(),i={keyword:"const",$data:!0,error:{message:"must be equal to constant",params:({schemaCode:s})=>(0,e._)`{allowedValue: ${s}}`},code(s){const{gen:a,data:o,$data:c,schemaCode:l,schema:u}=s;c||u&&typeof u=="object"?s.fail$data((0,e._)`!${(0,t.useFunc)(a,r.default)}(${o}, ${l})`):s.fail((0,e._)`${u} !== ${o}`)}};return ms.default=i,ms}var ps={},Ld;function $S(){if(Ld)return ps;Ld=1,Object.defineProperty(ps,"__esModule",{value:!0});const e=Re(),t=Te(),r=dl(),i={keyword:"enum",schemaType:"array",$data:!0,error:{message:"must be equal to one of the allowed values",params:({schemaCode:s})=>(0,e._)`{allowedValues: ${s}}`},code(s){const{gen:a,data:o,$data:c,schema:l,schemaCode:u,it:m}=s;if(!c&&l.length===0)throw new Error("enum must have non-empty array");const _=l.length>=m.opts.loopEnum;let v;const S=()=>v??(v=(0,t.useFunc)(a,r.default));let E;if(_||c)E=a.let("valid"),s.block$data(E,g);else{if(!Array.isArray(l))throw new Error("ajv implementation error");const f=a.const("vSchema",u);E=(0,e.or)(...l.map((C,x)=>y(f,x)))}s.pass(E);function g(){a.assign(E,!1),a.forOf("v",u,f=>a.if((0,e._)`${S()}(${o}, ${f})`,()=>a.assign(E,!0).break()))}function y(f,C){const x=l[C];return typeof x=="object"&&x!==null?(0,e._)`${S()}(${o}, ${f}[${C}])`:(0,e._)`${o} === ${x}`}}};return ps.default=i,ps}var Vd;function FS(){if(Vd)return ns;Vd=1,Object.defineProperty(ns,"__esModule",{value:!0});const e=ES(),t=AS(),r=xS(),n=OS(),i=jS(),s=kS(),a=IS(),o=NS(),c=RS(),l=$S(),u=[e.default,t.default,r.default,n.default,i.default,s.default,a.default,o.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},c.default,l.default];return ns.default=u,ns}var ys={},Vn={},zd;function Wm(){if(zd)return Vn;zd=1,Object.defineProperty(Vn,"__esModule",{value:!0}),Vn.validateAdditionalItems=void 0;const e=Re(),t=Te(),n={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:{message:({params:{len:s}})=>(0,e.str)`must NOT have more than ${s} items`,params:({params:{len:s}})=>(0,e._)`{limit: ${s}}`},code(s){const{parentSchema:a,it:o}=s,{items:c}=a;if(!Array.isArray(c)){(0,t.checkStrictMode)(o,'"additionalItems" is ignored when "items" is not an array of schemas');return}i(s,c)}};function i(s,a){const{gen:o,schema:c,data:l,keyword:u,it:m}=s;m.items=!0;const _=o.const("len",(0,e._)`${l}.length`);if(c===!1)s.setParams({len:a.length}),s.pass((0,e._)`${_} <= ${a.length}`);else if(typeof c=="object"&&!(0,t.alwaysValidSchema)(m,c)){const S=o.var("valid",(0,e._)`${_} <= ${a.length}`);o.if((0,e.not)(S),()=>v(S)),s.ok(S)}function v(S){o.forRange("i",a.length,_,E=>{s.subschema({keyword:u,dataProp:E,dataPropType:t.Type.Num},S),m.allErrors||o.if((0,e.not)(S),()=>o.break())})}}return Vn.validateAdditionalItems=i,Vn.default=n,Vn}var gs={},zn={},Bd;function Jm(){if(Bd)return zn;Bd=1,Object.defineProperty(zn,"__esModule",{value:!0}),zn.validateTuple=void 0;const e=Re(),t=Te(),r=sr(),n={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(s){const{schema:a,it:o}=s;if(Array.isArray(a))return i(s,"additionalItems",a);o.items=!0,!(0,t.alwaysValidSchema)(o,a)&&s.ok((0,r.validateArray)(s))}};function i(s,a,o=s.schema){const{gen:c,parentSchema:l,data:u,keyword:m,it:_}=s;E(l),_.opts.unevaluated&&o.length&&_.items!==!0&&(_.items=t.mergeEvaluated.items(c,o.length,_.items));const v=c.name("valid"),S=c.const("len",(0,e._)`${u}.length`);o.forEach((g,y)=>{(0,t.alwaysValidSchema)(_,g)||(c.if((0,e._)`${S} > ${y}`,()=>s.subschema({keyword:m,schemaProp:y,dataProp:y},v)),s.ok(v))});function E(g){const{opts:y,errSchemaPath:f}=_,C=o.length,x=C===g.minItems&&(C===g.maxItems||g[a]===!1);if(y.strictTuples&&!x){const h=`"${m}" is ${C}-tuple, but minItems or maxItems/${a} are not specified or different at path "${f}"`;(0,t.checkStrictMode)(_,h,y.strictTuples)}}}return zn.validateTuple=i,zn.default=n,zn}var Hd;function DS(){if(Hd)return gs;Hd=1,Object.defineProperty(gs,"__esModule",{value:!0});const e=Jm(),t={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:r=>(0,e.validateTuple)(r,"items")};return gs.default=t,gs}var vs={},Kd;function TS(){if(Kd)return vs;Kd=1,Object.defineProperty(vs,"__esModule",{value:!0});const e=Re(),t=Te(),r=sr(),n=Wm(),s={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:{message:({params:{len:a}})=>(0,e.str)`must NOT have more than ${a} items`,params:({params:{len:a}})=>(0,e._)`{limit: ${a}}`},code(a){const{schema:o,parentSchema:c,it:l}=a,{prefixItems:u}=c;l.items=!0,!(0,t.alwaysValidSchema)(l,o)&&(u?(0,n.validateAdditionalItems)(a,u):a.ok((0,r.validateArray)(a)))}};return vs.default=s,vs}var bs={},Gd;function MS(){if(Gd)return bs;Gd=1,Object.defineProperty(bs,"__esModule",{value:!0});const e=Re(),t=Te(),n={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:{message:({params:{min:i,max:s}})=>s===void 0?(0,e.str)`must contain at least ${i} valid item(s)`:(0,e.str)`must contain at least ${i} and no more than ${s} valid item(s)`,params:({params:{min:i,max:s}})=>s===void 0?(0,e._)`{minContains: ${i}}`:(0,e._)`{minContains: ${i}, maxContains: ${s}}`},code(i){const{gen:s,schema:a,parentSchema:o,data:c,it:l}=i;let u,m;const{minContains:_,maxContains:v}=o;l.opts.next?(u=_===void 0?1:_,m=v):u=1;const S=s.const("len",(0,e._)`${c}.length`);if(i.setParams({min:u,max:m}),m===void 0&&u===0){(0,t.checkStrictMode)(l,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(m!==void 0&&u>m){(0,t.checkStrictMode)(l,'"minContains" > "maxContains" is always invalid'),i.fail();return}if((0,t.alwaysValidSchema)(l,a)){let C=(0,e._)`${S} >= ${u}`;m!==void 0&&(C=(0,e._)`${C} && ${S} <= ${m}`),i.pass(C);return}l.items=!0;const E=s.name("valid");m===void 0&&u===1?y(E,()=>s.if(E,()=>s.break())):u===0?(s.let(E,!0),m!==void 0&&s.if((0,e._)`${c}.length > 0`,g)):(s.let(E,!1),g()),i.result(E,()=>i.reset());function g(){const C=s.name("_valid"),x=s.let("count",0);y(C,()=>s.if(C,()=>f(x)))}function y(C,x){s.forRange("i",0,S,h=>{i.subschema({keyword:"contains",dataProp:h,dataPropType:t.Type.Num,compositeRule:!0},C),x()})}function f(C){s.code((0,e._)`${C}++`),m===void 0?s.if((0,e._)`${C} >= ${u}`,()=>s.assign(E,!0).break()):(s.if((0,e._)`${C} > ${m}`,()=>s.assign(E,!1).break()),u===1?s.assign(E,!0):s.if((0,e._)`${C} >= ${u}`,()=>s.assign(E,!0)))}}};return bs.default=n,bs}var Zo={},Wd;function qS(){return Wd||(Wd=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.validateSchemaDeps=e.validatePropertyDeps=e.error=void 0;const t=Re(),r=Te(),n=sr();e.error={message:({params:{property:c,depsCount:l,deps:u}})=>{const m=l===1?"property":"properties";return(0,t.str)`must have ${m} ${u} when property ${c} is present`},params:({params:{property:c,depsCount:l,deps:u,missingProperty:m}})=>(0,t._)`{property: ${c}, + || ${k} === "boolean" || ${b} === null`).assign($,(0,n._)`[${b}]`)}}}function _({gen:f,parentData:C,parentDataProperty:x},h){f.if((0,n._)`${C} !== undefined`,()=>f.assign((0,n._)`${C}[${x}]`,h))}function v(f,C,x,h=i.Correct){const b=h===i.Correct?n.operators.EQ:n.operators.NEQ;let O;switch(f){case"null":return(0,n._)`${C} ${b} null`;case"array":O=(0,n._)`Array.isArray(${C})`;break;case"object":O=(0,n._)`${C} && typeof ${C} == "object" && !Array.isArray(${C})`;break;case"integer":O=k((0,n._)`!(${C} % 1) && !isNaN(${C})`);break;case"number":O=k();break;default:return(0,n._)`typeof ${C} ${b} ${f}`}return h===i.Correct?O:(0,n.not)(O);function k($=n.nil){return(0,n.and)((0,n._)`typeof ${C} == "number"`,$,x?(0,n._)`isFinite(${C})`:n.nil)}}yt.checkDataType=v;function S(f,C,x,h){if(f.length===1)return v(f[0],C,x,h);let b;const O=(0,s.toHash)(f);if(O.array&&O.object){const k=(0,n._)`typeof ${C} != "object"`;b=O.null?k:(0,n._)`!${C} || ${k}`,delete O.null,delete O.array,delete O.object}else b=n.nil;O.number&&delete O.integer;for(const k in O)b=(0,n.and)(b,v(k,C,x,h));return b}yt.checkDataTypes=S;const E={message:({schema:f})=>`must be ${f}`,params:({schema:f,schemaValue:C})=>typeof f=="string"?(0,n._)`{type: ${f}}`:(0,n._)`{type: ${C}}`};function g(f){const C=y(f);(0,r.reportError)(C,E)}yt.reportTypeError=g;function y(f){const{gen:C,data:x,schema:h}=f,b=(0,s.schemaRefOrVal)(f,h,"type");return{gen:C,keyword:"type",data:x,schema:h.type,schemaCode:b,schemaValue:b,parentSchema:h,params:{},it:f}}return yt}var vi={},hd;function lS(){if(hd)return vi;hd=1,Object.defineProperty(vi,"__esModule",{value:!0}),vi.assignDefaults=void 0;const e=Re(),t=Te();function r(s,i){const{properties:a,items:o}=s.schema;if(i==="object"&&a)for(const c in a)n(s,c,a[c].default);else i==="array"&&Array.isArray(o)&&o.forEach((c,l)=>n(s,l,c.default))}vi.assignDefaults=r;function n(s,i,a){const{gen:o,compositeRule:c,data:l,opts:u}=s;if(a===void 0)return;const m=(0,e._)`${l}${(0,e.getProperty)(i)}`;if(c){(0,t.checkStrictMode)(s,`default is ignored for: ${m}`);return}let _=(0,e._)`${m} === undefined`;u.useDefaults==="empty"&&(_=(0,e._)`${_} || ${m} === null || ${m} === ""`),o.if(_,(0,e._)`${m} = ${(0,e.stringify)(a)}`)}return vi}var Xt={},Ge={},md;function sr(){if(md)return Ge;md=1,Object.defineProperty(Ge,"__esModule",{value:!0}),Ge.validateUnion=Ge.validateArray=Ge.usePattern=Ge.callValidateCode=Ge.schemaProperties=Ge.allSchemaProperties=Ge.noPropertyInData=Ge.propertyInData=Ge.isOwnProperty=Ge.hasPropFunc=Ge.reportMissingProp=Ge.checkMissingProp=Ge.checkReportMissingProp=void 0;const e=Re(),t=Te(),r=rn(),n=Te();function s(f,C){const{gen:x,data:h,it:b}=f;x.if(u(x,h,C,b.opts.ownProperties),()=>{f.setParams({missingProperty:(0,e._)`${C}`},!0),f.error()})}Ge.checkReportMissingProp=s;function i({gen:f,data:C,it:{opts:x}},h,b){return(0,e.or)(...h.map(O=>(0,e.and)(u(f,C,O,x.ownProperties),(0,e._)`${b} = ${O}`)))}Ge.checkMissingProp=i;function a(f,C){f.setParams({missingProperty:C},!0),f.error()}Ge.reportMissingProp=a;function o(f){return f.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,e._)`Object.prototype.hasOwnProperty`})}Ge.hasPropFunc=o;function c(f,C,x){return(0,e._)`${o(f)}.call(${C}, ${x})`}Ge.isOwnProperty=c;function l(f,C,x,h){const b=(0,e._)`${C}${(0,e.getProperty)(x)} !== undefined`;return h?(0,e._)`${b} && ${c(f,C,x)}`:b}Ge.propertyInData=l;function u(f,C,x,h){const b=(0,e._)`${C}${(0,e.getProperty)(x)} === undefined`;return h?(0,e.or)(b,(0,e.not)(c(f,C,x))):b}Ge.noPropertyInData=u;function m(f){return f?Object.keys(f).filter(C=>C!=="__proto__"):[]}Ge.allSchemaProperties=m;function _(f,C){return m(C).filter(x=>!(0,t.alwaysValidSchema)(f,C[x]))}Ge.schemaProperties=_;function v({schemaCode:f,data:C,it:{gen:x,topSchemaRef:h,schemaPath:b,errorPath:O},it:k},$,M,q){const U=q?(0,e._)`${f}, ${C}, ${h}${b}`:C,L=[[r.default.instancePath,(0,e.strConcat)(r.default.instancePath,O)],[r.default.parentData,k.parentData],[r.default.parentDataProperty,k.parentDataProperty],[r.default.rootData,r.default.rootData]];k.opts.dynamicRef&&L.push([r.default.dynamicAnchors,r.default.dynamicAnchors]);const B=(0,e._)`${U}, ${x.object(...L)}`;return M!==e.nil?(0,e._)`${$}.call(${M}, ${B})`:(0,e._)`${$}(${B})`}Ge.callValidateCode=v;const S=(0,e._)`new RegExp`;function E({gen:f,it:{opts:C}},x){const h=C.unicodeRegExp?"u":"",{regExp:b}=C.code,O=b(x,h);return f.scopeValue("pattern",{key:O.toString(),ref:O,code:(0,e._)`${b.code==="new RegExp"?S:(0,n.useFunc)(f,b)}(${x}, ${h})`})}Ge.usePattern=E;function g(f){const{gen:C,data:x,keyword:h,it:b}=f,O=C.name("valid");if(b.allErrors){const $=C.let("valid",!0);return k(()=>C.assign($,!1)),$}return C.var(O,!0),k(()=>C.break()),O;function k($){const M=C.const("len",(0,e._)`${x}.length`);C.forRange("i",0,M,q=>{f.subschema({keyword:h,dataProp:q,dataPropType:t.Type.Num},O),C.if((0,e.not)(O),$)})}}Ge.validateArray=g;function y(f){const{gen:C,schema:x,keyword:h,it:b}=f;if(!Array.isArray(x))throw new Error("ajv implementation error");if(x.some(M=>(0,t.alwaysValidSchema)(b,M))&&!b.opts.unevaluated)return;const k=C.let("valid",!1),$=C.name("_valid");C.block(()=>x.forEach((M,q)=>{const U=f.subschema({keyword:h,schemaProp:q,compositeRule:!0},$);C.assign(k,(0,e._)`${k} || ${$}`),f.mergeValidEvaluated(U,$)||C.if((0,e.not)(k))})),f.result(k,()=>f.reset(),()=>f.error(!0))}return Ge.validateUnion=y,Ge}var pd;function uS(){if(pd)return Xt;pd=1,Object.defineProperty(Xt,"__esModule",{value:!0}),Xt.validateKeywordUsage=Xt.validSchemaType=Xt.funcKeywordCode=Xt.macroKeywordCode=void 0;const e=Re(),t=rn(),r=sr(),n=Qa();function s(_,v){const{gen:S,keyword:E,schema:g,parentSchema:y,it:f}=_,C=v.macro.call(f.self,g,y,f),x=l(S,E,C);f.opts.validateSchema!==!1&&f.self.validateSchema(C,!0);const h=S.name("valid");_.subschema({schema:C,schemaPath:e.nil,errSchemaPath:`${f.errSchemaPath}/${E}`,topSchemaRef:x,compositeRule:!0},h),_.pass(h,()=>_.error(!0))}Xt.macroKeywordCode=s;function i(_,v){var S;const{gen:E,keyword:g,schema:y,parentSchema:f,$data:C,it:x}=_;c(x,v);const h=!C&&v.compile?v.compile.call(x.self,y,f,x):v.validate,b=l(E,g,h),O=E.let("valid");_.block$data(O,k),_.ok((S=v.valid)!==null&&S!==void 0?S:O);function k(){if(v.errors===!1)q(),v.modifying&&a(_),U(()=>_.error());else{const L=v.async?$():M();v.modifying&&a(_),U(()=>o(_,L))}}function $(){const L=E.let("ruleErrs",null);return E.try(()=>q((0,e._)`await `),B=>E.assign(O,!1).if((0,e._)`${B} instanceof ${x.ValidationError}`,()=>E.assign(L,(0,e._)`${B}.errors`),()=>E.throw(B))),L}function M(){const L=(0,e._)`${b}.errors`;return E.assign(L,null),q(e.nil),L}function q(L=v.async?(0,e._)`await `:e.nil){const B=x.opts.passContext?t.default.this:t.default.self,J=!("compile"in v&&!C||v.schema===!1);E.assign(O,(0,e._)`${L}${(0,r.callValidateCode)(_,b,B,J)}`,v.modifying)}function U(L){var B;E.if((0,e.not)((B=v.valid)!==null&&B!==void 0?B:O),L)}}Xt.funcKeywordCode=i;function a(_){const{gen:v,data:S,it:E}=_;v.if(E.parentData,()=>v.assign(S,(0,e._)`${E.parentData}[${E.parentDataProperty}]`))}function o(_,v){const{gen:S}=_;S.if((0,e._)`Array.isArray(${v})`,()=>{S.assign(t.default.vErrors,(0,e._)`${t.default.vErrors} === null ? ${v} : ${t.default.vErrors}.concat(${v})`).assign(t.default.errors,(0,e._)`${t.default.vErrors}.length`),(0,n.extendErrors)(_)},()=>_.error())}function c({schemaEnv:_},v){if(v.async&&!_.$async)throw new Error("async keyword in sync schema")}function l(_,v,S){if(S===void 0)throw new Error(`keyword "${v}" failed to compile`);return _.scopeValue("keyword",typeof S=="function"?{ref:S}:{ref:S,code:(0,e.stringify)(S)})}function u(_,v,S=!1){return!v.length||v.some(E=>E==="array"?Array.isArray(_):E==="object"?_&&typeof _=="object"&&!Array.isArray(_):typeof _==E||S&&typeof _>"u")}Xt.validSchemaType=u;function m({schema:_,opts:v,self:S,errSchemaPath:E},g,y){if(Array.isArray(g.keyword)?!g.keyword.includes(y):g.keyword!==y)throw new Error("ajv implementation error");const f=g.dependencies;if(f?.some(C=>!Object.prototype.hasOwnProperty.call(_,C)))throw new Error(`parent schema must have dependencies of ${y}: ${f.join(",")}`);if(g.validateSchema&&!g.validateSchema(_[y])){const x=`keyword "${y}" value is invalid at path "${E}": `+S.errorsText(g.validateSchema.errors);if(v.validateSchema==="log")S.logger.error(x);else throw new Error(x)}}return Xt.validateKeywordUsage=m,Xt}var Cr={},yd;function dS(){if(yd)return Cr;yd=1,Object.defineProperty(Cr,"__esModule",{value:!0}),Cr.extendSubschemaMode=Cr.extendSubschemaData=Cr.getSubschema=void 0;const e=Re(),t=Te();function r(i,{keyword:a,schemaProp:o,schema:c,schemaPath:l,errSchemaPath:u,topSchemaRef:m}){if(a!==void 0&&c!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(a!==void 0){const _=i.schema[a];return o===void 0?{schema:_,schemaPath:(0,e._)`${i.schemaPath}${(0,e.getProperty)(a)}`,errSchemaPath:`${i.errSchemaPath}/${a}`}:{schema:_[o],schemaPath:(0,e._)`${i.schemaPath}${(0,e.getProperty)(a)}${(0,e.getProperty)(o)}`,errSchemaPath:`${i.errSchemaPath}/${a}/${(0,t.escapeFragment)(o)}`}}if(c!==void 0){if(l===void 0||u===void 0||m===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:c,schemaPath:l,topSchemaRef:m,errSchemaPath:u}}throw new Error('either "keyword" or "schema" must be passed')}Cr.getSubschema=r;function n(i,a,{dataProp:o,dataPropType:c,data:l,dataTypes:u,propertyName:m}){if(l!==void 0&&o!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');const{gen:_}=a;if(o!==void 0){const{errorPath:S,dataPathArr:E,opts:g}=a,y=_.let("data",(0,e._)`${a.data}${(0,e.getProperty)(o)}`,!0);v(y),i.errorPath=(0,e.str)`${S}${(0,t.getErrorPath)(o,c,g.jsPropertySyntax)}`,i.parentDataProperty=(0,e._)`${o}`,i.dataPathArr=[...E,i.parentDataProperty]}if(l!==void 0){const S=l instanceof e.Name?l:_.let("data",l,!0);v(S),m!==void 0&&(i.propertyName=m)}u&&(i.dataTypes=u);function v(S){i.data=S,i.dataLevel=a.dataLevel+1,i.dataTypes=[],a.definedProperties=new Set,i.parentData=a.data,i.dataNames=[...a.dataNames,S]}}Cr.extendSubschemaData=n;function s(i,{jtdDiscriminator:a,jtdMetadata:o,compositeRule:c,createErrors:l,allErrors:u}){c!==void 0&&(i.compositeRule=c),l!==void 0&&(i.createErrors=l),u!==void 0&&(i.allErrors=u),i.jtdDiscriminator=a,i.jtdMetadata=o}return Cr.extendSubschemaMode=s,Cr}var xt={},Jo,gd;function eo(){return gd||(gd=1,Jo=function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;var n,s,i;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(s=n;s--!==0;)if(!e(t[s],r[s]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(i=Object.keys(t),n=i.length,n!==Object.keys(r).length)return!1;for(s=n;s--!==0;)if(!Object.prototype.hasOwnProperty.call(r,i[s]))return!1;for(s=n;s--!==0;){var a=i[s];if(!e(t[a],r[a]))return!1}return!0}return t!==t&&r!==r}),Jo}var Yo={exports:{}},vd;function fS(){if(vd)return Yo.exports;vd=1;var e=Yo.exports=function(n,s,i){typeof s=="function"&&(i=s,s={}),i=s.cb||i;var a=typeof i=="function"?i:i.pre||function(){},o=i.post||function(){};t(s,a,o,n,"",n)};e.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},e.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},e.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},e.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function t(n,s,i,a,o,c,l,u,m,_){if(a&&typeof a=="object"&&!Array.isArray(a)){s(a,o,c,l,u,m,_);for(var v in a){var S=a[v];if(Array.isArray(S)){if(v in e.arrayKeywords)for(var E=0;Eg+=o(f)),g===1/0))return 1/0}return g}function c(E,g="",y){y!==!1&&(g=m(g));const f=E.parse(g);return l(E,f)}xt.getFullPath=c;function l(E,g){return E.serialize(g).split("#")[0]+"#"}xt._getFullPath=l;const u=/#\/?$/;function m(E){return E?E.replace(u,""):""}xt.normalizeId=m;function _(E,g,y){return y=m(y),E.resolve(g,y)}xt.resolveUrl=_;const v=/^[a-z_][-a-z0-9._]*$/i;function S(E,g){if(typeof E=="boolean")return{};const{schemaId:y,uriResolver:f}=this.opts,C=m(E[y]||g),x={"":C},h=c(f,C,!1),b={},O=new Set;return r(E,{allKeys:!0},(M,q,U,L)=>{if(L===void 0)return;const B=h+q;let J=x[L];typeof M[y]=="string"&&(J=Y.call(this,M[y])),Q.call(this,M.$anchor),Q.call(this,M.$dynamicAnchor),x[q]=J;function Y(X){const re=this.opts.uriResolver.resolve;if(X=m(J?re(J,X):X),O.has(X))throw $(X);O.add(X);let A=this.refs[X];return typeof A=="string"&&(A=this.refs[A]),typeof A=="object"?k(M,A.schema,X):X!==m(B)&&(X[0]==="#"?(k(M,b[X],X),b[X]=M):this.refs[X]=B),X}function Q(X){if(typeof X=="string"){if(!v.test(X))throw new Error(`invalid anchor "${X}"`);Y.call(this,`#${X}`)}}}),b;function k(M,q,U){if(q!==void 0&&!t(M,q))throw $(U)}function $(M){return new Error(`reference "${M}" resolves to more than one schema`)}}return xt.getSchemaRefs=S,xt}var _d;function ro(){if(_d)return Sr;_d=1,Object.defineProperty(Sr,"__esModule",{value:!0}),Sr.getData=Sr.KeywordCxt=Sr.validateFunctionCode=void 0;const e=cS(),t=Va(),r=Jm(),n=Va(),s=lS(),i=uS(),a=dS(),o=Re(),c=rn(),l=to(),u=Te(),m=Qa();function _(R){if(h(R)&&(O(R),x(R))){g(R);return}v(R,()=>(0,e.topBoolOrEmptySchema)(R))}Sr.validateFunctionCode=_;function v({gen:R,validateName:D,schema:V,schemaEnv:K,opts:G},W){G.code.es5?R.func(D,(0,o._)`${c.default.data}, ${c.default.valCxt}`,K.$async,()=>{R.code((0,o._)`"use strict"; ${f(V,G)}`),E(R,G),R.code(W)}):R.func(D,(0,o._)`${c.default.data}, ${S(G)}`,K.$async,()=>R.code(f(V,G)).code(W))}function S(R){return(0,o._)`{${c.default.instancePath}="", ${c.default.parentData}, ${c.default.parentDataProperty}, ${c.default.rootData}=${c.default.data}${R.dynamicRef?(0,o._)`, ${c.default.dynamicAnchors}={}`:o.nil}}={}`}function E(R,D){R.if(c.default.valCxt,()=>{R.var(c.default.instancePath,(0,o._)`${c.default.valCxt}.${c.default.instancePath}`),R.var(c.default.parentData,(0,o._)`${c.default.valCxt}.${c.default.parentData}`),R.var(c.default.parentDataProperty,(0,o._)`${c.default.valCxt}.${c.default.parentDataProperty}`),R.var(c.default.rootData,(0,o._)`${c.default.valCxt}.${c.default.rootData}`),D.dynamicRef&&R.var(c.default.dynamicAnchors,(0,o._)`${c.default.valCxt}.${c.default.dynamicAnchors}`)},()=>{R.var(c.default.instancePath,(0,o._)`""`),R.var(c.default.parentData,(0,o._)`undefined`),R.var(c.default.parentDataProperty,(0,o._)`undefined`),R.var(c.default.rootData,c.default.data),D.dynamicRef&&R.var(c.default.dynamicAnchors,(0,o._)`{}`)})}function g(R){const{schema:D,opts:V,gen:K}=R;v(R,()=>{V.$comment&&D.$comment&&L(R),M(R),K.let(c.default.vErrors,null),K.let(c.default.errors,0),V.unevaluated&&y(R),k(R),B(R)})}function y(R){const{gen:D,validateName:V}=R;R.evaluated=D.const("evaluated",(0,o._)`${V}.evaluated`),D.if((0,o._)`${R.evaluated}.dynamicProps`,()=>D.assign((0,o._)`${R.evaluated}.props`,(0,o._)`undefined`)),D.if((0,o._)`${R.evaluated}.dynamicItems`,()=>D.assign((0,o._)`${R.evaluated}.items`,(0,o._)`undefined`))}function f(R,D){const V=typeof R=="object"&&R[D.schemaId];return V&&(D.code.source||D.code.process)?(0,o._)`/*# sourceURL=${V} */`:o.nil}function C(R,D){if(h(R)&&(O(R),x(R))){b(R,D);return}(0,e.boolOrEmptySchema)(R,D)}function x({schema:R,self:D}){if(typeof R=="boolean")return!R;for(const V in R)if(D.RULES.all[V])return!0;return!1}function h(R){return typeof R.schema!="boolean"}function b(R,D){const{schema:V,gen:K,opts:G}=R;G.$comment&&V.$comment&&L(R),q(R),U(R);const W=K.const("_errs",c.default.errors);k(R,W),K.var(D,(0,o._)`${W} === ${c.default.errors}`)}function O(R){(0,u.checkUnknownRules)(R),$(R)}function k(R,D){if(R.opts.jtd)return Y(R,[],!1,D);const V=(0,t.getSchemaTypes)(R.schema),K=(0,t.coerceAndCheckDataType)(R,V);Y(R,V,!K,D)}function $(R){const{schema:D,errSchemaPath:V,opts:K,self:G}=R;D.$ref&&K.ignoreKeywordsWithRef&&(0,u.schemaHasRulesButRef)(D,G.RULES)&&G.logger.warn(`$ref: keywords ignored in schema at path "${V}"`)}function M(R){const{schema:D,opts:V}=R;D.default!==void 0&&V.useDefaults&&V.strictSchema&&(0,u.checkStrictMode)(R,"default is ignored in the schema root")}function q(R){const D=R.schema[R.opts.schemaId];D&&(R.baseId=(0,l.resolveUrl)(R.opts.uriResolver,R.baseId,D))}function U(R){if(R.schema.$async&&!R.schemaEnv.$async)throw new Error("async schema in sync schema")}function L({gen:R,schemaEnv:D,schema:V,errSchemaPath:K,opts:G}){const W=V.$comment;if(G.$comment===!0)R.code((0,o._)`${c.default.self}.logger.log(${W})`);else if(typeof G.$comment=="function"){const te=(0,o.str)`${K}/$comment`,ne=R.scopeValue("root",{ref:D.root});R.code((0,o._)`${c.default.self}.opts.$comment(${W}, ${te}, ${ne}.schema)`)}}function B(R){const{gen:D,schemaEnv:V,validateName:K,ValidationError:G,opts:W}=R;V.$async?D.if((0,o._)`${c.default.errors} === 0`,()=>D.return(c.default.data),()=>D.throw((0,o._)`new ${G}(${c.default.vErrors})`)):(D.assign((0,o._)`${K}.errors`,c.default.vErrors),W.unevaluated&&J(R),D.return((0,o._)`${c.default.errors} === 0`))}function J({gen:R,evaluated:D,props:V,items:K}){V instanceof o.Name&&R.assign((0,o._)`${D}.props`,V),K instanceof o.Name&&R.assign((0,o._)`${D}.items`,K)}function Y(R,D,V,K){const{gen:G,schema:W,data:te,allErrors:ne,opts:se,self:ce}=R,{RULES:he}=ce;if(W.$ref&&(se.ignoreKeywordsWithRef||!(0,u.schemaHasRulesButRef)(W,he))){G.block(()=>T(R,"$ref",he.all.$ref.definition));return}se.jtd||X(R,D),G.block(()=>{for(const ge of he.rules)le(ge);le(he.post)});function le(ge){(0,r.shouldUseGroup)(W,ge)&&(ge.type?(G.if((0,n.checkDataType)(ge.type,te,se.strictNumbers)),Q(R,ge),D.length===1&&D[0]===ge.type&&V&&(G.else(),(0,n.reportTypeError)(R)),G.endIf()):Q(R,ge),ne||G.if((0,o._)`${c.default.errors} === ${K||0}`))}}function Q(R,D){const{gen:V,schema:K,opts:{useDefaults:G}}=R;G&&(0,s.assignDefaults)(R,D.type),V.block(()=>{for(const W of D.rules)(0,r.shouldUseRule)(K,W)&&T(R,W.keyword,W.definition,D.type)})}function X(R,D){R.schemaEnv.meta||!R.opts.strictTypes||(re(R,D),R.opts.allowUnionTypes||A(R,D),w(R,R.dataTypes))}function re(R,D){if(D.length){if(!R.dataTypes.length){R.dataTypes=D;return}D.forEach(V=>{p(R.dataTypes,V)||P(R,`type "${V}" not allowed by context "${R.dataTypes.join(",")}"`)}),d(R,D)}}function A(R,D){D.length>1&&!(D.length===2&&D.includes("null"))&&P(R,"use allowUnionTypes to allow union type keyword")}function w(R,D){const V=R.self.RULES.all;for(const K in V){const G=V[K];if(typeof G=="object"&&(0,r.shouldUseRule)(R.schema,G)){const{type:W}=G.definition;W.length&&!W.some(te=>j(D,te))&&P(R,`missing type "${W.join(",")}" for keyword "${K}"`)}}}function j(R,D){return R.includes(D)||D==="number"&&R.includes("integer")}function p(R,D){return R.includes(D)||D==="integer"&&R.includes("number")}function d(R,D){const V=[];for(const K of R.dataTypes)p(D,K)?V.push(K):D.includes("integer")&&K==="number"&&V.push("integer");R.dataTypes=V}function P(R,D){const V=R.schemaEnv.baseId+R.errSchemaPath;D+=` at "${V}" (strictTypes)`,(0,u.checkStrictMode)(R,D,R.opts.strictTypes)}class I{constructor(D,V,K){if((0,i.validateKeywordUsage)(D,V,K),this.gen=D.gen,this.allErrors=D.allErrors,this.keyword=K,this.data=D.data,this.schema=D.schema[K],this.$data=V.$data&&D.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,u.schemaRefOrVal)(D,this.schema,K,this.$data),this.schemaType=V.schemaType,this.parentSchema=D.schema,this.params={},this.it=D,this.def=V,this.$data)this.schemaCode=D.gen.const("vSchema",H(this.$data,D));else if(this.schemaCode=this.schemaValue,!(0,i.validSchemaType)(this.schema,V.schemaType,V.allowUndefined))throw new Error(`${K} value must be ${JSON.stringify(V.schemaType)}`);("code"in V?V.trackErrors:V.errors!==!1)&&(this.errsCount=D.gen.const("_errs",c.default.errors))}result(D,V,K){this.failResult((0,o.not)(D),V,K)}failResult(D,V,K){this.gen.if(D),K?K():this.error(),V?(this.gen.else(),V(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(D,V){this.failResult((0,o.not)(D),void 0,V)}fail(D){if(D===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(D),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(D){if(!this.$data)return this.fail(D);const{schemaCode:V}=this;this.fail((0,o._)`${V} !== undefined && (${(0,o.or)(this.invalid$data(),D)})`)}error(D,V,K){if(V){this.setParams(V),this._error(D,K),this.setParams({});return}this._error(D,K)}_error(D,V){(D?m.reportExtraError:m.reportError)(this,this.def.error,V)}$dataError(){(0,m.reportError)(this,this.def.$dataError||m.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,m.resetErrorsCount)(this.gen,this.errsCount)}ok(D){this.allErrors||this.gen.if(D)}setParams(D,V){V?Object.assign(this.params,D):this.params=D}block$data(D,V,K=o.nil){this.gen.block(()=>{this.check$data(D,K),V()})}check$data(D=o.nil,V=o.nil){if(!this.$data)return;const{gen:K,schemaCode:G,schemaType:W,def:te}=this;K.if((0,o.or)((0,o._)`${G} === undefined`,V)),D!==o.nil&&K.assign(D,!0),(W.length||te.validateSchema)&&(K.elseIf(this.invalid$data()),this.$dataError(),D!==o.nil&&K.assign(D,!1)),K.else()}invalid$data(){const{gen:D,schemaCode:V,schemaType:K,def:G,it:W}=this;return(0,o.or)(te(),ne());function te(){if(K.length){if(!(V instanceof o.Name))throw new Error("ajv implementation error");const se=Array.isArray(K)?K:[K];return(0,o._)`${(0,n.checkDataTypes)(se,V,W.opts.strictNumbers,n.DataType.Wrong)}`}return o.nil}function ne(){if(G.validateSchema){const se=D.scopeValue("validate$data",{ref:G.validateSchema});return(0,o._)`!${se}(${V})`}return o.nil}}subschema(D,V){const K=(0,a.getSubschema)(this.it,D);(0,a.extendSubschemaData)(K,this.it,D),(0,a.extendSubschemaMode)(K,D);const G={...this.it,...K,items:void 0,props:void 0};return C(G,V),G}mergeEvaluated(D,V){const{it:K,gen:G}=this;K.opts.unevaluated&&(K.props!==!0&&D.props!==void 0&&(K.props=u.mergeEvaluated.props(G,D.props,K.props,V)),K.items!==!0&&D.items!==void 0&&(K.items=u.mergeEvaluated.items(G,D.items,K.items,V)))}mergeValidEvaluated(D,V){const{it:K,gen:G}=this;if(K.opts.unevaluated&&(K.props!==!0||K.items!==!0))return G.if(V,()=>this.mergeEvaluated(D,o.Name)),!0}}Sr.KeywordCxt=I;function T(R,D,V,K){const G=new I(R,V,D);"code"in V?V.code(G,K):G.$data&&V.validate?(0,i.funcKeywordCode)(G,V):"macro"in V?(0,i.macroKeywordCode)(G,V):(V.compile||V.validate)&&(0,i.funcKeywordCode)(G,V)}const F=/^\/(?:[^~]|~0|~1)*$/,z=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function H(R,{dataLevel:D,dataNames:V,dataPathArr:K}){let G,W;if(R==="")return c.default.rootData;if(R[0]==="/"){if(!F.test(R))throw new Error(`Invalid JSON-pointer: ${R}`);G=R,W=c.default.rootData}else{const ce=z.exec(R);if(!ce)throw new Error(`Invalid JSON-pointer: ${R}`);const he=+ce[1];if(G=ce[2],G==="#"){if(he>=D)throw new Error(se("property/index",he));return K[D-he]}if(he>D)throw new Error(se("data",he));if(W=V[D-he],!G)return W}let te=W;const ne=G.split("/");for(const ce of ne)ce&&(W=(0,o._)`${W}${(0,o.getProperty)((0,u.unescapeJsonPointer)(ce))}`,te=(0,o._)`${te} && ${W}`);return te;function se(ce,he){return`Cannot access ${ce} ${he} levels up, current level is ${D}`}}return Sr.getData=H,Sr}var Zi={},Sd;function ul(){if(Sd)return Zi;Sd=1,Object.defineProperty(Zi,"__esModule",{value:!0});class e extends Error{constructor(r){super("validation failed"),this.errors=r,this.ajv=this.validation=!0}}return Zi.default=e,Zi}var Qi={},wd;function no(){if(wd)return Qi;wd=1,Object.defineProperty(Qi,"__esModule",{value:!0});const e=to();class t extends Error{constructor(n,s,i,a){super(a||`can't resolve reference ${i} from id ${s}`),this.missingRef=(0,e.resolveUrl)(n,s,i),this.missingSchema=(0,e.normalizeId)((0,e.getFullPath)(n,this.missingRef))}}return Qi.default=t,Qi}var Tt={},Cd;function dl(){if(Cd)return Tt;Cd=1,Object.defineProperty(Tt,"__esModule",{value:!0}),Tt.resolveSchema=Tt.getCompilingSchema=Tt.resolveRef=Tt.compileSchema=Tt.SchemaEnv=void 0;const e=Re(),t=ul(),r=rn(),n=to(),s=Te(),i=ro();class a{constructor(y){var f;this.refs={},this.dynamicAnchors={};let C;typeof y.schema=="object"&&(C=y.schema),this.schema=y.schema,this.schemaId=y.schemaId,this.root=y.root||this,this.baseId=(f=y.baseId)!==null&&f!==void 0?f:(0,n.normalizeId)(C?.[y.schemaId||"$id"]),this.schemaPath=y.schemaPath,this.localRefs=y.localRefs,this.meta=y.meta,this.$async=C?.$async,this.refs={}}}Tt.SchemaEnv=a;function o(g){const y=u.call(this,g);if(y)return y;const f=(0,n.getFullPath)(this.opts.uriResolver,g.root.baseId),{es5:C,lines:x}=this.opts.code,{ownProperties:h}=this.opts,b=new e.CodeGen(this.scope,{es5:C,lines:x,ownProperties:h});let O;g.$async&&(O=b.scopeValue("Error",{ref:t.default,code:(0,e._)`require("ajv/dist/runtime/validation_error").default`}));const k=b.scopeName("validate");g.validateName=k;const $={gen:b,allErrors:this.opts.allErrors,data:r.default.data,parentData:r.default.parentData,parentDataProperty:r.default.parentDataProperty,dataNames:[r.default.data],dataPathArr:[e.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:b.scopeValue("schema",this.opts.code.source===!0?{ref:g.schema,code:(0,e.stringify)(g.schema)}:{ref:g.schema}),validateName:k,ValidationError:O,schema:g.schema,schemaEnv:g,rootId:f,baseId:g.baseId||f,schemaPath:e.nil,errSchemaPath:g.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,e._)`""`,opts:this.opts,self:this};let M;try{this._compilations.add(g),(0,i.validateFunctionCode)($),b.optimize(this.opts.code.optimize);const q=b.toString();M=`${b.scopeRefs(r.default.scope)}return ${q}`,this.opts.code.process&&(M=this.opts.code.process(M,g));const L=new Function(`${r.default.self}`,`${r.default.scope}`,M)(this,this.scope.get());if(this.scope.value(k,{ref:L}),L.errors=null,L.schema=g.schema,L.schemaEnv=g,g.$async&&(L.$async=!0),this.opts.code.source===!0&&(L.source={validateName:k,validateCode:q,scopeValues:b._values}),this.opts.unevaluated){const{props:B,items:J}=$;L.evaluated={props:B instanceof e.Name?void 0:B,items:J instanceof e.Name?void 0:J,dynamicProps:B instanceof e.Name,dynamicItems:J instanceof e.Name},L.source&&(L.source.evaluated=(0,e.stringify)(L.evaluated))}return g.validate=L,g}catch(q){throw delete g.validate,delete g.validateName,M&&this.logger.error("Error compiling schema, function code:",M),q}finally{this._compilations.delete(g)}}Tt.compileSchema=o;function c(g,y,f){var C;f=(0,n.resolveUrl)(this.opts.uriResolver,y,f);const x=g.refs[f];if(x)return x;let h=_.call(this,g,f);if(h===void 0){const b=(C=g.localRefs)===null||C===void 0?void 0:C[f],{schemaId:O}=this.opts;b&&(h=new a({schema:b,schemaId:O,root:g,baseId:y}))}if(h!==void 0)return g.refs[f]=l.call(this,h)}Tt.resolveRef=c;function l(g){return(0,n.inlineRef)(g.schema,this.opts.inlineRefs)?g.schema:g.validate?g:o.call(this,g)}function u(g){for(const y of this._compilations)if(m(y,g))return y}Tt.getCompilingSchema=u;function m(g,y){return g.schema===y.schema&&g.root===y.root&&g.baseId===y.baseId}function _(g,y){let f;for(;typeof(f=this.refs[y])=="string";)y=f;return f||this.schemas[y]||v.call(this,g,y)}function v(g,y){const f=this.opts.uriResolver.parse(y),C=(0,n._getFullPath)(this.opts.uriResolver,f);let x=(0,n.getFullPath)(this.opts.uriResolver,g.baseId,void 0);if(Object.keys(g.schema).length>0&&C===x)return E.call(this,f,g);const h=(0,n.normalizeId)(C),b=this.refs[h]||this.schemas[h];if(typeof b=="string"){const O=v.call(this,g,b);return typeof O?.schema!="object"?void 0:E.call(this,f,O)}if(typeof b?.schema=="object"){if(b.validate||o.call(this,b),h===(0,n.normalizeId)(y)){const{schema:O}=b,{schemaId:k}=this.opts,$=O[k];return $&&(x=(0,n.resolveUrl)(this.opts.uriResolver,x,$)),new a({schema:O,schemaId:k,root:g,baseId:x})}return E.call(this,f,b)}}Tt.resolveSchema=v;const S=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function E(g,{baseId:y,schema:f,root:C}){var x;if(((x=g.fragment)===null||x===void 0?void 0:x[0])!=="/")return;for(const O of g.fragment.slice(1).split("/")){if(typeof f=="boolean")return;const k=f[(0,s.unescapeFragment)(O)];if(k===void 0)return;f=k;const $=typeof f=="object"&&f[this.opts.schemaId];!S.has(O)&&$&&(y=(0,n.resolveUrl)(this.opts.uriResolver,y,$))}let h;if(typeof f!="boolean"&&f.$ref&&!(0,s.schemaHasRulesButRef)(f,this.RULES)){const O=(0,n.resolveUrl)(this.opts.uriResolver,y,f.$ref);h=v.call(this,C,O)}const{schemaId:b}=this.opts;if(h=h||new a({schema:f,schemaId:b,root:C,baseId:y}),h.schema!==h.root.schema)return h}return Tt}const hS="https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",mS="Meta-schema for $data reference (JSON AnySchema extension proposal)",pS="object",yS=["$data"],gS={$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},vS=!1,bS={$id:hS,description:mS,type:pS,required:yS,properties:gS,additionalProperties:vS};var es={},bi={exports:{}},Xo,Ed;function Ym(){if(Ed)return Xo;Ed=1;const e=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),t=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u),r=RegExp.prototype.test.bind(/^\d*$/u),n=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),s=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),i=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/]$/u),a=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/?]$/u),o=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:]$/u),c=new Array(256);{const A="0123456789ABCDEF";for(let w=0;w<256;w++)c[w]="%"+A[w>>4]+A[w&15]}function l(A){return A<2048?c[192|A>>6]+c[128|A&63]:A<65536?c[224|A>>12]+c[128|A>>6&63]+c[128|A&63]:c[240|A>>18]+c[128|A>>12&63]+c[128|A>>6&63]+c[128|A&63]}function u(A){let w="",j=0,p=0;for(p=0;p=48&&j<=57||j>=65&&j<=70||j>=97&&j<=102))return"";w+=A[p];break}for(p+=1;p=48&&j<=57||j>=65&&j<=70||j>=97&&j<=102))return"";w+=A[p]}return w}const m=RegExp.prototype.test.bind(/^[\dA-Fa-f]{1,4}$/),_=RegExp.prototype.test.bind(/^[vV][\dA-Fa-f]+\.[A-Za-z\d\-._~!$&'()*+,;=:]+$/),v=RegExp.prototype.test.bind(/^[A-Za-z\d\-._~]$/),S=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function E(A){if(A.length===0)return!1;for(let w=0;wj&&(j=d,w=p)):(p=-1,d=0);if(j<2)return A.join(":");const P=A.slice(0,w).join(":"),I=A.slice(w+j).join(":");return P+"::"+I}function y(A){const w=A.indexOf("::");if(w!==-1&&A.indexOf("::",w+1)!==-1)return;const j=w===-1?A.split(":"):A.slice(0,w).split(":"),p=w===-1?[]:A.slice(w+2).split(":");w!==-1&&(j.length===1&&j[0]===""&&(j.length=0),p.length===1&&p[0]===""&&(p.length=0));const d=j.concat(p);let P=0;for(let T=0;T=8)return;const I=d.slice(0,j.length);for(let T=P;T<8;T++)I.push("0");for(let T=j.length;Th[p])}function $(A,w=!1){if(A.indexOf("%")===-1)return A;let j="";for(let p=0;p57343)w+=l(d);else if(d<=56319&&j+1=56320&&P<=57343?(w+=l(65536+(d-55296<<10)+(P-56320)),j++):w+=l(65533)}else w+=l(65533)}}return w}function q(A,w=!1){let j="",p=w&&A[0]!=="/";for(let d=0;d57343)j+=l(I);else if(I<=56319&&d+1=56320&&T<=57343?(j+=l(65536+(I-55296<<10)+(T-56320)),d++):j+=l(65533)}else j+=l(65533)}}return j}function U(A,w){let j="";for(let p=0;p57343)j+=l(P);else if(P<=56319&&p+1=56320&&I<=57343?(j+=l(65536+(P-55296<<10)+(I-56320)),p++):j+=l(65533)}else j+=l(65533)}}return j}function L(A){return U(A,o)}function B(A){return U(A,a)}function J(A){return U(A,a)}function Y(A){return A>=48&&A<=57||A>=65&&A<=90||A>=97&&A<=122||A===42||A===43||A===45||A===46||A===47||A===64||A===95}function Q(A){let w="";for(let j=0;j57343)w+=l(d);else if(d<=56319&&j+1=56320&&P<=57343?(w+=l(65536+(d-55296<<10)+(P-56320)),j++):w+=l(65533)}else w+=l(65533)}}return w}function X(A){let w="";for(let j=0;j65535))return"URI port is malformed."}function M(A){if(A===void 0)return!1;let w=A.indexOf("%");for(;w!==-1;){if(w+2>=A.length||!/^[\da-f]{2}$/iu.test(A.slice(w+1,w+3)))return!0;w=A.indexOf("%",w+3)}return!1}function q(A){return A[0]==="["&&A[A.length-1]==="]"}function U(A){const w=A[4];return M(A[3])||w!==void 0&&!q(w)&&M(w)||M(A[6])||M(A[7])||M(A[8])}function L(A,w,j,p){if(!w.unicodeSupport&&(!j||!j.unicodeSupport)&&A.host&&!q(A.host)&&(w.domainHost||j&&j.domainHost)&&p===!1&&m(A.host))try{A.host=new URL("http://"+A.host).hostname}catch(d){return A.error=A.error||"Host's domain name can not be converted to ASCII: "+d,!0}return!1}function B(A,w){const j=Object.assign({},w),p={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0};let d=!1,P=!1,I=!1,T=!1,F=!1,z=!1,H=!1;j.reference==="suffix"&&(j.scheme?A=j.scheme+":"+A:A="//"+A);const R=A.match(O);R!==null&&R[1].indexOf("\\")!==-1&&(p.error="URI authority must not contain a literal backslash.",d=!0);const D=A.match(k);if(D!==null){const K=D[1],G=K.replace(/[\t\n\r]/g,"");G.length>=2&&(G.slice(0,2)!=="//"?(p.error=p.error||"URI authority must not contain a literal backslash.",d=!0):K.length!==G.length&&(p.error=p.error||"URI authority introducer must not contain whitespace.",d=!0))}const V=A.match(b);if(V){if(p.scheme=V[1],p.userinfo=V[3],p.host=V[4],p.port=parseInt(V[5],10),p.path=V[6]||"",p.query=V[7],p.fragment=V[8],p.scheme!==void 0){const W=unescape(p.scheme);S.test(W)?p.scheme=W.toLowerCase():(p.error=p.error||E,z=!0)}P=U(V),P&&(p.error=p.error||"URI contains malformed percent-encoding."),isNaN(p.port)&&(p.port=V[5]);const K=$(p,V);if(K!==void 0&&(p.error=p.error||K,d=!0),p.host)if(u(p.host)===!1){const te=q(p.host),ne=p.host.indexOf("[")!==-1||p.host.indexOf("]")!==-1,se=e(p.host);H=se.isIPV6||se.isIPVFuture===!0,F=ne&&(!te||se.error===!0),p.host=H?se.host:se.host.toLowerCase(),F&&(p.error=p.error||"URI host is malformed.",d=!0)}else H=!0;p.scheme===void 0&&p.userinfo===void 0&&p.host===void 0&&p.port===void 0&&p.query===void 0&&!p.path?p.reference="same-document":p.scheme===void 0?p.reference="relative":p.fragment===void 0?p.reference="absolute":p.reference="uri",j.reference&&j.reference!=="suffix"&&j.reference!==p.reference&&(p.error=p.error||"URI is not a "+j.reference+" reference.");const G=v(j.scheme||p.scheme);if(F||(T=L(p,j,G,H)),!G||G&&!G.skipNormalize){if(A.indexOf("%")!==-1&&p.host!==void 0&&!F){const W=H?p.host:n(p.host,!0);p.host=l(W,H)}p.path&&(p.path=s(p.path)),p.query&&(p.query=a(p.query)),p.fragment&&(p.fragment=a(p.fragment))}G&&G.parse&&(G.parse(p,j),G===_.urn&&p.nid===void 0&&(I=!0))}else p.error=p.error||"URI can not be parsed.";return{parsed:p,malformedAuthorityOrPort:d,malformedPercentEncoding:P,malformedSchemeSpecific:I,malformedHost:T,malformedScheme:z}}function J(A,w){return B(A,w).parsed}function Y(A,w){return Q(A,w).normalized}function Q(A,w){const{parsed:j,malformedAuthorityOrPort:p,malformedPercentEncoding:d,malformedSchemeSpecific:P,malformedHost:I,malformedScheme:T}=B(A,w);return{normalized:p||d||P||I||T?A:h(j,w),malformedAuthorityOrPort:p,malformedPercentEncoding:d,malformedSchemeSpecific:P,malformedHost:I,malformedScheme:T}}function X(A,w){if(typeof A!="string"&&typeof A!="object")return;let j;try{j=typeof A=="string"?A:h(A,w)}catch{return}const{normalized:p,malformedAuthorityOrPort:d,malformedPercentEncoding:P,malformedSchemeSpecific:I,malformedHost:T,malformedScheme:F}=Q(j,w);return d||P||I||T||F?void 0:p}const re={SCHEMES:_,normalize:y,resolve:f,resolveComponent:C,equal:x,serialize:h,parse:J};return bi.exports=re,bi.exports.default=re,bi.exports.fastUri=re,bi.exports}var xd;function wS(){if(xd)return es;xd=1,Object.defineProperty(es,"__esModule",{value:!0});const e=SS();return e.code='require("ajv/dist/runtime/uri").default',es.default=e,es}var Od;function CS(){return Od||(Od=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=void 0;var t=ro();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return t.KeywordCxt}});var r=Re();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return r._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return r.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return r.CodeGen}});const n=ul(),s=no(),i=Wm(),a=dl(),o=Re(),c=to(),l=Va(),u=Te(),m=bS,_=wS(),v=(A,w)=>new RegExp(A,w);v.code="new RegExp";const S=["removeAdditional","useDefaults","coerceTypes"],E=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),g={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},y={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},f=200;function C(A){var w,j,p,d,P,I,T,F,z,H,R,D,V,K,G,W,te,ne,se,ce,he,le,ge,Fe,fe;const Ye=A.strict,ye=(w=A.code)===null||w===void 0?void 0:w.optimize,oe=ye===!0||ye===void 0?1:ye||0,ft=(p=(j=A.code)===null||j===void 0?void 0:j.regExp)!==null&&p!==void 0?p:v,ke=(d=A.uriResolver)!==null&&d!==void 0?d:_.default;return{strictSchema:(I=(P=A.strictSchema)!==null&&P!==void 0?P:Ye)!==null&&I!==void 0?I:!0,strictNumbers:(F=(T=A.strictNumbers)!==null&&T!==void 0?T:Ye)!==null&&F!==void 0?F:!0,strictTypes:(H=(z=A.strictTypes)!==null&&z!==void 0?z:Ye)!==null&&H!==void 0?H:"log",strictTuples:(D=(R=A.strictTuples)!==null&&R!==void 0?R:Ye)!==null&&D!==void 0?D:"log",strictRequired:(K=(V=A.strictRequired)!==null&&V!==void 0?V:Ye)!==null&&K!==void 0?K:!1,code:A.code?{...A.code,optimize:oe,regExp:ft}:{optimize:oe,regExp:ft},loopRequired:(G=A.loopRequired)!==null&&G!==void 0?G:f,loopEnum:(W=A.loopEnum)!==null&&W!==void 0?W:f,meta:(te=A.meta)!==null&&te!==void 0?te:!0,messages:(ne=A.messages)!==null&&ne!==void 0?ne:!0,inlineRefs:(se=A.inlineRefs)!==null&&se!==void 0?se:!0,schemaId:(ce=A.schemaId)!==null&&ce!==void 0?ce:"$id",addUsedSchema:(he=A.addUsedSchema)!==null&&he!==void 0?he:!0,validateSchema:(le=A.validateSchema)!==null&&le!==void 0?le:!0,validateFormats:(ge=A.validateFormats)!==null&&ge!==void 0?ge:!0,unicodeRegExp:(Fe=A.unicodeRegExp)!==null&&Fe!==void 0?Fe:!0,int32range:(fe=A.int32range)!==null&&fe!==void 0?fe:!0,uriResolver:ke}}class x{constructor(w={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,w=this.opts={...w,...C(w)};const{es5:j,lines:p}=this.opts.code;this.scope=new o.ValueScope({scope:{},prefixes:E,es5:j,lines:p}),this.logger=U(w.logger);const d=w.validateFormats;w.validateFormats=!1,this.RULES=(0,i.getRules)(),h.call(this,g,w,"NOT SUPPORTED"),h.call(this,y,w,"DEPRECATED","warn"),this._metaOpts=M.call(this),w.formats&&k.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),w.keywords&&$.call(this,w.keywords),typeof w.meta=="object"&&this.addMetaSchema(w.meta),O.call(this),w.validateFormats=d}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){const{$data:w,meta:j,schemaId:p}=this.opts;let d=m;p==="id"&&(d={...m},d.id=d.$id,delete d.$id),j&&w&&this.addMetaSchema(d,d[p],!1)}defaultMeta(){const{meta:w,schemaId:j}=this.opts;return this.opts.defaultMeta=typeof w=="object"?w[j]||w:void 0}validate(w,j){let p;if(typeof w=="string"){if(p=this.getSchema(w),!p)throw new Error(`no schema with key or ref "${w}"`)}else p=this.compile(w);const d=p(j);return"$async"in p||(this.errors=p.errors),d}compile(w,j){const p=this._addSchema(w,j);return p.validate||this._compileSchemaEnv(p)}compileAsync(w,j){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");const{loadSchema:p}=this.opts;return d.call(this,w,j);async function d(H,R){await P.call(this,H.$schema);const D=this._addSchema(H,R);return D.validate||I.call(this,D)}async function P(H){H&&!this.getSchema(H)&&await d.call(this,{$ref:H},!0)}async function I(H){try{return this._compileSchemaEnv(H)}catch(R){if(!(R instanceof s.default))throw R;return T.call(this,R),await F.call(this,R.missingSchema),I.call(this,H)}}function T({missingSchema:H,missingRef:R}){if(this.refs[H])throw new Error(`AnySchema ${H} is loaded but ${R} cannot be resolved`)}async function F(H){const R=await z.call(this,H);this.refs[H]||await P.call(this,R.$schema),this.refs[H]||this.addSchema(R,H,j)}async function z(H){const R=this._loading[H];if(R)return R;try{return await(this._loading[H]=p(H))}finally{delete this._loading[H]}}}addSchema(w,j,p,d=this.opts.validateSchema){if(Array.isArray(w)){for(const I of w)this.addSchema(I,void 0,p,d);return this}let P;if(typeof w=="object"){const{schemaId:I}=this.opts;if(P=w[I],P!==void 0&&typeof P!="string")throw new Error(`schema ${I} must be string`)}return j=(0,c.normalizeId)(j||P),this._checkUnique(j),this.schemas[j]=this._addSchema(w,p,j,d,!0),this}addMetaSchema(w,j,p=this.opts.validateSchema){return this.addSchema(w,j,!0,p),this}validateSchema(w,j){if(typeof w=="boolean")return!0;let p;if(p=w.$schema,p!==void 0&&typeof p!="string")throw new Error("$schema must be a string");if(p=p||this.opts.defaultMeta||this.defaultMeta(),!p)return this.logger.warn("meta-schema not available"),this.errors=null,!0;const d=this.validate(p,w);if(!d&&j){const P="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(P);else throw new Error(P)}return d}getSchema(w){let j;for(;typeof(j=b.call(this,w))=="string";)w=j;if(j===void 0){const{schemaId:p}=this.opts,d=new a.SchemaEnv({schema:{},schemaId:p});if(j=a.resolveSchema.call(this,d,w),!j)return;this.refs[w]=j}return j.validate||this._compileSchemaEnv(j)}removeSchema(w){if(w instanceof RegExp)return this._removeAllSchemas(this.schemas,w),this._removeAllSchemas(this.refs,w),this;switch(typeof w){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{const j=b.call(this,w);return typeof j=="object"&&this._cache.delete(j.schema),delete this.schemas[w],delete this.refs[w],this}case"object":{const j=w;this._cache.delete(j);let p=w[this.opts.schemaId];return p&&(p=(0,c.normalizeId)(p),delete this.schemas[p],delete this.refs[p]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(w){for(const j of w)this.addKeyword(j);return this}addKeyword(w,j){let p;if(typeof w=="string")p=w,typeof j=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),j.keyword=p);else if(typeof w=="object"&&j===void 0){if(j=w,p=j.keyword,Array.isArray(p)&&!p.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(B.call(this,p,j),!j)return(0,u.eachItem)(p,P=>J.call(this,P)),this;Q.call(this,j);const d={...j,type:(0,l.getJSONTypes)(j.type),schemaType:(0,l.getJSONTypes)(j.schemaType)};return(0,u.eachItem)(p,d.type.length===0?P=>J.call(this,P,d):P=>d.type.forEach(I=>J.call(this,P,d,I))),this}getKeyword(w){const j=this.RULES.all[w];return typeof j=="object"?j.definition:!!j}removeKeyword(w){const{RULES:j}=this;delete j.keywords[w],delete j.all[w];for(const p of j.rules){const d=p.rules.findIndex(P=>P.keyword===w);d>=0&&p.rules.splice(d,1)}return this}addFormat(w,j){return typeof j=="string"&&(j=new RegExp(j)),this.formats[w]=j,this}errorsText(w=this.errors,{separator:j=", ",dataVar:p="data"}={}){return!w||w.length===0?"No errors":w.map(d=>`${p}${d.instancePath} ${d.message}`).reduce((d,P)=>d+j+P)}$dataMetaSchema(w,j){const p=this.RULES.all;w=JSON.parse(JSON.stringify(w));for(const d of j){const P=d.split("/").slice(1);let I=w;for(const T of P)I=I[T];for(const T in p){const F=p[T];if(typeof F!="object")continue;const{$data:z}=F.definition,H=I[T];z&&H&&(I[T]=re(H))}}return w}_removeAllSchemas(w,j){for(const p in w){const d=w[p];(!j||j.test(p))&&(typeof d=="string"?delete w[p]:d&&!d.meta&&(this._cache.delete(d.schema),delete w[p]))}}_addSchema(w,j,p,d=this.opts.validateSchema,P=this.opts.addUsedSchema){let I;const{schemaId:T}=this.opts;if(typeof w=="object")I=w[T];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof w!="boolean")throw new Error("schema must be object or boolean")}let F=this._cache.get(w);if(F!==void 0)return F;p=(0,c.normalizeId)(I||p);const z=c.getSchemaRefs.call(this,w,p);return F=new a.SchemaEnv({schema:w,schemaId:T,meta:j,baseId:p,localRefs:z}),this._cache.set(F.schema,F),P&&!p.startsWith("#")&&(p&&this._checkUnique(p),this.refs[p]=F),d&&this.validateSchema(w,!0),F}_checkUnique(w){if(this.schemas[w]||this.refs[w])throw new Error(`schema with key or id "${w}" already exists`)}_compileSchemaEnv(w){if(w.meta?this._compileMetaSchema(w):a.compileSchema.call(this,w),!w.validate)throw new Error("ajv implementation error");return w.validate}_compileMetaSchema(w){const j=this.opts;this.opts=this._metaOpts;try{a.compileSchema.call(this,w)}finally{this.opts=j}}}x.ValidationError=n.default,x.MissingRefError=s.default,e.default=x;function h(A,w,j,p="error"){for(const d in A){const P=d;P in w&&this.logger[p](`${j}: option ${d}. ${A[P]}`)}}function b(A){return A=(0,c.normalizeId)(A),this.schemas[A]||this.refs[A]}function O(){const A=this.opts.schemas;if(A)if(Array.isArray(A))this.addSchema(A);else for(const w in A)this.addSchema(A[w],w)}function k(){for(const A in this.opts.formats){const w=this.opts.formats[A];w&&this.addFormat(A,w)}}function $(A){if(Array.isArray(A)){this.addVocabulary(A);return}this.logger.warn("keywords option as map is deprecated, pass array");for(const w in A){const j=A[w];j.keyword||(j.keyword=w),this.addKeyword(j)}}function M(){const A={...this.opts};for(const w of S)delete A[w];return A}const q={log(){},warn(){},error(){}};function U(A){if(A===!1)return q;if(A===void 0)return console;if(A.log&&A.warn&&A.error)return A;throw new Error("logger must implement log, warn and error methods")}const L=/^[a-z_$][a-z0-9_$:-]*$/i;function B(A,w){const{RULES:j}=this;if((0,u.eachItem)(A,p=>{if(j.keywords[p])throw new Error(`Keyword ${p} is already defined`);if(!L.test(p))throw new Error(`Keyword ${p} has invalid name`)}),!!w&&w.$data&&!("code"in w||"validate"in w))throw new Error('$data keyword must have "code" or "validate" function')}function J(A,w,j){var p;const d=w?.post;if(j&&d)throw new Error('keyword with "post" flag cannot have "type"');const{RULES:P}=this;let I=d?P.post:P.rules.find(({type:F})=>F===j);if(I||(I={type:j,rules:[]},P.rules.push(I)),P.keywords[A]=!0,!w)return;const T={keyword:A,definition:{...w,type:(0,l.getJSONTypes)(w.type),schemaType:(0,l.getJSONTypes)(w.schemaType)}};w.before?Y.call(this,I,T,w.before):I.rules.push(T),P.all[A]=T,(p=w.implements)===null||p===void 0||p.forEach(F=>this.addKeyword(F))}function Y(A,w,j){const p=A.rules.findIndex(d=>d.keyword===j);p>=0?A.rules.splice(p,0,w):(A.rules.push(w),this.logger.warn(`rule ${j} is not defined`))}function Q(A){let{metaSchema:w}=A;w!==void 0&&(A.$data&&this.opts.$data&&(w=re(w)),A.validateSchema=this.compile(w,!0))}const X={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function re(A){return{anyOf:[A,X]}}})(Bo)),Bo}var ts={},rs={},ns={},jd;function ES(){if(jd)return ns;jd=1,Object.defineProperty(ns,"__esModule",{value:!0});const e={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};return ns.default=e,ns}var Tr={},kd;function AS(){if(kd)return Tr;kd=1,Object.defineProperty(Tr,"__esModule",{value:!0}),Tr.callRef=Tr.getValidate=void 0;const e=no(),t=sr(),r=Re(),n=rn(),s=dl(),i=Te(),a={keyword:"$ref",schemaType:"string",code(l){const{gen:u,schema:m,it:_}=l,{baseId:v,schemaEnv:S,validateName:E,opts:g,self:y}=_,{root:f}=S;if((m==="#"||m==="#/")&&v===f.baseId)return x();const C=s.resolveRef.call(y,f,v,m);if(C===void 0)throw new e.default(_.opts.uriResolver,v,m);if(C instanceof s.SchemaEnv)return h(C);return b(C);function x(){if(S===f)return c(l,E,S,S.$async);const O=u.scopeValue("root",{ref:f});return c(l,(0,r._)`${O}.validate`,f,f.$async)}function h(O){const k=o(l,O);c(l,k,O,O.$async)}function b(O){const k=u.scopeValue("schema",g.code.source===!0?{ref:O,code:(0,r.stringify)(O)}:{ref:O}),$=u.name("valid"),M=l.subschema({schema:O,dataTypes:[],schemaPath:r.nil,topSchemaRef:k,errSchemaPath:m},$);l.mergeEvaluated(M),l.ok($)}}};function o(l,u){const{gen:m}=l;return u.validate?m.scopeValue("validate",{ref:u.validate}):(0,r._)`${m.scopeValue("wrapper",{ref:u})}.validate`}Tr.getValidate=o;function c(l,u,m,_){const{gen:v,it:S}=l,{allErrors:E,schemaEnv:g,opts:y}=S,f=y.passContext?n.default.this:r.nil;_?C():x();function C(){if(!g.$async)throw new Error("async schema referenced by sync schema");const O=v.let("valid");v.try(()=>{v.code((0,r._)`await ${(0,t.callValidateCode)(l,u,f)}`),b(u),E||v.assign(O,!0)},k=>{v.if((0,r._)`!(${k} instanceof ${S.ValidationError})`,()=>v.throw(k)),h(k),E||v.assign(O,!1)}),l.ok(O)}function x(){l.result((0,t.callValidateCode)(l,u,f),()=>b(u),()=>h(u))}function h(O){const k=(0,r._)`${O}.errors`;v.assign(n.default.vErrors,(0,r._)`${n.default.vErrors} === null ? ${k} : ${n.default.vErrors}.concat(${k})`),v.assign(n.default.errors,(0,r._)`${n.default.vErrors}.length`)}function b(O){var k;if(!S.opts.unevaluated)return;const $=(k=m?.validate)===null||k===void 0?void 0:k.evaluated;if(S.props!==!0)if($&&!$.dynamicProps)$.props!==void 0&&(S.props=i.mergeEvaluated.props(v,$.props,S.props));else{const M=v.var("props",(0,r._)`${O}.evaluated.props`);S.props=i.mergeEvaluated.props(v,M,S.props,r.Name)}if(S.items!==!0)if($&&!$.dynamicItems)$.items!==void 0&&(S.items=i.mergeEvaluated.items(v,$.items,S.items));else{const M=v.var("items",(0,r._)`${O}.evaluated.items`);S.items=i.mergeEvaluated.items(v,M,S.items,r.Name)}}}return Tr.callRef=c,Tr.default=a,Tr}var Id;function PS(){if(Id)return rs;Id=1,Object.defineProperty(rs,"__esModule",{value:!0});const e=ES(),t=AS(),r=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",e.default,t.default];return rs.default=r,rs}var is={},ss={},Nd;function xS(){if(Nd)return ss;Nd=1,Object.defineProperty(ss,"__esModule",{value:!0});const e=Re(),t=e.operators,r={maximum:{okStr:"<=",ok:t.LTE,fail:t.GT},minimum:{okStr:">=",ok:t.GTE,fail:t.LT},exclusiveMaximum:{okStr:"<",ok:t.LT,fail:t.GTE},exclusiveMinimum:{okStr:">",ok:t.GT,fail:t.LTE}},n={message:({keyword:i,schemaCode:a})=>(0,e.str)`must be ${r[i].okStr} ${a}`,params:({keyword:i,schemaCode:a})=>(0,e._)`{comparison: ${r[i].okStr}, limit: ${a}}`},s={keyword:Object.keys(r),type:"number",schemaType:"number",$data:!0,error:n,code(i){const{keyword:a,data:o,schemaCode:c}=i;i.fail$data((0,e._)`${o} ${r[a].fail} ${c} || isNaN(${o})`)}};return ss.default=s,ss}var as={},Rd;function OS(){if(Rd)return as;Rd=1,Object.defineProperty(as,"__esModule",{value:!0});const e=Re(),r={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:{message:({schemaCode:n})=>(0,e.str)`must be multiple of ${n}`,params:({schemaCode:n})=>(0,e._)`{multipleOf: ${n}}`},code(n){const{gen:s,data:i,schemaCode:a,it:o}=n,c=o.opts.multipleOfPrecision,l=s.let("res"),u=c?(0,e._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${c}`:(0,e._)`${l} !== parseInt(${l})`;n.fail$data((0,e._)`(${a} === 0 || (${l} = ${i}/${a}, ${u}))`)}};return as.default=r,as}var os={},cs={},$d;function jS(){if($d)return cs;$d=1,Object.defineProperty(cs,"__esModule",{value:!0});function e(t){const r=t.length;let n=0,s=0,i;for(;s=55296&&i<=56319&&s(0,e._)`{limit: ${i}}`},code(i){const{keyword:a,data:o,schemaCode:c,it:l}=i,u=a==="maxLength"?e.operators.GT:e.operators.LT,m=l.opts.unicode===!1?(0,e._)`${o}.length`:(0,e._)`${(0,t.useFunc)(i.gen,r.default)}(${o})`;i.fail$data((0,e._)`${m} ${u} ${c}`)}};return os.default=s,os}var ls={},Dd;function IS(){if(Dd)return ls;Dd=1,Object.defineProperty(ls,"__esModule",{value:!0});const e=sr(),t=Te(),r=Re(),s={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:{message:({schemaCode:i})=>(0,r.str)`must match pattern "${i}"`,params:({schemaCode:i})=>(0,r._)`{pattern: ${i}}`},code(i){const{gen:a,data:o,$data:c,schema:l,schemaCode:u,it:m}=i,_=m.opts.unicodeRegExp?"u":"";if(c){const{regExp:v}=m.opts.code,S=v.code==="new RegExp"?(0,r._)`new RegExp`:(0,t.useFunc)(a,v),E=a.let("valid");a.try(()=>a.assign(E,(0,r._)`${S}(${u}, ${_}).test(${o})`),()=>a.assign(E,!1)),i.fail$data((0,r._)`!${E}`)}else{const v=(0,e.usePattern)(i,l);i.fail$data((0,r._)`!${v}.test(${o})`)}}};return ls.default=s,ls}var us={},Td;function NS(){if(Td)return us;Td=1,Object.defineProperty(us,"__esModule",{value:!0});const e=Re(),r={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:{message({keyword:n,schemaCode:s}){const i=n==="maxProperties"?"more":"fewer";return(0,e.str)`must NOT have ${i} than ${s} properties`},params:({schemaCode:n})=>(0,e._)`{limit: ${n}}`},code(n){const{keyword:s,data:i,schemaCode:a}=n,o=s==="maxProperties"?e.operators.GT:e.operators.LT;n.fail$data((0,e._)`Object.keys(${i}).length ${o} ${a}`)}};return us.default=r,us}var ds={},Md;function RS(){if(Md)return ds;Md=1,Object.defineProperty(ds,"__esModule",{value:!0});const e=sr(),t=Re(),r=Te(),s={keyword:"required",type:"object",schemaType:"array",$data:!0,error:{message:({params:{missingProperty:i}})=>(0,t.str)`must have required property '${i}'`,params:({params:{missingProperty:i}})=>(0,t._)`{missingProperty: ${i}}`},code(i){const{gen:a,schema:o,schemaCode:c,data:l,$data:u,it:m}=i,{opts:_}=m;if(!u&&o.length===0)return;const v=o.length>=_.loopRequired;if(m.allErrors?S():E(),_.strictRequired){const f=i.parentSchema.properties,{definedProperties:C}=i.it;for(const x of o)if(f?.[x]===void 0&&!C.has(x)){const h=m.schemaEnv.baseId+m.errSchemaPath,b=`required property "${x}" is not defined at "${h}" (strictRequired)`;(0,r.checkStrictMode)(m,b,m.opts.strictRequired)}}function S(){if(v||u)i.block$data(t.nil,g);else for(const f of o)(0,e.checkReportMissingProp)(i,f)}function E(){const f=a.let("missing");if(v||u){const C=a.let("valid",!0);i.block$data(C,()=>y(f,C)),i.ok(C)}else a.if((0,e.checkMissingProp)(i,o,f)),(0,e.reportMissingProp)(i,f),a.else()}function g(){a.forOf("prop",c,f=>{i.setParams({missingProperty:f}),a.if((0,e.noPropertyInData)(a,l,f,_.ownProperties),()=>i.error())})}function y(f,C){i.setParams({missingProperty:f}),a.forOf(f,c,()=>{a.assign(C,(0,e.propertyInData)(a,l,f,_.ownProperties)),a.if((0,t.not)(C),()=>{i.error(),a.break()})},t.nil)}}};return ds.default=s,ds}var fs={},qd;function $S(){if(qd)return fs;qd=1,Object.defineProperty(fs,"__esModule",{value:!0});const e=Re(),r={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:{message({keyword:n,schemaCode:s}){const i=n==="maxItems"?"more":"fewer";return(0,e.str)`must NOT have ${i} than ${s} items`},params:({schemaCode:n})=>(0,e._)`{limit: ${n}}`},code(n){const{keyword:s,data:i,schemaCode:a}=n,o=s==="maxItems"?e.operators.GT:e.operators.LT;n.fail$data((0,e._)`${i}.length ${o} ${a}`)}};return fs.default=r,fs}var hs={},ms={},Ud;function fl(){if(Ud)return ms;Ud=1,Object.defineProperty(ms,"__esModule",{value:!0});const e=eo();return e.code='require("ajv/dist/runtime/equal").default',ms.default=e,ms}var Ld;function FS(){if(Ld)return hs;Ld=1,Object.defineProperty(hs,"__esModule",{value:!0});const e=Va(),t=Re(),r=Te(),n=fl(),i={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:{message:({params:{i:a,j:o}})=>(0,t.str)`must NOT have duplicate items (items ## ${o} and ${a} are identical)`,params:({params:{i:a,j:o}})=>(0,t._)`{i: ${a}, j: ${o}}`},code(a){const{gen:o,data:c,$data:l,schema:u,parentSchema:m,schemaCode:_,it:v}=a;if(!l&&!u)return;const S=o.let("valid"),E=m.items?(0,e.getSchemaTypes)(m.items):[];a.block$data(S,g,(0,t._)`${_} === false`),a.ok(S);function g(){const x=o.let("i",(0,t._)`${c}.length`),h=o.let("j");a.setParams({i:x,j:h}),o.assign(S,!0),o.if((0,t._)`${x} > 1`,()=>(y()?f:C)(x,h))}function y(){return E.length>0&&!E.some(x=>x==="object"||x==="array")}function f(x,h){const b=o.name("item"),O=(0,e.checkDataTypes)(E,b,v.opts.strictNumbers,e.DataType.Wrong),k=o.const("indices",(0,t._)`{}`);o.for((0,t._)`;${x}--;`,()=>{o.let(b,(0,t._)`${c}[${x}]`),o.if(O,(0,t._)`continue`),E.length>1&&o.if((0,t._)`typeof ${b} == "string"`,(0,t._)`${b} += "_"`),o.if((0,t._)`typeof ${k}[${b}] == "number"`,()=>{o.assign(h,(0,t._)`${k}[${b}]`),a.error(),o.assign(S,!1).break()}).code((0,t._)`${k}[${b}] = ${x}`)})}function C(x,h){const b=(0,r.useFunc)(o,n.default),O=o.name("outer");o.label(O).for((0,t._)`;${x}--;`,()=>o.for((0,t._)`${h} = ${x}; ${h}--;`,()=>o.if((0,t._)`${b}(${c}[${x}], ${c}[${h}])`,()=>{a.error(),o.assign(S,!1).break(O)})))}}};return hs.default=i,hs}var ps={},Vd;function DS(){if(Vd)return ps;Vd=1,Object.defineProperty(ps,"__esModule",{value:!0});const e=Re(),t=Te(),r=fl(),s={keyword:"const",$data:!0,error:{message:"must be equal to constant",params:({schemaCode:i})=>(0,e._)`{allowedValue: ${i}}`},code(i){const{gen:a,data:o,$data:c,schemaCode:l,schema:u}=i;c||u&&typeof u=="object"?i.fail$data((0,e._)`!${(0,t.useFunc)(a,r.default)}(${o}, ${l})`):i.fail((0,e._)`${u} !== ${o}`)}};return ps.default=s,ps}var ys={},zd;function TS(){if(zd)return ys;zd=1,Object.defineProperty(ys,"__esModule",{value:!0});const e=Re(),t=Te(),r=fl(),s={keyword:"enum",schemaType:"array",$data:!0,error:{message:"must be equal to one of the allowed values",params:({schemaCode:i})=>(0,e._)`{allowedValues: ${i}}`},code(i){const{gen:a,data:o,$data:c,schema:l,schemaCode:u,it:m}=i;if(!c&&l.length===0)throw new Error("enum must have non-empty array");const _=l.length>=m.opts.loopEnum;let v;const S=()=>v??(v=(0,t.useFunc)(a,r.default));let E;if(_||c)E=a.let("valid"),i.block$data(E,g);else{if(!Array.isArray(l))throw new Error("ajv implementation error");const f=a.const("vSchema",u);E=(0,e.or)(...l.map((C,x)=>y(f,x)))}i.pass(E);function g(){a.assign(E,!1),a.forOf("v",u,f=>a.if((0,e._)`${S()}(${o}, ${f})`,()=>a.assign(E,!0).break()))}function y(f,C){const x=l[C];return typeof x=="object"&&x!==null?(0,e._)`${S()}(${o}, ${f}[${C}])`:(0,e._)`${o} === ${x}`}}};return ys.default=s,ys}var Bd;function MS(){if(Bd)return is;Bd=1,Object.defineProperty(is,"__esModule",{value:!0});const e=xS(),t=OS(),r=kS(),n=IS(),s=NS(),i=RS(),a=$S(),o=FS(),c=DS(),l=TS(),u=[e.default,t.default,r.default,n.default,s.default,i.default,a.default,o.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},c.default,l.default];return is.default=u,is}var gs={},Vn={},Hd;function Xm(){if(Hd)return Vn;Hd=1,Object.defineProperty(Vn,"__esModule",{value:!0}),Vn.validateAdditionalItems=void 0;const e=Re(),t=Te(),n={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:{message:({params:{len:i}})=>(0,e.str)`must NOT have more than ${i} items`,params:({params:{len:i}})=>(0,e._)`{limit: ${i}}`},code(i){const{parentSchema:a,it:o}=i,{items:c}=a;if(!Array.isArray(c)){(0,t.checkStrictMode)(o,'"additionalItems" is ignored when "items" is not an array of schemas');return}s(i,c)}};function s(i,a){const{gen:o,schema:c,data:l,keyword:u,it:m}=i;m.items=!0;const _=o.const("len",(0,e._)`${l}.length`);if(c===!1)i.setParams({len:a.length}),i.pass((0,e._)`${_} <= ${a.length}`);else if(typeof c=="object"&&!(0,t.alwaysValidSchema)(m,c)){const S=o.var("valid",(0,e._)`${_} <= ${a.length}`);o.if((0,e.not)(S),()=>v(S)),i.ok(S)}function v(S){o.forRange("i",a.length,_,E=>{i.subschema({keyword:u,dataProp:E,dataPropType:t.Type.Num},S),m.allErrors||o.if((0,e.not)(S),()=>o.break())})}}return Vn.validateAdditionalItems=s,Vn.default=n,Vn}var vs={},zn={},Kd;function Zm(){if(Kd)return zn;Kd=1,Object.defineProperty(zn,"__esModule",{value:!0}),zn.validateTuple=void 0;const e=Re(),t=Te(),r=sr(),n={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(i){const{schema:a,it:o}=i;if(Array.isArray(a))return s(i,"additionalItems",a);o.items=!0,!(0,t.alwaysValidSchema)(o,a)&&i.ok((0,r.validateArray)(i))}};function s(i,a,o=i.schema){const{gen:c,parentSchema:l,data:u,keyword:m,it:_}=i;E(l),_.opts.unevaluated&&o.length&&_.items!==!0&&(_.items=t.mergeEvaluated.items(c,o.length,_.items));const v=c.name("valid"),S=c.const("len",(0,e._)`${u}.length`);o.forEach((g,y)=>{(0,t.alwaysValidSchema)(_,g)||(c.if((0,e._)`${S} > ${y}`,()=>i.subschema({keyword:m,schemaProp:y,dataProp:y},v)),i.ok(v))});function E(g){const{opts:y,errSchemaPath:f}=_,C=o.length,x=C===g.minItems&&(C===g.maxItems||g[a]===!1);if(y.strictTuples&&!x){const h=`"${m}" is ${C}-tuple, but minItems or maxItems/${a} are not specified or different at path "${f}"`;(0,t.checkStrictMode)(_,h,y.strictTuples)}}}return zn.validateTuple=s,zn.default=n,zn}var Gd;function qS(){if(Gd)return vs;Gd=1,Object.defineProperty(vs,"__esModule",{value:!0});const e=Zm(),t={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:r=>(0,e.validateTuple)(r,"items")};return vs.default=t,vs}var bs={},Wd;function US(){if(Wd)return bs;Wd=1,Object.defineProperty(bs,"__esModule",{value:!0});const e=Re(),t=Te(),r=sr(),n=Xm(),i={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:{message:({params:{len:a}})=>(0,e.str)`must NOT have more than ${a} items`,params:({params:{len:a}})=>(0,e._)`{limit: ${a}}`},code(a){const{schema:o,parentSchema:c,it:l}=a,{prefixItems:u}=c;l.items=!0,!(0,t.alwaysValidSchema)(l,o)&&(u?(0,n.validateAdditionalItems)(a,u):a.ok((0,r.validateArray)(a)))}};return bs.default=i,bs}var _s={},Jd;function LS(){if(Jd)return _s;Jd=1,Object.defineProperty(_s,"__esModule",{value:!0});const e=Re(),t=Te(),n={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:{message:({params:{min:s,max:i}})=>i===void 0?(0,e.str)`must contain at least ${s} valid item(s)`:(0,e.str)`must contain at least ${s} and no more than ${i} valid item(s)`,params:({params:{min:s,max:i}})=>i===void 0?(0,e._)`{minContains: ${s}}`:(0,e._)`{minContains: ${s}, maxContains: ${i}}`},code(s){const{gen:i,schema:a,parentSchema:o,data:c,it:l}=s;let u,m;const{minContains:_,maxContains:v}=o;l.opts.next?(u=_===void 0?1:_,m=v):u=1;const S=i.const("len",(0,e._)`${c}.length`);if(s.setParams({min:u,max:m}),m===void 0&&u===0){(0,t.checkStrictMode)(l,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(m!==void 0&&u>m){(0,t.checkStrictMode)(l,'"minContains" > "maxContains" is always invalid'),s.fail();return}if((0,t.alwaysValidSchema)(l,a)){let C=(0,e._)`${S} >= ${u}`;m!==void 0&&(C=(0,e._)`${C} && ${S} <= ${m}`),s.pass(C);return}l.items=!0;const E=i.name("valid");m===void 0&&u===1?y(E,()=>i.if(E,()=>i.break())):u===0?(i.let(E,!0),m!==void 0&&i.if((0,e._)`${c}.length > 0`,g)):(i.let(E,!1),g()),s.result(E,()=>s.reset());function g(){const C=i.name("_valid"),x=i.let("count",0);y(C,()=>i.if(C,()=>f(x)))}function y(C,x){i.forRange("i",0,S,h=>{s.subschema({keyword:"contains",dataProp:h,dataPropType:t.Type.Num,compositeRule:!0},C),x()})}function f(C){i.code((0,e._)`${C}++`),m===void 0?i.if((0,e._)`${C} >= ${u}`,()=>i.assign(E,!0).break()):(i.if((0,e._)`${C} > ${m}`,()=>i.assign(E,!1).break()),u===1?i.assign(E,!0):i.if((0,e._)`${C} >= ${u}`,()=>i.assign(E,!0)))}}};return _s.default=n,_s}var Qo={},Yd;function VS(){return Yd||(Yd=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.validateSchemaDeps=e.validatePropertyDeps=e.error=void 0;const t=Re(),r=Te(),n=sr();e.error={message:({params:{property:c,depsCount:l,deps:u}})=>{const m=l===1?"property":"properties";return(0,t.str)`must have ${m} ${u} when property ${c} is present`},params:({params:{property:c,depsCount:l,deps:u,missingProperty:m}})=>(0,t._)`{property: ${c}, missingProperty: ${m}, depsCount: ${l}, - deps: ${u}}`};const i={keyword:"dependencies",type:"object",schemaType:"object",error:e.error,code(c){const[l,u]=s(c);a(c,l),o(c,u)}};function s({schema:c}){const l={},u={};for(const m in c){if(m==="__proto__")continue;const _=Array.isArray(c[m])?l:u;_[m]=c[m]}return[l,u]}function a(c,l=c.schema){const{gen:u,data:m,it:_}=c;if(Object.keys(l).length===0)return;const v=u.let("missing");for(const S in l){const E=l[S];if(E.length===0)continue;const g=(0,n.propertyInData)(u,m,S,_.opts.ownProperties);c.setParams({property:S,depsCount:E.length,deps:E.join(", ")}),_.allErrors?u.if(g,()=>{for(const y of E)(0,n.checkReportMissingProp)(c,y)}):(u.if((0,t._)`${g} && (${(0,n.checkMissingProp)(c,E,v)})`),(0,n.reportMissingProp)(c,v),u.else())}}e.validatePropertyDeps=a;function o(c,l=c.schema){const{gen:u,data:m,keyword:_,it:v}=c,S=u.name("valid");for(const E in l)(0,r.alwaysValidSchema)(v,l[E])||(u.if((0,n.propertyInData)(u,m,E,v.opts.ownProperties),()=>{const g=c.subschema({keyword:_,schemaProp:E},S);c.mergeValidEvaluated(g,S)},()=>u.var(S,!0)),c.ok(S))}e.validateSchemaDeps=o,e.default=i})(Zo)),Zo}var _s={},Jd;function US(){if(Jd)return _s;Jd=1,Object.defineProperty(_s,"__esModule",{value:!0});const e=Re(),t=Te(),n={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:{message:"property name must be valid",params:({params:i})=>(0,e._)`{propertyName: ${i.propertyName}}`},code(i){const{gen:s,schema:a,data:o,it:c}=i;if((0,t.alwaysValidSchema)(c,a))return;const l=s.name("valid");s.forIn("key",o,u=>{i.setParams({propertyName:u}),i.subschema({keyword:"propertyNames",data:u,dataTypes:["string"],propertyName:u,compositeRule:!0},l),s.if((0,e.not)(l),()=>{i.error(!0),c.allErrors||s.break()})}),i.ok(l)}};return _s.default=n,_s}var Ss={},Yd;function Ym(){if(Yd)return Ss;Yd=1,Object.defineProperty(Ss,"__esModule",{value:!0});const e=sr(),t=Re(),r=rn(),n=Te(),s={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:{message:"must NOT have additional properties",params:({params:a})=>(0,t._)`{additionalProperty: ${a.additionalProperty}}`},code(a){const{gen:o,schema:c,parentSchema:l,data:u,errsCount:m,it:_}=a;if(!m)throw new Error("ajv implementation error");const{allErrors:v,opts:S}=_;if(_.props=!0,S.removeAdditional!=="all"&&(0,n.alwaysValidSchema)(_,c))return;const E=(0,e.allSchemaProperties)(l.properties),g=(0,e.allSchemaProperties)(l.patternProperties);y(),a.ok((0,t._)`${m} === ${r.default.errors}`);function y(){o.forIn("key",u,b=>{!E.length&&!g.length?x(b):o.if(f(b),()=>x(b))})}function f(b){let O;if(E.length>8){const k=(0,n.schemaRefOrVal)(_,l.properties,"properties");O=(0,e.isOwnProperty)(o,k,b)}else E.length?O=(0,t.or)(...E.map(k=>(0,t._)`${b} === ${k}`)):O=t.nil;return g.length&&(O=(0,t.or)(O,...g.map(k=>(0,t._)`${(0,e.usePattern)(a,k)}.test(${b})`))),(0,t.not)(O)}function C(b){o.code((0,t._)`delete ${u}[${b}]`)}function x(b){if(S.removeAdditional==="all"||S.removeAdditional&&c===!1){C(b);return}if(c===!1){a.setParams({additionalProperty:b}),a.error(),v||o.break();return}if(typeof c=="object"&&!(0,n.alwaysValidSchema)(_,c)){const O=o.name("valid");S.removeAdditional==="failing"?(h(b,O,!1),o.if((0,t.not)(O),()=>{a.reset(),C(b)})):(h(b,O),v||o.if((0,t.not)(O),()=>o.break()))}}function h(b,O,k){const $={keyword:"additionalProperties",dataProp:b,dataPropType:n.Type.Str};k===!1&&Object.assign($,{compositeRule:!0,createErrors:!1,allErrors:!1}),a.subschema($,O)}}};return Ss.default=s,Ss}var ws={},Xd;function LS(){if(Xd)return ws;Xd=1,Object.defineProperty(ws,"__esModule",{value:!0});const e=to(),t=sr(),r=Te(),n=Ym(),i={keyword:"properties",type:"object",schemaType:"object",code(s){const{gen:a,schema:o,parentSchema:c,data:l,it:u}=s;u.opts.removeAdditional==="all"&&c.additionalProperties===void 0&&n.default.code(new e.KeywordCxt(u,n.default,"additionalProperties"));const m=(0,t.allSchemaProperties)(o);for(const g of m)u.definedProperties.add(g);u.opts.unevaluated&&m.length&&u.props!==!0&&(u.props=r.mergeEvaluated.props(a,(0,r.toHash)(m),u.props));const _=m.filter(g=>!(0,r.alwaysValidSchema)(u,o[g]));if(_.length===0)return;const v=a.name("valid");for(const g of _)S(g)?E(g):(a.if((0,t.propertyInData)(a,l,g,u.opts.ownProperties)),E(g),u.allErrors||a.else().var(v,!0),a.endIf()),s.it.definedProperties.add(g),s.ok(v);function S(g){return u.opts.useDefaults&&!u.compositeRule&&o[g].default!==void 0}function E(g){s.subschema({keyword:"properties",schemaProp:g,dataProp:g},v)}}};return ws.default=i,ws}var Cs={},Zd;function VS(){if(Zd)return Cs;Zd=1,Object.defineProperty(Cs,"__esModule",{value:!0});const e=sr(),t=Re(),r=Te(),n=Te(),i={keyword:"patternProperties",type:"object",schemaType:"object",code(s){const{gen:a,schema:o,data:c,parentSchema:l,it:u}=s,{opts:m}=u,_=(0,e.allSchemaProperties)(o),v=_.filter(x=>(0,r.alwaysValidSchema)(u,o[x]));if(_.length===0||v.length===_.length&&(!u.opts.unevaluated||u.props===!0))return;const S=m.strictSchema&&!m.allowMatchingProperties&&l.properties,E=a.name("valid");u.props!==!0&&!(u.props instanceof t.Name)&&(u.props=(0,n.evaluatedPropsToName)(a,u.props));const{props:g}=u;y();function y(){for(const x of _)S&&f(x),u.allErrors?C(x):(a.var(E,!0),C(x),a.if(E))}function f(x){for(const h in S)new RegExp(x).test(h)&&(0,r.checkStrictMode)(u,`property ${h} matches pattern ${x} (use allowMatchingProperties)`)}function C(x){a.forIn("key",c,h=>{a.if((0,t._)`${(0,e.usePattern)(s,x)}.test(${h})`,()=>{const b=v.includes(x);b||s.subschema({keyword:"patternProperties",schemaProp:x,dataProp:h,dataPropType:n.Type.Str},E),u.opts.unevaluated&&g!==!0?a.assign((0,t._)`${g}[${h}]`,!0):!b&&!u.allErrors&&a.if((0,t.not)(E),()=>a.break())})})}}};return Cs.default=i,Cs}var Es={},Qd;function zS(){if(Qd)return Es;Qd=1,Object.defineProperty(Es,"__esModule",{value:!0});const e=Te(),t={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(r){const{gen:n,schema:i,it:s}=r;if((0,e.alwaysValidSchema)(s,i)){r.fail();return}const a=n.name("valid");r.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},a),r.failResult(a,()=>r.reset(),()=>r.error())},error:{message:"must NOT be valid"}};return Es.default=t,Es}var As={},ef;function BS(){if(ef)return As;ef=1,Object.defineProperty(As,"__esModule",{value:!0});const t={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:sr().validateUnion,error:{message:"must match a schema in anyOf"}};return As.default=t,As}var Ps={},tf;function HS(){if(tf)return Ps;tf=1,Object.defineProperty(Ps,"__esModule",{value:!0});const e=Re(),t=Te(),n={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:{message:"must match exactly one schema in oneOf",params:({params:i})=>(0,e._)`{passingSchemas: ${i.passing}}`},code(i){const{gen:s,schema:a,parentSchema:o,it:c}=i;if(!Array.isArray(a))throw new Error("ajv implementation error");if(c.opts.discriminator&&o.discriminator)return;const l=a,u=s.let("valid",!1),m=s.let("passing",null),_=s.name("_valid");i.setParams({passing:m}),s.block(v),i.result(u,()=>i.reset(),()=>i.error(!0));function v(){l.forEach((S,E)=>{let g;(0,t.alwaysValidSchema)(c,S)?s.var(_,!0):g=i.subschema({keyword:"oneOf",schemaProp:E,compositeRule:!0},_),E>0&&s.if((0,e._)`${_} && ${u}`).assign(u,!1).assign(m,(0,e._)`[${m}, ${E}]`).else(),s.if(_,()=>{s.assign(u,!0),s.assign(m,E),g&&i.mergeEvaluated(g,e.Name)})})}}};return Ps.default=n,Ps}var xs={},rf;function KS(){if(rf)return xs;rf=1,Object.defineProperty(xs,"__esModule",{value:!0});const e=Te(),t={keyword:"allOf",schemaType:"array",code(r){const{gen:n,schema:i,it:s}=r;if(!Array.isArray(i))throw new Error("ajv implementation error");const a=n.name("valid");i.forEach((o,c)=>{if((0,e.alwaysValidSchema)(s,o))return;const l=r.subschema({keyword:"allOf",schemaProp:c},a);r.ok(a),r.mergeEvaluated(l)})}};return xs.default=t,xs}var Os={},nf;function GS(){if(nf)return Os;nf=1,Object.defineProperty(Os,"__esModule",{value:!0});const e=Re(),t=Te(),n={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:{message:({params:s})=>(0,e.str)`must match "${s.ifClause}" schema`,params:({params:s})=>(0,e._)`{failingKeyword: ${s.ifClause}}`},code(s){const{gen:a,parentSchema:o,it:c}=s;o.then===void 0&&o.else===void 0&&(0,t.checkStrictMode)(c,'"if" without "then" and "else" is ignored');const l=i(c,"then"),u=i(c,"else");if(!l&&!u)return;const m=a.let("valid",!0),_=a.name("_valid");if(v(),s.reset(),l&&u){const E=a.let("ifClause");s.setParams({ifClause:E}),a.if(_,S("then",E),S("else",E))}else l?a.if(_,S("then")):a.if((0,e.not)(_),S("else"));s.pass(m,()=>s.error(!0));function v(){const E=s.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},_);s.mergeEvaluated(E)}function S(E,g){return()=>{const y=s.subschema({keyword:E},_);a.assign(m,_),s.mergeValidEvaluated(y,m),g?a.assign(g,(0,e._)`${E}`):s.setParams({ifClause:E})}}}};function i(s,a){const o=s.schema[a];return o!==void 0&&!(0,t.alwaysValidSchema)(s,o)}return Os.default=n,Os}var js={},sf;function WS(){if(sf)return js;sf=1,Object.defineProperty(js,"__esModule",{value:!0});const e=Te(),t={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:r,parentSchema:n,it:i}){n.if===void 0&&(0,e.checkStrictMode)(i,`"${r}" without "if" is ignored`)}};return js.default=t,js}var af;function JS(){if(af)return ys;af=1,Object.defineProperty(ys,"__esModule",{value:!0});const e=Wm(),t=DS(),r=Jm(),n=TS(),i=MS(),s=qS(),a=US(),o=Ym(),c=LS(),l=VS(),u=zS(),m=BS(),_=HS(),v=KS(),S=GS(),E=WS();function g(y=!1){const f=[u.default,m.default,_.default,v.default,S.default,E.default,a.default,o.default,s.default,c.default,l.default];return y?f.push(t.default,n.default):f.push(e.default,r.default),f.push(i.default),f}return ys.default=g,ys}var ks={},Is={},of;function YS(){if(of)return Is;of=1,Object.defineProperty(Is,"__esModule",{value:!0});const e=Re(),r={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:{message:({schemaCode:n})=>(0,e.str)`must match format "${n}"`,params:({schemaCode:n})=>(0,e._)`{format: ${n}}`},code(n,i){const{gen:s,data:a,$data:o,schema:c,schemaCode:l,it:u}=n,{opts:m,errSchemaPath:_,schemaEnv:v,self:S}=u;if(!m.validateFormats)return;o?E():g();function E(){const y=s.scopeValue("formats",{ref:S.formats,code:m.code.formats}),f=s.const("fDef",(0,e._)`${y}[${l}]`),C=s.let("fType"),x=s.let("format");s.if((0,e._)`typeof ${f} == "object" && !(${f} instanceof RegExp)`,()=>s.assign(C,(0,e._)`${f}.type || "string"`).assign(x,(0,e._)`${f}.validate`),()=>s.assign(C,(0,e._)`"string"`).assign(x,f)),n.fail$data((0,e.or)(h(),b()));function h(){return m.strictSchema===!1?e.nil:(0,e._)`${l} && !${x}`}function b(){const O=v.$async?(0,e._)`(${f}.async ? await ${x}(${a}) : ${x}(${a}))`:(0,e._)`${x}(${a})`,k=(0,e._)`(typeof ${x} == "function" ? ${O} : ${x}.test(${a}))`;return(0,e._)`${x} && ${x} !== true && ${C} === ${i} && !${k}`}}function g(){const y=S.formats[c];if(!y){h();return}if(y===!0)return;const[f,C,x]=b(y);f===i&&n.pass(O());function h(){if(m.strictSchema===!1){S.logger.warn(k());return}throw new Error(k());function k(){return`unknown format "${c}" ignored in schema at path "${_}"`}}function b(k){const $=k instanceof RegExp?(0,e.regexpCode)(k):m.code.formats?(0,e._)`${m.code.formats}${(0,e.getProperty)(c)}`:void 0,M=s.scopeValue("formats",{key:c,ref:k,code:$});return typeof k=="object"&&!(k instanceof RegExp)?[k.type||"string",k.validate,(0,e._)`${M}.validate`]:["string",k,M]}function O(){if(typeof y=="object"&&!(y instanceof RegExp)&&y.async){if(!v.$async)throw new Error("async format in sync schema");return(0,e._)`await ${x}(${a})`}return typeof C=="function"?(0,e._)`${x}(${a})`:(0,e._)`${x}.test(${a})`}}}};return Is.default=r,Is}var cf;function XS(){if(cf)return ks;cf=1,Object.defineProperty(ks,"__esModule",{value:!0});const t=[YS().default];return ks.default=t,ks}var pn={},lf;function ZS(){return lf||(lf=1,Object.defineProperty(pn,"__esModule",{value:!0}),pn.contentVocabulary=pn.metadataVocabulary=void 0,pn.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],pn.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]),pn}var uf;function QS(){if(uf)return es;uf=1,Object.defineProperty(es,"__esModule",{value:!0});const e=CS(),t=FS(),r=JS(),n=XS(),i=ZS(),s=[e.default,t.default,(0,r.default)(),n.default,i.metadataVocabulary,i.contentVocabulary];return es.default=s,es}var Ns={},_i={},df;function ew(){if(df)return _i;df=1,Object.defineProperty(_i,"__esModule",{value:!0}),_i.DiscrError=void 0;var e;return(function(t){t.Tag="tag",t.Mapping="mapping"})(e||(_i.DiscrError=e={})),_i}var ff;function tw(){if(ff)return Ns;ff=1,Object.defineProperty(Ns,"__esModule",{value:!0});const e=Re(),t=ew(),r=ul(),n=ro(),i=Te(),a={keyword:"discriminator",type:"object",schemaType:"object",error:{message:({params:{discrError:o,tagName:c}})=>o===t.DiscrError.Tag?`tag "${c}" must be string`:`value of tag "${c}" must be in oneOf`,params:({params:{discrError:o,tag:c,tagName:l}})=>(0,e._)`{error: ${o}, tag: ${l}, tagValue: ${c}}`},code(o){const{gen:c,data:l,schema:u,parentSchema:m,it:_}=o,{oneOf:v}=m;if(!_.opts.discriminator)throw new Error("discriminator: requires discriminator option");const S=u.propertyName;if(typeof S!="string")throw new Error("discriminator: requires propertyName");if(u.mapping)throw new Error("discriminator: mapping is not supported");if(!v)throw new Error("discriminator: requires oneOf keyword");const E=c.let("valid",!1),g=c.const("tag",(0,e._)`${l}${(0,e.getProperty)(S)}`);c.if((0,e._)`typeof ${g} == "string"`,()=>y(),()=>o.error(!1,{discrError:t.DiscrError.Tag,tag:g,tagName:S})),o.ok(E);function y(){const x=C();c.if(!1);for(const h in x)c.elseIf((0,e._)`${g} === ${h}`),c.assign(E,f(x[h]));c.else(),o.error(!1,{discrError:t.DiscrError.Mapping,tag:g,tagName:S}),c.endIf()}function f(x){const h=c.name("valid"),b=o.subschema({keyword:"oneOf",schemaProp:x},h);return o.mergeEvaluated(b,e.Name),h}function C(){var x;const h={},b=k(m);let O=!0;for(let q=0;qthis.addVocabulary(S)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;const S=this.opts.$data?this.$dataMetaSchema(s,a):s;this.addMetaSchema(S,o,!1),this.refs["http://json-schema.org/schema"]=o}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(o)?o:void 0)}}t.Ajv=c,e.exports=t=c,e.exports.Ajv=c,Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var l=to();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return l.KeywordCxt}});var u=Re();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return u._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return u.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return u.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return u.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return u.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return u.CodeGen}});var m=ll();Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return m.default}});var _=ro();Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return _.default}})})(Ji,Ji.exports)),Ji.exports}var uw=lw();const dw=$i(uw);var Rs={exports:{}},Qo={},mf;function fw(){return mf||(mf=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.formatNames=e.fastFormats=e.fullFormats=void 0;function t($,M){return{validate:$,compare:M}}e.fullFormats={date:t(s,a),time:t(c,l),"date-time":t(m,_),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:E,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:k,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:y,int32:{type:"number",validate:x},int64:{type:"number",validate:h},float:{type:"number",validate:b},double:{type:"number",validate:b},password:!0,binary:!0},e.fastFormats={...e.fullFormats,date:t(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,a),time:t(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,l),"date-time":t(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,_),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i},e.formatNames=Object.keys(e.fullFormats);function r($){return $%4===0&&($%100!==0||$%400===0)}const n=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,i=[0,31,28,31,30,31,30,31,31,30,31,30,31];function s($){const M=n.exec($);if(!M)return!1;const q=+M[1],U=+M[2],L=+M[3];return U>=1&&U<=12&&L>=1&&L<=(U===2&&r(q)?29:i[U])}function a($,M){if($&&M)return $>M?1:$M?1:$=f}function h($){return Number.isInteger($)}function b(){return!0}const O=/[^\\]\\Z/;function k($){if(O.test($))return!1;try{return new RegExp($),!0}catch{return!1}}})(Qo)),Qo}var ec={},$s={exports:{}},tc={},Er={},yn={},rc={},nc={},ic={},pf;function Va(){return pf||(pf=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.regexpCode=e.getEsmExportName=e.getProperty=e.safeStringify=e.stringify=e.strConcat=e.addCodeArg=e.str=e._=e.nil=e._Code=e.Name=e.IDENTIFIER=e._CodeOrName=void 0;class t{}e._CodeOrName=t,e.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class r extends t{constructor(f){if(super(),!e.IDENTIFIER.test(f))throw new Error("CodeGen: name must be a valid identifier");this.str=f}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}e.Name=r;class n extends t{constructor(f){super(),this._items=typeof f=="string"?[f]:f}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;const f=this._items[0];return f===""||f==='""'}get str(){var f;return(f=this._str)!==null&&f!==void 0?f:this._str=this._items.reduce((C,x)=>`${C}${x}`,"")}get names(){var f;return(f=this._names)!==null&&f!==void 0?f:this._names=this._items.reduce((C,x)=>(x instanceof r&&(C[x.str]=(C[x.str]||0)+1),C),{})}}e._Code=n,e.nil=new n("");function i(y,...f){const C=[y[0]];let x=0;for(;x{if(m.scopePath===void 0)throw new Error(`CodeGen: name "${m}" has no value`);return(0,t._)`${l}${m.scopePath}`})}scopeCode(l=this._values,u,m){return this._reduceValues(l,_=>{if(_.value===void 0)throw new Error(`CodeGen: name "${_}" has no value`);return _.value.code},u,m)}_reduceValues(l,u,m={},_){let v=t.nil;for(const S in l){const E=l[S];if(!E)continue;const g=m[S]=m[S]||new Map;E.forEach(y=>{if(g.has(y))return;g.set(y,n.Started);let f=u(y);if(f){const C=this.opts.es5?e.varKinds.var:e.varKinds.const;v=(0,t._)`${v}${C} ${y} = ${f};${this.opts._n}`}else if(f=_?.(y))v=(0,t._)`${v}${f}${this.opts._n}`;else throw new r(y);g.set(y,n.Completed)})}return v}}e.ValueScope=o})(sc)),sc}var vf;function Oe(){return vf||(vf=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.or=e.and=e.not=e.CodeGen=e.operators=e.varKinds=e.ValueScopeName=e.ValueScope=e.Scope=e.Name=e.regexpCode=e.stringify=e.getProperty=e.nil=e.strConcat=e.str=e._=void 0;const t=Va(),r=gf();var n=Va();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return n._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return n.str}}),Object.defineProperty(e,"strConcat",{enumerable:!0,get:function(){return n.strConcat}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return n.nil}}),Object.defineProperty(e,"getProperty",{enumerable:!0,get:function(){return n.getProperty}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return n.stringify}}),Object.defineProperty(e,"regexpCode",{enumerable:!0,get:function(){return n.regexpCode}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return n.Name}});var i=gf();Object.defineProperty(e,"Scope",{enumerable:!0,get:function(){return i.Scope}}),Object.defineProperty(e,"ValueScope",{enumerable:!0,get:function(){return i.ValueScope}}),Object.defineProperty(e,"ValueScopeName",{enumerable:!0,get:function(){return i.ValueScopeName}}),Object.defineProperty(e,"varKinds",{enumerable:!0,get:function(){return i.varKinds}}),e.operators={GT:new t._Code(">"),GTE:new t._Code(">="),LT:new t._Code("<"),LTE:new t._Code("<="),EQ:new t._Code("==="),NEQ:new t._Code("!=="),NOT:new t._Code("!"),OR:new t._Code("||"),AND:new t._Code("&&"),ADD:new t._Code("+")};class s{optimizeNodes(){return this}optimizeNames(d,P){return this}}class a extends s{constructor(d,P,I){super(),this.varKind=d,this.name=P,this.rhs=I}render({es5:d,_n:P}){const I=d?r.varKinds.var:this.varKind,T=this.rhs===void 0?"":` = ${this.rhs}`;return`${I} ${this.name}${T};`+P}optimizeNames(d,P){if(d[this.name.str])return this.rhs&&(this.rhs=B(this.rhs,d,P)),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}}class o extends s{constructor(d,P,I){super(),this.lhs=d,this.rhs=P,this.sideEffects=I}render({_n:d}){return`${this.lhs} = ${this.rhs};`+d}optimizeNames(d,P){if(!(this.lhs instanceof t.Name&&!d[this.lhs.str]&&!this.sideEffects))return this.rhs=B(this.rhs,d,P),this}get names(){const d=this.lhs instanceof t.Name?{}:{...this.lhs.names};return L(d,this.rhs)}}class c extends o{constructor(d,P,I,T){super(d,I,T),this.op=P}render({_n:d}){return`${this.lhs} ${this.op}= ${this.rhs};`+d}}class l extends s{constructor(d){super(),this.label=d,this.names={}}render({_n:d}){return`${this.label}:`+d}}class u extends s{constructor(d){super(),this.label=d,this.names={}}render({_n:d}){return`break${this.label?` ${this.label}`:""};`+d}}class m extends s{constructor(d){super(),this.error=d}render({_n:d}){return`throw ${this.error};`+d}get names(){return this.error.names}}class _ extends s{constructor(d){super(),this.code=d}render({_n:d}){return`${this.code};`+d}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(d,P){return this.code=B(this.code,d,P),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}}class v extends s{constructor(d=[]){super(),this.nodes=d}render(d){return this.nodes.reduce((P,I)=>P+I.render(d),"")}optimizeNodes(){const{nodes:d}=this;let P=d.length;for(;P--;){const I=d[P].optimizeNodes();Array.isArray(I)?d.splice(P,1,...I):I?d[P]=I:d.splice(P,1)}return d.length>0?this:void 0}optimizeNames(d,P){const{nodes:I}=this;let T=I.length;for(;T--;){const F=I[T];F.optimizeNames(d,P)||(J(d,F.names),I.splice(T,1))}return I.length>0?this:void 0}get names(){return this.nodes.reduce((d,P)=>U(d,P.names),{})}}class S extends v{render(d){return"{"+d._n+super.render(d)+"}"+d._n}}class E extends v{}class g extends S{}g.kind="else";class y extends S{constructor(d,P){super(P),this.condition=d}render(d){let P=`if(${this.condition})`+super.render(d);return this.else&&(P+="else "+this.else.render(d)),P}optimizeNodes(){super.optimizeNodes();const d=this.condition;if(d===!0)return this.nodes;let P=this.else;if(P){const I=P.optimizeNodes();P=this.else=Array.isArray(I)?new g(I):I}if(P)return d===!1?P instanceof y?P:P.nodes:this.nodes.length?this:new y(Y(d),P instanceof y?[P]:P.nodes);if(!(d===!1||!this.nodes.length))return this}optimizeNames(d,P){var I;if(this.else=(I=this.else)===null||I===void 0?void 0:I.optimizeNames(d,P),!!(super.optimizeNames(d,P)||this.else))return this.condition=B(this.condition,d,P),this}get names(){const d=super.names;return L(d,this.condition),this.else&&U(d,this.else.names),d}}y.kind="if";class f extends S{}f.kind="for";class C extends f{constructor(d){super(),this.iteration=d}render(d){return`for(${this.iteration})`+super.render(d)}optimizeNames(d,P){if(super.optimizeNames(d,P))return this.iteration=B(this.iteration,d,P),this}get names(){return U(super.names,this.iteration.names)}}class x extends f{constructor(d,P,I,T){super(),this.varKind=d,this.name=P,this.from=I,this.to=T}render(d){const P=d.es5?r.varKinds.var:this.varKind,{name:I,from:T,to:F}=this;return`for(${P} ${I}=${T}; ${I}<${F}; ${I}++)`+super.render(d)}get names(){const d=L(super.names,this.from);return L(d,this.to)}}class h extends f{constructor(d,P,I,T){super(),this.loop=d,this.varKind=P,this.name=I,this.iterable=T}render(d){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(d)}optimizeNames(d,P){if(super.optimizeNames(d,P))return this.iterable=B(this.iterable,d,P),this}get names(){return U(super.names,this.iterable.names)}}class b extends S{constructor(d,P,I){super(),this.name=d,this.args=P,this.async=I}render(d){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(d)}}b.kind="func";class O extends v{render(d){return"return "+super.render(d)}}O.kind="return";class k extends S{render(d){let P="try"+super.render(d);return this.catch&&(P+=this.catch.render(d)),this.finally&&(P+=this.finally.render(d)),P}optimizeNodes(){var d,P;return super.optimizeNodes(),(d=this.catch)===null||d===void 0||d.optimizeNodes(),(P=this.finally)===null||P===void 0||P.optimizeNodes(),this}optimizeNames(d,P){var I,T;return super.optimizeNames(d,P),(I=this.catch)===null||I===void 0||I.optimizeNames(d,P),(T=this.finally)===null||T===void 0||T.optimizeNames(d,P),this}get names(){const d=super.names;return this.catch&&U(d,this.catch.names),this.finally&&U(d,this.finally.names),d}}class $ extends S{constructor(d){super(),this.error=d}render(d){return`catch(${this.error})`+super.render(d)}}$.kind="catch";class M extends S{render(d){return"finally"+super.render(d)}}M.kind="finally";class q{constructor(d,P={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...P,_n:P.lines?` -`:""},this._extScope=d,this._scope=new r.Scope({parent:d}),this._nodes=[new E]}toString(){return this._root.render(this.opts)}name(d){return this._scope.name(d)}scopeName(d){return this._extScope.name(d)}scopeValue(d,P){const I=this._extScope.value(d,P);return(this._values[I.prefix]||(this._values[I.prefix]=new Set)).add(I),I}getScopeValue(d,P){return this._extScope.getValue(d,P)}scopeRefs(d){return this._extScope.scopeRefs(d,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(d,P,I,T){const F=this._scope.toName(P);return I!==void 0&&T&&(this._constants[F.str]=I),this._leafNode(new a(d,F,I)),F}const(d,P,I){return this._def(r.varKinds.const,d,P,I)}let(d,P,I){return this._def(r.varKinds.let,d,P,I)}var(d,P,I){return this._def(r.varKinds.var,d,P,I)}assign(d,P,I){return this._leafNode(new o(d,P,I))}add(d,P){return this._leafNode(new c(d,e.operators.ADD,P))}code(d){return typeof d=="function"?d():d!==t.nil&&this._leafNode(new _(d)),this}object(...d){const P=["{"];for(const[I,T]of d)P.length>1&&P.push(","),P.push(I),(I!==T||this.opts.es5)&&(P.push(":"),(0,t.addCodeArg)(P,T));return P.push("}"),new t._Code(P)}if(d,P,I){if(this._blockNode(new y(d)),P&&I)this.code(P).else().code(I).endIf();else if(P)this.code(P).endIf();else if(I)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(d){return this._elseNode(new y(d))}else(){return this._elseNode(new g)}endIf(){return this._endBlockNode(y,g)}_for(d,P){return this._blockNode(d),P&&this.code(P).endFor(),this}for(d,P){return this._for(new C(d),P)}forRange(d,P,I,T,F=this.opts.es5?r.varKinds.var:r.varKinds.let){const z=this._scope.toName(d);return this._for(new x(F,z,P,I),()=>T(z))}forOf(d,P,I,T=r.varKinds.const){const F=this._scope.toName(d);if(this.opts.es5){const z=P instanceof t.Name?P:this.var("_arr",P);return this.forRange("_i",0,(0,t._)`${z}.length`,H=>{this.var(F,(0,t._)`${z}[${H}]`),I(F)})}return this._for(new h("of",T,F,P),()=>I(F))}forIn(d,P,I,T=this.opts.es5?r.varKinds.var:r.varKinds.const){if(this.opts.ownProperties)return this.forOf(d,(0,t._)`Object.keys(${P})`,I);const F=this._scope.toName(d);return this._for(new h("in",T,F,P),()=>I(F))}endFor(){return this._endBlockNode(f)}label(d){return this._leafNode(new l(d))}break(d){return this._leafNode(new u(d))}return(d){const P=new O;if(this._blockNode(P),this.code(d),P.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(O)}try(d,P,I){if(!P&&!I)throw new Error('CodeGen: "try" without "catch" and "finally"');const T=new k;if(this._blockNode(T),this.code(d),P){const F=this.name("e");this._currNode=T.catch=new $(F),P(F)}return I&&(this._currNode=T.finally=new M,this.code(I)),this._endBlockNode($,M)}throw(d){return this._leafNode(new m(d))}block(d,P){return this._blockStarts.push(this._nodes.length),d&&this.code(d).endBlock(P),this}endBlock(d){const P=this._blockStarts.pop();if(P===void 0)throw new Error("CodeGen: not in self-balancing block");const I=this._nodes.length-P;if(I<0||d!==void 0&&I!==d)throw new Error(`CodeGen: wrong number of nodes: ${I} vs ${d} expected`);return this._nodes.length=P,this}func(d,P=t.nil,I,T){return this._blockNode(new b(d,P,I)),T&&this.code(T).endFunc(),this}endFunc(){return this._endBlockNode(b)}optimize(d=1){for(;d-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(d){return this._currNode.nodes.push(d),this}_blockNode(d){this._currNode.nodes.push(d),this._nodes.push(d)}_endBlockNode(d,P){const I=this._currNode;if(I instanceof d||P&&I instanceof P)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${P?`${d.kind}/${P.kind}`:d.kind}"`)}_elseNode(d){const P=this._currNode;if(!(P instanceof y))throw new Error('CodeGen: "else" without "if"');return this._currNode=P.else=d,this}get _root(){return this._nodes[0]}get _currNode(){const d=this._nodes;return d[d.length-1]}set _currNode(d){const P=this._nodes;P[P.length-1]=d}}e.CodeGen=q;function U(p,d){for(const P in d)p[P]=(p[P]||0)+(d[P]||0);return p}function L(p,d){return d instanceof t._CodeOrName?U(p,d.names):p}function B(p,d,P){if(p instanceof t.Name)return I(p);if(!T(p))return p;return new t._Code(p._items.reduce((F,z)=>(z instanceof t.Name&&(z=I(z)),z instanceof t._Code?F.push(...z._items):F.push(z),F),[]));function I(F){const z=P[F.str];return z===void 0||d[F.str]!==1?F:(delete d[F.str],z)}function T(F){return F instanceof t._Code&&F._items.some(z=>z instanceof t.Name&&d[z.str]===1&&P[z.str]!==void 0)}}function J(p,d){for(const P in d)p[P]=(p[P]||0)-(d[P]||0)}function Y(p){return typeof p=="boolean"||typeof p=="number"||p===null?!p:(0,t._)`!${j(p)}`}e.not=Y;const Q=w(e.operators.AND);function X(...p){return p.reduce(Q)}e.and=X;const re=w(e.operators.OR);function A(...p){return p.reduce(re)}e.or=A;function w(p){return(d,P)=>d===t.nil?P:P===t.nil?d:(0,t._)`${j(d)} ${p} ${j(P)}`}function j(p){return p instanceof t.Name?p:(0,t._)`(${p})`}})(nc)),nc}var Ee={},bf;function Me(){if(bf)return Ee;bf=1,Object.defineProperty(Ee,"__esModule",{value:!0}),Ee.checkStrictMode=Ee.getErrorPath=Ee.Type=Ee.useFunc=Ee.setEvaluated=Ee.evaluatedPropsToName=Ee.mergeEvaluated=Ee.eachItem=Ee.unescapeJsonPointer=Ee.escapeJsonPointer=Ee.escapeFragment=Ee.unescapeFragment=Ee.schemaRefOrVal=Ee.schemaHasRulesButRef=Ee.schemaHasRules=Ee.checkUnknownRules=Ee.alwaysValidSchema=Ee.toHash=void 0;const e=Oe(),t=Va();function r(h){const b={};for(const O of h)b[O]=!0;return b}Ee.toHash=r;function n(h,b){return typeof b=="boolean"?b:Object.keys(b).length===0?!0:(i(h,b),!s(b,h.self.RULES.all))}Ee.alwaysValidSchema=n;function i(h,b=h.schema){const{opts:O,self:k}=h;if(!O.strictSchema||typeof b=="boolean")return;const $=k.RULES.keywords;for(const M in b)$[M]||x(h,`unknown keyword: "${M}"`)}Ee.checkUnknownRules=i;function s(h,b){if(typeof h=="boolean")return!h;for(const O in h)if(b[O])return!0;return!1}Ee.schemaHasRules=s;function a(h,b){if(typeof h=="boolean")return!h;for(const O in h)if(O!=="$ref"&&b.all[O])return!0;return!1}Ee.schemaHasRulesButRef=a;function o({topSchemaRef:h,schemaPath:b},O,k,$){if(!$){if(typeof O=="number"||typeof O=="boolean")return O;if(typeof O=="string")return(0,e._)`${O}`}return(0,e._)`${h}${b}${(0,e.getProperty)(k)}`}Ee.schemaRefOrVal=o;function c(h){return m(decodeURIComponent(h))}Ee.unescapeFragment=c;function l(h){return encodeURIComponent(u(h))}Ee.escapeFragment=l;function u(h){return typeof h=="number"?`${h}`:h.replace(/~/g,"~0").replace(/\//g,"~1")}Ee.escapeJsonPointer=u;function m(h){return h.replace(/~1/g,"/").replace(/~0/g,"~")}Ee.unescapeJsonPointer=m;function _(h,b){if(Array.isArray(h))for(const O of h)b(O);else b(h)}Ee.eachItem=_;function v({mergeNames:h,mergeToName:b,mergeValues:O,resultToName:k}){return($,M,q,U)=>{const L=q===void 0?M:q instanceof e.Name?(M instanceof e.Name?h($,M,q):b($,M,q),q):M instanceof e.Name?(b($,q,M),M):O(M,q);return U===e.Name&&!(L instanceof e.Name)?k($,L):L}}Ee.mergeEvaluated={props:v({mergeNames:(h,b,O)=>h.if((0,e._)`${O} !== true && ${b} !== undefined`,()=>{h.if((0,e._)`${b} === true`,()=>h.assign(O,!0),()=>h.assign(O,(0,e._)`${O} || {}`).code((0,e._)`Object.assign(${O}, ${b})`))}),mergeToName:(h,b,O)=>h.if((0,e._)`${O} !== true`,()=>{b===!0?h.assign(O,!0):(h.assign(O,(0,e._)`${O} || {}`),E(h,O,b))}),mergeValues:(h,b)=>h===!0?!0:{...h,...b},resultToName:S}),items:v({mergeNames:(h,b,O)=>h.if((0,e._)`${O} !== true && ${b} !== undefined`,()=>h.assign(O,(0,e._)`${b} === true ? true : ${O} > ${b} ? ${O} : ${b}`)),mergeToName:(h,b,O)=>h.if((0,e._)`${O} !== true`,()=>h.assign(O,b===!0?!0:(0,e._)`${O} > ${b} ? ${O} : ${b}`)),mergeValues:(h,b)=>h===!0?!0:Math.max(h,b),resultToName:(h,b)=>h.var("items",b)})};function S(h,b){if(b===!0)return h.var("props",!0);const O=h.var("props",(0,e._)`{}`);return b!==void 0&&E(h,O,b),O}Ee.evaluatedPropsToName=S;function E(h,b,O){Object.keys(O).forEach(k=>h.assign((0,e._)`${b}${(0,e.getProperty)(k)}`,!0))}Ee.setEvaluated=E;const g={};function y(h,b){return h.scopeValue("func",{ref:b,code:g[b.code]||(g[b.code]=new t._Code(b.code))})}Ee.useFunc=y;var f;(function(h){h[h.Num=0]="Num",h[h.Str=1]="Str"})(f||(Ee.Type=f={}));function C(h,b,O){if(h instanceof e.Name){const k=b===f.Num;return O?k?(0,e._)`"[" + ${h} + "]"`:(0,e._)`"['" + ${h} + "']"`:k?(0,e._)`"/" + ${h}`:(0,e._)`"/" + ${h}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return O?(0,e.getProperty)(h).toString():"/"+u(h)}Ee.getErrorPath=C;function x(h,b,O=h.opts.strictSchema){if(O){if(b=`strict mode: ${b}`,O===!0)throw new Error(b);h.self.logger.warn(b)}}return Ee.checkStrictMode=x,Ee}var Fs={},_f;function nn(){if(_f)return Fs;_f=1,Object.defineProperty(Fs,"__esModule",{value:!0});const e=Oe(),t={data:new e.Name("data"),valCxt:new e.Name("valCxt"),instancePath:new e.Name("instancePath"),parentData:new e.Name("parentData"),parentDataProperty:new e.Name("parentDataProperty"),rootData:new e.Name("rootData"),dynamicAnchors:new e.Name("dynamicAnchors"),vErrors:new e.Name("vErrors"),errors:new e.Name("errors"),this:new e.Name("this"),self:new e.Name("self"),scope:new e.Name("scope"),json:new e.Name("json"),jsonPos:new e.Name("jsonPos"),jsonLen:new e.Name("jsonLen"),jsonPart:new e.Name("jsonPart")};return Fs.default=t,Fs}var Sf;function no(){return Sf||(Sf=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.extendErrors=e.resetErrorsCount=e.reportExtraError=e.reportError=e.keyword$DataError=e.keywordError=void 0;const t=Oe(),r=Me(),n=nn();e.keywordError={message:({keyword:g})=>(0,t.str)`must pass "${g}" keyword validation`},e.keyword$DataError={message:({keyword:g,schemaType:y})=>y?(0,t.str)`"${g}" keyword must be ${y} ($data)`:(0,t.str)`"${g}" keyword is invalid ($data)`};function i(g,y=e.keywordError,f,C){const{it:x}=g,{gen:h,compositeRule:b,allErrors:O}=x,k=m(g,y,f);C??(b||O)?c(h,k):l(x,(0,t._)`[${k}]`)}e.reportError=i;function s(g,y=e.keywordError,f){const{it:C}=g,{gen:x,compositeRule:h,allErrors:b}=C,O=m(g,y,f);c(x,O),h||b||l(C,n.default.vErrors)}e.reportExtraError=s;function a(g,y){g.assign(n.default.errors,y),g.if((0,t._)`${n.default.vErrors} !== null`,()=>g.if(y,()=>g.assign((0,t._)`${n.default.vErrors}.length`,y),()=>g.assign(n.default.vErrors,null)))}e.resetErrorsCount=a;function o({gen:g,keyword:y,schemaValue:f,data:C,errsCount:x,it:h}){if(x===void 0)throw new Error("ajv implementation error");const b=g.name("err");g.forRange("i",x,n.default.errors,O=>{g.const(b,(0,t._)`${n.default.vErrors}[${O}]`),g.if((0,t._)`${b}.instancePath === undefined`,()=>g.assign((0,t._)`${b}.instancePath`,(0,t.strConcat)(n.default.instancePath,h.errorPath))),g.assign((0,t._)`${b}.schemaPath`,(0,t.str)`${h.errSchemaPath}/${y}`),h.opts.verbose&&(g.assign((0,t._)`${b}.schema`,f),g.assign((0,t._)`${b}.data`,C))})}e.extendErrors=o;function c(g,y){const f=g.const("err",y);g.if((0,t._)`${n.default.vErrors} === null`,()=>g.assign(n.default.vErrors,(0,t._)`[${f}]`),(0,t._)`${n.default.vErrors}.push(${f})`),g.code((0,t._)`${n.default.errors}++`)}function l(g,y){const{gen:f,validateName:C,schemaEnv:x}=g;x.$async?f.throw((0,t._)`new ${g.ValidationError}(${y})`):(f.assign((0,t._)`${C}.errors`,y),f.return(!1))}const u={keyword:new t.Name("keyword"),schemaPath:new t.Name("schemaPath"),params:new t.Name("params"),propertyName:new t.Name("propertyName"),message:new t.Name("message"),schema:new t.Name("schema"),parentSchema:new t.Name("parentSchema")};function m(g,y,f){const{createErrors:C}=g.it;return C===!1?(0,t._)`{}`:_(g,y,f)}function _(g,y,f={}){const{gen:C,it:x}=g,h=[v(x,f),S(g,f)];return E(g,y,h),C.object(...h)}function v({errorPath:g},{instancePath:y}){const f=y?(0,t.str)`${g}${(0,r.getErrorPath)(y,r.Type.Str)}`:g;return[n.default.instancePath,(0,t.strConcat)(n.default.instancePath,f)]}function S({keyword:g,it:{errSchemaPath:y}},{schemaPath:f,parentSchema:C}){let x=C?y:(0,t.str)`${y}/${g}`;return f&&(x=(0,t.str)`${x}${(0,r.getErrorPath)(f,r.Type.Str)}`),[u.schemaPath,x]}function E(g,{params:y,message:f},C){const{keyword:x,data:h,schemaValue:b,it:O}=g,{opts:k,propertyName:$,topSchemaRef:M,schemaPath:q}=O;C.push([u.keyword,x],[u.params,typeof y=="function"?y(g):y||(0,t._)`{}`]),k.messages&&C.push([u.message,typeof f=="function"?f(g):f]),k.verbose&&C.push([u.schema,b],[u.parentSchema,(0,t._)`${M}${q}`],[n.default.data,h]),$&&C.push([u.propertyName,$])}})(rc)),rc}var wf;function hw(){if(wf)return yn;wf=1,Object.defineProperty(yn,"__esModule",{value:!0}),yn.boolOrEmptySchema=yn.topBoolOrEmptySchema=void 0;const e=no(),t=Oe(),r=nn(),n={message:"boolean schema is false"};function i(o){const{gen:c,schema:l,validateName:u}=o;l===!1?a(o,!1):typeof l=="object"&&l.$async===!0?c.return(r.default.data):(c.assign((0,t._)`${u}.errors`,null),c.return(!0))}yn.topBoolOrEmptySchema=i;function s(o,c){const{gen:l,schema:u}=o;u===!1?(l.var(c,!1),a(o)):l.var(c,!0)}yn.boolOrEmptySchema=s;function a(o,c){const{gen:l,data:u}=o,m={gen:l,keyword:"false schema",data:u,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:o};(0,e.reportError)(m,n,void 0,c)}return yn}var gt={},gn={},Cf;function Xm(){if(Cf)return gn;Cf=1,Object.defineProperty(gn,"__esModule",{value:!0}),gn.getRules=gn.isJSONType=void 0;const e=["string","number","integer","boolean","null","object","array"],t=new Set(e);function r(i){return typeof i=="string"&&t.has(i)}gn.isJSONType=r;function n(){const i={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...i,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},i.number,i.string,i.array,i.object],post:{rules:[]},all:{},keywords:{}}}return gn.getRules=n,gn}var Ar={},Ef;function Zm(){if(Ef)return Ar;Ef=1,Object.defineProperty(Ar,"__esModule",{value:!0}),Ar.shouldUseRule=Ar.shouldUseGroup=Ar.schemaHasRulesForType=void 0;function e({schema:n,self:i},s){const a=i.RULES.types[s];return a&&a!==!0&&t(n,a)}Ar.schemaHasRulesForType=e;function t(n,i){return i.rules.some(s=>r(n,s))}Ar.shouldUseGroup=t;function r(n,i){var s;return n[i.keyword]!==void 0||((s=i.definition.implements)===null||s===void 0?void 0:s.some(a=>n[a]!==void 0))}return Ar.shouldUseRule=r,Ar}var Af;function za(){if(Af)return gt;Af=1,Object.defineProperty(gt,"__esModule",{value:!0}),gt.reportTypeError=gt.checkDataTypes=gt.checkDataType=gt.coerceAndCheckDataType=gt.getJSONTypes=gt.getSchemaTypes=gt.DataType=void 0;const e=Xm(),t=Zm(),r=no(),n=Oe(),i=Me();var s;(function(f){f[f.Correct=0]="Correct",f[f.Wrong=1]="Wrong"})(s||(gt.DataType=s={}));function a(f){const C=o(f.type);if(C.includes("null")){if(f.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!C.length&&f.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');f.nullable===!0&&C.push("null")}return C}gt.getSchemaTypes=a;function o(f){const C=Array.isArray(f)?f:f?[f]:[];if(C.every(e.isJSONType))return C;throw new Error("type must be JSONType or JSONType[]: "+C.join(","))}gt.getJSONTypes=o;function c(f,C){const{gen:x,data:h,opts:b}=f,O=u(C,b.coerceTypes),k=C.length>0&&!(O.length===0&&C.length===1&&(0,t.schemaHasRulesForType)(f,C[0]));if(k){const $=S(C,h,b.strictNumbers,s.Wrong);x.if($,()=>{O.length?m(f,C,O):g(f)})}return k}gt.coerceAndCheckDataType=c;const l=new Set(["string","number","integer","boolean","null"]);function u(f,C){return C?f.filter(x=>l.has(x)||C==="array"&&x==="array"):[]}function m(f,C,x){const{gen:h,data:b,opts:O}=f,k=h.let("dataType",(0,n._)`typeof ${b}`),$=h.let("coerced",(0,n._)`undefined`);O.coerceTypes==="array"&&h.if((0,n._)`${k} == 'object' && Array.isArray(${b}) && ${b}.length == 1`,()=>h.assign(b,(0,n._)`${b}[0]`).assign(k,(0,n._)`typeof ${b}`).if(S(C,b,O.strictNumbers),()=>h.assign($,b))),h.if((0,n._)`${$} !== undefined`);for(const q of x)(l.has(q)||q==="array"&&O.coerceTypes==="array")&&M(q);h.else(),g(f),h.endIf(),h.if((0,n._)`${$} !== undefined`,()=>{h.assign(b,$),_(f,$)});function M(q){switch(q){case"string":h.elseIf((0,n._)`${k} == "number" || ${k} == "boolean"`).assign($,(0,n._)`"" + ${b}`).elseIf((0,n._)`${b} === null`).assign($,(0,n._)`""`);return;case"number":h.elseIf((0,n._)`${k} == "boolean" || ${b} === null + deps: ${u}}`};const s={keyword:"dependencies",type:"object",schemaType:"object",error:e.error,code(c){const[l,u]=i(c);a(c,l),o(c,u)}};function i({schema:c}){const l={},u={};for(const m in c){if(m==="__proto__")continue;const _=Array.isArray(c[m])?l:u;_[m]=c[m]}return[l,u]}function a(c,l=c.schema){const{gen:u,data:m,it:_}=c;if(Object.keys(l).length===0)return;const v=u.let("missing");for(const S in l){const E=l[S];if(E.length===0)continue;const g=(0,n.propertyInData)(u,m,S,_.opts.ownProperties);c.setParams({property:S,depsCount:E.length,deps:E.join(", ")}),_.allErrors?u.if(g,()=>{for(const y of E)(0,n.checkReportMissingProp)(c,y)}):(u.if((0,t._)`${g} && (${(0,n.checkMissingProp)(c,E,v)})`),(0,n.reportMissingProp)(c,v),u.else())}}e.validatePropertyDeps=a;function o(c,l=c.schema){const{gen:u,data:m,keyword:_,it:v}=c,S=u.name("valid");for(const E in l)(0,r.alwaysValidSchema)(v,l[E])||(u.if((0,n.propertyInData)(u,m,E,v.opts.ownProperties),()=>{const g=c.subschema({keyword:_,schemaProp:E},S);c.mergeValidEvaluated(g,S)},()=>u.var(S,!0)),c.ok(S))}e.validateSchemaDeps=o,e.default=s})(Qo)),Qo}var Ss={},Xd;function zS(){if(Xd)return Ss;Xd=1,Object.defineProperty(Ss,"__esModule",{value:!0});const e=Re(),t=Te(),n={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:{message:"property name must be valid",params:({params:s})=>(0,e._)`{propertyName: ${s.propertyName}}`},code(s){const{gen:i,schema:a,data:o,it:c}=s;if((0,t.alwaysValidSchema)(c,a))return;const l=i.name("valid");i.forIn("key",o,u=>{s.setParams({propertyName:u}),s.subschema({keyword:"propertyNames",data:u,dataTypes:["string"],propertyName:u,compositeRule:!0},l),i.if((0,e.not)(l),()=>{s.error(!0),c.allErrors||i.break()})}),s.ok(l)}};return Ss.default=n,Ss}var ws={},Zd;function Qm(){if(Zd)return ws;Zd=1,Object.defineProperty(ws,"__esModule",{value:!0});const e=sr(),t=Re(),r=rn(),n=Te(),i={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:{message:"must NOT have additional properties",params:({params:a})=>(0,t._)`{additionalProperty: ${a.additionalProperty}}`},code(a){const{gen:o,schema:c,parentSchema:l,data:u,errsCount:m,it:_}=a;if(!m)throw new Error("ajv implementation error");const{allErrors:v,opts:S}=_;if(_.props=!0,S.removeAdditional!=="all"&&(0,n.alwaysValidSchema)(_,c))return;const E=(0,e.allSchemaProperties)(l.properties),g=(0,e.allSchemaProperties)(l.patternProperties);y(),a.ok((0,t._)`${m} === ${r.default.errors}`);function y(){o.forIn("key",u,b=>{!E.length&&!g.length?x(b):o.if(f(b),()=>x(b))})}function f(b){let O;if(E.length>8){const k=(0,n.schemaRefOrVal)(_,l.properties,"properties");O=(0,e.isOwnProperty)(o,k,b)}else E.length?O=(0,t.or)(...E.map(k=>(0,t._)`${b} === ${k}`)):O=t.nil;return g.length&&(O=(0,t.or)(O,...g.map(k=>(0,t._)`${(0,e.usePattern)(a,k)}.test(${b})`))),(0,t.not)(O)}function C(b){o.code((0,t._)`delete ${u}[${b}]`)}function x(b){if(S.removeAdditional==="all"||S.removeAdditional&&c===!1){C(b);return}if(c===!1){a.setParams({additionalProperty:b}),a.error(),v||o.break();return}if(typeof c=="object"&&!(0,n.alwaysValidSchema)(_,c)){const O=o.name("valid");S.removeAdditional==="failing"?(h(b,O,!1),o.if((0,t.not)(O),()=>{a.reset(),C(b)})):(h(b,O),v||o.if((0,t.not)(O),()=>o.break()))}}function h(b,O,k){const $={keyword:"additionalProperties",dataProp:b,dataPropType:n.Type.Str};k===!1&&Object.assign($,{compositeRule:!0,createErrors:!1,allErrors:!1}),a.subschema($,O)}}};return ws.default=i,ws}var Cs={},Qd;function BS(){if(Qd)return Cs;Qd=1,Object.defineProperty(Cs,"__esModule",{value:!0});const e=ro(),t=sr(),r=Te(),n=Qm(),s={keyword:"properties",type:"object",schemaType:"object",code(i){const{gen:a,schema:o,parentSchema:c,data:l,it:u}=i;u.opts.removeAdditional==="all"&&c.additionalProperties===void 0&&n.default.code(new e.KeywordCxt(u,n.default,"additionalProperties"));const m=(0,t.allSchemaProperties)(o);for(const g of m)u.definedProperties.add(g);u.opts.unevaluated&&m.length&&u.props!==!0&&(u.props=r.mergeEvaluated.props(a,(0,r.toHash)(m),u.props));const _=m.filter(g=>!(0,r.alwaysValidSchema)(u,o[g]));if(_.length===0)return;const v=a.name("valid");for(const g of _)S(g)?E(g):(a.if((0,t.propertyInData)(a,l,g,u.opts.ownProperties)),E(g),u.allErrors||a.else().var(v,!0),a.endIf()),i.it.definedProperties.add(g),i.ok(v);function S(g){return u.opts.useDefaults&&!u.compositeRule&&o[g].default!==void 0}function E(g){i.subschema({keyword:"properties",schemaProp:g,dataProp:g},v)}}};return Cs.default=s,Cs}var Es={},ef;function HS(){if(ef)return Es;ef=1,Object.defineProperty(Es,"__esModule",{value:!0});const e=sr(),t=Re(),r=Te(),n=Te(),s={keyword:"patternProperties",type:"object",schemaType:"object",code(i){const{gen:a,schema:o,data:c,parentSchema:l,it:u}=i,{opts:m}=u,_=(0,e.allSchemaProperties)(o),v=_.filter(x=>(0,r.alwaysValidSchema)(u,o[x]));if(_.length===0||v.length===_.length&&(!u.opts.unevaluated||u.props===!0))return;const S=m.strictSchema&&!m.allowMatchingProperties&&l.properties,E=a.name("valid");u.props!==!0&&!(u.props instanceof t.Name)&&(u.props=(0,n.evaluatedPropsToName)(a,u.props));const{props:g}=u;y();function y(){for(const x of _)S&&f(x),u.allErrors?C(x):(a.var(E,!0),C(x),a.if(E))}function f(x){for(const h in S)new RegExp(x).test(h)&&(0,r.checkStrictMode)(u,`property ${h} matches pattern ${x} (use allowMatchingProperties)`)}function C(x){a.forIn("key",c,h=>{a.if((0,t._)`${(0,e.usePattern)(i,x)}.test(${h})`,()=>{const b=v.includes(x);b||i.subschema({keyword:"patternProperties",schemaProp:x,dataProp:h,dataPropType:n.Type.Str},E),u.opts.unevaluated&&g!==!0?a.assign((0,t._)`${g}[${h}]`,!0):!b&&!u.allErrors&&a.if((0,t.not)(E),()=>a.break())})})}}};return Es.default=s,Es}var As={},tf;function KS(){if(tf)return As;tf=1,Object.defineProperty(As,"__esModule",{value:!0});const e=Te(),t={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(r){const{gen:n,schema:s,it:i}=r;if((0,e.alwaysValidSchema)(i,s)){r.fail();return}const a=n.name("valid");r.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},a),r.failResult(a,()=>r.reset(),()=>r.error())},error:{message:"must NOT be valid"}};return As.default=t,As}var Ps={},rf;function GS(){if(rf)return Ps;rf=1,Object.defineProperty(Ps,"__esModule",{value:!0});const t={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:sr().validateUnion,error:{message:"must match a schema in anyOf"}};return Ps.default=t,Ps}var xs={},nf;function WS(){if(nf)return xs;nf=1,Object.defineProperty(xs,"__esModule",{value:!0});const e=Re(),t=Te(),n={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:{message:"must match exactly one schema in oneOf",params:({params:s})=>(0,e._)`{passingSchemas: ${s.passing}}`},code(s){const{gen:i,schema:a,parentSchema:o,it:c}=s;if(!Array.isArray(a))throw new Error("ajv implementation error");if(c.opts.discriminator&&o.discriminator)return;const l=a,u=i.let("valid",!1),m=i.let("passing",null),_=i.name("_valid");s.setParams({passing:m}),i.block(v),s.result(u,()=>s.reset(),()=>s.error(!0));function v(){l.forEach((S,E)=>{let g;(0,t.alwaysValidSchema)(c,S)?i.var(_,!0):g=s.subschema({keyword:"oneOf",schemaProp:E,compositeRule:!0},_),E>0&&i.if((0,e._)`${_} && ${u}`).assign(u,!1).assign(m,(0,e._)`[${m}, ${E}]`).else(),i.if(_,()=>{i.assign(u,!0),i.assign(m,E),g&&s.mergeEvaluated(g,e.Name)})})}}};return xs.default=n,xs}var Os={},sf;function JS(){if(sf)return Os;sf=1,Object.defineProperty(Os,"__esModule",{value:!0});const e=Te(),t={keyword:"allOf",schemaType:"array",code(r){const{gen:n,schema:s,it:i}=r;if(!Array.isArray(s))throw new Error("ajv implementation error");const a=n.name("valid");s.forEach((o,c)=>{if((0,e.alwaysValidSchema)(i,o))return;const l=r.subschema({keyword:"allOf",schemaProp:c},a);r.ok(a),r.mergeEvaluated(l)})}};return Os.default=t,Os}var js={},af;function YS(){if(af)return js;af=1,Object.defineProperty(js,"__esModule",{value:!0});const e=Re(),t=Te(),n={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:{message:({params:i})=>(0,e.str)`must match "${i.ifClause}" schema`,params:({params:i})=>(0,e._)`{failingKeyword: ${i.ifClause}}`},code(i){const{gen:a,parentSchema:o,it:c}=i;o.then===void 0&&o.else===void 0&&(0,t.checkStrictMode)(c,'"if" without "then" and "else" is ignored');const l=s(c,"then"),u=s(c,"else");if(!l&&!u)return;const m=a.let("valid",!0),_=a.name("_valid");if(v(),i.reset(),l&&u){const E=a.let("ifClause");i.setParams({ifClause:E}),a.if(_,S("then",E),S("else",E))}else l?a.if(_,S("then")):a.if((0,e.not)(_),S("else"));i.pass(m,()=>i.error(!0));function v(){const E=i.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},_);i.mergeEvaluated(E)}function S(E,g){return()=>{const y=i.subschema({keyword:E},_);a.assign(m,_),i.mergeValidEvaluated(y,m),g?a.assign(g,(0,e._)`${E}`):i.setParams({ifClause:E})}}}};function s(i,a){const o=i.schema[a];return o!==void 0&&!(0,t.alwaysValidSchema)(i,o)}return js.default=n,js}var ks={},of;function XS(){if(of)return ks;of=1,Object.defineProperty(ks,"__esModule",{value:!0});const e=Te(),t={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:r,parentSchema:n,it:s}){n.if===void 0&&(0,e.checkStrictMode)(s,`"${r}" without "if" is ignored`)}};return ks.default=t,ks}var cf;function ZS(){if(cf)return gs;cf=1,Object.defineProperty(gs,"__esModule",{value:!0});const e=Xm(),t=qS(),r=Zm(),n=US(),s=LS(),i=VS(),a=zS(),o=Qm(),c=BS(),l=HS(),u=KS(),m=GS(),_=WS(),v=JS(),S=YS(),E=XS();function g(y=!1){const f=[u.default,m.default,_.default,v.default,S.default,E.default,a.default,o.default,i.default,c.default,l.default];return y?f.push(t.default,n.default):f.push(e.default,r.default),f.push(s.default),f}return gs.default=g,gs}var Is={},Ns={},lf;function QS(){if(lf)return Ns;lf=1,Object.defineProperty(Ns,"__esModule",{value:!0});const e=Re(),r={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:{message:({schemaCode:n})=>(0,e.str)`must match format "${n}"`,params:({schemaCode:n})=>(0,e._)`{format: ${n}}`},code(n,s){const{gen:i,data:a,$data:o,schema:c,schemaCode:l,it:u}=n,{opts:m,errSchemaPath:_,schemaEnv:v,self:S}=u;if(!m.validateFormats)return;o?E():g();function E(){const y=i.scopeValue("formats",{ref:S.formats,code:m.code.formats}),f=i.const("fDef",(0,e._)`${y}[${l}]`),C=i.let("fType"),x=i.let("format");i.if((0,e._)`typeof ${f} == "object" && !(${f} instanceof RegExp)`,()=>i.assign(C,(0,e._)`${f}.type || "string"`).assign(x,(0,e._)`${f}.validate`),()=>i.assign(C,(0,e._)`"string"`).assign(x,f)),n.fail$data((0,e.or)(h(),b()));function h(){return m.strictSchema===!1?e.nil:(0,e._)`${l} && !${x}`}function b(){const O=v.$async?(0,e._)`(${f}.async ? await ${x}(${a}) : ${x}(${a}))`:(0,e._)`${x}(${a})`,k=(0,e._)`(typeof ${x} == "function" ? ${O} : ${x}.test(${a}))`;return(0,e._)`${x} && ${x} !== true && ${C} === ${s} && !${k}`}}function g(){const y=S.formats[c];if(!y){h();return}if(y===!0)return;const[f,C,x]=b(y);f===s&&n.pass(O());function h(){if(m.strictSchema===!1){S.logger.warn(k());return}throw new Error(k());function k(){return`unknown format "${c}" ignored in schema at path "${_}"`}}function b(k){const $=k instanceof RegExp?(0,e.regexpCode)(k):m.code.formats?(0,e._)`${m.code.formats}${(0,e.getProperty)(c)}`:void 0,M=i.scopeValue("formats",{key:c,ref:k,code:$});return typeof k=="object"&&!(k instanceof RegExp)?[k.type||"string",k.validate,(0,e._)`${M}.validate`]:["string",k,M]}function O(){if(typeof y=="object"&&!(y instanceof RegExp)&&y.async){if(!v.$async)throw new Error("async format in sync schema");return(0,e._)`await ${x}(${a})`}return typeof C=="function"?(0,e._)`${x}(${a})`:(0,e._)`${x}.test(${a})`}}}};return Ns.default=r,Ns}var uf;function e1(){if(uf)return Is;uf=1,Object.defineProperty(Is,"__esModule",{value:!0});const t=[QS().default];return Is.default=t,Is}var pn={},df;function t1(){return df||(df=1,Object.defineProperty(pn,"__esModule",{value:!0}),pn.contentVocabulary=pn.metadataVocabulary=void 0,pn.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],pn.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]),pn}var ff;function r1(){if(ff)return ts;ff=1,Object.defineProperty(ts,"__esModule",{value:!0});const e=PS(),t=MS(),r=ZS(),n=e1(),s=t1(),i=[e.default,t.default,(0,r.default)(),n.default,s.metadataVocabulary,s.contentVocabulary];return ts.default=i,ts}var Rs={},_i={},hf;function n1(){if(hf)return _i;hf=1,Object.defineProperty(_i,"__esModule",{value:!0}),_i.DiscrError=void 0;var e;return(function(t){t.Tag="tag",t.Mapping="mapping"})(e||(_i.DiscrError=e={})),_i}var mf;function i1(){if(mf)return Rs;mf=1,Object.defineProperty(Rs,"__esModule",{value:!0});const e=Re(),t=n1(),r=dl(),n=no(),s=Te(),a={keyword:"discriminator",type:"object",schemaType:"object",error:{message:({params:{discrError:o,tagName:c}})=>o===t.DiscrError.Tag?`tag "${c}" must be string`:`value of tag "${c}" must be in oneOf`,params:({params:{discrError:o,tag:c,tagName:l}})=>(0,e._)`{error: ${o}, tag: ${l}, tagValue: ${c}}`},code(o){const{gen:c,data:l,schema:u,parentSchema:m,it:_}=o,{oneOf:v}=m;if(!_.opts.discriminator)throw new Error("discriminator: requires discriminator option");const S=u.propertyName;if(typeof S!="string")throw new Error("discriminator: requires propertyName");if(u.mapping)throw new Error("discriminator: mapping is not supported");if(!v)throw new Error("discriminator: requires oneOf keyword");const E=c.let("valid",!1),g=c.const("tag",(0,e._)`${l}${(0,e.getProperty)(S)}`);c.if((0,e._)`typeof ${g} == "string"`,()=>y(),()=>o.error(!1,{discrError:t.DiscrError.Tag,tag:g,tagName:S})),o.ok(E);function y(){const x=C();c.if(!1);for(const h in x)c.elseIf((0,e._)`${g} === ${h}`),c.assign(E,f(x[h]));c.else(),o.error(!1,{discrError:t.DiscrError.Mapping,tag:g,tagName:S}),c.endIf()}function f(x){const h=c.name("valid"),b=o.subschema({keyword:"oneOf",schemaProp:x},h);return o.mergeEvaluated(b,e.Name),h}function C(){var x;const h={},b=k(m);let O=!0;for(let q=0;qthis.addVocabulary(S)),this.opts.discriminator&&this.addKeyword(s.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;const S=this.opts.$data?this.$dataMetaSchema(i,a):i;this.addMetaSchema(S,o,!1),this.refs["http://json-schema.org/schema"]=o}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(o)?o:void 0)}}t.Ajv=c,e.exports=t=c,e.exports.Ajv=c,Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var l=ro();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return l.KeywordCxt}});var u=Re();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return u._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return u.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return u.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return u.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return u.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return u.CodeGen}});var m=ul();Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return m.default}});var _=no();Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return _.default}})})(Yi,Yi.exports)),Yi.exports}var h1=f1();const m1=Fi(h1);var $s={exports:{}},ec={},yf;function p1(){return yf||(yf=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.formatNames=e.fastFormats=e.fullFormats=void 0;function t($,M){return{validate:$,compare:M}}e.fullFormats={date:t(i,a),time:t(c,l),"date-time":t(m,_),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:E,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:k,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:y,int32:{type:"number",validate:x},int64:{type:"number",validate:h},float:{type:"number",validate:b},double:{type:"number",validate:b},password:!0,binary:!0},e.fastFormats={...e.fullFormats,date:t(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,a),time:t(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,l),"date-time":t(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,_),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i},e.formatNames=Object.keys(e.fullFormats);function r($){return $%4===0&&($%100!==0||$%400===0)}const n=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,s=[0,31,28,31,30,31,30,31,31,30,31,30,31];function i($){const M=n.exec($);if(!M)return!1;const q=+M[1],U=+M[2],L=+M[3];return U>=1&&U<=12&&L>=1&&L<=(U===2&&r(q)?29:s[U])}function a($,M){if($&&M)return $>M?1:$M?1:$=f}function h($){return Number.isInteger($)}function b(){return!0}const O=/[^\\]\\Z/;function k($){if(O.test($))return!1;try{return new RegExp($),!0}catch{return!1}}})(ec)),ec}var tc={},Fs={exports:{}},rc={},Er={},yn={},nc={},ic={},sc={},gf;function za(){return gf||(gf=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.regexpCode=e.getEsmExportName=e.getProperty=e.safeStringify=e.stringify=e.strConcat=e.addCodeArg=e.str=e._=e.nil=e._Code=e.Name=e.IDENTIFIER=e._CodeOrName=void 0;class t{}e._CodeOrName=t,e.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class r extends t{constructor(f){if(super(),!e.IDENTIFIER.test(f))throw new Error("CodeGen: name must be a valid identifier");this.str=f}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}e.Name=r;class n extends t{constructor(f){super(),this._items=typeof f=="string"?[f]:f}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;const f=this._items[0];return f===""||f==='""'}get str(){var f;return(f=this._str)!==null&&f!==void 0?f:this._str=this._items.reduce((C,x)=>`${C}${x}`,"")}get names(){var f;return(f=this._names)!==null&&f!==void 0?f:this._names=this._items.reduce((C,x)=>(x instanceof r&&(C[x.str]=(C[x.str]||0)+1),C),{})}}e._Code=n,e.nil=new n("");function s(y,...f){const C=[y[0]];let x=0;for(;x{if(m.scopePath===void 0)throw new Error(`CodeGen: name "${m}" has no value`);return(0,t._)`${l}${m.scopePath}`})}scopeCode(l=this._values,u,m){return this._reduceValues(l,_=>{if(_.value===void 0)throw new Error(`CodeGen: name "${_}" has no value`);return _.value.code},u,m)}_reduceValues(l,u,m={},_){let v=t.nil;for(const S in l){const E=l[S];if(!E)continue;const g=m[S]=m[S]||new Map;E.forEach(y=>{if(g.has(y))return;g.set(y,n.Started);let f=u(y);if(f){const C=this.opts.es5?e.varKinds.var:e.varKinds.const;v=(0,t._)`${v}${C} ${y} = ${f};${this.opts._n}`}else if(f=_?.(y))v=(0,t._)`${v}${f}${this.opts._n}`;else throw new r(y);g.set(y,n.Completed)})}return v}}e.ValueScope=o})(ac)),ac}var _f;function Oe(){return _f||(_f=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.or=e.and=e.not=e.CodeGen=e.operators=e.varKinds=e.ValueScopeName=e.ValueScope=e.Scope=e.Name=e.regexpCode=e.stringify=e.getProperty=e.nil=e.strConcat=e.str=e._=void 0;const t=za(),r=bf();var n=za();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return n._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return n.str}}),Object.defineProperty(e,"strConcat",{enumerable:!0,get:function(){return n.strConcat}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return n.nil}}),Object.defineProperty(e,"getProperty",{enumerable:!0,get:function(){return n.getProperty}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return n.stringify}}),Object.defineProperty(e,"regexpCode",{enumerable:!0,get:function(){return n.regexpCode}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return n.Name}});var s=bf();Object.defineProperty(e,"Scope",{enumerable:!0,get:function(){return s.Scope}}),Object.defineProperty(e,"ValueScope",{enumerable:!0,get:function(){return s.ValueScope}}),Object.defineProperty(e,"ValueScopeName",{enumerable:!0,get:function(){return s.ValueScopeName}}),Object.defineProperty(e,"varKinds",{enumerable:!0,get:function(){return s.varKinds}}),e.operators={GT:new t._Code(">"),GTE:new t._Code(">="),LT:new t._Code("<"),LTE:new t._Code("<="),EQ:new t._Code("==="),NEQ:new t._Code("!=="),NOT:new t._Code("!"),OR:new t._Code("||"),AND:new t._Code("&&"),ADD:new t._Code("+")};class i{optimizeNodes(){return this}optimizeNames(d,P){return this}}class a extends i{constructor(d,P,I){super(),this.varKind=d,this.name=P,this.rhs=I}render({es5:d,_n:P}){const I=d?r.varKinds.var:this.varKind,T=this.rhs===void 0?"":` = ${this.rhs}`;return`${I} ${this.name}${T};`+P}optimizeNames(d,P){if(d[this.name.str])return this.rhs&&(this.rhs=B(this.rhs,d,P)),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}}class o extends i{constructor(d,P,I){super(),this.lhs=d,this.rhs=P,this.sideEffects=I}render({_n:d}){return`${this.lhs} = ${this.rhs};`+d}optimizeNames(d,P){if(!(this.lhs instanceof t.Name&&!d[this.lhs.str]&&!this.sideEffects))return this.rhs=B(this.rhs,d,P),this}get names(){const d=this.lhs instanceof t.Name?{}:{...this.lhs.names};return L(d,this.rhs)}}class c extends o{constructor(d,P,I,T){super(d,I,T),this.op=P}render({_n:d}){return`${this.lhs} ${this.op}= ${this.rhs};`+d}}class l extends i{constructor(d){super(),this.label=d,this.names={}}render({_n:d}){return`${this.label}:`+d}}class u extends i{constructor(d){super(),this.label=d,this.names={}}render({_n:d}){return`break${this.label?` ${this.label}`:""};`+d}}class m extends i{constructor(d){super(),this.error=d}render({_n:d}){return`throw ${this.error};`+d}get names(){return this.error.names}}class _ extends i{constructor(d){super(),this.code=d}render({_n:d}){return`${this.code};`+d}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(d,P){return this.code=B(this.code,d,P),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}}class v extends i{constructor(d=[]){super(),this.nodes=d}render(d){return this.nodes.reduce((P,I)=>P+I.render(d),"")}optimizeNodes(){const{nodes:d}=this;let P=d.length;for(;P--;){const I=d[P].optimizeNodes();Array.isArray(I)?d.splice(P,1,...I):I?d[P]=I:d.splice(P,1)}return d.length>0?this:void 0}optimizeNames(d,P){const{nodes:I}=this;let T=I.length;for(;T--;){const F=I[T];F.optimizeNames(d,P)||(J(d,F.names),I.splice(T,1))}return I.length>0?this:void 0}get names(){return this.nodes.reduce((d,P)=>U(d,P.names),{})}}class S extends v{render(d){return"{"+d._n+super.render(d)+"}"+d._n}}class E extends v{}class g extends S{}g.kind="else";class y extends S{constructor(d,P){super(P),this.condition=d}render(d){let P=`if(${this.condition})`+super.render(d);return this.else&&(P+="else "+this.else.render(d)),P}optimizeNodes(){super.optimizeNodes();const d=this.condition;if(d===!0)return this.nodes;let P=this.else;if(P){const I=P.optimizeNodes();P=this.else=Array.isArray(I)?new g(I):I}if(P)return d===!1?P instanceof y?P:P.nodes:this.nodes.length?this:new y(Y(d),P instanceof y?[P]:P.nodes);if(!(d===!1||!this.nodes.length))return this}optimizeNames(d,P){var I;if(this.else=(I=this.else)===null||I===void 0?void 0:I.optimizeNames(d,P),!!(super.optimizeNames(d,P)||this.else))return this.condition=B(this.condition,d,P),this}get names(){const d=super.names;return L(d,this.condition),this.else&&U(d,this.else.names),d}}y.kind="if";class f extends S{}f.kind="for";class C extends f{constructor(d){super(),this.iteration=d}render(d){return`for(${this.iteration})`+super.render(d)}optimizeNames(d,P){if(super.optimizeNames(d,P))return this.iteration=B(this.iteration,d,P),this}get names(){return U(super.names,this.iteration.names)}}class x extends f{constructor(d,P,I,T){super(),this.varKind=d,this.name=P,this.from=I,this.to=T}render(d){const P=d.es5?r.varKinds.var:this.varKind,{name:I,from:T,to:F}=this;return`for(${P} ${I}=${T}; ${I}<${F}; ${I}++)`+super.render(d)}get names(){const d=L(super.names,this.from);return L(d,this.to)}}class h extends f{constructor(d,P,I,T){super(),this.loop=d,this.varKind=P,this.name=I,this.iterable=T}render(d){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(d)}optimizeNames(d,P){if(super.optimizeNames(d,P))return this.iterable=B(this.iterable,d,P),this}get names(){return U(super.names,this.iterable.names)}}class b extends S{constructor(d,P,I){super(),this.name=d,this.args=P,this.async=I}render(d){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(d)}}b.kind="func";class O extends v{render(d){return"return "+super.render(d)}}O.kind="return";class k extends S{render(d){let P="try"+super.render(d);return this.catch&&(P+=this.catch.render(d)),this.finally&&(P+=this.finally.render(d)),P}optimizeNodes(){var d,P;return super.optimizeNodes(),(d=this.catch)===null||d===void 0||d.optimizeNodes(),(P=this.finally)===null||P===void 0||P.optimizeNodes(),this}optimizeNames(d,P){var I,T;return super.optimizeNames(d,P),(I=this.catch)===null||I===void 0||I.optimizeNames(d,P),(T=this.finally)===null||T===void 0||T.optimizeNames(d,P),this}get names(){const d=super.names;return this.catch&&U(d,this.catch.names),this.finally&&U(d,this.finally.names),d}}class $ extends S{constructor(d){super(),this.error=d}render(d){return`catch(${this.error})`+super.render(d)}}$.kind="catch";class M extends S{render(d){return"finally"+super.render(d)}}M.kind="finally";class q{constructor(d,P={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...P,_n:P.lines?` +`:""},this._extScope=d,this._scope=new r.Scope({parent:d}),this._nodes=[new E]}toString(){return this._root.render(this.opts)}name(d){return this._scope.name(d)}scopeName(d){return this._extScope.name(d)}scopeValue(d,P){const I=this._extScope.value(d,P);return(this._values[I.prefix]||(this._values[I.prefix]=new Set)).add(I),I}getScopeValue(d,P){return this._extScope.getValue(d,P)}scopeRefs(d){return this._extScope.scopeRefs(d,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(d,P,I,T){const F=this._scope.toName(P);return I!==void 0&&T&&(this._constants[F.str]=I),this._leafNode(new a(d,F,I)),F}const(d,P,I){return this._def(r.varKinds.const,d,P,I)}let(d,P,I){return this._def(r.varKinds.let,d,P,I)}var(d,P,I){return this._def(r.varKinds.var,d,P,I)}assign(d,P,I){return this._leafNode(new o(d,P,I))}add(d,P){return this._leafNode(new c(d,e.operators.ADD,P))}code(d){return typeof d=="function"?d():d!==t.nil&&this._leafNode(new _(d)),this}object(...d){const P=["{"];for(const[I,T]of d)P.length>1&&P.push(","),P.push(I),(I!==T||this.opts.es5)&&(P.push(":"),(0,t.addCodeArg)(P,T));return P.push("}"),new t._Code(P)}if(d,P,I){if(this._blockNode(new y(d)),P&&I)this.code(P).else().code(I).endIf();else if(P)this.code(P).endIf();else if(I)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(d){return this._elseNode(new y(d))}else(){return this._elseNode(new g)}endIf(){return this._endBlockNode(y,g)}_for(d,P){return this._blockNode(d),P&&this.code(P).endFor(),this}for(d,P){return this._for(new C(d),P)}forRange(d,P,I,T,F=this.opts.es5?r.varKinds.var:r.varKinds.let){const z=this._scope.toName(d);return this._for(new x(F,z,P,I),()=>T(z))}forOf(d,P,I,T=r.varKinds.const){const F=this._scope.toName(d);if(this.opts.es5){const z=P instanceof t.Name?P:this.var("_arr",P);return this.forRange("_i",0,(0,t._)`${z}.length`,H=>{this.var(F,(0,t._)`${z}[${H}]`),I(F)})}return this._for(new h("of",T,F,P),()=>I(F))}forIn(d,P,I,T=this.opts.es5?r.varKinds.var:r.varKinds.const){if(this.opts.ownProperties)return this.forOf(d,(0,t._)`Object.keys(${P})`,I);const F=this._scope.toName(d);return this._for(new h("in",T,F,P),()=>I(F))}endFor(){return this._endBlockNode(f)}label(d){return this._leafNode(new l(d))}break(d){return this._leafNode(new u(d))}return(d){const P=new O;if(this._blockNode(P),this.code(d),P.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(O)}try(d,P,I){if(!P&&!I)throw new Error('CodeGen: "try" without "catch" and "finally"');const T=new k;if(this._blockNode(T),this.code(d),P){const F=this.name("e");this._currNode=T.catch=new $(F),P(F)}return I&&(this._currNode=T.finally=new M,this.code(I)),this._endBlockNode($,M)}throw(d){return this._leafNode(new m(d))}block(d,P){return this._blockStarts.push(this._nodes.length),d&&this.code(d).endBlock(P),this}endBlock(d){const P=this._blockStarts.pop();if(P===void 0)throw new Error("CodeGen: not in self-balancing block");const I=this._nodes.length-P;if(I<0||d!==void 0&&I!==d)throw new Error(`CodeGen: wrong number of nodes: ${I} vs ${d} expected`);return this._nodes.length=P,this}func(d,P=t.nil,I,T){return this._blockNode(new b(d,P,I)),T&&this.code(T).endFunc(),this}endFunc(){return this._endBlockNode(b)}optimize(d=1){for(;d-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(d){return this._currNode.nodes.push(d),this}_blockNode(d){this._currNode.nodes.push(d),this._nodes.push(d)}_endBlockNode(d,P){const I=this._currNode;if(I instanceof d||P&&I instanceof P)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${P?`${d.kind}/${P.kind}`:d.kind}"`)}_elseNode(d){const P=this._currNode;if(!(P instanceof y))throw new Error('CodeGen: "else" without "if"');return this._currNode=P.else=d,this}get _root(){return this._nodes[0]}get _currNode(){const d=this._nodes;return d[d.length-1]}set _currNode(d){const P=this._nodes;P[P.length-1]=d}}e.CodeGen=q;function U(p,d){for(const P in d)p[P]=(p[P]||0)+(d[P]||0);return p}function L(p,d){return d instanceof t._CodeOrName?U(p,d.names):p}function B(p,d,P){if(p instanceof t.Name)return I(p);if(!T(p))return p;return new t._Code(p._items.reduce((F,z)=>(z instanceof t.Name&&(z=I(z)),z instanceof t._Code?F.push(...z._items):F.push(z),F),[]));function I(F){const z=P[F.str];return z===void 0||d[F.str]!==1?F:(delete d[F.str],z)}function T(F){return F instanceof t._Code&&F._items.some(z=>z instanceof t.Name&&d[z.str]===1&&P[z.str]!==void 0)}}function J(p,d){for(const P in d)p[P]=(p[P]||0)-(d[P]||0)}function Y(p){return typeof p=="boolean"||typeof p=="number"||p===null?!p:(0,t._)`!${j(p)}`}e.not=Y;const Q=w(e.operators.AND);function X(...p){return p.reduce(Q)}e.and=X;const re=w(e.operators.OR);function A(...p){return p.reduce(re)}e.or=A;function w(p){return(d,P)=>d===t.nil?P:P===t.nil?d:(0,t._)`${j(d)} ${p} ${j(P)}`}function j(p){return p instanceof t.Name?p:(0,t._)`(${p})`}})(ic)),ic}var Ee={},Sf;function Me(){if(Sf)return Ee;Sf=1,Object.defineProperty(Ee,"__esModule",{value:!0}),Ee.checkStrictMode=Ee.getErrorPath=Ee.Type=Ee.useFunc=Ee.setEvaluated=Ee.evaluatedPropsToName=Ee.mergeEvaluated=Ee.eachItem=Ee.unescapeJsonPointer=Ee.escapeJsonPointer=Ee.escapeFragment=Ee.unescapeFragment=Ee.schemaRefOrVal=Ee.schemaHasRulesButRef=Ee.schemaHasRules=Ee.checkUnknownRules=Ee.alwaysValidSchema=Ee.toHash=void 0;const e=Oe(),t=za();function r(h){const b={};for(const O of h)b[O]=!0;return b}Ee.toHash=r;function n(h,b){return typeof b=="boolean"?b:Object.keys(b).length===0?!0:(s(h,b),!i(b,h.self.RULES.all))}Ee.alwaysValidSchema=n;function s(h,b=h.schema){const{opts:O,self:k}=h;if(!O.strictSchema||typeof b=="boolean")return;const $=k.RULES.keywords;for(const M in b)$[M]||x(h,`unknown keyword: "${M}"`)}Ee.checkUnknownRules=s;function i(h,b){if(typeof h=="boolean")return!h;for(const O in h)if(b[O])return!0;return!1}Ee.schemaHasRules=i;function a(h,b){if(typeof h=="boolean")return!h;for(const O in h)if(O!=="$ref"&&b.all[O])return!0;return!1}Ee.schemaHasRulesButRef=a;function o({topSchemaRef:h,schemaPath:b},O,k,$){if(!$){if(typeof O=="number"||typeof O=="boolean")return O;if(typeof O=="string")return(0,e._)`${O}`}return(0,e._)`${h}${b}${(0,e.getProperty)(k)}`}Ee.schemaRefOrVal=o;function c(h){return m(decodeURIComponent(h))}Ee.unescapeFragment=c;function l(h){return encodeURIComponent(u(h))}Ee.escapeFragment=l;function u(h){return typeof h=="number"?`${h}`:h.replace(/~/g,"~0").replace(/\//g,"~1")}Ee.escapeJsonPointer=u;function m(h){return h.replace(/~1/g,"/").replace(/~0/g,"~")}Ee.unescapeJsonPointer=m;function _(h,b){if(Array.isArray(h))for(const O of h)b(O);else b(h)}Ee.eachItem=_;function v({mergeNames:h,mergeToName:b,mergeValues:O,resultToName:k}){return($,M,q,U)=>{const L=q===void 0?M:q instanceof e.Name?(M instanceof e.Name?h($,M,q):b($,M,q),q):M instanceof e.Name?(b($,q,M),M):O(M,q);return U===e.Name&&!(L instanceof e.Name)?k($,L):L}}Ee.mergeEvaluated={props:v({mergeNames:(h,b,O)=>h.if((0,e._)`${O} !== true && ${b} !== undefined`,()=>{h.if((0,e._)`${b} === true`,()=>h.assign(O,!0),()=>h.assign(O,(0,e._)`${O} || {}`).code((0,e._)`Object.assign(${O}, ${b})`))}),mergeToName:(h,b,O)=>h.if((0,e._)`${O} !== true`,()=>{b===!0?h.assign(O,!0):(h.assign(O,(0,e._)`${O} || {}`),E(h,O,b))}),mergeValues:(h,b)=>h===!0?!0:{...h,...b},resultToName:S}),items:v({mergeNames:(h,b,O)=>h.if((0,e._)`${O} !== true && ${b} !== undefined`,()=>h.assign(O,(0,e._)`${b} === true ? true : ${O} > ${b} ? ${O} : ${b}`)),mergeToName:(h,b,O)=>h.if((0,e._)`${O} !== true`,()=>h.assign(O,b===!0?!0:(0,e._)`${O} > ${b} ? ${O} : ${b}`)),mergeValues:(h,b)=>h===!0?!0:Math.max(h,b),resultToName:(h,b)=>h.var("items",b)})};function S(h,b){if(b===!0)return h.var("props",!0);const O=h.var("props",(0,e._)`{}`);return b!==void 0&&E(h,O,b),O}Ee.evaluatedPropsToName=S;function E(h,b,O){Object.keys(O).forEach(k=>h.assign((0,e._)`${b}${(0,e.getProperty)(k)}`,!0))}Ee.setEvaluated=E;const g={};function y(h,b){return h.scopeValue("func",{ref:b,code:g[b.code]||(g[b.code]=new t._Code(b.code))})}Ee.useFunc=y;var f;(function(h){h[h.Num=0]="Num",h[h.Str=1]="Str"})(f||(Ee.Type=f={}));function C(h,b,O){if(h instanceof e.Name){const k=b===f.Num;return O?k?(0,e._)`"[" + ${h} + "]"`:(0,e._)`"['" + ${h} + "']"`:k?(0,e._)`"/" + ${h}`:(0,e._)`"/" + ${h}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return O?(0,e.getProperty)(h).toString():"/"+u(h)}Ee.getErrorPath=C;function x(h,b,O=h.opts.strictSchema){if(O){if(b=`strict mode: ${b}`,O===!0)throw new Error(b);h.self.logger.warn(b)}}return Ee.checkStrictMode=x,Ee}var Ds={},wf;function nn(){if(wf)return Ds;wf=1,Object.defineProperty(Ds,"__esModule",{value:!0});const e=Oe(),t={data:new e.Name("data"),valCxt:new e.Name("valCxt"),instancePath:new e.Name("instancePath"),parentData:new e.Name("parentData"),parentDataProperty:new e.Name("parentDataProperty"),rootData:new e.Name("rootData"),dynamicAnchors:new e.Name("dynamicAnchors"),vErrors:new e.Name("vErrors"),errors:new e.Name("errors"),this:new e.Name("this"),self:new e.Name("self"),scope:new e.Name("scope"),json:new e.Name("json"),jsonPos:new e.Name("jsonPos"),jsonLen:new e.Name("jsonLen"),jsonPart:new e.Name("jsonPart")};return Ds.default=t,Ds}var Cf;function io(){return Cf||(Cf=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.extendErrors=e.resetErrorsCount=e.reportExtraError=e.reportError=e.keyword$DataError=e.keywordError=void 0;const t=Oe(),r=Me(),n=nn();e.keywordError={message:({keyword:g})=>(0,t.str)`must pass "${g}" keyword validation`},e.keyword$DataError={message:({keyword:g,schemaType:y})=>y?(0,t.str)`"${g}" keyword must be ${y} ($data)`:(0,t.str)`"${g}" keyword is invalid ($data)`};function s(g,y=e.keywordError,f,C){const{it:x}=g,{gen:h,compositeRule:b,allErrors:O}=x,k=m(g,y,f);C??(b||O)?c(h,k):l(x,(0,t._)`[${k}]`)}e.reportError=s;function i(g,y=e.keywordError,f){const{it:C}=g,{gen:x,compositeRule:h,allErrors:b}=C,O=m(g,y,f);c(x,O),h||b||l(C,n.default.vErrors)}e.reportExtraError=i;function a(g,y){g.assign(n.default.errors,y),g.if((0,t._)`${n.default.vErrors} !== null`,()=>g.if(y,()=>g.assign((0,t._)`${n.default.vErrors}.length`,y),()=>g.assign(n.default.vErrors,null)))}e.resetErrorsCount=a;function o({gen:g,keyword:y,schemaValue:f,data:C,errsCount:x,it:h}){if(x===void 0)throw new Error("ajv implementation error");const b=g.name("err");g.forRange("i",x,n.default.errors,O=>{g.const(b,(0,t._)`${n.default.vErrors}[${O}]`),g.if((0,t._)`${b}.instancePath === undefined`,()=>g.assign((0,t._)`${b}.instancePath`,(0,t.strConcat)(n.default.instancePath,h.errorPath))),g.assign((0,t._)`${b}.schemaPath`,(0,t.str)`${h.errSchemaPath}/${y}`),h.opts.verbose&&(g.assign((0,t._)`${b}.schema`,f),g.assign((0,t._)`${b}.data`,C))})}e.extendErrors=o;function c(g,y){const f=g.const("err",y);g.if((0,t._)`${n.default.vErrors} === null`,()=>g.assign(n.default.vErrors,(0,t._)`[${f}]`),(0,t._)`${n.default.vErrors}.push(${f})`),g.code((0,t._)`${n.default.errors}++`)}function l(g,y){const{gen:f,validateName:C,schemaEnv:x}=g;x.$async?f.throw((0,t._)`new ${g.ValidationError}(${y})`):(f.assign((0,t._)`${C}.errors`,y),f.return(!1))}const u={keyword:new t.Name("keyword"),schemaPath:new t.Name("schemaPath"),params:new t.Name("params"),propertyName:new t.Name("propertyName"),message:new t.Name("message"),schema:new t.Name("schema"),parentSchema:new t.Name("parentSchema")};function m(g,y,f){const{createErrors:C}=g.it;return C===!1?(0,t._)`{}`:_(g,y,f)}function _(g,y,f={}){const{gen:C,it:x}=g,h=[v(x,f),S(g,f)];return E(g,y,h),C.object(...h)}function v({errorPath:g},{instancePath:y}){const f=y?(0,t.str)`${g}${(0,r.getErrorPath)(y,r.Type.Str)}`:g;return[n.default.instancePath,(0,t.strConcat)(n.default.instancePath,f)]}function S({keyword:g,it:{errSchemaPath:y}},{schemaPath:f,parentSchema:C}){let x=C?y:(0,t.str)`${y}/${g}`;return f&&(x=(0,t.str)`${x}${(0,r.getErrorPath)(f,r.Type.Str)}`),[u.schemaPath,x]}function E(g,{params:y,message:f},C){const{keyword:x,data:h,schemaValue:b,it:O}=g,{opts:k,propertyName:$,topSchemaRef:M,schemaPath:q}=O;C.push([u.keyword,x],[u.params,typeof y=="function"?y(g):y||(0,t._)`{}`]),k.messages&&C.push([u.message,typeof f=="function"?f(g):f]),k.verbose&&C.push([u.schema,b],[u.parentSchema,(0,t._)`${M}${q}`],[n.default.data,h]),$&&C.push([u.propertyName,$])}})(nc)),nc}var Ef;function y1(){if(Ef)return yn;Ef=1,Object.defineProperty(yn,"__esModule",{value:!0}),yn.boolOrEmptySchema=yn.topBoolOrEmptySchema=void 0;const e=io(),t=Oe(),r=nn(),n={message:"boolean schema is false"};function s(o){const{gen:c,schema:l,validateName:u}=o;l===!1?a(o,!1):typeof l=="object"&&l.$async===!0?c.return(r.default.data):(c.assign((0,t._)`${u}.errors`,null),c.return(!0))}yn.topBoolOrEmptySchema=s;function i(o,c){const{gen:l,schema:u}=o;u===!1?(l.var(c,!1),a(o)):l.var(c,!0)}yn.boolOrEmptySchema=i;function a(o,c){const{gen:l,data:u}=o,m={gen:l,keyword:"false schema",data:u,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:o};(0,e.reportError)(m,n,void 0,c)}return yn}var gt={},gn={},Af;function ep(){if(Af)return gn;Af=1,Object.defineProperty(gn,"__esModule",{value:!0}),gn.getRules=gn.isJSONType=void 0;const e=["string","number","integer","boolean","null","object","array"],t=new Set(e);function r(s){return typeof s=="string"&&t.has(s)}gn.isJSONType=r;function n(){const s={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...s,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},s.number,s.string,s.array,s.object],post:{rules:[]},all:{},keywords:{}}}return gn.getRules=n,gn}var Ar={},Pf;function tp(){if(Pf)return Ar;Pf=1,Object.defineProperty(Ar,"__esModule",{value:!0}),Ar.shouldUseRule=Ar.shouldUseGroup=Ar.schemaHasRulesForType=void 0;function e({schema:n,self:s},i){const a=s.RULES.types[i];return a&&a!==!0&&t(n,a)}Ar.schemaHasRulesForType=e;function t(n,s){return s.rules.some(i=>r(n,i))}Ar.shouldUseGroup=t;function r(n,s){var i;return n[s.keyword]!==void 0||((i=s.definition.implements)===null||i===void 0?void 0:i.some(a=>n[a]!==void 0))}return Ar.shouldUseRule=r,Ar}var xf;function Ba(){if(xf)return gt;xf=1,Object.defineProperty(gt,"__esModule",{value:!0}),gt.reportTypeError=gt.checkDataTypes=gt.checkDataType=gt.coerceAndCheckDataType=gt.getJSONTypes=gt.getSchemaTypes=gt.DataType=void 0;const e=ep(),t=tp(),r=io(),n=Oe(),s=Me();var i;(function(f){f[f.Correct=0]="Correct",f[f.Wrong=1]="Wrong"})(i||(gt.DataType=i={}));function a(f){const C=o(f.type);if(C.includes("null")){if(f.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!C.length&&f.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');f.nullable===!0&&C.push("null")}return C}gt.getSchemaTypes=a;function o(f){const C=Array.isArray(f)?f:f?[f]:[];if(C.every(e.isJSONType))return C;throw new Error("type must be JSONType or JSONType[]: "+C.join(","))}gt.getJSONTypes=o;function c(f,C){const{gen:x,data:h,opts:b}=f,O=u(C,b.coerceTypes),k=C.length>0&&!(O.length===0&&C.length===1&&(0,t.schemaHasRulesForType)(f,C[0]));if(k){const $=S(C,h,b.strictNumbers,i.Wrong);x.if($,()=>{O.length?m(f,C,O):g(f)})}return k}gt.coerceAndCheckDataType=c;const l=new Set(["string","number","integer","boolean","null"]);function u(f,C){return C?f.filter(x=>l.has(x)||C==="array"&&x==="array"):[]}function m(f,C,x){const{gen:h,data:b,opts:O}=f,k=h.let("dataType",(0,n._)`typeof ${b}`),$=h.let("coerced",(0,n._)`undefined`);O.coerceTypes==="array"&&h.if((0,n._)`${k} == 'object' && Array.isArray(${b}) && ${b}.length == 1`,()=>h.assign(b,(0,n._)`${b}[0]`).assign(k,(0,n._)`typeof ${b}`).if(S(C,b,O.strictNumbers),()=>h.assign($,b))),h.if((0,n._)`${$} !== undefined`);for(const q of x)(l.has(q)||q==="array"&&O.coerceTypes==="array")&&M(q);h.else(),g(f),h.endIf(),h.if((0,n._)`${$} !== undefined`,()=>{h.assign(b,$),_(f,$)});function M(q){switch(q){case"string":h.elseIf((0,n._)`${k} == "number" || ${k} == "boolean"`).assign($,(0,n._)`"" + ${b}`).elseIf((0,n._)`${b} === null`).assign($,(0,n._)`""`);return;case"number":h.elseIf((0,n._)`${k} == "boolean" || ${b} === null || (${k} == "string" && ${b} && ${b} == +${b})`).assign($,(0,n._)`+${b}`);return;case"integer":h.elseIf((0,n._)`${k} === "boolean" || ${b} === null || (${k} === "string" && ${b} && ${b} == +${b} && !(${b} % 1))`).assign($,(0,n._)`+${b}`);return;case"boolean":h.elseIf((0,n._)`${b} === "false" || ${b} === 0 || ${b} === null`).assign($,!1).elseIf((0,n._)`${b} === "true" || ${b} === 1`).assign($,!0);return;case"null":h.elseIf((0,n._)`${b} === "" || ${b} === 0 || ${b} === false`),h.assign($,null);return;case"array":h.elseIf((0,n._)`${k} === "string" || ${k} === "number" - || ${k} === "boolean" || ${b} === null`).assign($,(0,n._)`[${b}]`)}}}function _({gen:f,parentData:C,parentDataProperty:x},h){f.if((0,n._)`${C} !== undefined`,()=>f.assign((0,n._)`${C}[${x}]`,h))}function v(f,C,x,h=s.Correct){const b=h===s.Correct?n.operators.EQ:n.operators.NEQ;let O;switch(f){case"null":return(0,n._)`${C} ${b} null`;case"array":O=(0,n._)`Array.isArray(${C})`;break;case"object":O=(0,n._)`${C} && typeof ${C} == "object" && !Array.isArray(${C})`;break;case"integer":O=k((0,n._)`!(${C} % 1) && !isNaN(${C})`);break;case"number":O=k();break;default:return(0,n._)`typeof ${C} ${b} ${f}`}return h===s.Correct?O:(0,n.not)(O);function k($=n.nil){return(0,n.and)((0,n._)`typeof ${C} == "number"`,$,x?(0,n._)`isFinite(${C})`:n.nil)}}gt.checkDataType=v;function S(f,C,x,h){if(f.length===1)return v(f[0],C,x,h);let b;const O=(0,i.toHash)(f);if(O.array&&O.object){const k=(0,n._)`typeof ${C} != "object"`;b=O.null?k:(0,n._)`!${C} || ${k}`,delete O.null,delete O.array,delete O.object}else b=n.nil;O.number&&delete O.integer;for(const k in O)b=(0,n.and)(b,v(k,C,x,h));return b}gt.checkDataTypes=S;const E={message:({schema:f})=>`must be ${f}`,params:({schema:f,schemaValue:C})=>typeof f=="string"?(0,n._)`{type: ${f}}`:(0,n._)`{type: ${C}}`};function g(f){const C=y(f);(0,r.reportError)(C,E)}gt.reportTypeError=g;function y(f){const{gen:C,data:x,schema:h}=f,b=(0,i.schemaRefOrVal)(f,h,"type");return{gen:C,keyword:"type",data:x,schema:h.type,schemaCode:b,schemaValue:b,parentSchema:h,params:{},it:f}}return gt}var Si={},Pf;function mw(){if(Pf)return Si;Pf=1,Object.defineProperty(Si,"__esModule",{value:!0}),Si.assignDefaults=void 0;const e=Oe(),t=Me();function r(i,s){const{properties:a,items:o}=i.schema;if(s==="object"&&a)for(const c in a)n(i,c,a[c].default);else s==="array"&&Array.isArray(o)&&o.forEach((c,l)=>n(i,l,c.default))}Si.assignDefaults=r;function n(i,s,a){const{gen:o,compositeRule:c,data:l,opts:u}=i;if(a===void 0)return;const m=(0,e._)`${l}${(0,e.getProperty)(s)}`;if(c){(0,t.checkStrictMode)(i,`default is ignored for: ${m}`);return}let _=(0,e._)`${m} === undefined`;u.useDefaults==="empty"&&(_=(0,e._)`${_} || ${m} === null || ${m} === ""`),o.if(_,(0,e._)`${m} = ${(0,e.stringify)(a)}`)}return Si}var Zt={},We={},xf;function ar(){if(xf)return We;xf=1,Object.defineProperty(We,"__esModule",{value:!0}),We.validateUnion=We.validateArray=We.usePattern=We.callValidateCode=We.schemaProperties=We.allSchemaProperties=We.noPropertyInData=We.propertyInData=We.isOwnProperty=We.hasPropFunc=We.reportMissingProp=We.checkMissingProp=We.checkReportMissingProp=void 0;const e=Oe(),t=Me(),r=nn(),n=Me();function i(f,C){const{gen:x,data:h,it:b}=f;x.if(u(x,h,C,b.opts.ownProperties),()=>{f.setParams({missingProperty:(0,e._)`${C}`},!0),f.error()})}We.checkReportMissingProp=i;function s({gen:f,data:C,it:{opts:x}},h,b){return(0,e.or)(...h.map(O=>(0,e.and)(u(f,C,O,x.ownProperties),(0,e._)`${b} = ${O}`)))}We.checkMissingProp=s;function a(f,C){f.setParams({missingProperty:C},!0),f.error()}We.reportMissingProp=a;function o(f){return f.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,e._)`Object.prototype.hasOwnProperty`})}We.hasPropFunc=o;function c(f,C,x){return(0,e._)`${o(f)}.call(${C}, ${x})`}We.isOwnProperty=c;function l(f,C,x,h){const b=(0,e._)`${C}${(0,e.getProperty)(x)} !== undefined`;return h?(0,e._)`${b} && ${c(f,C,x)}`:b}We.propertyInData=l;function u(f,C,x,h){const b=(0,e._)`${C}${(0,e.getProperty)(x)} === undefined`;return h?(0,e.or)(b,(0,e.not)(c(f,C,x))):b}We.noPropertyInData=u;function m(f){return f?Object.keys(f).filter(C=>C!=="__proto__"):[]}We.allSchemaProperties=m;function _(f,C){return m(C).filter(x=>!(0,t.alwaysValidSchema)(f,C[x]))}We.schemaProperties=_;function v({schemaCode:f,data:C,it:{gen:x,topSchemaRef:h,schemaPath:b,errorPath:O},it:k},$,M,q){const U=q?(0,e._)`${f}, ${C}, ${h}${b}`:C,L=[[r.default.instancePath,(0,e.strConcat)(r.default.instancePath,O)],[r.default.parentData,k.parentData],[r.default.parentDataProperty,k.parentDataProperty],[r.default.rootData,r.default.rootData]];k.opts.dynamicRef&&L.push([r.default.dynamicAnchors,r.default.dynamicAnchors]);const B=(0,e._)`${U}, ${x.object(...L)}`;return M!==e.nil?(0,e._)`${$}.call(${M}, ${B})`:(0,e._)`${$}(${B})`}We.callValidateCode=v;const S=(0,e._)`new RegExp`;function E({gen:f,it:{opts:C}},x){const h=C.unicodeRegExp?"u":"",{regExp:b}=C.code,O=b(x,h);return f.scopeValue("pattern",{key:O.toString(),ref:O,code:(0,e._)`${b.code==="new RegExp"?S:(0,n.useFunc)(f,b)}(${x}, ${h})`})}We.usePattern=E;function g(f){const{gen:C,data:x,keyword:h,it:b}=f,O=C.name("valid");if(b.allErrors){const $=C.let("valid",!0);return k(()=>C.assign($,!1)),$}return C.var(O,!0),k(()=>C.break()),O;function k($){const M=C.const("len",(0,e._)`${x}.length`);C.forRange("i",0,M,q=>{f.subschema({keyword:h,dataProp:q,dataPropType:t.Type.Num},O),C.if((0,e.not)(O),$)})}}We.validateArray=g;function y(f){const{gen:C,schema:x,keyword:h,it:b}=f;if(!Array.isArray(x))throw new Error("ajv implementation error");if(x.some(M=>(0,t.alwaysValidSchema)(b,M))&&!b.opts.unevaluated)return;const k=C.let("valid",!1),$=C.name("_valid");C.block(()=>x.forEach((M,q)=>{const U=f.subschema({keyword:h,schemaProp:q,compositeRule:!0},$);C.assign(k,(0,e._)`${k} || ${$}`),f.mergeValidEvaluated(U,$)||C.if((0,e.not)(k))})),f.result(k,()=>f.reset(),()=>f.error(!0))}return We.validateUnion=y,We}var Of;function pw(){if(Of)return Zt;Of=1,Object.defineProperty(Zt,"__esModule",{value:!0}),Zt.validateKeywordUsage=Zt.validSchemaType=Zt.funcKeywordCode=Zt.macroKeywordCode=void 0;const e=Oe(),t=nn(),r=ar(),n=no();function i(_,v){const{gen:S,keyword:E,schema:g,parentSchema:y,it:f}=_,C=v.macro.call(f.self,g,y,f),x=l(S,E,C);f.opts.validateSchema!==!1&&f.self.validateSchema(C,!0);const h=S.name("valid");_.subschema({schema:C,schemaPath:e.nil,errSchemaPath:`${f.errSchemaPath}/${E}`,topSchemaRef:x,compositeRule:!0},h),_.pass(h,()=>_.error(!0))}Zt.macroKeywordCode=i;function s(_,v){var S;const{gen:E,keyword:g,schema:y,parentSchema:f,$data:C,it:x}=_;c(x,v);const h=!C&&v.compile?v.compile.call(x.self,y,f,x):v.validate,b=l(E,g,h),O=E.let("valid");_.block$data(O,k),_.ok((S=v.valid)!==null&&S!==void 0?S:O);function k(){if(v.errors===!1)q(),v.modifying&&a(_),U(()=>_.error());else{const L=v.async?$():M();v.modifying&&a(_),U(()=>o(_,L))}}function $(){const L=E.let("ruleErrs",null);return E.try(()=>q((0,e._)`await `),B=>E.assign(O,!1).if((0,e._)`${B} instanceof ${x.ValidationError}`,()=>E.assign(L,(0,e._)`${B}.errors`),()=>E.throw(B))),L}function M(){const L=(0,e._)`${b}.errors`;return E.assign(L,null),q(e.nil),L}function q(L=v.async?(0,e._)`await `:e.nil){const B=x.opts.passContext?t.default.this:t.default.self,J=!("compile"in v&&!C||v.schema===!1);E.assign(O,(0,e._)`${L}${(0,r.callValidateCode)(_,b,B,J)}`,v.modifying)}function U(L){var B;E.if((0,e.not)((B=v.valid)!==null&&B!==void 0?B:O),L)}}Zt.funcKeywordCode=s;function a(_){const{gen:v,data:S,it:E}=_;v.if(E.parentData,()=>v.assign(S,(0,e._)`${E.parentData}[${E.parentDataProperty}]`))}function o(_,v){const{gen:S}=_;S.if((0,e._)`Array.isArray(${v})`,()=>{S.assign(t.default.vErrors,(0,e._)`${t.default.vErrors} === null ? ${v} : ${t.default.vErrors}.concat(${v})`).assign(t.default.errors,(0,e._)`${t.default.vErrors}.length`),(0,n.extendErrors)(_)},()=>_.error())}function c({schemaEnv:_},v){if(v.async&&!_.$async)throw new Error("async keyword in sync schema")}function l(_,v,S){if(S===void 0)throw new Error(`keyword "${v}" failed to compile`);return _.scopeValue("keyword",typeof S=="function"?{ref:S}:{ref:S,code:(0,e.stringify)(S)})}function u(_,v,S=!1){return!v.length||v.some(E=>E==="array"?Array.isArray(_):E==="object"?_&&typeof _=="object"&&!Array.isArray(_):typeof _==E||S&&typeof _>"u")}Zt.validSchemaType=u;function m({schema:_,opts:v,self:S,errSchemaPath:E},g,y){if(Array.isArray(g.keyword)?!g.keyword.includes(y):g.keyword!==y)throw new Error("ajv implementation error");const f=g.dependencies;if(f?.some(C=>!Object.prototype.hasOwnProperty.call(_,C)))throw new Error(`parent schema must have dependencies of ${y}: ${f.join(",")}`);if(g.validateSchema&&!g.validateSchema(_[y])){const x=`keyword "${y}" value is invalid at path "${E}": `+S.errorsText(g.validateSchema.errors);if(v.validateSchema==="log")S.logger.error(x);else throw new Error(x)}}return Zt.validateKeywordUsage=m,Zt}var Pr={},jf;function yw(){if(jf)return Pr;jf=1,Object.defineProperty(Pr,"__esModule",{value:!0}),Pr.extendSubschemaMode=Pr.extendSubschemaData=Pr.getSubschema=void 0;const e=Oe(),t=Me();function r(s,{keyword:a,schemaProp:o,schema:c,schemaPath:l,errSchemaPath:u,topSchemaRef:m}){if(a!==void 0&&c!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(a!==void 0){const _=s.schema[a];return o===void 0?{schema:_,schemaPath:(0,e._)`${s.schemaPath}${(0,e.getProperty)(a)}`,errSchemaPath:`${s.errSchemaPath}/${a}`}:{schema:_[o],schemaPath:(0,e._)`${s.schemaPath}${(0,e.getProperty)(a)}${(0,e.getProperty)(o)}`,errSchemaPath:`${s.errSchemaPath}/${a}/${(0,t.escapeFragment)(o)}`}}if(c!==void 0){if(l===void 0||u===void 0||m===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:c,schemaPath:l,topSchemaRef:m,errSchemaPath:u}}throw new Error('either "keyword" or "schema" must be passed')}Pr.getSubschema=r;function n(s,a,{dataProp:o,dataPropType:c,data:l,dataTypes:u,propertyName:m}){if(l!==void 0&&o!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');const{gen:_}=a;if(o!==void 0){const{errorPath:S,dataPathArr:E,opts:g}=a,y=_.let("data",(0,e._)`${a.data}${(0,e.getProperty)(o)}`,!0);v(y),s.errorPath=(0,e.str)`${S}${(0,t.getErrorPath)(o,c,g.jsPropertySyntax)}`,s.parentDataProperty=(0,e._)`${o}`,s.dataPathArr=[...E,s.parentDataProperty]}if(l!==void 0){const S=l instanceof e.Name?l:_.let("data",l,!0);v(S),m!==void 0&&(s.propertyName=m)}u&&(s.dataTypes=u);function v(S){s.data=S,s.dataLevel=a.dataLevel+1,s.dataTypes=[],a.definedProperties=new Set,s.parentData=a.data,s.dataNames=[...a.dataNames,S]}}Pr.extendSubschemaData=n;function i(s,{jtdDiscriminator:a,jtdMetadata:o,compositeRule:c,createErrors:l,allErrors:u}){c!==void 0&&(s.compositeRule=c),l!==void 0&&(s.createErrors=l),u!==void 0&&(s.allErrors=u),s.jtdDiscriminator=a,s.jtdMetadata=o}return Pr.extendSubschemaMode=i,Pr}var Ot={},ac={exports:{}},kf;function gw(){if(kf)return ac.exports;kf=1;var e=ac.exports=function(n,i,s){typeof i=="function"&&(s=i,i={}),s=i.cb||s;var a=typeof s=="function"?s:s.pre||function(){},o=s.post||function(){};t(i,a,o,n,"",n)};e.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},e.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},e.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},e.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function t(n,i,s,a,o,c,l,u,m,_){if(a&&typeof a=="object"&&!Array.isArray(a)){i(a,o,c,l,u,m,_);for(var v in a){var S=a[v];if(Array.isArray(S)){if(v in e.arrayKeywords)for(var E=0;Eg+=o(f)),g===1/0))return 1/0}return g}function c(E,g="",y){y!==!1&&(g=m(g));const f=E.parse(g);return l(E,f)}Ot.getFullPath=c;function l(E,g){return E.serialize(g).split("#")[0]+"#"}Ot._getFullPath=l;const u=/#\/?$/;function m(E){return E?E.replace(u,""):""}Ot.normalizeId=m;function _(E,g,y){return y=m(y),E.resolve(g,y)}Ot.resolveUrl=_;const v=/^[a-z_][-a-z0-9._]*$/i;function S(E,g){if(typeof E=="boolean")return{};const{schemaId:y,uriResolver:f}=this.opts,C=m(E[y]||g),x={"":C},h=c(f,C,!1),b={},O=new Set;return r(E,{allKeys:!0},(M,q,U,L)=>{if(L===void 0)return;const B=h+q;let J=x[L];typeof M[y]=="string"&&(J=Y.call(this,M[y])),Q.call(this,M.$anchor),Q.call(this,M.$dynamicAnchor),x[q]=J;function Y(X){const re=this.opts.uriResolver.resolve;if(X=m(J?re(J,X):X),O.has(X))throw $(X);O.add(X);let A=this.refs[X];return typeof A=="string"&&(A=this.refs[A]),typeof A=="object"?k(M,A.schema,X):X!==m(B)&&(X[0]==="#"?(k(M,b[X],X),b[X]=M):this.refs[X]=B),X}function Q(X){if(typeof X=="string"){if(!v.test(X))throw new Error(`invalid anchor "${X}"`);Y.call(this,`#${X}`)}}}),b;function k(M,q,U){if(q!==void 0&&!t(M,q))throw $(U)}function $(M){return new Error(`reference "${M}" resolves to more than one schema`)}}return Ot.getSchemaRefs=S,Ot}var Nf;function so(){if(Nf)return Er;Nf=1,Object.defineProperty(Er,"__esModule",{value:!0}),Er.getData=Er.KeywordCxt=Er.validateFunctionCode=void 0;const e=hw(),t=za(),r=Zm(),n=za(),i=mw(),s=pw(),a=yw(),o=Oe(),c=nn(),l=io(),u=Me(),m=no();function _(N){if(h(N)&&(O(N),x(N))){g(N);return}v(N,()=>(0,e.topBoolOrEmptySchema)(N))}Er.validateFunctionCode=_;function v({gen:N,validateName:D,schema:V,schemaEnv:K,opts:G},W){G.code.es5?N.func(D,(0,o._)`${c.default.data}, ${c.default.valCxt}`,K.$async,()=>{N.code((0,o._)`"use strict"; ${f(V,G)}`),E(N,G),N.code(W)}):N.func(D,(0,o._)`${c.default.data}, ${S(G)}`,K.$async,()=>N.code(f(V,G)).code(W))}function S(N){return(0,o._)`{${c.default.instancePath}="", ${c.default.parentData}, ${c.default.parentDataProperty}, ${c.default.rootData}=${c.default.data}${N.dynamicRef?(0,o._)`, ${c.default.dynamicAnchors}={}`:o.nil}}={}`}function E(N,D){N.if(c.default.valCxt,()=>{N.var(c.default.instancePath,(0,o._)`${c.default.valCxt}.${c.default.instancePath}`),N.var(c.default.parentData,(0,o._)`${c.default.valCxt}.${c.default.parentData}`),N.var(c.default.parentDataProperty,(0,o._)`${c.default.valCxt}.${c.default.parentDataProperty}`),N.var(c.default.rootData,(0,o._)`${c.default.valCxt}.${c.default.rootData}`),D.dynamicRef&&N.var(c.default.dynamicAnchors,(0,o._)`${c.default.valCxt}.${c.default.dynamicAnchors}`)},()=>{N.var(c.default.instancePath,(0,o._)`""`),N.var(c.default.parentData,(0,o._)`undefined`),N.var(c.default.parentDataProperty,(0,o._)`undefined`),N.var(c.default.rootData,c.default.data),D.dynamicRef&&N.var(c.default.dynamicAnchors,(0,o._)`{}`)})}function g(N){const{schema:D,opts:V,gen:K}=N;v(N,()=>{V.$comment&&D.$comment&&L(N),M(N),K.let(c.default.vErrors,null),K.let(c.default.errors,0),V.unevaluated&&y(N),k(N),B(N)})}function y(N){const{gen:D,validateName:V}=N;N.evaluated=D.const("evaluated",(0,o._)`${V}.evaluated`),D.if((0,o._)`${N.evaluated}.dynamicProps`,()=>D.assign((0,o._)`${N.evaluated}.props`,(0,o._)`undefined`)),D.if((0,o._)`${N.evaluated}.dynamicItems`,()=>D.assign((0,o._)`${N.evaluated}.items`,(0,o._)`undefined`))}function f(N,D){const V=typeof N=="object"&&N[D.schemaId];return V&&(D.code.source||D.code.process)?(0,o._)`/*# sourceURL=${V} */`:o.nil}function C(N,D){if(h(N)&&(O(N),x(N))){b(N,D);return}(0,e.boolOrEmptySchema)(N,D)}function x({schema:N,self:D}){if(typeof N=="boolean")return!N;for(const V in N)if(D.RULES.all[V])return!0;return!1}function h(N){return typeof N.schema!="boolean"}function b(N,D){const{schema:V,gen:K,opts:G}=N;G.$comment&&V.$comment&&L(N),q(N),U(N);const W=K.const("_errs",c.default.errors);k(N,W),K.var(D,(0,o._)`${W} === ${c.default.errors}`)}function O(N){(0,u.checkUnknownRules)(N),$(N)}function k(N,D){if(N.opts.jtd)return Y(N,[],!1,D);const V=(0,t.getSchemaTypes)(N.schema),K=(0,t.coerceAndCheckDataType)(N,V);Y(N,V,!K,D)}function $(N){const{schema:D,errSchemaPath:V,opts:K,self:G}=N;D.$ref&&K.ignoreKeywordsWithRef&&(0,u.schemaHasRulesButRef)(D,G.RULES)&&G.logger.warn(`$ref: keywords ignored in schema at path "${V}"`)}function M(N){const{schema:D,opts:V}=N;D.default!==void 0&&V.useDefaults&&V.strictSchema&&(0,u.checkStrictMode)(N,"default is ignored in the schema root")}function q(N){const D=N.schema[N.opts.schemaId];D&&(N.baseId=(0,l.resolveUrl)(N.opts.uriResolver,N.baseId,D))}function U(N){if(N.schema.$async&&!N.schemaEnv.$async)throw new Error("async schema in sync schema")}function L({gen:N,schemaEnv:D,schema:V,errSchemaPath:K,opts:G}){const W=V.$comment;if(G.$comment===!0)N.code((0,o._)`${c.default.self}.logger.log(${W})`);else if(typeof G.$comment=="function"){const te=(0,o.str)`${K}/$comment`,ne=N.scopeValue("root",{ref:D.root});N.code((0,o._)`${c.default.self}.opts.$comment(${W}, ${te}, ${ne}.schema)`)}}function B(N){const{gen:D,schemaEnv:V,validateName:K,ValidationError:G,opts:W}=N;V.$async?D.if((0,o._)`${c.default.errors} === 0`,()=>D.return(c.default.data),()=>D.throw((0,o._)`new ${G}(${c.default.vErrors})`)):(D.assign((0,o._)`${K}.errors`,c.default.vErrors),W.unevaluated&&J(N),D.return((0,o._)`${c.default.errors} === 0`))}function J({gen:N,evaluated:D,props:V,items:K}){V instanceof o.Name&&N.assign((0,o._)`${D}.props`,V),K instanceof o.Name&&N.assign((0,o._)`${D}.items`,K)}function Y(N,D,V,K){const{gen:G,schema:W,data:te,allErrors:ne,opts:se,self:ce}=N,{RULES:he}=ce;if(W.$ref&&(se.ignoreKeywordsWithRef||!(0,u.schemaHasRulesButRef)(W,he))){G.block(()=>T(N,"$ref",he.all.$ref.definition));return}se.jtd||X(N,D),G.block(()=>{for(const ge of he.rules)le(ge);le(he.post)});function le(ge){(0,r.shouldUseGroup)(W,ge)&&(ge.type?(G.if((0,n.checkDataType)(ge.type,te,se.strictNumbers)),Q(N,ge),D.length===1&&D[0]===ge.type&&V&&(G.else(),(0,n.reportTypeError)(N)),G.endIf()):Q(N,ge),ne||G.if((0,o._)`${c.default.errors} === ${K||0}`))}}function Q(N,D){const{gen:V,schema:K,opts:{useDefaults:G}}=N;G&&(0,i.assignDefaults)(N,D.type),V.block(()=>{for(const W of D.rules)(0,r.shouldUseRule)(K,W)&&T(N,W.keyword,W.definition,D.type)})}function X(N,D){N.schemaEnv.meta||!N.opts.strictTypes||(re(N,D),N.opts.allowUnionTypes||A(N,D),w(N,N.dataTypes))}function re(N,D){if(D.length){if(!N.dataTypes.length){N.dataTypes=D;return}D.forEach(V=>{p(N.dataTypes,V)||P(N,`type "${V}" not allowed by context "${N.dataTypes.join(",")}"`)}),d(N,D)}}function A(N,D){D.length>1&&!(D.length===2&&D.includes("null"))&&P(N,"use allowUnionTypes to allow union type keyword")}function w(N,D){const V=N.self.RULES.all;for(const K in V){const G=V[K];if(typeof G=="object"&&(0,r.shouldUseRule)(N.schema,G)){const{type:W}=G.definition;W.length&&!W.some(te=>j(D,te))&&P(N,`missing type "${W.join(",")}" for keyword "${K}"`)}}}function j(N,D){return N.includes(D)||D==="number"&&N.includes("integer")}function p(N,D){return N.includes(D)||D==="integer"&&N.includes("number")}function d(N,D){const V=[];for(const K of N.dataTypes)p(D,K)?V.push(K):D.includes("integer")&&K==="number"&&V.push("integer");N.dataTypes=V}function P(N,D){const V=N.schemaEnv.baseId+N.errSchemaPath;D+=` at "${V}" (strictTypes)`,(0,u.checkStrictMode)(N,D,N.opts.strictTypes)}class I{constructor(D,V,K){if((0,s.validateKeywordUsage)(D,V,K),this.gen=D.gen,this.allErrors=D.allErrors,this.keyword=K,this.data=D.data,this.schema=D.schema[K],this.$data=V.$data&&D.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,u.schemaRefOrVal)(D,this.schema,K,this.$data),this.schemaType=V.schemaType,this.parentSchema=D.schema,this.params={},this.it=D,this.def=V,this.$data)this.schemaCode=D.gen.const("vSchema",H(this.$data,D));else if(this.schemaCode=this.schemaValue,!(0,s.validSchemaType)(this.schema,V.schemaType,V.allowUndefined))throw new Error(`${K} value must be ${JSON.stringify(V.schemaType)}`);("code"in V?V.trackErrors:V.errors!==!1)&&(this.errsCount=D.gen.const("_errs",c.default.errors))}result(D,V,K){this.failResult((0,o.not)(D),V,K)}failResult(D,V,K){this.gen.if(D),K?K():this.error(),V?(this.gen.else(),V(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(D,V){this.failResult((0,o.not)(D),void 0,V)}fail(D){if(D===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(D),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(D){if(!this.$data)return this.fail(D);const{schemaCode:V}=this;this.fail((0,o._)`${V} !== undefined && (${(0,o.or)(this.invalid$data(),D)})`)}error(D,V,K){if(V){this.setParams(V),this._error(D,K),this.setParams({});return}this._error(D,K)}_error(D,V){(D?m.reportExtraError:m.reportError)(this,this.def.error,V)}$dataError(){(0,m.reportError)(this,this.def.$dataError||m.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,m.resetErrorsCount)(this.gen,this.errsCount)}ok(D){this.allErrors||this.gen.if(D)}setParams(D,V){V?Object.assign(this.params,D):this.params=D}block$data(D,V,K=o.nil){this.gen.block(()=>{this.check$data(D,K),V()})}check$data(D=o.nil,V=o.nil){if(!this.$data)return;const{gen:K,schemaCode:G,schemaType:W,def:te}=this;K.if((0,o.or)((0,o._)`${G} === undefined`,V)),D!==o.nil&&K.assign(D,!0),(W.length||te.validateSchema)&&(K.elseIf(this.invalid$data()),this.$dataError(),D!==o.nil&&K.assign(D,!1)),K.else()}invalid$data(){const{gen:D,schemaCode:V,schemaType:K,def:G,it:W}=this;return(0,o.or)(te(),ne());function te(){if(K.length){if(!(V instanceof o.Name))throw new Error("ajv implementation error");const se=Array.isArray(K)?K:[K];return(0,o._)`${(0,n.checkDataTypes)(se,V,W.opts.strictNumbers,n.DataType.Wrong)}`}return o.nil}function ne(){if(G.validateSchema){const se=D.scopeValue("validate$data",{ref:G.validateSchema});return(0,o._)`!${se}(${V})`}return o.nil}}subschema(D,V){const K=(0,a.getSubschema)(this.it,D);(0,a.extendSubschemaData)(K,this.it,D),(0,a.extendSubschemaMode)(K,D);const G={...this.it,...K,items:void 0,props:void 0};return C(G,V),G}mergeEvaluated(D,V){const{it:K,gen:G}=this;K.opts.unevaluated&&(K.props!==!0&&D.props!==void 0&&(K.props=u.mergeEvaluated.props(G,D.props,K.props,V)),K.items!==!0&&D.items!==void 0&&(K.items=u.mergeEvaluated.items(G,D.items,K.items,V)))}mergeValidEvaluated(D,V){const{it:K,gen:G}=this;if(K.opts.unevaluated&&(K.props!==!0||K.items!==!0))return G.if(V,()=>this.mergeEvaluated(D,o.Name)),!0}}Er.KeywordCxt=I;function T(N,D,V,K){const G=new I(N,V,D);"code"in V?V.code(G,K):G.$data&&V.validate?(0,s.funcKeywordCode)(G,V):"macro"in V?(0,s.macroKeywordCode)(G,V):(V.compile||V.validate)&&(0,s.funcKeywordCode)(G,V)}const F=/^\/(?:[^~]|~0|~1)*$/,z=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function H(N,{dataLevel:D,dataNames:V,dataPathArr:K}){let G,W;if(N==="")return c.default.rootData;if(N[0]==="/"){if(!F.test(N))throw new Error(`Invalid JSON-pointer: ${N}`);G=N,W=c.default.rootData}else{const ce=z.exec(N);if(!ce)throw new Error(`Invalid JSON-pointer: ${N}`);const he=+ce[1];if(G=ce[2],G==="#"){if(he>=D)throw new Error(se("property/index",he));return K[D-he]}if(he>D)throw new Error(se("data",he));if(W=V[D-he],!G)return W}let te=W;const ne=G.split("/");for(const ce of ne)ce&&(W=(0,o._)`${W}${(0,o.getProperty)((0,u.unescapeJsonPointer)(ce))}`,te=(0,o._)`${te} && ${W}`);return te;function se(ce,he){return`Cannot access ${ce} ${he} levels up, current level is ${D}`}}return Er.getData=H,Er}var Ds={},Rf;function fl(){if(Rf)return Ds;Rf=1,Object.defineProperty(Ds,"__esModule",{value:!0});class e extends Error{constructor(r){super("validation failed"),this.errors=r,this.ajv=this.validation=!0}}return Ds.default=e,Ds}var Ts={},$f;function ao(){if($f)return Ts;$f=1,Object.defineProperty(Ts,"__esModule",{value:!0});const e=io();class t extends Error{constructor(n,i,s,a){super(a||`can't resolve reference ${s} from id ${i}`),this.missingRef=(0,e.resolveUrl)(n,i,s),this.missingSchema=(0,e.normalizeId)((0,e.getFullPath)(n,this.missingRef))}}return Ts.default=t,Ts}var Mt={},Ff;function hl(){if(Ff)return Mt;Ff=1,Object.defineProperty(Mt,"__esModule",{value:!0}),Mt.resolveSchema=Mt.getCompilingSchema=Mt.resolveRef=Mt.compileSchema=Mt.SchemaEnv=void 0;const e=Oe(),t=fl(),r=nn(),n=io(),i=Me(),s=so();class a{constructor(y){var f;this.refs={},this.dynamicAnchors={};let C;typeof y.schema=="object"&&(C=y.schema),this.schema=y.schema,this.schemaId=y.schemaId,this.root=y.root||this,this.baseId=(f=y.baseId)!==null&&f!==void 0?f:(0,n.normalizeId)(C?.[y.schemaId||"$id"]),this.schemaPath=y.schemaPath,this.localRefs=y.localRefs,this.meta=y.meta,this.$async=C?.$async,this.refs={}}}Mt.SchemaEnv=a;function o(g){const y=u.call(this,g);if(y)return y;const f=(0,n.getFullPath)(this.opts.uriResolver,g.root.baseId),{es5:C,lines:x}=this.opts.code,{ownProperties:h}=this.opts,b=new e.CodeGen(this.scope,{es5:C,lines:x,ownProperties:h});let O;g.$async&&(O=b.scopeValue("Error",{ref:t.default,code:(0,e._)`require("ajv/dist/runtime/validation_error").default`}));const k=b.scopeName("validate");g.validateName=k;const $={gen:b,allErrors:this.opts.allErrors,data:r.default.data,parentData:r.default.parentData,parentDataProperty:r.default.parentDataProperty,dataNames:[r.default.data],dataPathArr:[e.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:b.scopeValue("schema",this.opts.code.source===!0?{ref:g.schema,code:(0,e.stringify)(g.schema)}:{ref:g.schema}),validateName:k,ValidationError:O,schema:g.schema,schemaEnv:g,rootId:f,baseId:g.baseId||f,schemaPath:e.nil,errSchemaPath:g.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,e._)`""`,opts:this.opts,self:this};let M;try{this._compilations.add(g),(0,s.validateFunctionCode)($),b.optimize(this.opts.code.optimize);const q=b.toString();M=`${b.scopeRefs(r.default.scope)}return ${q}`,this.opts.code.process&&(M=this.opts.code.process(M,g));const L=new Function(`${r.default.self}`,`${r.default.scope}`,M)(this,this.scope.get());if(this.scope.value(k,{ref:L}),L.errors=null,L.schema=g.schema,L.schemaEnv=g,g.$async&&(L.$async=!0),this.opts.code.source===!0&&(L.source={validateName:k,validateCode:q,scopeValues:b._values}),this.opts.unevaluated){const{props:B,items:J}=$;L.evaluated={props:B instanceof e.Name?void 0:B,items:J instanceof e.Name?void 0:J,dynamicProps:B instanceof e.Name,dynamicItems:J instanceof e.Name},L.source&&(L.source.evaluated=(0,e.stringify)(L.evaluated))}return g.validate=L,g}catch(q){throw delete g.validate,delete g.validateName,M&&this.logger.error("Error compiling schema, function code:",M),q}finally{this._compilations.delete(g)}}Mt.compileSchema=o;function c(g,y,f){var C;f=(0,n.resolveUrl)(this.opts.uriResolver,y,f);const x=g.refs[f];if(x)return x;let h=_.call(this,g,f);if(h===void 0){const b=(C=g.localRefs)===null||C===void 0?void 0:C[f],{schemaId:O}=this.opts;b&&(h=new a({schema:b,schemaId:O,root:g,baseId:y}))}if(h!==void 0)return g.refs[f]=l.call(this,h)}Mt.resolveRef=c;function l(g){return(0,n.inlineRef)(g.schema,this.opts.inlineRefs)?g.schema:g.validate?g:o.call(this,g)}function u(g){for(const y of this._compilations)if(m(y,g))return y}Mt.getCompilingSchema=u;function m(g,y){return g.schema===y.schema&&g.root===y.root&&g.baseId===y.baseId}function _(g,y){let f;for(;typeof(f=this.refs[y])=="string";)y=f;return f||this.schemas[y]||v.call(this,g,y)}function v(g,y){const f=this.opts.uriResolver.parse(y),C=(0,n._getFullPath)(this.opts.uriResolver,f);let x=(0,n.getFullPath)(this.opts.uriResolver,g.baseId,void 0);if(Object.keys(g.schema).length>0&&C===x)return E.call(this,f,g);const h=(0,n.normalizeId)(C),b=this.refs[h]||this.schemas[h];if(typeof b=="string"){const O=v.call(this,g,b);return typeof O?.schema!="object"?void 0:E.call(this,f,O)}if(typeof b?.schema=="object"){if(b.validate||o.call(this,b),h===(0,n.normalizeId)(y)){const{schema:O}=b,{schemaId:k}=this.opts,$=O[k];return $&&(x=(0,n.resolveUrl)(this.opts.uriResolver,x,$)),new a({schema:O,schemaId:k,root:g,baseId:x})}return E.call(this,f,b)}}Mt.resolveSchema=v;const S=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function E(g,{baseId:y,schema:f,root:C}){var x;if(((x=g.fragment)===null||x===void 0?void 0:x[0])!=="/")return;for(const O of g.fragment.slice(1).split("/")){if(typeof f=="boolean")return;const k=f[(0,i.unescapeFragment)(O)];if(k===void 0)return;f=k;const $=typeof f=="object"&&f[this.opts.schemaId];!S.has(O)&&$&&(y=(0,n.resolveUrl)(this.opts.uriResolver,y,$))}let h;if(typeof f!="boolean"&&f.$ref&&!(0,i.schemaHasRulesButRef)(f,this.RULES)){const O=(0,n.resolveUrl)(this.opts.uriResolver,y,f.$ref);h=v.call(this,C,O)}const{schemaId:b}=this.opts;if(h=h||new a({schema:f,schemaId:b,root:C,baseId:y}),h.schema!==h.root.schema)return h}return Mt}const vw="https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",bw="Meta-schema for $data reference (JSON AnySchema extension proposal)",_w="object",Sw=["$data"],ww={$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},Cw=!1,Ew={$id:vw,description:bw,type:_w,required:Sw,properties:ww,additionalProperties:Cw};var Ms={},wi={exports:{}},oc,Df;function Qm(){if(Df)return oc;Df=1;const e=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),t=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u),r=RegExp.prototype.test.bind(/^\d*$/u),n=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),i=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),s=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/]$/u),a=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/?]$/u),o=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:]$/u),c=new Array(256);{const A="0123456789ABCDEF";for(let w=0;w<256;w++)c[w]="%"+A[w>>4]+A[w&15]}function l(A){return A<2048?c[192|A>>6]+c[128|A&63]:A<65536?c[224|A>>12]+c[128|A>>6&63]+c[128|A&63]:c[240|A>>18]+c[128|A>>12&63]+c[128|A>>6&63]+c[128|A&63]}function u(A){let w="",j=0,p=0;for(p=0;p=48&&j<=57||j>=65&&j<=70||j>=97&&j<=102))return"";w+=A[p];break}for(p+=1;p=48&&j<=57||j>=65&&j<=70||j>=97&&j<=102))return"";w+=A[p]}return w}const m=RegExp.prototype.test.bind(/^[\dA-Fa-f]{1,4}$/),_=RegExp.prototype.test.bind(/^[vV][\dA-Fa-f]+\.[A-Za-z\d\-._~!$&'()*+,;=:]+$/),v=RegExp.prototype.test.bind(/^[A-Za-z\d\-._~]$/),S=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function E(A){if(A.length===0)return!1;for(let w=0;wj&&(j=d,w=p)):(p=-1,d=0);if(j<2)return A.join(":");const P=A.slice(0,w).join(":"),I=A.slice(w+j).join(":");return P+"::"+I}function y(A){const w=A.indexOf("::");if(w!==-1&&A.indexOf("::",w+1)!==-1)return;const j=w===-1?A.split(":"):A.slice(0,w).split(":"),p=w===-1?[]:A.slice(w+2).split(":");w!==-1&&(j.length===1&&j[0]===""&&(j.length=0),p.length===1&&p[0]===""&&(p.length=0));const d=j.concat(p);let P=0;for(let T=0;T=8)return;const I=d.slice(0,j.length);for(let T=P;T<8;T++)I.push("0");for(let T=j.length;Th[p])}function $(A,w=!1){if(A.indexOf("%")===-1)return A;let j="";for(let p=0;p57343)w+=l(d);else if(d<=56319&&j+1=56320&&P<=57343?(w+=l(65536+(d-55296<<10)+(P-56320)),j++):w+=l(65533)}else w+=l(65533)}}return w}function q(A,w=!1){let j="",p=w&&A[0]!=="/";for(let d=0;d57343)j+=l(I);else if(I<=56319&&d+1=56320&&T<=57343?(j+=l(65536+(I-55296<<10)+(T-56320)),d++):j+=l(65533)}else j+=l(65533)}}return j}function U(A,w){let j="";for(let p=0;p57343)j+=l(P);else if(P<=56319&&p+1=56320&&I<=57343?(j+=l(65536+(P-55296<<10)+(I-56320)),p++):j+=l(65533)}else j+=l(65533)}}return j}function L(A){return U(A,o)}function B(A){return U(A,a)}function J(A){return U(A,a)}function Y(A){return A>=48&&A<=57||A>=65&&A<=90||A>=97&&A<=122||A===42||A===43||A===45||A===46||A===47||A===64||A===95}function Q(A){let w="";for(let j=0;j57343)w+=l(d);else if(d<=56319&&j+1=56320&&P<=57343?(w+=l(65536+(d-55296<<10)+(P-56320)),j++):w+=l(65533)}else w+=l(65533)}}return w}function X(A){let w="";for(let j=0;j65535))return"URI port is malformed."}function M(A){if(A===void 0)return!1;let w=A.indexOf("%");for(;w!==-1;){if(w+2>=A.length||!/^[\da-f]{2}$/iu.test(A.slice(w+1,w+3)))return!0;w=A.indexOf("%",w+3)}return!1}function q(A){return A[0]==="["&&A[A.length-1]==="]"}function U(A){const w=A[4];return M(A[3])||w!==void 0&&!q(w)&&M(w)||M(A[6])||M(A[7])||M(A[8])}function L(A,w,j,p){if(!w.unicodeSupport&&(!j||!j.unicodeSupport)&&A.host&&!q(A.host)&&(w.domainHost||j&&j.domainHost)&&p===!1&&m(A.host))try{A.host=new URL("http://"+A.host).hostname}catch(d){return A.error=A.error||"Host's domain name can not be converted to ASCII: "+d,!0}return!1}function B(A,w){const j=Object.assign({},w),p={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0};let d=!1,P=!1,I=!1,T=!1,F=!1,z=!1,H=!1;j.reference==="suffix"&&(j.scheme?A=j.scheme+":"+A:A="//"+A);const N=A.match(O);N!==null&&N[1].indexOf("\\")!==-1&&(p.error="URI authority must not contain a literal backslash.",d=!0);const D=A.match(k);if(D!==null){const K=D[1],G=K.replace(/[\t\n\r]/g,"");G.length>=2&&(G.slice(0,2)!=="//"?(p.error=p.error||"URI authority must not contain a literal backslash.",d=!0):K.length!==G.length&&(p.error=p.error||"URI authority introducer must not contain whitespace.",d=!0))}const V=A.match(b);if(V){if(p.scheme=V[1],p.userinfo=V[3],p.host=V[4],p.port=parseInt(V[5],10),p.path=V[6]||"",p.query=V[7],p.fragment=V[8],p.scheme!==void 0){const W=unescape(p.scheme);S.test(W)?p.scheme=W.toLowerCase():(p.error=p.error||E,z=!0)}P=U(V),P&&(p.error=p.error||"URI contains malformed percent-encoding."),isNaN(p.port)&&(p.port=V[5]);const K=$(p,V);if(K!==void 0&&(p.error=p.error||K,d=!0),p.host)if(u(p.host)===!1){const te=q(p.host),ne=p.host.indexOf("[")!==-1||p.host.indexOf("]")!==-1,se=e(p.host);H=se.isIPV6||se.isIPVFuture===!0,F=ne&&(!te||se.error===!0),p.host=H?se.host:se.host.toLowerCase(),F&&(p.error=p.error||"URI host is malformed.",d=!0)}else H=!0;p.scheme===void 0&&p.userinfo===void 0&&p.host===void 0&&p.port===void 0&&p.query===void 0&&!p.path?p.reference="same-document":p.scheme===void 0?p.reference="relative":p.fragment===void 0?p.reference="absolute":p.reference="uri",j.reference&&j.reference!=="suffix"&&j.reference!==p.reference&&(p.error=p.error||"URI is not a "+j.reference+" reference.");const G=v(j.scheme||p.scheme);if(F||(T=L(p,j,G,H)),!G||G&&!G.skipNormalize){if(A.indexOf("%")!==-1&&p.host!==void 0&&!F){const W=H?p.host:n(p.host,!0);p.host=l(W,H)}p.path&&(p.path=i(p.path)),p.query&&(p.query=a(p.query)),p.fragment&&(p.fragment=a(p.fragment))}G&&G.parse&&(G.parse(p,j),G===_.urn&&p.nid===void 0&&(I=!0))}else p.error=p.error||"URI can not be parsed.";return{parsed:p,malformedAuthorityOrPort:d,malformedPercentEncoding:P,malformedSchemeSpecific:I,malformedHost:T,malformedScheme:z}}function J(A,w){return B(A,w).parsed}function Y(A,w){return Q(A,w).normalized}function Q(A,w){const{parsed:j,malformedAuthorityOrPort:p,malformedPercentEncoding:d,malformedSchemeSpecific:P,malformedHost:I,malformedScheme:T}=B(A,w);return{normalized:p||d||P||I||T?A:h(j,w),malformedAuthorityOrPort:p,malformedPercentEncoding:d,malformedSchemeSpecific:P,malformedHost:I,malformedScheme:T}}function X(A,w){if(typeof A!="string"&&typeof A!="object")return;let j;try{j=typeof A=="string"?A:h(A,w)}catch{return}const{normalized:p,malformedAuthorityOrPort:d,malformedPercentEncoding:P,malformedSchemeSpecific:I,malformedHost:T,malformedScheme:F}=Q(j,w);return d||P||I||T||F?void 0:p}const re={SCHEMES:_,normalize:y,resolve:f,resolveComponent:C,equal:x,serialize:h,parse:J};return wi.exports=re,wi.exports.default=re,wi.exports.fastUri=re,wi.exports}var qf;function xw(){if(qf)return Ms;qf=1,Object.defineProperty(Ms,"__esModule",{value:!0});const e=Pw();return e.code='require("ajv/dist/runtime/uri").default',Ms.default=e,Ms}var Uf;function Ow(){return Uf||(Uf=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=void 0;var t=so();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return t.KeywordCxt}});var r=Oe();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return r._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return r.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return r.CodeGen}});const n=fl(),i=ao(),s=Xm(),a=hl(),o=Oe(),c=io(),l=za(),u=Me(),m=Ew,_=xw(),v=(A,w)=>new RegExp(A,w);v.code="new RegExp";const S=["removeAdditional","useDefaults","coerceTypes"],E=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),g={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},y={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},f=200;function C(A){var w,j,p,d,P,I,T,F,z,H,N,D,V,K,G,W,te,ne,se,ce,he,le,ge,Fe,fe;const Ye=A.strict,ye=(w=A.code)===null||w===void 0?void 0:w.optimize,oe=ye===!0||ye===void 0?1:ye||0,ft=(p=(j=A.code)===null||j===void 0?void 0:j.regExp)!==null&&p!==void 0?p:v,ke=(d=A.uriResolver)!==null&&d!==void 0?d:_.default;return{strictSchema:(I=(P=A.strictSchema)!==null&&P!==void 0?P:Ye)!==null&&I!==void 0?I:!0,strictNumbers:(F=(T=A.strictNumbers)!==null&&T!==void 0?T:Ye)!==null&&F!==void 0?F:!0,strictTypes:(H=(z=A.strictTypes)!==null&&z!==void 0?z:Ye)!==null&&H!==void 0?H:"log",strictTuples:(D=(N=A.strictTuples)!==null&&N!==void 0?N:Ye)!==null&&D!==void 0?D:"log",strictRequired:(K=(V=A.strictRequired)!==null&&V!==void 0?V:Ye)!==null&&K!==void 0?K:!1,code:A.code?{...A.code,optimize:oe,regExp:ft}:{optimize:oe,regExp:ft},loopRequired:(G=A.loopRequired)!==null&&G!==void 0?G:f,loopEnum:(W=A.loopEnum)!==null&&W!==void 0?W:f,meta:(te=A.meta)!==null&&te!==void 0?te:!0,messages:(ne=A.messages)!==null&&ne!==void 0?ne:!0,inlineRefs:(se=A.inlineRefs)!==null&&se!==void 0?se:!0,schemaId:(ce=A.schemaId)!==null&&ce!==void 0?ce:"$id",addUsedSchema:(he=A.addUsedSchema)!==null&&he!==void 0?he:!0,validateSchema:(le=A.validateSchema)!==null&&le!==void 0?le:!0,validateFormats:(ge=A.validateFormats)!==null&&ge!==void 0?ge:!0,unicodeRegExp:(Fe=A.unicodeRegExp)!==null&&Fe!==void 0?Fe:!0,int32range:(fe=A.int32range)!==null&&fe!==void 0?fe:!0,uriResolver:ke}}class x{constructor(w={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,w=this.opts={...w,...C(w)};const{es5:j,lines:p}=this.opts.code;this.scope=new o.ValueScope({scope:{},prefixes:E,es5:j,lines:p}),this.logger=U(w.logger);const d=w.validateFormats;w.validateFormats=!1,this.RULES=(0,s.getRules)(),h.call(this,g,w,"NOT SUPPORTED"),h.call(this,y,w,"DEPRECATED","warn"),this._metaOpts=M.call(this),w.formats&&k.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),w.keywords&&$.call(this,w.keywords),typeof w.meta=="object"&&this.addMetaSchema(w.meta),O.call(this),w.validateFormats=d}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){const{$data:w,meta:j,schemaId:p}=this.opts;let d=m;p==="id"&&(d={...m},d.id=d.$id,delete d.$id),j&&w&&this.addMetaSchema(d,d[p],!1)}defaultMeta(){const{meta:w,schemaId:j}=this.opts;return this.opts.defaultMeta=typeof w=="object"?w[j]||w:void 0}validate(w,j){let p;if(typeof w=="string"){if(p=this.getSchema(w),!p)throw new Error(`no schema with key or ref "${w}"`)}else p=this.compile(w);const d=p(j);return"$async"in p||(this.errors=p.errors),d}compile(w,j){const p=this._addSchema(w,j);return p.validate||this._compileSchemaEnv(p)}compileAsync(w,j){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");const{loadSchema:p}=this.opts;return d.call(this,w,j);async function d(H,N){await P.call(this,H.$schema);const D=this._addSchema(H,N);return D.validate||I.call(this,D)}async function P(H){H&&!this.getSchema(H)&&await d.call(this,{$ref:H},!0)}async function I(H){try{return this._compileSchemaEnv(H)}catch(N){if(!(N instanceof i.default))throw N;return T.call(this,N),await F.call(this,N.missingSchema),I.call(this,H)}}function T({missingSchema:H,missingRef:N}){if(this.refs[H])throw new Error(`AnySchema ${H} is loaded but ${N} cannot be resolved`)}async function F(H){const N=await z.call(this,H);this.refs[H]||await P.call(this,N.$schema),this.refs[H]||this.addSchema(N,H,j)}async function z(H){const N=this._loading[H];if(N)return N;try{return await(this._loading[H]=p(H))}finally{delete this._loading[H]}}}addSchema(w,j,p,d=this.opts.validateSchema){if(Array.isArray(w)){for(const I of w)this.addSchema(I,void 0,p,d);return this}let P;if(typeof w=="object"){const{schemaId:I}=this.opts;if(P=w[I],P!==void 0&&typeof P!="string")throw new Error(`schema ${I} must be string`)}return j=(0,c.normalizeId)(j||P),this._checkUnique(j),this.schemas[j]=this._addSchema(w,p,j,d,!0),this}addMetaSchema(w,j,p=this.opts.validateSchema){return this.addSchema(w,j,!0,p),this}validateSchema(w,j){if(typeof w=="boolean")return!0;let p;if(p=w.$schema,p!==void 0&&typeof p!="string")throw new Error("$schema must be a string");if(p=p||this.opts.defaultMeta||this.defaultMeta(),!p)return this.logger.warn("meta-schema not available"),this.errors=null,!0;const d=this.validate(p,w);if(!d&&j){const P="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(P);else throw new Error(P)}return d}getSchema(w){let j;for(;typeof(j=b.call(this,w))=="string";)w=j;if(j===void 0){const{schemaId:p}=this.opts,d=new a.SchemaEnv({schema:{},schemaId:p});if(j=a.resolveSchema.call(this,d,w),!j)return;this.refs[w]=j}return j.validate||this._compileSchemaEnv(j)}removeSchema(w){if(w instanceof RegExp)return this._removeAllSchemas(this.schemas,w),this._removeAllSchemas(this.refs,w),this;switch(typeof w){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{const j=b.call(this,w);return typeof j=="object"&&this._cache.delete(j.schema),delete this.schemas[w],delete this.refs[w],this}case"object":{const j=w;this._cache.delete(j);let p=w[this.opts.schemaId];return p&&(p=(0,c.normalizeId)(p),delete this.schemas[p],delete this.refs[p]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(w){for(const j of w)this.addKeyword(j);return this}addKeyword(w,j){let p;if(typeof w=="string")p=w,typeof j=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),j.keyword=p);else if(typeof w=="object"&&j===void 0){if(j=w,p=j.keyword,Array.isArray(p)&&!p.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(B.call(this,p,j),!j)return(0,u.eachItem)(p,P=>J.call(this,P)),this;Q.call(this,j);const d={...j,type:(0,l.getJSONTypes)(j.type),schemaType:(0,l.getJSONTypes)(j.schemaType)};return(0,u.eachItem)(p,d.type.length===0?P=>J.call(this,P,d):P=>d.type.forEach(I=>J.call(this,P,d,I))),this}getKeyword(w){const j=this.RULES.all[w];return typeof j=="object"?j.definition:!!j}removeKeyword(w){const{RULES:j}=this;delete j.keywords[w],delete j.all[w];for(const p of j.rules){const d=p.rules.findIndex(P=>P.keyword===w);d>=0&&p.rules.splice(d,1)}return this}addFormat(w,j){return typeof j=="string"&&(j=new RegExp(j)),this.formats[w]=j,this}errorsText(w=this.errors,{separator:j=", ",dataVar:p="data"}={}){return!w||w.length===0?"No errors":w.map(d=>`${p}${d.instancePath} ${d.message}`).reduce((d,P)=>d+j+P)}$dataMetaSchema(w,j){const p=this.RULES.all;w=JSON.parse(JSON.stringify(w));for(const d of j){const P=d.split("/").slice(1);let I=w;for(const T of P)I=I[T];for(const T in p){const F=p[T];if(typeof F!="object")continue;const{$data:z}=F.definition,H=I[T];z&&H&&(I[T]=re(H))}}return w}_removeAllSchemas(w,j){for(const p in w){const d=w[p];(!j||j.test(p))&&(typeof d=="string"?delete w[p]:d&&!d.meta&&(this._cache.delete(d.schema),delete w[p]))}}_addSchema(w,j,p,d=this.opts.validateSchema,P=this.opts.addUsedSchema){let I;const{schemaId:T}=this.opts;if(typeof w=="object")I=w[T];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof w!="boolean")throw new Error("schema must be object or boolean")}let F=this._cache.get(w);if(F!==void 0)return F;p=(0,c.normalizeId)(I||p);const z=c.getSchemaRefs.call(this,w,p);return F=new a.SchemaEnv({schema:w,schemaId:T,meta:j,baseId:p,localRefs:z}),this._cache.set(F.schema,F),P&&!p.startsWith("#")&&(p&&this._checkUnique(p),this.refs[p]=F),d&&this.validateSchema(w,!0),F}_checkUnique(w){if(this.schemas[w]||this.refs[w])throw new Error(`schema with key or id "${w}" already exists`)}_compileSchemaEnv(w){if(w.meta?this._compileMetaSchema(w):a.compileSchema.call(this,w),!w.validate)throw new Error("ajv implementation error");return w.validate}_compileMetaSchema(w){const j=this.opts;this.opts=this._metaOpts;try{a.compileSchema.call(this,w)}finally{this.opts=j}}}x.ValidationError=n.default,x.MissingRefError=i.default,e.default=x;function h(A,w,j,p="error"){for(const d in A){const P=d;P in w&&this.logger[p](`${j}: option ${d}. ${A[P]}`)}}function b(A){return A=(0,c.normalizeId)(A),this.schemas[A]||this.refs[A]}function O(){const A=this.opts.schemas;if(A)if(Array.isArray(A))this.addSchema(A);else for(const w in A)this.addSchema(A[w],w)}function k(){for(const A in this.opts.formats){const w=this.opts.formats[A];w&&this.addFormat(A,w)}}function $(A){if(Array.isArray(A)){this.addVocabulary(A);return}this.logger.warn("keywords option as map is deprecated, pass array");for(const w in A){const j=A[w];j.keyword||(j.keyword=w),this.addKeyword(j)}}function M(){const A={...this.opts};for(const w of S)delete A[w];return A}const q={log(){},warn(){},error(){}};function U(A){if(A===!1)return q;if(A===void 0)return console;if(A.log&&A.warn&&A.error)return A;throw new Error("logger must implement log, warn and error methods")}const L=/^[a-z_$][a-z0-9_$:-]*$/i;function B(A,w){const{RULES:j}=this;if((0,u.eachItem)(A,p=>{if(j.keywords[p])throw new Error(`Keyword ${p} is already defined`);if(!L.test(p))throw new Error(`Keyword ${p} has invalid name`)}),!!w&&w.$data&&!("code"in w||"validate"in w))throw new Error('$data keyword must have "code" or "validate" function')}function J(A,w,j){var p;const d=w?.post;if(j&&d)throw new Error('keyword with "post" flag cannot have "type"');const{RULES:P}=this;let I=d?P.post:P.rules.find(({type:F})=>F===j);if(I||(I={type:j,rules:[]},P.rules.push(I)),P.keywords[A]=!0,!w)return;const T={keyword:A,definition:{...w,type:(0,l.getJSONTypes)(w.type),schemaType:(0,l.getJSONTypes)(w.schemaType)}};w.before?Y.call(this,I,T,w.before):I.rules.push(T),P.all[A]=T,(p=w.implements)===null||p===void 0||p.forEach(F=>this.addKeyword(F))}function Y(A,w,j){const p=A.rules.findIndex(d=>d.keyword===j);p>=0?A.rules.splice(p,0,w):(A.rules.push(w),this.logger.warn(`rule ${j} is not defined`))}function Q(A){let{metaSchema:w}=A;w!==void 0&&(A.$data&&this.opts.$data&&(w=re(w)),A.validateSchema=this.compile(w,!0))}const X={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function re(A){return{anyOf:[A,X]}}})(tc)),tc}var qs={},Us={},Ls={},Lf;function jw(){if(Lf)return Ls;Lf=1,Object.defineProperty(Ls,"__esModule",{value:!0});const e={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};return Ls.default=e,Ls}var Mr={},Vf;function kw(){if(Vf)return Mr;Vf=1,Object.defineProperty(Mr,"__esModule",{value:!0}),Mr.callRef=Mr.getValidate=void 0;const e=ao(),t=ar(),r=Oe(),n=nn(),i=hl(),s=Me(),a={keyword:"$ref",schemaType:"string",code(l){const{gen:u,schema:m,it:_}=l,{baseId:v,schemaEnv:S,validateName:E,opts:g,self:y}=_,{root:f}=S;if((m==="#"||m==="#/")&&v===f.baseId)return x();const C=i.resolveRef.call(y,f,v,m);if(C===void 0)throw new e.default(_.opts.uriResolver,v,m);if(C instanceof i.SchemaEnv)return h(C);return b(C);function x(){if(S===f)return c(l,E,S,S.$async);const O=u.scopeValue("root",{ref:f});return c(l,(0,r._)`${O}.validate`,f,f.$async)}function h(O){const k=o(l,O);c(l,k,O,O.$async)}function b(O){const k=u.scopeValue("schema",g.code.source===!0?{ref:O,code:(0,r.stringify)(O)}:{ref:O}),$=u.name("valid"),M=l.subschema({schema:O,dataTypes:[],schemaPath:r.nil,topSchemaRef:k,errSchemaPath:m},$);l.mergeEvaluated(M),l.ok($)}}};function o(l,u){const{gen:m}=l;return u.validate?m.scopeValue("validate",{ref:u.validate}):(0,r._)`${m.scopeValue("wrapper",{ref:u})}.validate`}Mr.getValidate=o;function c(l,u,m,_){const{gen:v,it:S}=l,{allErrors:E,schemaEnv:g,opts:y}=S,f=y.passContext?n.default.this:r.nil;_?C():x();function C(){if(!g.$async)throw new Error("async schema referenced by sync schema");const O=v.let("valid");v.try(()=>{v.code((0,r._)`await ${(0,t.callValidateCode)(l,u,f)}`),b(u),E||v.assign(O,!0)},k=>{v.if((0,r._)`!(${k} instanceof ${S.ValidationError})`,()=>v.throw(k)),h(k),E||v.assign(O,!1)}),l.ok(O)}function x(){l.result((0,t.callValidateCode)(l,u,f),()=>b(u),()=>h(u))}function h(O){const k=(0,r._)`${O}.errors`;v.assign(n.default.vErrors,(0,r._)`${n.default.vErrors} === null ? ${k} : ${n.default.vErrors}.concat(${k})`),v.assign(n.default.errors,(0,r._)`${n.default.vErrors}.length`)}function b(O){var k;if(!S.opts.unevaluated)return;const $=(k=m?.validate)===null||k===void 0?void 0:k.evaluated;if(S.props!==!0)if($&&!$.dynamicProps)$.props!==void 0&&(S.props=s.mergeEvaluated.props(v,$.props,S.props));else{const M=v.var("props",(0,r._)`${O}.evaluated.props`);S.props=s.mergeEvaluated.props(v,M,S.props,r.Name)}if(S.items!==!0)if($&&!$.dynamicItems)$.items!==void 0&&(S.items=s.mergeEvaluated.items(v,$.items,S.items));else{const M=v.var("items",(0,r._)`${O}.evaluated.items`);S.items=s.mergeEvaluated.items(v,M,S.items,r.Name)}}}return Mr.callRef=c,Mr.default=a,Mr}var zf;function Iw(){if(zf)return Us;zf=1,Object.defineProperty(Us,"__esModule",{value:!0});const e=jw(),t=kw(),r=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",e.default,t.default];return Us.default=r,Us}var Vs={},zs={},Bf;function Nw(){if(Bf)return zs;Bf=1,Object.defineProperty(zs,"__esModule",{value:!0});const e=Oe(),t=e.operators,r={maximum:{okStr:"<=",ok:t.LTE,fail:t.GT},minimum:{okStr:">=",ok:t.GTE,fail:t.LT},exclusiveMaximum:{okStr:"<",ok:t.LT,fail:t.GTE},exclusiveMinimum:{okStr:">",ok:t.GT,fail:t.LTE}},n={message:({keyword:s,schemaCode:a})=>(0,e.str)`must be ${r[s].okStr} ${a}`,params:({keyword:s,schemaCode:a})=>(0,e._)`{comparison: ${r[s].okStr}, limit: ${a}}`},i={keyword:Object.keys(r),type:"number",schemaType:"number",$data:!0,error:n,code(s){const{keyword:a,data:o,schemaCode:c}=s;s.fail$data((0,e._)`${o} ${r[a].fail} ${c} || isNaN(${o})`)}};return zs.default=i,zs}var Bs={},Hf;function Rw(){if(Hf)return Bs;Hf=1,Object.defineProperty(Bs,"__esModule",{value:!0});const e=Oe(),r={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:{message:({schemaCode:n})=>(0,e.str)`must be multiple of ${n}`,params:({schemaCode:n})=>(0,e._)`{multipleOf: ${n}}`},code(n){const{gen:i,data:s,schemaCode:a,it:o}=n,c=o.opts.multipleOfPrecision,l=i.let("res"),u=c?(0,e._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${c}`:(0,e._)`${l} !== parseInt(${l})`;n.fail$data((0,e._)`(${a} === 0 || (${l} = ${s}/${a}, ${u}))`)}};return Bs.default=r,Bs}var Hs={},Ks={},Kf;function $w(){if(Kf)return Ks;Kf=1,Object.defineProperty(Ks,"__esModule",{value:!0});function e(t){const r=t.length;let n=0,i=0,s;for(;i=55296&&s<=56319&&i(0,e._)`{limit: ${s}}`},code(s){const{keyword:a,data:o,schemaCode:c,it:l}=s,u=a==="maxLength"?e.operators.GT:e.operators.LT,m=l.opts.unicode===!1?(0,e._)`${o}.length`:(0,e._)`${(0,t.useFunc)(s.gen,r.default)}(${o})`;s.fail$data((0,e._)`${m} ${u} ${c}`)}};return Hs.default=i,Hs}var Gs={},Wf;function Dw(){if(Wf)return Gs;Wf=1,Object.defineProperty(Gs,"__esModule",{value:!0});const e=ar(),t=Me(),r=Oe(),i={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:{message:({schemaCode:s})=>(0,r.str)`must match pattern "${s}"`,params:({schemaCode:s})=>(0,r._)`{pattern: ${s}}`},code(s){const{gen:a,data:o,$data:c,schema:l,schemaCode:u,it:m}=s,_=m.opts.unicodeRegExp?"u":"";if(c){const{regExp:v}=m.opts.code,S=v.code==="new RegExp"?(0,r._)`new RegExp`:(0,t.useFunc)(a,v),E=a.let("valid");a.try(()=>a.assign(E,(0,r._)`${S}(${u}, ${_}).test(${o})`),()=>a.assign(E,!1)),s.fail$data((0,r._)`!${E}`)}else{const v=(0,e.usePattern)(s,l);s.fail$data((0,r._)`!${v}.test(${o})`)}}};return Gs.default=i,Gs}var Ws={},Jf;function Tw(){if(Jf)return Ws;Jf=1,Object.defineProperty(Ws,"__esModule",{value:!0});const e=Oe(),r={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:{message({keyword:n,schemaCode:i}){const s=n==="maxProperties"?"more":"fewer";return(0,e.str)`must NOT have ${s} than ${i} properties`},params:({schemaCode:n})=>(0,e._)`{limit: ${n}}`},code(n){const{keyword:i,data:s,schemaCode:a}=n,o=i==="maxProperties"?e.operators.GT:e.operators.LT;n.fail$data((0,e._)`Object.keys(${s}).length ${o} ${a}`)}};return Ws.default=r,Ws}var Js={},Yf;function Mw(){if(Yf)return Js;Yf=1,Object.defineProperty(Js,"__esModule",{value:!0});const e=ar(),t=Oe(),r=Me(),i={keyword:"required",type:"object",schemaType:"array",$data:!0,error:{message:({params:{missingProperty:s}})=>(0,t.str)`must have required property '${s}'`,params:({params:{missingProperty:s}})=>(0,t._)`{missingProperty: ${s}}`},code(s){const{gen:a,schema:o,schemaCode:c,data:l,$data:u,it:m}=s,{opts:_}=m;if(!u&&o.length===0)return;const v=o.length>=_.loopRequired;if(m.allErrors?S():E(),_.strictRequired){const f=s.parentSchema.properties,{definedProperties:C}=s.it;for(const x of o)if(f?.[x]===void 0&&!C.has(x)){const h=m.schemaEnv.baseId+m.errSchemaPath,b=`required property "${x}" is not defined at "${h}" (strictRequired)`;(0,r.checkStrictMode)(m,b,m.opts.strictRequired)}}function S(){if(v||u)s.block$data(t.nil,g);else for(const f of o)(0,e.checkReportMissingProp)(s,f)}function E(){const f=a.let("missing");if(v||u){const C=a.let("valid",!0);s.block$data(C,()=>y(f,C)),s.ok(C)}else a.if((0,e.checkMissingProp)(s,o,f)),(0,e.reportMissingProp)(s,f),a.else()}function g(){a.forOf("prop",c,f=>{s.setParams({missingProperty:f}),a.if((0,e.noPropertyInData)(a,l,f,_.ownProperties),()=>s.error())})}function y(f,C){s.setParams({missingProperty:f}),a.forOf(f,c,()=>{a.assign(C,(0,e.propertyInData)(a,l,f,_.ownProperties)),a.if((0,t.not)(C),()=>{s.error(),a.break()})},t.nil)}}};return Js.default=i,Js}var Ys={},Xf;function qw(){if(Xf)return Ys;Xf=1,Object.defineProperty(Ys,"__esModule",{value:!0});const e=Oe(),r={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:{message({keyword:n,schemaCode:i}){const s=n==="maxItems"?"more":"fewer";return(0,e.str)`must NOT have ${s} than ${i} items`},params:({schemaCode:n})=>(0,e._)`{limit: ${n}}`},code(n){const{keyword:i,data:s,schemaCode:a}=n,o=i==="maxItems"?e.operators.GT:e.operators.LT;n.fail$data((0,e._)`${s}.length ${o} ${a}`)}};return Ys.default=r,Ys}var Xs={},Zs={},Zf;function ml(){if(Zf)return Zs;Zf=1,Object.defineProperty(Zs,"__esModule",{value:!0});const e=Qa();return e.code='require("ajv/dist/runtime/equal").default',Zs.default=e,Zs}var Qf;function Uw(){if(Qf)return Xs;Qf=1,Object.defineProperty(Xs,"__esModule",{value:!0});const e=za(),t=Oe(),r=Me(),n=ml(),s={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:{message:({params:{i:a,j:o}})=>(0,t.str)`must NOT have duplicate items (items ## ${o} and ${a} are identical)`,params:({params:{i:a,j:o}})=>(0,t._)`{i: ${a}, j: ${o}}`},code(a){const{gen:o,data:c,$data:l,schema:u,parentSchema:m,schemaCode:_,it:v}=a;if(!l&&!u)return;const S=o.let("valid"),E=m.items?(0,e.getSchemaTypes)(m.items):[];a.block$data(S,g,(0,t._)`${_} === false`),a.ok(S);function g(){const x=o.let("i",(0,t._)`${c}.length`),h=o.let("j");a.setParams({i:x,j:h}),o.assign(S,!0),o.if((0,t._)`${x} > 1`,()=>(y()?f:C)(x,h))}function y(){return E.length>0&&!E.some(x=>x==="object"||x==="array")}function f(x,h){const b=o.name("item"),O=(0,e.checkDataTypes)(E,b,v.opts.strictNumbers,e.DataType.Wrong),k=o.const("indices",(0,t._)`{}`);o.for((0,t._)`;${x}--;`,()=>{o.let(b,(0,t._)`${c}[${x}]`),o.if(O,(0,t._)`continue`),E.length>1&&o.if((0,t._)`typeof ${b} == "string"`,(0,t._)`${b} += "_"`),o.if((0,t._)`typeof ${k}[${b}] == "number"`,()=>{o.assign(h,(0,t._)`${k}[${b}]`),a.error(),o.assign(S,!1).break()}).code((0,t._)`${k}[${b}] = ${x}`)})}function C(x,h){const b=(0,r.useFunc)(o,n.default),O=o.name("outer");o.label(O).for((0,t._)`;${x}--;`,()=>o.for((0,t._)`${h} = ${x}; ${h}--;`,()=>o.if((0,t._)`${b}(${c}[${x}], ${c}[${h}])`,()=>{a.error(),o.assign(S,!1).break(O)})))}}};return Xs.default=s,Xs}var Qs={},eh;function Lw(){if(eh)return Qs;eh=1,Object.defineProperty(Qs,"__esModule",{value:!0});const e=Oe(),t=Me(),r=ml(),i={keyword:"const",$data:!0,error:{message:"must be equal to constant",params:({schemaCode:s})=>(0,e._)`{allowedValue: ${s}}`},code(s){const{gen:a,data:o,$data:c,schemaCode:l,schema:u}=s;c||u&&typeof u=="object"?s.fail$data((0,e._)`!${(0,t.useFunc)(a,r.default)}(${o}, ${l})`):s.fail((0,e._)`${u} !== ${o}`)}};return Qs.default=i,Qs}var ea={},th;function Vw(){if(th)return ea;th=1,Object.defineProperty(ea,"__esModule",{value:!0});const e=Oe(),t=Me(),r=ml(),i={keyword:"enum",schemaType:"array",$data:!0,error:{message:"must be equal to one of the allowed values",params:({schemaCode:s})=>(0,e._)`{allowedValues: ${s}}`},code(s){const{gen:a,data:o,$data:c,schema:l,schemaCode:u,it:m}=s;if(!c&&l.length===0)throw new Error("enum must have non-empty array");const _=l.length>=m.opts.loopEnum;let v;const S=()=>v??(v=(0,t.useFunc)(a,r.default));let E;if(_||c)E=a.let("valid"),s.block$data(E,g);else{if(!Array.isArray(l))throw new Error("ajv implementation error");const f=a.const("vSchema",u);E=(0,e.or)(...l.map((C,x)=>y(f,x)))}s.pass(E);function g(){a.assign(E,!1),a.forOf("v",u,f=>a.if((0,e._)`${S()}(${o}, ${f})`,()=>a.assign(E,!0).break()))}function y(f,C){const x=l[C];return typeof x=="object"&&x!==null?(0,e._)`${S()}(${o}, ${f}[${C}])`:(0,e._)`${o} === ${x}`}}};return ea.default=i,ea}var rh;function zw(){if(rh)return Vs;rh=1,Object.defineProperty(Vs,"__esModule",{value:!0});const e=Nw(),t=Rw(),r=Fw(),n=Dw(),i=Tw(),s=Mw(),a=qw(),o=Uw(),c=Lw(),l=Vw(),u=[e.default,t.default,r.default,n.default,i.default,s.default,a.default,o.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},c.default,l.default];return Vs.default=u,Vs}var ta={},Bn={},nh;function ep(){if(nh)return Bn;nh=1,Object.defineProperty(Bn,"__esModule",{value:!0}),Bn.validateAdditionalItems=void 0;const e=Oe(),t=Me(),n={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:{message:({params:{len:s}})=>(0,e.str)`must NOT have more than ${s} items`,params:({params:{len:s}})=>(0,e._)`{limit: ${s}}`},code(s){const{parentSchema:a,it:o}=s,{items:c}=a;if(!Array.isArray(c)){(0,t.checkStrictMode)(o,'"additionalItems" is ignored when "items" is not an array of schemas');return}i(s,c)}};function i(s,a){const{gen:o,schema:c,data:l,keyword:u,it:m}=s;m.items=!0;const _=o.const("len",(0,e._)`${l}.length`);if(c===!1)s.setParams({len:a.length}),s.pass((0,e._)`${_} <= ${a.length}`);else if(typeof c=="object"&&!(0,t.alwaysValidSchema)(m,c)){const S=o.var("valid",(0,e._)`${_} <= ${a.length}`);o.if((0,e.not)(S),()=>v(S)),s.ok(S)}function v(S){o.forRange("i",a.length,_,E=>{s.subschema({keyword:u,dataProp:E,dataPropType:t.Type.Num},S),m.allErrors||o.if((0,e.not)(S),()=>o.break())})}}return Bn.validateAdditionalItems=i,Bn.default=n,Bn}var ra={},Hn={},ih;function tp(){if(ih)return Hn;ih=1,Object.defineProperty(Hn,"__esModule",{value:!0}),Hn.validateTuple=void 0;const e=Oe(),t=Me(),r=ar(),n={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(s){const{schema:a,it:o}=s;if(Array.isArray(a))return i(s,"additionalItems",a);o.items=!0,!(0,t.alwaysValidSchema)(o,a)&&s.ok((0,r.validateArray)(s))}};function i(s,a,o=s.schema){const{gen:c,parentSchema:l,data:u,keyword:m,it:_}=s;E(l),_.opts.unevaluated&&o.length&&_.items!==!0&&(_.items=t.mergeEvaluated.items(c,o.length,_.items));const v=c.name("valid"),S=c.const("len",(0,e._)`${u}.length`);o.forEach((g,y)=>{(0,t.alwaysValidSchema)(_,g)||(c.if((0,e._)`${S} > ${y}`,()=>s.subschema({keyword:m,schemaProp:y,dataProp:y},v)),s.ok(v))});function E(g){const{opts:y,errSchemaPath:f}=_,C=o.length,x=C===g.minItems&&(C===g.maxItems||g[a]===!1);if(y.strictTuples&&!x){const h=`"${m}" is ${C}-tuple, but minItems or maxItems/${a} are not specified or different at path "${f}"`;(0,t.checkStrictMode)(_,h,y.strictTuples)}}}return Hn.validateTuple=i,Hn.default=n,Hn}var sh;function Bw(){if(sh)return ra;sh=1,Object.defineProperty(ra,"__esModule",{value:!0});const e=tp(),t={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:r=>(0,e.validateTuple)(r,"items")};return ra.default=t,ra}var na={},ah;function Hw(){if(ah)return na;ah=1,Object.defineProperty(na,"__esModule",{value:!0});const e=Oe(),t=Me(),r=ar(),n=ep(),s={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:{message:({params:{len:a}})=>(0,e.str)`must NOT have more than ${a} items`,params:({params:{len:a}})=>(0,e._)`{limit: ${a}}`},code(a){const{schema:o,parentSchema:c,it:l}=a,{prefixItems:u}=c;l.items=!0,!(0,t.alwaysValidSchema)(l,o)&&(u?(0,n.validateAdditionalItems)(a,u):a.ok((0,r.validateArray)(a)))}};return na.default=s,na}var ia={},oh;function Kw(){if(oh)return ia;oh=1,Object.defineProperty(ia,"__esModule",{value:!0});const e=Oe(),t=Me(),n={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:{message:({params:{min:i,max:s}})=>s===void 0?(0,e.str)`must contain at least ${i} valid item(s)`:(0,e.str)`must contain at least ${i} and no more than ${s} valid item(s)`,params:({params:{min:i,max:s}})=>s===void 0?(0,e._)`{minContains: ${i}}`:(0,e._)`{minContains: ${i}, maxContains: ${s}}`},code(i){const{gen:s,schema:a,parentSchema:o,data:c,it:l}=i;let u,m;const{minContains:_,maxContains:v}=o;l.opts.next?(u=_===void 0?1:_,m=v):u=1;const S=s.const("len",(0,e._)`${c}.length`);if(i.setParams({min:u,max:m}),m===void 0&&u===0){(0,t.checkStrictMode)(l,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(m!==void 0&&u>m){(0,t.checkStrictMode)(l,'"minContains" > "maxContains" is always invalid'),i.fail();return}if((0,t.alwaysValidSchema)(l,a)){let C=(0,e._)`${S} >= ${u}`;m!==void 0&&(C=(0,e._)`${C} && ${S} <= ${m}`),i.pass(C);return}l.items=!0;const E=s.name("valid");m===void 0&&u===1?y(E,()=>s.if(E,()=>s.break())):u===0?(s.let(E,!0),m!==void 0&&s.if((0,e._)`${c}.length > 0`,g)):(s.let(E,!1),g()),i.result(E,()=>i.reset());function g(){const C=s.name("_valid"),x=s.let("count",0);y(C,()=>s.if(C,()=>f(x)))}function y(C,x){s.forRange("i",0,S,h=>{i.subschema({keyword:"contains",dataProp:h,dataPropType:t.Type.Num,compositeRule:!0},C),x()})}function f(C){s.code((0,e._)`${C}++`),m===void 0?s.if((0,e._)`${C} >= ${u}`,()=>s.assign(E,!0).break()):(s.if((0,e._)`${C} > ${m}`,()=>s.assign(E,!1).break()),u===1?s.assign(E,!0):s.if((0,e._)`${C} >= ${u}`,()=>s.assign(E,!0)))}}};return ia.default=n,ia}var lc={},ch;function Gw(){return ch||(ch=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.validateSchemaDeps=e.validatePropertyDeps=e.error=void 0;const t=Oe(),r=Me(),n=ar();e.error={message:({params:{property:c,depsCount:l,deps:u}})=>{const m=l===1?"property":"properties";return(0,t.str)`must have ${m} ${u} when property ${c} is present`},params:({params:{property:c,depsCount:l,deps:u,missingProperty:m}})=>(0,t._)`{property: ${c}, + || ${k} === "boolean" || ${b} === null`).assign($,(0,n._)`[${b}]`)}}}function _({gen:f,parentData:C,parentDataProperty:x},h){f.if((0,n._)`${C} !== undefined`,()=>f.assign((0,n._)`${C}[${x}]`,h))}function v(f,C,x,h=i.Correct){const b=h===i.Correct?n.operators.EQ:n.operators.NEQ;let O;switch(f){case"null":return(0,n._)`${C} ${b} null`;case"array":O=(0,n._)`Array.isArray(${C})`;break;case"object":O=(0,n._)`${C} && typeof ${C} == "object" && !Array.isArray(${C})`;break;case"integer":O=k((0,n._)`!(${C} % 1) && !isNaN(${C})`);break;case"number":O=k();break;default:return(0,n._)`typeof ${C} ${b} ${f}`}return h===i.Correct?O:(0,n.not)(O);function k($=n.nil){return(0,n.and)((0,n._)`typeof ${C} == "number"`,$,x?(0,n._)`isFinite(${C})`:n.nil)}}gt.checkDataType=v;function S(f,C,x,h){if(f.length===1)return v(f[0],C,x,h);let b;const O=(0,s.toHash)(f);if(O.array&&O.object){const k=(0,n._)`typeof ${C} != "object"`;b=O.null?k:(0,n._)`!${C} || ${k}`,delete O.null,delete O.array,delete O.object}else b=n.nil;O.number&&delete O.integer;for(const k in O)b=(0,n.and)(b,v(k,C,x,h));return b}gt.checkDataTypes=S;const E={message:({schema:f})=>`must be ${f}`,params:({schema:f,schemaValue:C})=>typeof f=="string"?(0,n._)`{type: ${f}}`:(0,n._)`{type: ${C}}`};function g(f){const C=y(f);(0,r.reportError)(C,E)}gt.reportTypeError=g;function y(f){const{gen:C,data:x,schema:h}=f,b=(0,s.schemaRefOrVal)(f,h,"type");return{gen:C,keyword:"type",data:x,schema:h.type,schemaCode:b,schemaValue:b,parentSchema:h,params:{},it:f}}return gt}var Si={},Of;function g1(){if(Of)return Si;Of=1,Object.defineProperty(Si,"__esModule",{value:!0}),Si.assignDefaults=void 0;const e=Oe(),t=Me();function r(s,i){const{properties:a,items:o}=s.schema;if(i==="object"&&a)for(const c in a)n(s,c,a[c].default);else i==="array"&&Array.isArray(o)&&o.forEach((c,l)=>n(s,l,c.default))}Si.assignDefaults=r;function n(s,i,a){const{gen:o,compositeRule:c,data:l,opts:u}=s;if(a===void 0)return;const m=(0,e._)`${l}${(0,e.getProperty)(i)}`;if(c){(0,t.checkStrictMode)(s,`default is ignored for: ${m}`);return}let _=(0,e._)`${m} === undefined`;u.useDefaults==="empty"&&(_=(0,e._)`${_} || ${m} === null || ${m} === ""`),o.if(_,(0,e._)`${m} = ${(0,e.stringify)(a)}`)}return Si}var Zt={},We={},jf;function ar(){if(jf)return We;jf=1,Object.defineProperty(We,"__esModule",{value:!0}),We.validateUnion=We.validateArray=We.usePattern=We.callValidateCode=We.schemaProperties=We.allSchemaProperties=We.noPropertyInData=We.propertyInData=We.isOwnProperty=We.hasPropFunc=We.reportMissingProp=We.checkMissingProp=We.checkReportMissingProp=void 0;const e=Oe(),t=Me(),r=nn(),n=Me();function s(f,C){const{gen:x,data:h,it:b}=f;x.if(u(x,h,C,b.opts.ownProperties),()=>{f.setParams({missingProperty:(0,e._)`${C}`},!0),f.error()})}We.checkReportMissingProp=s;function i({gen:f,data:C,it:{opts:x}},h,b){return(0,e.or)(...h.map(O=>(0,e.and)(u(f,C,O,x.ownProperties),(0,e._)`${b} = ${O}`)))}We.checkMissingProp=i;function a(f,C){f.setParams({missingProperty:C},!0),f.error()}We.reportMissingProp=a;function o(f){return f.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,e._)`Object.prototype.hasOwnProperty`})}We.hasPropFunc=o;function c(f,C,x){return(0,e._)`${o(f)}.call(${C}, ${x})`}We.isOwnProperty=c;function l(f,C,x,h){const b=(0,e._)`${C}${(0,e.getProperty)(x)} !== undefined`;return h?(0,e._)`${b} && ${c(f,C,x)}`:b}We.propertyInData=l;function u(f,C,x,h){const b=(0,e._)`${C}${(0,e.getProperty)(x)} === undefined`;return h?(0,e.or)(b,(0,e.not)(c(f,C,x))):b}We.noPropertyInData=u;function m(f){return f?Object.keys(f).filter(C=>C!=="__proto__"):[]}We.allSchemaProperties=m;function _(f,C){return m(C).filter(x=>!(0,t.alwaysValidSchema)(f,C[x]))}We.schemaProperties=_;function v({schemaCode:f,data:C,it:{gen:x,topSchemaRef:h,schemaPath:b,errorPath:O},it:k},$,M,q){const U=q?(0,e._)`${f}, ${C}, ${h}${b}`:C,L=[[r.default.instancePath,(0,e.strConcat)(r.default.instancePath,O)],[r.default.parentData,k.parentData],[r.default.parentDataProperty,k.parentDataProperty],[r.default.rootData,r.default.rootData]];k.opts.dynamicRef&&L.push([r.default.dynamicAnchors,r.default.dynamicAnchors]);const B=(0,e._)`${U}, ${x.object(...L)}`;return M!==e.nil?(0,e._)`${$}.call(${M}, ${B})`:(0,e._)`${$}(${B})`}We.callValidateCode=v;const S=(0,e._)`new RegExp`;function E({gen:f,it:{opts:C}},x){const h=C.unicodeRegExp?"u":"",{regExp:b}=C.code,O=b(x,h);return f.scopeValue("pattern",{key:O.toString(),ref:O,code:(0,e._)`${b.code==="new RegExp"?S:(0,n.useFunc)(f,b)}(${x}, ${h})`})}We.usePattern=E;function g(f){const{gen:C,data:x,keyword:h,it:b}=f,O=C.name("valid");if(b.allErrors){const $=C.let("valid",!0);return k(()=>C.assign($,!1)),$}return C.var(O,!0),k(()=>C.break()),O;function k($){const M=C.const("len",(0,e._)`${x}.length`);C.forRange("i",0,M,q=>{f.subschema({keyword:h,dataProp:q,dataPropType:t.Type.Num},O),C.if((0,e.not)(O),$)})}}We.validateArray=g;function y(f){const{gen:C,schema:x,keyword:h,it:b}=f;if(!Array.isArray(x))throw new Error("ajv implementation error");if(x.some(M=>(0,t.alwaysValidSchema)(b,M))&&!b.opts.unevaluated)return;const k=C.let("valid",!1),$=C.name("_valid");C.block(()=>x.forEach((M,q)=>{const U=f.subschema({keyword:h,schemaProp:q,compositeRule:!0},$);C.assign(k,(0,e._)`${k} || ${$}`),f.mergeValidEvaluated(U,$)||C.if((0,e.not)(k))})),f.result(k,()=>f.reset(),()=>f.error(!0))}return We.validateUnion=y,We}var kf;function v1(){if(kf)return Zt;kf=1,Object.defineProperty(Zt,"__esModule",{value:!0}),Zt.validateKeywordUsage=Zt.validSchemaType=Zt.funcKeywordCode=Zt.macroKeywordCode=void 0;const e=Oe(),t=nn(),r=ar(),n=io();function s(_,v){const{gen:S,keyword:E,schema:g,parentSchema:y,it:f}=_,C=v.macro.call(f.self,g,y,f),x=l(S,E,C);f.opts.validateSchema!==!1&&f.self.validateSchema(C,!0);const h=S.name("valid");_.subschema({schema:C,schemaPath:e.nil,errSchemaPath:`${f.errSchemaPath}/${E}`,topSchemaRef:x,compositeRule:!0},h),_.pass(h,()=>_.error(!0))}Zt.macroKeywordCode=s;function i(_,v){var S;const{gen:E,keyword:g,schema:y,parentSchema:f,$data:C,it:x}=_;c(x,v);const h=!C&&v.compile?v.compile.call(x.self,y,f,x):v.validate,b=l(E,g,h),O=E.let("valid");_.block$data(O,k),_.ok((S=v.valid)!==null&&S!==void 0?S:O);function k(){if(v.errors===!1)q(),v.modifying&&a(_),U(()=>_.error());else{const L=v.async?$():M();v.modifying&&a(_),U(()=>o(_,L))}}function $(){const L=E.let("ruleErrs",null);return E.try(()=>q((0,e._)`await `),B=>E.assign(O,!1).if((0,e._)`${B} instanceof ${x.ValidationError}`,()=>E.assign(L,(0,e._)`${B}.errors`),()=>E.throw(B))),L}function M(){const L=(0,e._)`${b}.errors`;return E.assign(L,null),q(e.nil),L}function q(L=v.async?(0,e._)`await `:e.nil){const B=x.opts.passContext?t.default.this:t.default.self,J=!("compile"in v&&!C||v.schema===!1);E.assign(O,(0,e._)`${L}${(0,r.callValidateCode)(_,b,B,J)}`,v.modifying)}function U(L){var B;E.if((0,e.not)((B=v.valid)!==null&&B!==void 0?B:O),L)}}Zt.funcKeywordCode=i;function a(_){const{gen:v,data:S,it:E}=_;v.if(E.parentData,()=>v.assign(S,(0,e._)`${E.parentData}[${E.parentDataProperty}]`))}function o(_,v){const{gen:S}=_;S.if((0,e._)`Array.isArray(${v})`,()=>{S.assign(t.default.vErrors,(0,e._)`${t.default.vErrors} === null ? ${v} : ${t.default.vErrors}.concat(${v})`).assign(t.default.errors,(0,e._)`${t.default.vErrors}.length`),(0,n.extendErrors)(_)},()=>_.error())}function c({schemaEnv:_},v){if(v.async&&!_.$async)throw new Error("async keyword in sync schema")}function l(_,v,S){if(S===void 0)throw new Error(`keyword "${v}" failed to compile`);return _.scopeValue("keyword",typeof S=="function"?{ref:S}:{ref:S,code:(0,e.stringify)(S)})}function u(_,v,S=!1){return!v.length||v.some(E=>E==="array"?Array.isArray(_):E==="object"?_&&typeof _=="object"&&!Array.isArray(_):typeof _==E||S&&typeof _>"u")}Zt.validSchemaType=u;function m({schema:_,opts:v,self:S,errSchemaPath:E},g,y){if(Array.isArray(g.keyword)?!g.keyword.includes(y):g.keyword!==y)throw new Error("ajv implementation error");const f=g.dependencies;if(f?.some(C=>!Object.prototype.hasOwnProperty.call(_,C)))throw new Error(`parent schema must have dependencies of ${y}: ${f.join(",")}`);if(g.validateSchema&&!g.validateSchema(_[y])){const x=`keyword "${y}" value is invalid at path "${E}": `+S.errorsText(g.validateSchema.errors);if(v.validateSchema==="log")S.logger.error(x);else throw new Error(x)}}return Zt.validateKeywordUsage=m,Zt}var Pr={},If;function b1(){if(If)return Pr;If=1,Object.defineProperty(Pr,"__esModule",{value:!0}),Pr.extendSubschemaMode=Pr.extendSubschemaData=Pr.getSubschema=void 0;const e=Oe(),t=Me();function r(i,{keyword:a,schemaProp:o,schema:c,schemaPath:l,errSchemaPath:u,topSchemaRef:m}){if(a!==void 0&&c!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(a!==void 0){const _=i.schema[a];return o===void 0?{schema:_,schemaPath:(0,e._)`${i.schemaPath}${(0,e.getProperty)(a)}`,errSchemaPath:`${i.errSchemaPath}/${a}`}:{schema:_[o],schemaPath:(0,e._)`${i.schemaPath}${(0,e.getProperty)(a)}${(0,e.getProperty)(o)}`,errSchemaPath:`${i.errSchemaPath}/${a}/${(0,t.escapeFragment)(o)}`}}if(c!==void 0){if(l===void 0||u===void 0||m===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:c,schemaPath:l,topSchemaRef:m,errSchemaPath:u}}throw new Error('either "keyword" or "schema" must be passed')}Pr.getSubschema=r;function n(i,a,{dataProp:o,dataPropType:c,data:l,dataTypes:u,propertyName:m}){if(l!==void 0&&o!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');const{gen:_}=a;if(o!==void 0){const{errorPath:S,dataPathArr:E,opts:g}=a,y=_.let("data",(0,e._)`${a.data}${(0,e.getProperty)(o)}`,!0);v(y),i.errorPath=(0,e.str)`${S}${(0,t.getErrorPath)(o,c,g.jsPropertySyntax)}`,i.parentDataProperty=(0,e._)`${o}`,i.dataPathArr=[...E,i.parentDataProperty]}if(l!==void 0){const S=l instanceof e.Name?l:_.let("data",l,!0);v(S),m!==void 0&&(i.propertyName=m)}u&&(i.dataTypes=u);function v(S){i.data=S,i.dataLevel=a.dataLevel+1,i.dataTypes=[],a.definedProperties=new Set,i.parentData=a.data,i.dataNames=[...a.dataNames,S]}}Pr.extendSubschemaData=n;function s(i,{jtdDiscriminator:a,jtdMetadata:o,compositeRule:c,createErrors:l,allErrors:u}){c!==void 0&&(i.compositeRule=c),l!==void 0&&(i.createErrors=l),u!==void 0&&(i.allErrors=u),i.jtdDiscriminator=a,i.jtdMetadata=o}return Pr.extendSubschemaMode=s,Pr}var Ot={},oc={exports:{}},Nf;function _1(){if(Nf)return oc.exports;Nf=1;var e=oc.exports=function(n,s,i){typeof s=="function"&&(i=s,s={}),i=s.cb||i;var a=typeof i=="function"?i:i.pre||function(){},o=i.post||function(){};t(s,a,o,n,"",n)};e.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},e.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},e.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},e.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function t(n,s,i,a,o,c,l,u,m,_){if(a&&typeof a=="object"&&!Array.isArray(a)){s(a,o,c,l,u,m,_);for(var v in a){var S=a[v];if(Array.isArray(S)){if(v in e.arrayKeywords)for(var E=0;Eg+=o(f)),g===1/0))return 1/0}return g}function c(E,g="",y){y!==!1&&(g=m(g));const f=E.parse(g);return l(E,f)}Ot.getFullPath=c;function l(E,g){return E.serialize(g).split("#")[0]+"#"}Ot._getFullPath=l;const u=/#\/?$/;function m(E){return E?E.replace(u,""):""}Ot.normalizeId=m;function _(E,g,y){return y=m(y),E.resolve(g,y)}Ot.resolveUrl=_;const v=/^[a-z_][-a-z0-9._]*$/i;function S(E,g){if(typeof E=="boolean")return{};const{schemaId:y,uriResolver:f}=this.opts,C=m(E[y]||g),x={"":C},h=c(f,C,!1),b={},O=new Set;return r(E,{allKeys:!0},(M,q,U,L)=>{if(L===void 0)return;const B=h+q;let J=x[L];typeof M[y]=="string"&&(J=Y.call(this,M[y])),Q.call(this,M.$anchor),Q.call(this,M.$dynamicAnchor),x[q]=J;function Y(X){const re=this.opts.uriResolver.resolve;if(X=m(J?re(J,X):X),O.has(X))throw $(X);O.add(X);let A=this.refs[X];return typeof A=="string"&&(A=this.refs[A]),typeof A=="object"?k(M,A.schema,X):X!==m(B)&&(X[0]==="#"?(k(M,b[X],X),b[X]=M):this.refs[X]=B),X}function Q(X){if(typeof X=="string"){if(!v.test(X))throw new Error(`invalid anchor "${X}"`);Y.call(this,`#${X}`)}}}),b;function k(M,q,U){if(q!==void 0&&!t(M,q))throw $(U)}function $(M){return new Error(`reference "${M}" resolves to more than one schema`)}}return Ot.getSchemaRefs=S,Ot}var $f;function ao(){if($f)return Er;$f=1,Object.defineProperty(Er,"__esModule",{value:!0}),Er.getData=Er.KeywordCxt=Er.validateFunctionCode=void 0;const e=y1(),t=Ba(),r=tp(),n=Ba(),s=g1(),i=v1(),a=b1(),o=Oe(),c=nn(),l=so(),u=Me(),m=io();function _(R){if(h(R)&&(O(R),x(R))){g(R);return}v(R,()=>(0,e.topBoolOrEmptySchema)(R))}Er.validateFunctionCode=_;function v({gen:R,validateName:D,schema:V,schemaEnv:K,opts:G},W){G.code.es5?R.func(D,(0,o._)`${c.default.data}, ${c.default.valCxt}`,K.$async,()=>{R.code((0,o._)`"use strict"; ${f(V,G)}`),E(R,G),R.code(W)}):R.func(D,(0,o._)`${c.default.data}, ${S(G)}`,K.$async,()=>R.code(f(V,G)).code(W))}function S(R){return(0,o._)`{${c.default.instancePath}="", ${c.default.parentData}, ${c.default.parentDataProperty}, ${c.default.rootData}=${c.default.data}${R.dynamicRef?(0,o._)`, ${c.default.dynamicAnchors}={}`:o.nil}}={}`}function E(R,D){R.if(c.default.valCxt,()=>{R.var(c.default.instancePath,(0,o._)`${c.default.valCxt}.${c.default.instancePath}`),R.var(c.default.parentData,(0,o._)`${c.default.valCxt}.${c.default.parentData}`),R.var(c.default.parentDataProperty,(0,o._)`${c.default.valCxt}.${c.default.parentDataProperty}`),R.var(c.default.rootData,(0,o._)`${c.default.valCxt}.${c.default.rootData}`),D.dynamicRef&&R.var(c.default.dynamicAnchors,(0,o._)`${c.default.valCxt}.${c.default.dynamicAnchors}`)},()=>{R.var(c.default.instancePath,(0,o._)`""`),R.var(c.default.parentData,(0,o._)`undefined`),R.var(c.default.parentDataProperty,(0,o._)`undefined`),R.var(c.default.rootData,c.default.data),D.dynamicRef&&R.var(c.default.dynamicAnchors,(0,o._)`{}`)})}function g(R){const{schema:D,opts:V,gen:K}=R;v(R,()=>{V.$comment&&D.$comment&&L(R),M(R),K.let(c.default.vErrors,null),K.let(c.default.errors,0),V.unevaluated&&y(R),k(R),B(R)})}function y(R){const{gen:D,validateName:V}=R;R.evaluated=D.const("evaluated",(0,o._)`${V}.evaluated`),D.if((0,o._)`${R.evaluated}.dynamicProps`,()=>D.assign((0,o._)`${R.evaluated}.props`,(0,o._)`undefined`)),D.if((0,o._)`${R.evaluated}.dynamicItems`,()=>D.assign((0,o._)`${R.evaluated}.items`,(0,o._)`undefined`))}function f(R,D){const V=typeof R=="object"&&R[D.schemaId];return V&&(D.code.source||D.code.process)?(0,o._)`/*# sourceURL=${V} */`:o.nil}function C(R,D){if(h(R)&&(O(R),x(R))){b(R,D);return}(0,e.boolOrEmptySchema)(R,D)}function x({schema:R,self:D}){if(typeof R=="boolean")return!R;for(const V in R)if(D.RULES.all[V])return!0;return!1}function h(R){return typeof R.schema!="boolean"}function b(R,D){const{schema:V,gen:K,opts:G}=R;G.$comment&&V.$comment&&L(R),q(R),U(R);const W=K.const("_errs",c.default.errors);k(R,W),K.var(D,(0,o._)`${W} === ${c.default.errors}`)}function O(R){(0,u.checkUnknownRules)(R),$(R)}function k(R,D){if(R.opts.jtd)return Y(R,[],!1,D);const V=(0,t.getSchemaTypes)(R.schema),K=(0,t.coerceAndCheckDataType)(R,V);Y(R,V,!K,D)}function $(R){const{schema:D,errSchemaPath:V,opts:K,self:G}=R;D.$ref&&K.ignoreKeywordsWithRef&&(0,u.schemaHasRulesButRef)(D,G.RULES)&&G.logger.warn(`$ref: keywords ignored in schema at path "${V}"`)}function M(R){const{schema:D,opts:V}=R;D.default!==void 0&&V.useDefaults&&V.strictSchema&&(0,u.checkStrictMode)(R,"default is ignored in the schema root")}function q(R){const D=R.schema[R.opts.schemaId];D&&(R.baseId=(0,l.resolveUrl)(R.opts.uriResolver,R.baseId,D))}function U(R){if(R.schema.$async&&!R.schemaEnv.$async)throw new Error("async schema in sync schema")}function L({gen:R,schemaEnv:D,schema:V,errSchemaPath:K,opts:G}){const W=V.$comment;if(G.$comment===!0)R.code((0,o._)`${c.default.self}.logger.log(${W})`);else if(typeof G.$comment=="function"){const te=(0,o.str)`${K}/$comment`,ne=R.scopeValue("root",{ref:D.root});R.code((0,o._)`${c.default.self}.opts.$comment(${W}, ${te}, ${ne}.schema)`)}}function B(R){const{gen:D,schemaEnv:V,validateName:K,ValidationError:G,opts:W}=R;V.$async?D.if((0,o._)`${c.default.errors} === 0`,()=>D.return(c.default.data),()=>D.throw((0,o._)`new ${G}(${c.default.vErrors})`)):(D.assign((0,o._)`${K}.errors`,c.default.vErrors),W.unevaluated&&J(R),D.return((0,o._)`${c.default.errors} === 0`))}function J({gen:R,evaluated:D,props:V,items:K}){V instanceof o.Name&&R.assign((0,o._)`${D}.props`,V),K instanceof o.Name&&R.assign((0,o._)`${D}.items`,K)}function Y(R,D,V,K){const{gen:G,schema:W,data:te,allErrors:ne,opts:se,self:ce}=R,{RULES:he}=ce;if(W.$ref&&(se.ignoreKeywordsWithRef||!(0,u.schemaHasRulesButRef)(W,he))){G.block(()=>T(R,"$ref",he.all.$ref.definition));return}se.jtd||X(R,D),G.block(()=>{for(const ge of he.rules)le(ge);le(he.post)});function le(ge){(0,r.shouldUseGroup)(W,ge)&&(ge.type?(G.if((0,n.checkDataType)(ge.type,te,se.strictNumbers)),Q(R,ge),D.length===1&&D[0]===ge.type&&V&&(G.else(),(0,n.reportTypeError)(R)),G.endIf()):Q(R,ge),ne||G.if((0,o._)`${c.default.errors} === ${K||0}`))}}function Q(R,D){const{gen:V,schema:K,opts:{useDefaults:G}}=R;G&&(0,s.assignDefaults)(R,D.type),V.block(()=>{for(const W of D.rules)(0,r.shouldUseRule)(K,W)&&T(R,W.keyword,W.definition,D.type)})}function X(R,D){R.schemaEnv.meta||!R.opts.strictTypes||(re(R,D),R.opts.allowUnionTypes||A(R,D),w(R,R.dataTypes))}function re(R,D){if(D.length){if(!R.dataTypes.length){R.dataTypes=D;return}D.forEach(V=>{p(R.dataTypes,V)||P(R,`type "${V}" not allowed by context "${R.dataTypes.join(",")}"`)}),d(R,D)}}function A(R,D){D.length>1&&!(D.length===2&&D.includes("null"))&&P(R,"use allowUnionTypes to allow union type keyword")}function w(R,D){const V=R.self.RULES.all;for(const K in V){const G=V[K];if(typeof G=="object"&&(0,r.shouldUseRule)(R.schema,G)){const{type:W}=G.definition;W.length&&!W.some(te=>j(D,te))&&P(R,`missing type "${W.join(",")}" for keyword "${K}"`)}}}function j(R,D){return R.includes(D)||D==="number"&&R.includes("integer")}function p(R,D){return R.includes(D)||D==="integer"&&R.includes("number")}function d(R,D){const V=[];for(const K of R.dataTypes)p(D,K)?V.push(K):D.includes("integer")&&K==="number"&&V.push("integer");R.dataTypes=V}function P(R,D){const V=R.schemaEnv.baseId+R.errSchemaPath;D+=` at "${V}" (strictTypes)`,(0,u.checkStrictMode)(R,D,R.opts.strictTypes)}class I{constructor(D,V,K){if((0,i.validateKeywordUsage)(D,V,K),this.gen=D.gen,this.allErrors=D.allErrors,this.keyword=K,this.data=D.data,this.schema=D.schema[K],this.$data=V.$data&&D.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,u.schemaRefOrVal)(D,this.schema,K,this.$data),this.schemaType=V.schemaType,this.parentSchema=D.schema,this.params={},this.it=D,this.def=V,this.$data)this.schemaCode=D.gen.const("vSchema",H(this.$data,D));else if(this.schemaCode=this.schemaValue,!(0,i.validSchemaType)(this.schema,V.schemaType,V.allowUndefined))throw new Error(`${K} value must be ${JSON.stringify(V.schemaType)}`);("code"in V?V.trackErrors:V.errors!==!1)&&(this.errsCount=D.gen.const("_errs",c.default.errors))}result(D,V,K){this.failResult((0,o.not)(D),V,K)}failResult(D,V,K){this.gen.if(D),K?K():this.error(),V?(this.gen.else(),V(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(D,V){this.failResult((0,o.not)(D),void 0,V)}fail(D){if(D===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(D),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(D){if(!this.$data)return this.fail(D);const{schemaCode:V}=this;this.fail((0,o._)`${V} !== undefined && (${(0,o.or)(this.invalid$data(),D)})`)}error(D,V,K){if(V){this.setParams(V),this._error(D,K),this.setParams({});return}this._error(D,K)}_error(D,V){(D?m.reportExtraError:m.reportError)(this,this.def.error,V)}$dataError(){(0,m.reportError)(this,this.def.$dataError||m.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,m.resetErrorsCount)(this.gen,this.errsCount)}ok(D){this.allErrors||this.gen.if(D)}setParams(D,V){V?Object.assign(this.params,D):this.params=D}block$data(D,V,K=o.nil){this.gen.block(()=>{this.check$data(D,K),V()})}check$data(D=o.nil,V=o.nil){if(!this.$data)return;const{gen:K,schemaCode:G,schemaType:W,def:te}=this;K.if((0,o.or)((0,o._)`${G} === undefined`,V)),D!==o.nil&&K.assign(D,!0),(W.length||te.validateSchema)&&(K.elseIf(this.invalid$data()),this.$dataError(),D!==o.nil&&K.assign(D,!1)),K.else()}invalid$data(){const{gen:D,schemaCode:V,schemaType:K,def:G,it:W}=this;return(0,o.or)(te(),ne());function te(){if(K.length){if(!(V instanceof o.Name))throw new Error("ajv implementation error");const se=Array.isArray(K)?K:[K];return(0,o._)`${(0,n.checkDataTypes)(se,V,W.opts.strictNumbers,n.DataType.Wrong)}`}return o.nil}function ne(){if(G.validateSchema){const se=D.scopeValue("validate$data",{ref:G.validateSchema});return(0,o._)`!${se}(${V})`}return o.nil}}subschema(D,V){const K=(0,a.getSubschema)(this.it,D);(0,a.extendSubschemaData)(K,this.it,D),(0,a.extendSubschemaMode)(K,D);const G={...this.it,...K,items:void 0,props:void 0};return C(G,V),G}mergeEvaluated(D,V){const{it:K,gen:G}=this;K.opts.unevaluated&&(K.props!==!0&&D.props!==void 0&&(K.props=u.mergeEvaluated.props(G,D.props,K.props,V)),K.items!==!0&&D.items!==void 0&&(K.items=u.mergeEvaluated.items(G,D.items,K.items,V)))}mergeValidEvaluated(D,V){const{it:K,gen:G}=this;if(K.opts.unevaluated&&(K.props!==!0||K.items!==!0))return G.if(V,()=>this.mergeEvaluated(D,o.Name)),!0}}Er.KeywordCxt=I;function T(R,D,V,K){const G=new I(R,V,D);"code"in V?V.code(G,K):G.$data&&V.validate?(0,i.funcKeywordCode)(G,V):"macro"in V?(0,i.macroKeywordCode)(G,V):(V.compile||V.validate)&&(0,i.funcKeywordCode)(G,V)}const F=/^\/(?:[^~]|~0|~1)*$/,z=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function H(R,{dataLevel:D,dataNames:V,dataPathArr:K}){let G,W;if(R==="")return c.default.rootData;if(R[0]==="/"){if(!F.test(R))throw new Error(`Invalid JSON-pointer: ${R}`);G=R,W=c.default.rootData}else{const ce=z.exec(R);if(!ce)throw new Error(`Invalid JSON-pointer: ${R}`);const he=+ce[1];if(G=ce[2],G==="#"){if(he>=D)throw new Error(se("property/index",he));return K[D-he]}if(he>D)throw new Error(se("data",he));if(W=V[D-he],!G)return W}let te=W;const ne=G.split("/");for(const ce of ne)ce&&(W=(0,o._)`${W}${(0,o.getProperty)((0,u.unescapeJsonPointer)(ce))}`,te=(0,o._)`${te} && ${W}`);return te;function se(ce,he){return`Cannot access ${ce} ${he} levels up, current level is ${D}`}}return Er.getData=H,Er}var Ts={},Ff;function hl(){if(Ff)return Ts;Ff=1,Object.defineProperty(Ts,"__esModule",{value:!0});class e extends Error{constructor(r){super("validation failed"),this.errors=r,this.ajv=this.validation=!0}}return Ts.default=e,Ts}var Ms={},Df;function oo(){if(Df)return Ms;Df=1,Object.defineProperty(Ms,"__esModule",{value:!0});const e=so();class t extends Error{constructor(n,s,i,a){super(a||`can't resolve reference ${i} from id ${s}`),this.missingRef=(0,e.resolveUrl)(n,s,i),this.missingSchema=(0,e.normalizeId)((0,e.getFullPath)(n,this.missingRef))}}return Ms.default=t,Ms}var Mt={},Tf;function ml(){if(Tf)return Mt;Tf=1,Object.defineProperty(Mt,"__esModule",{value:!0}),Mt.resolveSchema=Mt.getCompilingSchema=Mt.resolveRef=Mt.compileSchema=Mt.SchemaEnv=void 0;const e=Oe(),t=hl(),r=nn(),n=so(),s=Me(),i=ao();class a{constructor(y){var f;this.refs={},this.dynamicAnchors={};let C;typeof y.schema=="object"&&(C=y.schema),this.schema=y.schema,this.schemaId=y.schemaId,this.root=y.root||this,this.baseId=(f=y.baseId)!==null&&f!==void 0?f:(0,n.normalizeId)(C?.[y.schemaId||"$id"]),this.schemaPath=y.schemaPath,this.localRefs=y.localRefs,this.meta=y.meta,this.$async=C?.$async,this.refs={}}}Mt.SchemaEnv=a;function o(g){const y=u.call(this,g);if(y)return y;const f=(0,n.getFullPath)(this.opts.uriResolver,g.root.baseId),{es5:C,lines:x}=this.opts.code,{ownProperties:h}=this.opts,b=new e.CodeGen(this.scope,{es5:C,lines:x,ownProperties:h});let O;g.$async&&(O=b.scopeValue("Error",{ref:t.default,code:(0,e._)`require("ajv/dist/runtime/validation_error").default`}));const k=b.scopeName("validate");g.validateName=k;const $={gen:b,allErrors:this.opts.allErrors,data:r.default.data,parentData:r.default.parentData,parentDataProperty:r.default.parentDataProperty,dataNames:[r.default.data],dataPathArr:[e.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:b.scopeValue("schema",this.opts.code.source===!0?{ref:g.schema,code:(0,e.stringify)(g.schema)}:{ref:g.schema}),validateName:k,ValidationError:O,schema:g.schema,schemaEnv:g,rootId:f,baseId:g.baseId||f,schemaPath:e.nil,errSchemaPath:g.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,e._)`""`,opts:this.opts,self:this};let M;try{this._compilations.add(g),(0,i.validateFunctionCode)($),b.optimize(this.opts.code.optimize);const q=b.toString();M=`${b.scopeRefs(r.default.scope)}return ${q}`,this.opts.code.process&&(M=this.opts.code.process(M,g));const L=new Function(`${r.default.self}`,`${r.default.scope}`,M)(this,this.scope.get());if(this.scope.value(k,{ref:L}),L.errors=null,L.schema=g.schema,L.schemaEnv=g,g.$async&&(L.$async=!0),this.opts.code.source===!0&&(L.source={validateName:k,validateCode:q,scopeValues:b._values}),this.opts.unevaluated){const{props:B,items:J}=$;L.evaluated={props:B instanceof e.Name?void 0:B,items:J instanceof e.Name?void 0:J,dynamicProps:B instanceof e.Name,dynamicItems:J instanceof e.Name},L.source&&(L.source.evaluated=(0,e.stringify)(L.evaluated))}return g.validate=L,g}catch(q){throw delete g.validate,delete g.validateName,M&&this.logger.error("Error compiling schema, function code:",M),q}finally{this._compilations.delete(g)}}Mt.compileSchema=o;function c(g,y,f){var C;f=(0,n.resolveUrl)(this.opts.uriResolver,y,f);const x=g.refs[f];if(x)return x;let h=_.call(this,g,f);if(h===void 0){const b=(C=g.localRefs)===null||C===void 0?void 0:C[f],{schemaId:O}=this.opts;b&&(h=new a({schema:b,schemaId:O,root:g,baseId:y}))}if(h!==void 0)return g.refs[f]=l.call(this,h)}Mt.resolveRef=c;function l(g){return(0,n.inlineRef)(g.schema,this.opts.inlineRefs)?g.schema:g.validate?g:o.call(this,g)}function u(g){for(const y of this._compilations)if(m(y,g))return y}Mt.getCompilingSchema=u;function m(g,y){return g.schema===y.schema&&g.root===y.root&&g.baseId===y.baseId}function _(g,y){let f;for(;typeof(f=this.refs[y])=="string";)y=f;return f||this.schemas[y]||v.call(this,g,y)}function v(g,y){const f=this.opts.uriResolver.parse(y),C=(0,n._getFullPath)(this.opts.uriResolver,f);let x=(0,n.getFullPath)(this.opts.uriResolver,g.baseId,void 0);if(Object.keys(g.schema).length>0&&C===x)return E.call(this,f,g);const h=(0,n.normalizeId)(C),b=this.refs[h]||this.schemas[h];if(typeof b=="string"){const O=v.call(this,g,b);return typeof O?.schema!="object"?void 0:E.call(this,f,O)}if(typeof b?.schema=="object"){if(b.validate||o.call(this,b),h===(0,n.normalizeId)(y)){const{schema:O}=b,{schemaId:k}=this.opts,$=O[k];return $&&(x=(0,n.resolveUrl)(this.opts.uriResolver,x,$)),new a({schema:O,schemaId:k,root:g,baseId:x})}return E.call(this,f,b)}}Mt.resolveSchema=v;const S=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function E(g,{baseId:y,schema:f,root:C}){var x;if(((x=g.fragment)===null||x===void 0?void 0:x[0])!=="/")return;for(const O of g.fragment.slice(1).split("/")){if(typeof f=="boolean")return;const k=f[(0,s.unescapeFragment)(O)];if(k===void 0)return;f=k;const $=typeof f=="object"&&f[this.opts.schemaId];!S.has(O)&&$&&(y=(0,n.resolveUrl)(this.opts.uriResolver,y,$))}let h;if(typeof f!="boolean"&&f.$ref&&!(0,s.schemaHasRulesButRef)(f,this.RULES)){const O=(0,n.resolveUrl)(this.opts.uriResolver,y,f.$ref);h=v.call(this,C,O)}const{schemaId:b}=this.opts;if(h=h||new a({schema:f,schemaId:b,root:C,baseId:y}),h.schema!==h.root.schema)return h}return Mt}const S1="https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",w1="Meta-schema for $data reference (JSON AnySchema extension proposal)",C1="object",E1=["$data"],A1={$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},P1=!1,x1={$id:S1,description:w1,type:C1,required:E1,properties:A1,additionalProperties:P1};var qs={},wi={exports:{}},cc,Mf;function rp(){if(Mf)return cc;Mf=1;const e=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),t=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u),r=RegExp.prototype.test.bind(/^\d*$/u),n=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),s=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),i=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/]$/u),a=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/?]$/u),o=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:]$/u),c=new Array(256);{const A="0123456789ABCDEF";for(let w=0;w<256;w++)c[w]="%"+A[w>>4]+A[w&15]}function l(A){return A<2048?c[192|A>>6]+c[128|A&63]:A<65536?c[224|A>>12]+c[128|A>>6&63]+c[128|A&63]:c[240|A>>18]+c[128|A>>12&63]+c[128|A>>6&63]+c[128|A&63]}function u(A){let w="",j=0,p=0;for(p=0;p=48&&j<=57||j>=65&&j<=70||j>=97&&j<=102))return"";w+=A[p];break}for(p+=1;p=48&&j<=57||j>=65&&j<=70||j>=97&&j<=102))return"";w+=A[p]}return w}const m=RegExp.prototype.test.bind(/^[\dA-Fa-f]{1,4}$/),_=RegExp.prototype.test.bind(/^[vV][\dA-Fa-f]+\.[A-Za-z\d\-._~!$&'()*+,;=:]+$/),v=RegExp.prototype.test.bind(/^[A-Za-z\d\-._~]$/),S=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function E(A){if(A.length===0)return!1;for(let w=0;wj&&(j=d,w=p)):(p=-1,d=0);if(j<2)return A.join(":");const P=A.slice(0,w).join(":"),I=A.slice(w+j).join(":");return P+"::"+I}function y(A){const w=A.indexOf("::");if(w!==-1&&A.indexOf("::",w+1)!==-1)return;const j=w===-1?A.split(":"):A.slice(0,w).split(":"),p=w===-1?[]:A.slice(w+2).split(":");w!==-1&&(j.length===1&&j[0]===""&&(j.length=0),p.length===1&&p[0]===""&&(p.length=0));const d=j.concat(p);let P=0;for(let T=0;T=8)return;const I=d.slice(0,j.length);for(let T=P;T<8;T++)I.push("0");for(let T=j.length;Th[p])}function $(A,w=!1){if(A.indexOf("%")===-1)return A;let j="";for(let p=0;p57343)w+=l(d);else if(d<=56319&&j+1=56320&&P<=57343?(w+=l(65536+(d-55296<<10)+(P-56320)),j++):w+=l(65533)}else w+=l(65533)}}return w}function q(A,w=!1){let j="",p=w&&A[0]!=="/";for(let d=0;d57343)j+=l(I);else if(I<=56319&&d+1=56320&&T<=57343?(j+=l(65536+(I-55296<<10)+(T-56320)),d++):j+=l(65533)}else j+=l(65533)}}return j}function U(A,w){let j="";for(let p=0;p57343)j+=l(P);else if(P<=56319&&p+1=56320&&I<=57343?(j+=l(65536+(P-55296<<10)+(I-56320)),p++):j+=l(65533)}else j+=l(65533)}}return j}function L(A){return U(A,o)}function B(A){return U(A,a)}function J(A){return U(A,a)}function Y(A){return A>=48&&A<=57||A>=65&&A<=90||A>=97&&A<=122||A===42||A===43||A===45||A===46||A===47||A===64||A===95}function Q(A){let w="";for(let j=0;j57343)w+=l(d);else if(d<=56319&&j+1=56320&&P<=57343?(w+=l(65536+(d-55296<<10)+(P-56320)),j++):w+=l(65533)}else w+=l(65533)}}return w}function X(A){let w="";for(let j=0;j65535))return"URI port is malformed."}function M(A){if(A===void 0)return!1;let w=A.indexOf("%");for(;w!==-1;){if(w+2>=A.length||!/^[\da-f]{2}$/iu.test(A.slice(w+1,w+3)))return!0;w=A.indexOf("%",w+3)}return!1}function q(A){return A[0]==="["&&A[A.length-1]==="]"}function U(A){const w=A[4];return M(A[3])||w!==void 0&&!q(w)&&M(w)||M(A[6])||M(A[7])||M(A[8])}function L(A,w,j,p){if(!w.unicodeSupport&&(!j||!j.unicodeSupport)&&A.host&&!q(A.host)&&(w.domainHost||j&&j.domainHost)&&p===!1&&m(A.host))try{A.host=new URL("http://"+A.host).hostname}catch(d){return A.error=A.error||"Host's domain name can not be converted to ASCII: "+d,!0}return!1}function B(A,w){const j=Object.assign({},w),p={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0};let d=!1,P=!1,I=!1,T=!1,F=!1,z=!1,H=!1;j.reference==="suffix"&&(j.scheme?A=j.scheme+":"+A:A="//"+A);const R=A.match(O);R!==null&&R[1].indexOf("\\")!==-1&&(p.error="URI authority must not contain a literal backslash.",d=!0);const D=A.match(k);if(D!==null){const K=D[1],G=K.replace(/[\t\n\r]/g,"");G.length>=2&&(G.slice(0,2)!=="//"?(p.error=p.error||"URI authority must not contain a literal backslash.",d=!0):K.length!==G.length&&(p.error=p.error||"URI authority introducer must not contain whitespace.",d=!0))}const V=A.match(b);if(V){if(p.scheme=V[1],p.userinfo=V[3],p.host=V[4],p.port=parseInt(V[5],10),p.path=V[6]||"",p.query=V[7],p.fragment=V[8],p.scheme!==void 0){const W=unescape(p.scheme);S.test(W)?p.scheme=W.toLowerCase():(p.error=p.error||E,z=!0)}P=U(V),P&&(p.error=p.error||"URI contains malformed percent-encoding."),isNaN(p.port)&&(p.port=V[5]);const K=$(p,V);if(K!==void 0&&(p.error=p.error||K,d=!0),p.host)if(u(p.host)===!1){const te=q(p.host),ne=p.host.indexOf("[")!==-1||p.host.indexOf("]")!==-1,se=e(p.host);H=se.isIPV6||se.isIPVFuture===!0,F=ne&&(!te||se.error===!0),p.host=H?se.host:se.host.toLowerCase(),F&&(p.error=p.error||"URI host is malformed.",d=!0)}else H=!0;p.scheme===void 0&&p.userinfo===void 0&&p.host===void 0&&p.port===void 0&&p.query===void 0&&!p.path?p.reference="same-document":p.scheme===void 0?p.reference="relative":p.fragment===void 0?p.reference="absolute":p.reference="uri",j.reference&&j.reference!=="suffix"&&j.reference!==p.reference&&(p.error=p.error||"URI is not a "+j.reference+" reference.");const G=v(j.scheme||p.scheme);if(F||(T=L(p,j,G,H)),!G||G&&!G.skipNormalize){if(A.indexOf("%")!==-1&&p.host!==void 0&&!F){const W=H?p.host:n(p.host,!0);p.host=l(W,H)}p.path&&(p.path=s(p.path)),p.query&&(p.query=a(p.query)),p.fragment&&(p.fragment=a(p.fragment))}G&&G.parse&&(G.parse(p,j),G===_.urn&&p.nid===void 0&&(I=!0))}else p.error=p.error||"URI can not be parsed.";return{parsed:p,malformedAuthorityOrPort:d,malformedPercentEncoding:P,malformedSchemeSpecific:I,malformedHost:T,malformedScheme:z}}function J(A,w){return B(A,w).parsed}function Y(A,w){return Q(A,w).normalized}function Q(A,w){const{parsed:j,malformedAuthorityOrPort:p,malformedPercentEncoding:d,malformedSchemeSpecific:P,malformedHost:I,malformedScheme:T}=B(A,w);return{normalized:p||d||P||I||T?A:h(j,w),malformedAuthorityOrPort:p,malformedPercentEncoding:d,malformedSchemeSpecific:P,malformedHost:I,malformedScheme:T}}function X(A,w){if(typeof A!="string"&&typeof A!="object")return;let j;try{j=typeof A=="string"?A:h(A,w)}catch{return}const{normalized:p,malformedAuthorityOrPort:d,malformedPercentEncoding:P,malformedSchemeSpecific:I,malformedHost:T,malformedScheme:F}=Q(j,w);return d||P||I||T||F?void 0:p}const re={SCHEMES:_,normalize:y,resolve:f,resolveComponent:C,equal:x,serialize:h,parse:J};return wi.exports=re,wi.exports.default=re,wi.exports.fastUri=re,wi.exports}var Lf;function k1(){if(Lf)return qs;Lf=1,Object.defineProperty(qs,"__esModule",{value:!0});const e=j1();return e.code='require("ajv/dist/runtime/uri").default',qs.default=e,qs}var Vf;function I1(){return Vf||(Vf=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=void 0;var t=ao();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return t.KeywordCxt}});var r=Oe();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return r._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return r.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return r.CodeGen}});const n=hl(),s=oo(),i=ep(),a=ml(),o=Oe(),c=so(),l=Ba(),u=Me(),m=x1,_=k1(),v=(A,w)=>new RegExp(A,w);v.code="new RegExp";const S=["removeAdditional","useDefaults","coerceTypes"],E=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),g={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},y={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},f=200;function C(A){var w,j,p,d,P,I,T,F,z,H,R,D,V,K,G,W,te,ne,se,ce,he,le,ge,Fe,fe;const Ye=A.strict,ye=(w=A.code)===null||w===void 0?void 0:w.optimize,oe=ye===!0||ye===void 0?1:ye||0,ft=(p=(j=A.code)===null||j===void 0?void 0:j.regExp)!==null&&p!==void 0?p:v,ke=(d=A.uriResolver)!==null&&d!==void 0?d:_.default;return{strictSchema:(I=(P=A.strictSchema)!==null&&P!==void 0?P:Ye)!==null&&I!==void 0?I:!0,strictNumbers:(F=(T=A.strictNumbers)!==null&&T!==void 0?T:Ye)!==null&&F!==void 0?F:!0,strictTypes:(H=(z=A.strictTypes)!==null&&z!==void 0?z:Ye)!==null&&H!==void 0?H:"log",strictTuples:(D=(R=A.strictTuples)!==null&&R!==void 0?R:Ye)!==null&&D!==void 0?D:"log",strictRequired:(K=(V=A.strictRequired)!==null&&V!==void 0?V:Ye)!==null&&K!==void 0?K:!1,code:A.code?{...A.code,optimize:oe,regExp:ft}:{optimize:oe,regExp:ft},loopRequired:(G=A.loopRequired)!==null&&G!==void 0?G:f,loopEnum:(W=A.loopEnum)!==null&&W!==void 0?W:f,meta:(te=A.meta)!==null&&te!==void 0?te:!0,messages:(ne=A.messages)!==null&&ne!==void 0?ne:!0,inlineRefs:(se=A.inlineRefs)!==null&&se!==void 0?se:!0,schemaId:(ce=A.schemaId)!==null&&ce!==void 0?ce:"$id",addUsedSchema:(he=A.addUsedSchema)!==null&&he!==void 0?he:!0,validateSchema:(le=A.validateSchema)!==null&&le!==void 0?le:!0,validateFormats:(ge=A.validateFormats)!==null&&ge!==void 0?ge:!0,unicodeRegExp:(Fe=A.unicodeRegExp)!==null&&Fe!==void 0?Fe:!0,int32range:(fe=A.int32range)!==null&&fe!==void 0?fe:!0,uriResolver:ke}}class x{constructor(w={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,w=this.opts={...w,...C(w)};const{es5:j,lines:p}=this.opts.code;this.scope=new o.ValueScope({scope:{},prefixes:E,es5:j,lines:p}),this.logger=U(w.logger);const d=w.validateFormats;w.validateFormats=!1,this.RULES=(0,i.getRules)(),h.call(this,g,w,"NOT SUPPORTED"),h.call(this,y,w,"DEPRECATED","warn"),this._metaOpts=M.call(this),w.formats&&k.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),w.keywords&&$.call(this,w.keywords),typeof w.meta=="object"&&this.addMetaSchema(w.meta),O.call(this),w.validateFormats=d}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){const{$data:w,meta:j,schemaId:p}=this.opts;let d=m;p==="id"&&(d={...m},d.id=d.$id,delete d.$id),j&&w&&this.addMetaSchema(d,d[p],!1)}defaultMeta(){const{meta:w,schemaId:j}=this.opts;return this.opts.defaultMeta=typeof w=="object"?w[j]||w:void 0}validate(w,j){let p;if(typeof w=="string"){if(p=this.getSchema(w),!p)throw new Error(`no schema with key or ref "${w}"`)}else p=this.compile(w);const d=p(j);return"$async"in p||(this.errors=p.errors),d}compile(w,j){const p=this._addSchema(w,j);return p.validate||this._compileSchemaEnv(p)}compileAsync(w,j){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");const{loadSchema:p}=this.opts;return d.call(this,w,j);async function d(H,R){await P.call(this,H.$schema);const D=this._addSchema(H,R);return D.validate||I.call(this,D)}async function P(H){H&&!this.getSchema(H)&&await d.call(this,{$ref:H},!0)}async function I(H){try{return this._compileSchemaEnv(H)}catch(R){if(!(R instanceof s.default))throw R;return T.call(this,R),await F.call(this,R.missingSchema),I.call(this,H)}}function T({missingSchema:H,missingRef:R}){if(this.refs[H])throw new Error(`AnySchema ${H} is loaded but ${R} cannot be resolved`)}async function F(H){const R=await z.call(this,H);this.refs[H]||await P.call(this,R.$schema),this.refs[H]||this.addSchema(R,H,j)}async function z(H){const R=this._loading[H];if(R)return R;try{return await(this._loading[H]=p(H))}finally{delete this._loading[H]}}}addSchema(w,j,p,d=this.opts.validateSchema){if(Array.isArray(w)){for(const I of w)this.addSchema(I,void 0,p,d);return this}let P;if(typeof w=="object"){const{schemaId:I}=this.opts;if(P=w[I],P!==void 0&&typeof P!="string")throw new Error(`schema ${I} must be string`)}return j=(0,c.normalizeId)(j||P),this._checkUnique(j),this.schemas[j]=this._addSchema(w,p,j,d,!0),this}addMetaSchema(w,j,p=this.opts.validateSchema){return this.addSchema(w,j,!0,p),this}validateSchema(w,j){if(typeof w=="boolean")return!0;let p;if(p=w.$schema,p!==void 0&&typeof p!="string")throw new Error("$schema must be a string");if(p=p||this.opts.defaultMeta||this.defaultMeta(),!p)return this.logger.warn("meta-schema not available"),this.errors=null,!0;const d=this.validate(p,w);if(!d&&j){const P="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(P);else throw new Error(P)}return d}getSchema(w){let j;for(;typeof(j=b.call(this,w))=="string";)w=j;if(j===void 0){const{schemaId:p}=this.opts,d=new a.SchemaEnv({schema:{},schemaId:p});if(j=a.resolveSchema.call(this,d,w),!j)return;this.refs[w]=j}return j.validate||this._compileSchemaEnv(j)}removeSchema(w){if(w instanceof RegExp)return this._removeAllSchemas(this.schemas,w),this._removeAllSchemas(this.refs,w),this;switch(typeof w){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{const j=b.call(this,w);return typeof j=="object"&&this._cache.delete(j.schema),delete this.schemas[w],delete this.refs[w],this}case"object":{const j=w;this._cache.delete(j);let p=w[this.opts.schemaId];return p&&(p=(0,c.normalizeId)(p),delete this.schemas[p],delete this.refs[p]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(w){for(const j of w)this.addKeyword(j);return this}addKeyword(w,j){let p;if(typeof w=="string")p=w,typeof j=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),j.keyword=p);else if(typeof w=="object"&&j===void 0){if(j=w,p=j.keyword,Array.isArray(p)&&!p.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(B.call(this,p,j),!j)return(0,u.eachItem)(p,P=>J.call(this,P)),this;Q.call(this,j);const d={...j,type:(0,l.getJSONTypes)(j.type),schemaType:(0,l.getJSONTypes)(j.schemaType)};return(0,u.eachItem)(p,d.type.length===0?P=>J.call(this,P,d):P=>d.type.forEach(I=>J.call(this,P,d,I))),this}getKeyword(w){const j=this.RULES.all[w];return typeof j=="object"?j.definition:!!j}removeKeyword(w){const{RULES:j}=this;delete j.keywords[w],delete j.all[w];for(const p of j.rules){const d=p.rules.findIndex(P=>P.keyword===w);d>=0&&p.rules.splice(d,1)}return this}addFormat(w,j){return typeof j=="string"&&(j=new RegExp(j)),this.formats[w]=j,this}errorsText(w=this.errors,{separator:j=", ",dataVar:p="data"}={}){return!w||w.length===0?"No errors":w.map(d=>`${p}${d.instancePath} ${d.message}`).reduce((d,P)=>d+j+P)}$dataMetaSchema(w,j){const p=this.RULES.all;w=JSON.parse(JSON.stringify(w));for(const d of j){const P=d.split("/").slice(1);let I=w;for(const T of P)I=I[T];for(const T in p){const F=p[T];if(typeof F!="object")continue;const{$data:z}=F.definition,H=I[T];z&&H&&(I[T]=re(H))}}return w}_removeAllSchemas(w,j){for(const p in w){const d=w[p];(!j||j.test(p))&&(typeof d=="string"?delete w[p]:d&&!d.meta&&(this._cache.delete(d.schema),delete w[p]))}}_addSchema(w,j,p,d=this.opts.validateSchema,P=this.opts.addUsedSchema){let I;const{schemaId:T}=this.opts;if(typeof w=="object")I=w[T];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof w!="boolean")throw new Error("schema must be object or boolean")}let F=this._cache.get(w);if(F!==void 0)return F;p=(0,c.normalizeId)(I||p);const z=c.getSchemaRefs.call(this,w,p);return F=new a.SchemaEnv({schema:w,schemaId:T,meta:j,baseId:p,localRefs:z}),this._cache.set(F.schema,F),P&&!p.startsWith("#")&&(p&&this._checkUnique(p),this.refs[p]=F),d&&this.validateSchema(w,!0),F}_checkUnique(w){if(this.schemas[w]||this.refs[w])throw new Error(`schema with key or id "${w}" already exists`)}_compileSchemaEnv(w){if(w.meta?this._compileMetaSchema(w):a.compileSchema.call(this,w),!w.validate)throw new Error("ajv implementation error");return w.validate}_compileMetaSchema(w){const j=this.opts;this.opts=this._metaOpts;try{a.compileSchema.call(this,w)}finally{this.opts=j}}}x.ValidationError=n.default,x.MissingRefError=s.default,e.default=x;function h(A,w,j,p="error"){for(const d in A){const P=d;P in w&&this.logger[p](`${j}: option ${d}. ${A[P]}`)}}function b(A){return A=(0,c.normalizeId)(A),this.schemas[A]||this.refs[A]}function O(){const A=this.opts.schemas;if(A)if(Array.isArray(A))this.addSchema(A);else for(const w in A)this.addSchema(A[w],w)}function k(){for(const A in this.opts.formats){const w=this.opts.formats[A];w&&this.addFormat(A,w)}}function $(A){if(Array.isArray(A)){this.addVocabulary(A);return}this.logger.warn("keywords option as map is deprecated, pass array");for(const w in A){const j=A[w];j.keyword||(j.keyword=w),this.addKeyword(j)}}function M(){const A={...this.opts};for(const w of S)delete A[w];return A}const q={log(){},warn(){},error(){}};function U(A){if(A===!1)return q;if(A===void 0)return console;if(A.log&&A.warn&&A.error)return A;throw new Error("logger must implement log, warn and error methods")}const L=/^[a-z_$][a-z0-9_$:-]*$/i;function B(A,w){const{RULES:j}=this;if((0,u.eachItem)(A,p=>{if(j.keywords[p])throw new Error(`Keyword ${p} is already defined`);if(!L.test(p))throw new Error(`Keyword ${p} has invalid name`)}),!!w&&w.$data&&!("code"in w||"validate"in w))throw new Error('$data keyword must have "code" or "validate" function')}function J(A,w,j){var p;const d=w?.post;if(j&&d)throw new Error('keyword with "post" flag cannot have "type"');const{RULES:P}=this;let I=d?P.post:P.rules.find(({type:F})=>F===j);if(I||(I={type:j,rules:[]},P.rules.push(I)),P.keywords[A]=!0,!w)return;const T={keyword:A,definition:{...w,type:(0,l.getJSONTypes)(w.type),schemaType:(0,l.getJSONTypes)(w.schemaType)}};w.before?Y.call(this,I,T,w.before):I.rules.push(T),P.all[A]=T,(p=w.implements)===null||p===void 0||p.forEach(F=>this.addKeyword(F))}function Y(A,w,j){const p=A.rules.findIndex(d=>d.keyword===j);p>=0?A.rules.splice(p,0,w):(A.rules.push(w),this.logger.warn(`rule ${j} is not defined`))}function Q(A){let{metaSchema:w}=A;w!==void 0&&(A.$data&&this.opts.$data&&(w=re(w)),A.validateSchema=this.compile(w,!0))}const X={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function re(A){return{anyOf:[A,X]}}})(rc)),rc}var Us={},Ls={},Vs={},zf;function N1(){if(zf)return Vs;zf=1,Object.defineProperty(Vs,"__esModule",{value:!0});const e={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};return Vs.default=e,Vs}var Mr={},Bf;function R1(){if(Bf)return Mr;Bf=1,Object.defineProperty(Mr,"__esModule",{value:!0}),Mr.callRef=Mr.getValidate=void 0;const e=oo(),t=ar(),r=Oe(),n=nn(),s=ml(),i=Me(),a={keyword:"$ref",schemaType:"string",code(l){const{gen:u,schema:m,it:_}=l,{baseId:v,schemaEnv:S,validateName:E,opts:g,self:y}=_,{root:f}=S;if((m==="#"||m==="#/")&&v===f.baseId)return x();const C=s.resolveRef.call(y,f,v,m);if(C===void 0)throw new e.default(_.opts.uriResolver,v,m);if(C instanceof s.SchemaEnv)return h(C);return b(C);function x(){if(S===f)return c(l,E,S,S.$async);const O=u.scopeValue("root",{ref:f});return c(l,(0,r._)`${O}.validate`,f,f.$async)}function h(O){const k=o(l,O);c(l,k,O,O.$async)}function b(O){const k=u.scopeValue("schema",g.code.source===!0?{ref:O,code:(0,r.stringify)(O)}:{ref:O}),$=u.name("valid"),M=l.subschema({schema:O,dataTypes:[],schemaPath:r.nil,topSchemaRef:k,errSchemaPath:m},$);l.mergeEvaluated(M),l.ok($)}}};function o(l,u){const{gen:m}=l;return u.validate?m.scopeValue("validate",{ref:u.validate}):(0,r._)`${m.scopeValue("wrapper",{ref:u})}.validate`}Mr.getValidate=o;function c(l,u,m,_){const{gen:v,it:S}=l,{allErrors:E,schemaEnv:g,opts:y}=S,f=y.passContext?n.default.this:r.nil;_?C():x();function C(){if(!g.$async)throw new Error("async schema referenced by sync schema");const O=v.let("valid");v.try(()=>{v.code((0,r._)`await ${(0,t.callValidateCode)(l,u,f)}`),b(u),E||v.assign(O,!0)},k=>{v.if((0,r._)`!(${k} instanceof ${S.ValidationError})`,()=>v.throw(k)),h(k),E||v.assign(O,!1)}),l.ok(O)}function x(){l.result((0,t.callValidateCode)(l,u,f),()=>b(u),()=>h(u))}function h(O){const k=(0,r._)`${O}.errors`;v.assign(n.default.vErrors,(0,r._)`${n.default.vErrors} === null ? ${k} : ${n.default.vErrors}.concat(${k})`),v.assign(n.default.errors,(0,r._)`${n.default.vErrors}.length`)}function b(O){var k;if(!S.opts.unevaluated)return;const $=(k=m?.validate)===null||k===void 0?void 0:k.evaluated;if(S.props!==!0)if($&&!$.dynamicProps)$.props!==void 0&&(S.props=i.mergeEvaluated.props(v,$.props,S.props));else{const M=v.var("props",(0,r._)`${O}.evaluated.props`);S.props=i.mergeEvaluated.props(v,M,S.props,r.Name)}if(S.items!==!0)if($&&!$.dynamicItems)$.items!==void 0&&(S.items=i.mergeEvaluated.items(v,$.items,S.items));else{const M=v.var("items",(0,r._)`${O}.evaluated.items`);S.items=i.mergeEvaluated.items(v,M,S.items,r.Name)}}}return Mr.callRef=c,Mr.default=a,Mr}var Hf;function $1(){if(Hf)return Ls;Hf=1,Object.defineProperty(Ls,"__esModule",{value:!0});const e=N1(),t=R1(),r=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",e.default,t.default];return Ls.default=r,Ls}var zs={},Bs={},Kf;function F1(){if(Kf)return Bs;Kf=1,Object.defineProperty(Bs,"__esModule",{value:!0});const e=Oe(),t=e.operators,r={maximum:{okStr:"<=",ok:t.LTE,fail:t.GT},minimum:{okStr:">=",ok:t.GTE,fail:t.LT},exclusiveMaximum:{okStr:"<",ok:t.LT,fail:t.GTE},exclusiveMinimum:{okStr:">",ok:t.GT,fail:t.LTE}},n={message:({keyword:i,schemaCode:a})=>(0,e.str)`must be ${r[i].okStr} ${a}`,params:({keyword:i,schemaCode:a})=>(0,e._)`{comparison: ${r[i].okStr}, limit: ${a}}`},s={keyword:Object.keys(r),type:"number",schemaType:"number",$data:!0,error:n,code(i){const{keyword:a,data:o,schemaCode:c}=i;i.fail$data((0,e._)`${o} ${r[a].fail} ${c} || isNaN(${o})`)}};return Bs.default=s,Bs}var Hs={},Gf;function D1(){if(Gf)return Hs;Gf=1,Object.defineProperty(Hs,"__esModule",{value:!0});const e=Oe(),r={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:{message:({schemaCode:n})=>(0,e.str)`must be multiple of ${n}`,params:({schemaCode:n})=>(0,e._)`{multipleOf: ${n}}`},code(n){const{gen:s,data:i,schemaCode:a,it:o}=n,c=o.opts.multipleOfPrecision,l=s.let("res"),u=c?(0,e._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${c}`:(0,e._)`${l} !== parseInt(${l})`;n.fail$data((0,e._)`(${a} === 0 || (${l} = ${i}/${a}, ${u}))`)}};return Hs.default=r,Hs}var Ks={},Gs={},Wf;function T1(){if(Wf)return Gs;Wf=1,Object.defineProperty(Gs,"__esModule",{value:!0});function e(t){const r=t.length;let n=0,s=0,i;for(;s=55296&&i<=56319&&s(0,e._)`{limit: ${i}}`},code(i){const{keyword:a,data:o,schemaCode:c,it:l}=i,u=a==="maxLength"?e.operators.GT:e.operators.LT,m=l.opts.unicode===!1?(0,e._)`${o}.length`:(0,e._)`${(0,t.useFunc)(i.gen,r.default)}(${o})`;i.fail$data((0,e._)`${m} ${u} ${c}`)}};return Ks.default=s,Ks}var Ws={},Yf;function q1(){if(Yf)return Ws;Yf=1,Object.defineProperty(Ws,"__esModule",{value:!0});const e=ar(),t=Me(),r=Oe(),s={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:{message:({schemaCode:i})=>(0,r.str)`must match pattern "${i}"`,params:({schemaCode:i})=>(0,r._)`{pattern: ${i}}`},code(i){const{gen:a,data:o,$data:c,schema:l,schemaCode:u,it:m}=i,_=m.opts.unicodeRegExp?"u":"";if(c){const{regExp:v}=m.opts.code,S=v.code==="new RegExp"?(0,r._)`new RegExp`:(0,t.useFunc)(a,v),E=a.let("valid");a.try(()=>a.assign(E,(0,r._)`${S}(${u}, ${_}).test(${o})`),()=>a.assign(E,!1)),i.fail$data((0,r._)`!${E}`)}else{const v=(0,e.usePattern)(i,l);i.fail$data((0,r._)`!${v}.test(${o})`)}}};return Ws.default=s,Ws}var Js={},Xf;function U1(){if(Xf)return Js;Xf=1,Object.defineProperty(Js,"__esModule",{value:!0});const e=Oe(),r={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:{message({keyword:n,schemaCode:s}){const i=n==="maxProperties"?"more":"fewer";return(0,e.str)`must NOT have ${i} than ${s} properties`},params:({schemaCode:n})=>(0,e._)`{limit: ${n}}`},code(n){const{keyword:s,data:i,schemaCode:a}=n,o=s==="maxProperties"?e.operators.GT:e.operators.LT;n.fail$data((0,e._)`Object.keys(${i}).length ${o} ${a}`)}};return Js.default=r,Js}var Ys={},Zf;function L1(){if(Zf)return Ys;Zf=1,Object.defineProperty(Ys,"__esModule",{value:!0});const e=ar(),t=Oe(),r=Me(),s={keyword:"required",type:"object",schemaType:"array",$data:!0,error:{message:({params:{missingProperty:i}})=>(0,t.str)`must have required property '${i}'`,params:({params:{missingProperty:i}})=>(0,t._)`{missingProperty: ${i}}`},code(i){const{gen:a,schema:o,schemaCode:c,data:l,$data:u,it:m}=i,{opts:_}=m;if(!u&&o.length===0)return;const v=o.length>=_.loopRequired;if(m.allErrors?S():E(),_.strictRequired){const f=i.parentSchema.properties,{definedProperties:C}=i.it;for(const x of o)if(f?.[x]===void 0&&!C.has(x)){const h=m.schemaEnv.baseId+m.errSchemaPath,b=`required property "${x}" is not defined at "${h}" (strictRequired)`;(0,r.checkStrictMode)(m,b,m.opts.strictRequired)}}function S(){if(v||u)i.block$data(t.nil,g);else for(const f of o)(0,e.checkReportMissingProp)(i,f)}function E(){const f=a.let("missing");if(v||u){const C=a.let("valid",!0);i.block$data(C,()=>y(f,C)),i.ok(C)}else a.if((0,e.checkMissingProp)(i,o,f)),(0,e.reportMissingProp)(i,f),a.else()}function g(){a.forOf("prop",c,f=>{i.setParams({missingProperty:f}),a.if((0,e.noPropertyInData)(a,l,f,_.ownProperties),()=>i.error())})}function y(f,C){i.setParams({missingProperty:f}),a.forOf(f,c,()=>{a.assign(C,(0,e.propertyInData)(a,l,f,_.ownProperties)),a.if((0,t.not)(C),()=>{i.error(),a.break()})},t.nil)}}};return Ys.default=s,Ys}var Xs={},Qf;function V1(){if(Qf)return Xs;Qf=1,Object.defineProperty(Xs,"__esModule",{value:!0});const e=Oe(),r={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:{message({keyword:n,schemaCode:s}){const i=n==="maxItems"?"more":"fewer";return(0,e.str)`must NOT have ${i} than ${s} items`},params:({schemaCode:n})=>(0,e._)`{limit: ${n}}`},code(n){const{keyword:s,data:i,schemaCode:a}=n,o=s==="maxItems"?e.operators.GT:e.operators.LT;n.fail$data((0,e._)`${i}.length ${o} ${a}`)}};return Xs.default=r,Xs}var Zs={},Qs={},eh;function pl(){if(eh)return Qs;eh=1,Object.defineProperty(Qs,"__esModule",{value:!0});const e=eo();return e.code='require("ajv/dist/runtime/equal").default',Qs.default=e,Qs}var th;function z1(){if(th)return Zs;th=1,Object.defineProperty(Zs,"__esModule",{value:!0});const e=Ba(),t=Oe(),r=Me(),n=pl(),i={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:{message:({params:{i:a,j:o}})=>(0,t.str)`must NOT have duplicate items (items ## ${o} and ${a} are identical)`,params:({params:{i:a,j:o}})=>(0,t._)`{i: ${a}, j: ${o}}`},code(a){const{gen:o,data:c,$data:l,schema:u,parentSchema:m,schemaCode:_,it:v}=a;if(!l&&!u)return;const S=o.let("valid"),E=m.items?(0,e.getSchemaTypes)(m.items):[];a.block$data(S,g,(0,t._)`${_} === false`),a.ok(S);function g(){const x=o.let("i",(0,t._)`${c}.length`),h=o.let("j");a.setParams({i:x,j:h}),o.assign(S,!0),o.if((0,t._)`${x} > 1`,()=>(y()?f:C)(x,h))}function y(){return E.length>0&&!E.some(x=>x==="object"||x==="array")}function f(x,h){const b=o.name("item"),O=(0,e.checkDataTypes)(E,b,v.opts.strictNumbers,e.DataType.Wrong),k=o.const("indices",(0,t._)`{}`);o.for((0,t._)`;${x}--;`,()=>{o.let(b,(0,t._)`${c}[${x}]`),o.if(O,(0,t._)`continue`),E.length>1&&o.if((0,t._)`typeof ${b} == "string"`,(0,t._)`${b} += "_"`),o.if((0,t._)`typeof ${k}[${b}] == "number"`,()=>{o.assign(h,(0,t._)`${k}[${b}]`),a.error(),o.assign(S,!1).break()}).code((0,t._)`${k}[${b}] = ${x}`)})}function C(x,h){const b=(0,r.useFunc)(o,n.default),O=o.name("outer");o.label(O).for((0,t._)`;${x}--;`,()=>o.for((0,t._)`${h} = ${x}; ${h}--;`,()=>o.if((0,t._)`${b}(${c}[${x}], ${c}[${h}])`,()=>{a.error(),o.assign(S,!1).break(O)})))}}};return Zs.default=i,Zs}var ea={},rh;function B1(){if(rh)return ea;rh=1,Object.defineProperty(ea,"__esModule",{value:!0});const e=Oe(),t=Me(),r=pl(),s={keyword:"const",$data:!0,error:{message:"must be equal to constant",params:({schemaCode:i})=>(0,e._)`{allowedValue: ${i}}`},code(i){const{gen:a,data:o,$data:c,schemaCode:l,schema:u}=i;c||u&&typeof u=="object"?i.fail$data((0,e._)`!${(0,t.useFunc)(a,r.default)}(${o}, ${l})`):i.fail((0,e._)`${u} !== ${o}`)}};return ea.default=s,ea}var ta={},nh;function H1(){if(nh)return ta;nh=1,Object.defineProperty(ta,"__esModule",{value:!0});const e=Oe(),t=Me(),r=pl(),s={keyword:"enum",schemaType:"array",$data:!0,error:{message:"must be equal to one of the allowed values",params:({schemaCode:i})=>(0,e._)`{allowedValues: ${i}}`},code(i){const{gen:a,data:o,$data:c,schema:l,schemaCode:u,it:m}=i;if(!c&&l.length===0)throw new Error("enum must have non-empty array");const _=l.length>=m.opts.loopEnum;let v;const S=()=>v??(v=(0,t.useFunc)(a,r.default));let E;if(_||c)E=a.let("valid"),i.block$data(E,g);else{if(!Array.isArray(l))throw new Error("ajv implementation error");const f=a.const("vSchema",u);E=(0,e.or)(...l.map((C,x)=>y(f,x)))}i.pass(E);function g(){a.assign(E,!1),a.forOf("v",u,f=>a.if((0,e._)`${S()}(${o}, ${f})`,()=>a.assign(E,!0).break()))}function y(f,C){const x=l[C];return typeof x=="object"&&x!==null?(0,e._)`${S()}(${o}, ${f}[${C}])`:(0,e._)`${o} === ${x}`}}};return ta.default=s,ta}var ih;function K1(){if(ih)return zs;ih=1,Object.defineProperty(zs,"__esModule",{value:!0});const e=F1(),t=D1(),r=M1(),n=q1(),s=U1(),i=L1(),a=V1(),o=z1(),c=B1(),l=H1(),u=[e.default,t.default,r.default,n.default,s.default,i.default,a.default,o.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},c.default,l.default];return zs.default=u,zs}var ra={},Bn={},sh;function np(){if(sh)return Bn;sh=1,Object.defineProperty(Bn,"__esModule",{value:!0}),Bn.validateAdditionalItems=void 0;const e=Oe(),t=Me(),n={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:{message:({params:{len:i}})=>(0,e.str)`must NOT have more than ${i} items`,params:({params:{len:i}})=>(0,e._)`{limit: ${i}}`},code(i){const{parentSchema:a,it:o}=i,{items:c}=a;if(!Array.isArray(c)){(0,t.checkStrictMode)(o,'"additionalItems" is ignored when "items" is not an array of schemas');return}s(i,c)}};function s(i,a){const{gen:o,schema:c,data:l,keyword:u,it:m}=i;m.items=!0;const _=o.const("len",(0,e._)`${l}.length`);if(c===!1)i.setParams({len:a.length}),i.pass((0,e._)`${_} <= ${a.length}`);else if(typeof c=="object"&&!(0,t.alwaysValidSchema)(m,c)){const S=o.var("valid",(0,e._)`${_} <= ${a.length}`);o.if((0,e.not)(S),()=>v(S)),i.ok(S)}function v(S){o.forRange("i",a.length,_,E=>{i.subschema({keyword:u,dataProp:E,dataPropType:t.Type.Num},S),m.allErrors||o.if((0,e.not)(S),()=>o.break())})}}return Bn.validateAdditionalItems=s,Bn.default=n,Bn}var na={},Hn={},ah;function ip(){if(ah)return Hn;ah=1,Object.defineProperty(Hn,"__esModule",{value:!0}),Hn.validateTuple=void 0;const e=Oe(),t=Me(),r=ar(),n={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(i){const{schema:a,it:o}=i;if(Array.isArray(a))return s(i,"additionalItems",a);o.items=!0,!(0,t.alwaysValidSchema)(o,a)&&i.ok((0,r.validateArray)(i))}};function s(i,a,o=i.schema){const{gen:c,parentSchema:l,data:u,keyword:m,it:_}=i;E(l),_.opts.unevaluated&&o.length&&_.items!==!0&&(_.items=t.mergeEvaluated.items(c,o.length,_.items));const v=c.name("valid"),S=c.const("len",(0,e._)`${u}.length`);o.forEach((g,y)=>{(0,t.alwaysValidSchema)(_,g)||(c.if((0,e._)`${S} > ${y}`,()=>i.subschema({keyword:m,schemaProp:y,dataProp:y},v)),i.ok(v))});function E(g){const{opts:y,errSchemaPath:f}=_,C=o.length,x=C===g.minItems&&(C===g.maxItems||g[a]===!1);if(y.strictTuples&&!x){const h=`"${m}" is ${C}-tuple, but minItems or maxItems/${a} are not specified or different at path "${f}"`;(0,t.checkStrictMode)(_,h,y.strictTuples)}}}return Hn.validateTuple=s,Hn.default=n,Hn}var oh;function G1(){if(oh)return na;oh=1,Object.defineProperty(na,"__esModule",{value:!0});const e=ip(),t={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:r=>(0,e.validateTuple)(r,"items")};return na.default=t,na}var ia={},ch;function W1(){if(ch)return ia;ch=1,Object.defineProperty(ia,"__esModule",{value:!0});const e=Oe(),t=Me(),r=ar(),n=np(),i={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:{message:({params:{len:a}})=>(0,e.str)`must NOT have more than ${a} items`,params:({params:{len:a}})=>(0,e._)`{limit: ${a}}`},code(a){const{schema:o,parentSchema:c,it:l}=a,{prefixItems:u}=c;l.items=!0,!(0,t.alwaysValidSchema)(l,o)&&(u?(0,n.validateAdditionalItems)(a,u):a.ok((0,r.validateArray)(a)))}};return ia.default=i,ia}var sa={},lh;function J1(){if(lh)return sa;lh=1,Object.defineProperty(sa,"__esModule",{value:!0});const e=Oe(),t=Me(),n={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:{message:({params:{min:s,max:i}})=>i===void 0?(0,e.str)`must contain at least ${s} valid item(s)`:(0,e.str)`must contain at least ${s} and no more than ${i} valid item(s)`,params:({params:{min:s,max:i}})=>i===void 0?(0,e._)`{minContains: ${s}}`:(0,e._)`{minContains: ${s}, maxContains: ${i}}`},code(s){const{gen:i,schema:a,parentSchema:o,data:c,it:l}=s;let u,m;const{minContains:_,maxContains:v}=o;l.opts.next?(u=_===void 0?1:_,m=v):u=1;const S=i.const("len",(0,e._)`${c}.length`);if(s.setParams({min:u,max:m}),m===void 0&&u===0){(0,t.checkStrictMode)(l,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(m!==void 0&&u>m){(0,t.checkStrictMode)(l,'"minContains" > "maxContains" is always invalid'),s.fail();return}if((0,t.alwaysValidSchema)(l,a)){let C=(0,e._)`${S} >= ${u}`;m!==void 0&&(C=(0,e._)`${C} && ${S} <= ${m}`),s.pass(C);return}l.items=!0;const E=i.name("valid");m===void 0&&u===1?y(E,()=>i.if(E,()=>i.break())):u===0?(i.let(E,!0),m!==void 0&&i.if((0,e._)`${c}.length > 0`,g)):(i.let(E,!1),g()),s.result(E,()=>s.reset());function g(){const C=i.name("_valid"),x=i.let("count",0);y(C,()=>i.if(C,()=>f(x)))}function y(C,x){i.forRange("i",0,S,h=>{s.subschema({keyword:"contains",dataProp:h,dataPropType:t.Type.Num,compositeRule:!0},C),x()})}function f(C){i.code((0,e._)`${C}++`),m===void 0?i.if((0,e._)`${C} >= ${u}`,()=>i.assign(E,!0).break()):(i.if((0,e._)`${C} > ${m}`,()=>i.assign(E,!1).break()),u===1?i.assign(E,!0):i.if((0,e._)`${C} >= ${u}`,()=>i.assign(E,!0)))}}};return sa.default=n,sa}var uc={},uh;function Y1(){return uh||(uh=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.validateSchemaDeps=e.validatePropertyDeps=e.error=void 0;const t=Oe(),r=Me(),n=ar();e.error={message:({params:{property:c,depsCount:l,deps:u}})=>{const m=l===1?"property":"properties";return(0,t.str)`must have ${m} ${u} when property ${c} is present`},params:({params:{property:c,depsCount:l,deps:u,missingProperty:m}})=>(0,t._)`{property: ${c}, missingProperty: ${m}, depsCount: ${l}, - deps: ${u}}`};const i={keyword:"dependencies",type:"object",schemaType:"object",error:e.error,code(c){const[l,u]=s(c);a(c,l),o(c,u)}};function s({schema:c}){const l={},u={};for(const m in c){if(m==="__proto__")continue;const _=Array.isArray(c[m])?l:u;_[m]=c[m]}return[l,u]}function a(c,l=c.schema){const{gen:u,data:m,it:_}=c;if(Object.keys(l).length===0)return;const v=u.let("missing");for(const S in l){const E=l[S];if(E.length===0)continue;const g=(0,n.propertyInData)(u,m,S,_.opts.ownProperties);c.setParams({property:S,depsCount:E.length,deps:E.join(", ")}),_.allErrors?u.if(g,()=>{for(const y of E)(0,n.checkReportMissingProp)(c,y)}):(u.if((0,t._)`${g} && (${(0,n.checkMissingProp)(c,E,v)})`),(0,n.reportMissingProp)(c,v),u.else())}}e.validatePropertyDeps=a;function o(c,l=c.schema){const{gen:u,data:m,keyword:_,it:v}=c,S=u.name("valid");for(const E in l)(0,r.alwaysValidSchema)(v,l[E])||(u.if((0,n.propertyInData)(u,m,E,v.opts.ownProperties),()=>{const g=c.subschema({keyword:_,schemaProp:E},S);c.mergeValidEvaluated(g,S)},()=>u.var(S,!0)),c.ok(S))}e.validateSchemaDeps=o,e.default=i})(lc)),lc}var sa={},lh;function Ww(){if(lh)return sa;lh=1,Object.defineProperty(sa,"__esModule",{value:!0});const e=Oe(),t=Me(),n={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:{message:"property name must be valid",params:({params:i})=>(0,e._)`{propertyName: ${i.propertyName}}`},code(i){const{gen:s,schema:a,data:o,it:c}=i;if((0,t.alwaysValidSchema)(c,a))return;const l=s.name("valid");s.forIn("key",o,u=>{i.setParams({propertyName:u}),i.subschema({keyword:"propertyNames",data:u,dataTypes:["string"],propertyName:u,compositeRule:!0},l),s.if((0,e.not)(l),()=>{i.error(!0),c.allErrors||s.break()})}),i.ok(l)}};return sa.default=n,sa}var aa={},uh;function rp(){if(uh)return aa;uh=1,Object.defineProperty(aa,"__esModule",{value:!0});const e=ar(),t=Oe(),r=nn(),n=Me(),s={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:{message:"must NOT have additional properties",params:({params:a})=>(0,t._)`{additionalProperty: ${a.additionalProperty}}`},code(a){const{gen:o,schema:c,parentSchema:l,data:u,errsCount:m,it:_}=a;if(!m)throw new Error("ajv implementation error");const{allErrors:v,opts:S}=_;if(_.props=!0,S.removeAdditional!=="all"&&(0,n.alwaysValidSchema)(_,c))return;const E=(0,e.allSchemaProperties)(l.properties),g=(0,e.allSchemaProperties)(l.patternProperties);y(),a.ok((0,t._)`${m} === ${r.default.errors}`);function y(){o.forIn("key",u,b=>{!E.length&&!g.length?x(b):o.if(f(b),()=>x(b))})}function f(b){let O;if(E.length>8){const k=(0,n.schemaRefOrVal)(_,l.properties,"properties");O=(0,e.isOwnProperty)(o,k,b)}else E.length?O=(0,t.or)(...E.map(k=>(0,t._)`${b} === ${k}`)):O=t.nil;return g.length&&(O=(0,t.or)(O,...g.map(k=>(0,t._)`${(0,e.usePattern)(a,k)}.test(${b})`))),(0,t.not)(O)}function C(b){o.code((0,t._)`delete ${u}[${b}]`)}function x(b){if(S.removeAdditional==="all"||S.removeAdditional&&c===!1){C(b);return}if(c===!1){a.setParams({additionalProperty:b}),a.error(),v||o.break();return}if(typeof c=="object"&&!(0,n.alwaysValidSchema)(_,c)){const O=o.name("valid");S.removeAdditional==="failing"?(h(b,O,!1),o.if((0,t.not)(O),()=>{a.reset(),C(b)})):(h(b,O),v||o.if((0,t.not)(O),()=>o.break()))}}function h(b,O,k){const $={keyword:"additionalProperties",dataProp:b,dataPropType:n.Type.Str};k===!1&&Object.assign($,{compositeRule:!0,createErrors:!1,allErrors:!1}),a.subschema($,O)}}};return aa.default=s,aa}var oa={},dh;function Jw(){if(dh)return oa;dh=1,Object.defineProperty(oa,"__esModule",{value:!0});const e=so(),t=ar(),r=Me(),n=rp(),i={keyword:"properties",type:"object",schemaType:"object",code(s){const{gen:a,schema:o,parentSchema:c,data:l,it:u}=s;u.opts.removeAdditional==="all"&&c.additionalProperties===void 0&&n.default.code(new e.KeywordCxt(u,n.default,"additionalProperties"));const m=(0,t.allSchemaProperties)(o);for(const g of m)u.definedProperties.add(g);u.opts.unevaluated&&m.length&&u.props!==!0&&(u.props=r.mergeEvaluated.props(a,(0,r.toHash)(m),u.props));const _=m.filter(g=>!(0,r.alwaysValidSchema)(u,o[g]));if(_.length===0)return;const v=a.name("valid");for(const g of _)S(g)?E(g):(a.if((0,t.propertyInData)(a,l,g,u.opts.ownProperties)),E(g),u.allErrors||a.else().var(v,!0),a.endIf()),s.it.definedProperties.add(g),s.ok(v);function S(g){return u.opts.useDefaults&&!u.compositeRule&&o[g].default!==void 0}function E(g){s.subschema({keyword:"properties",schemaProp:g,dataProp:g},v)}}};return oa.default=i,oa}var ca={},fh;function Yw(){if(fh)return ca;fh=1,Object.defineProperty(ca,"__esModule",{value:!0});const e=ar(),t=Oe(),r=Me(),n=Me(),i={keyword:"patternProperties",type:"object",schemaType:"object",code(s){const{gen:a,schema:o,data:c,parentSchema:l,it:u}=s,{opts:m}=u,_=(0,e.allSchemaProperties)(o),v=_.filter(x=>(0,r.alwaysValidSchema)(u,o[x]));if(_.length===0||v.length===_.length&&(!u.opts.unevaluated||u.props===!0))return;const S=m.strictSchema&&!m.allowMatchingProperties&&l.properties,E=a.name("valid");u.props!==!0&&!(u.props instanceof t.Name)&&(u.props=(0,n.evaluatedPropsToName)(a,u.props));const{props:g}=u;y();function y(){for(const x of _)S&&f(x),u.allErrors?C(x):(a.var(E,!0),C(x),a.if(E))}function f(x){for(const h in S)new RegExp(x).test(h)&&(0,r.checkStrictMode)(u,`property ${h} matches pattern ${x} (use allowMatchingProperties)`)}function C(x){a.forIn("key",c,h=>{a.if((0,t._)`${(0,e.usePattern)(s,x)}.test(${h})`,()=>{const b=v.includes(x);b||s.subschema({keyword:"patternProperties",schemaProp:x,dataProp:h,dataPropType:n.Type.Str},E),u.opts.unevaluated&&g!==!0?a.assign((0,t._)`${g}[${h}]`,!0):!b&&!u.allErrors&&a.if((0,t.not)(E),()=>a.break())})})}}};return ca.default=i,ca}var la={},hh;function Xw(){if(hh)return la;hh=1,Object.defineProperty(la,"__esModule",{value:!0});const e=Me(),t={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(r){const{gen:n,schema:i,it:s}=r;if((0,e.alwaysValidSchema)(s,i)){r.fail();return}const a=n.name("valid");r.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},a),r.failResult(a,()=>r.reset(),()=>r.error())},error:{message:"must NOT be valid"}};return la.default=t,la}var ua={},mh;function Zw(){if(mh)return ua;mh=1,Object.defineProperty(ua,"__esModule",{value:!0});const t={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:ar().validateUnion,error:{message:"must match a schema in anyOf"}};return ua.default=t,ua}var da={},ph;function Qw(){if(ph)return da;ph=1,Object.defineProperty(da,"__esModule",{value:!0});const e=Oe(),t=Me(),n={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:{message:"must match exactly one schema in oneOf",params:({params:i})=>(0,e._)`{passingSchemas: ${i.passing}}`},code(i){const{gen:s,schema:a,parentSchema:o,it:c}=i;if(!Array.isArray(a))throw new Error("ajv implementation error");if(c.opts.discriminator&&o.discriminator)return;const l=a,u=s.let("valid",!1),m=s.let("passing",null),_=s.name("_valid");i.setParams({passing:m}),s.block(v),i.result(u,()=>i.reset(),()=>i.error(!0));function v(){l.forEach((S,E)=>{let g;(0,t.alwaysValidSchema)(c,S)?s.var(_,!0):g=i.subschema({keyword:"oneOf",schemaProp:E,compositeRule:!0},_),E>0&&s.if((0,e._)`${_} && ${u}`).assign(u,!1).assign(m,(0,e._)`[${m}, ${E}]`).else(),s.if(_,()=>{s.assign(u,!0),s.assign(m,E),g&&i.mergeEvaluated(g,e.Name)})})}}};return da.default=n,da}var fa={},yh;function e1(){if(yh)return fa;yh=1,Object.defineProperty(fa,"__esModule",{value:!0});const e=Me(),t={keyword:"allOf",schemaType:"array",code(r){const{gen:n,schema:i,it:s}=r;if(!Array.isArray(i))throw new Error("ajv implementation error");const a=n.name("valid");i.forEach((o,c)=>{if((0,e.alwaysValidSchema)(s,o))return;const l=r.subschema({keyword:"allOf",schemaProp:c},a);r.ok(a),r.mergeEvaluated(l)})}};return fa.default=t,fa}var ha={},gh;function t1(){if(gh)return ha;gh=1,Object.defineProperty(ha,"__esModule",{value:!0});const e=Oe(),t=Me(),n={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:{message:({params:s})=>(0,e.str)`must match "${s.ifClause}" schema`,params:({params:s})=>(0,e._)`{failingKeyword: ${s.ifClause}}`},code(s){const{gen:a,parentSchema:o,it:c}=s;o.then===void 0&&o.else===void 0&&(0,t.checkStrictMode)(c,'"if" without "then" and "else" is ignored');const l=i(c,"then"),u=i(c,"else");if(!l&&!u)return;const m=a.let("valid",!0),_=a.name("_valid");if(v(),s.reset(),l&&u){const E=a.let("ifClause");s.setParams({ifClause:E}),a.if(_,S("then",E),S("else",E))}else l?a.if(_,S("then")):a.if((0,e.not)(_),S("else"));s.pass(m,()=>s.error(!0));function v(){const E=s.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},_);s.mergeEvaluated(E)}function S(E,g){return()=>{const y=s.subschema({keyword:E},_);a.assign(m,_),s.mergeValidEvaluated(y,m),g?a.assign(g,(0,e._)`${E}`):s.setParams({ifClause:E})}}}};function i(s,a){const o=s.schema[a];return o!==void 0&&!(0,t.alwaysValidSchema)(s,o)}return ha.default=n,ha}var ma={},vh;function r1(){if(vh)return ma;vh=1,Object.defineProperty(ma,"__esModule",{value:!0});const e=Me(),t={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:r,parentSchema:n,it:i}){n.if===void 0&&(0,e.checkStrictMode)(i,`"${r}" without "if" is ignored`)}};return ma.default=t,ma}var bh;function n1(){if(bh)return ta;bh=1,Object.defineProperty(ta,"__esModule",{value:!0});const e=ep(),t=Bw(),r=tp(),n=Hw(),i=Kw(),s=Gw(),a=Ww(),o=rp(),c=Jw(),l=Yw(),u=Xw(),m=Zw(),_=Qw(),v=e1(),S=t1(),E=r1();function g(y=!1){const f=[u.default,m.default,_.default,v.default,S.default,E.default,a.default,o.default,s.default,c.default,l.default];return y?f.push(t.default,n.default):f.push(e.default,r.default),f.push(i.default),f}return ta.default=g,ta}var pa={},ya={},_h;function i1(){if(_h)return ya;_h=1,Object.defineProperty(ya,"__esModule",{value:!0});const e=Oe(),r={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:{message:({schemaCode:n})=>(0,e.str)`must match format "${n}"`,params:({schemaCode:n})=>(0,e._)`{format: ${n}}`},code(n,i){const{gen:s,data:a,$data:o,schema:c,schemaCode:l,it:u}=n,{opts:m,errSchemaPath:_,schemaEnv:v,self:S}=u;if(!m.validateFormats)return;o?E():g();function E(){const y=s.scopeValue("formats",{ref:S.formats,code:m.code.formats}),f=s.const("fDef",(0,e._)`${y}[${l}]`),C=s.let("fType"),x=s.let("format");s.if((0,e._)`typeof ${f} == "object" && !(${f} instanceof RegExp)`,()=>s.assign(C,(0,e._)`${f}.type || "string"`).assign(x,(0,e._)`${f}.validate`),()=>s.assign(C,(0,e._)`"string"`).assign(x,f)),n.fail$data((0,e.or)(h(),b()));function h(){return m.strictSchema===!1?e.nil:(0,e._)`${l} && !${x}`}function b(){const O=v.$async?(0,e._)`(${f}.async ? await ${x}(${a}) : ${x}(${a}))`:(0,e._)`${x}(${a})`,k=(0,e._)`(typeof ${x} == "function" ? ${O} : ${x}.test(${a}))`;return(0,e._)`${x} && ${x} !== true && ${C} === ${i} && !${k}`}}function g(){const y=S.formats[c];if(!y){h();return}if(y===!0)return;const[f,C,x]=b(y);f===i&&n.pass(O());function h(){if(m.strictSchema===!1){S.logger.warn(k());return}throw new Error(k());function k(){return`unknown format "${c}" ignored in schema at path "${_}"`}}function b(k){const $=k instanceof RegExp?(0,e.regexpCode)(k):m.code.formats?(0,e._)`${m.code.formats}${(0,e.getProperty)(c)}`:void 0,M=s.scopeValue("formats",{key:c,ref:k,code:$});return typeof k=="object"&&!(k instanceof RegExp)?[k.type||"string",k.validate,(0,e._)`${M}.validate`]:["string",k,M]}function O(){if(typeof y=="object"&&!(y instanceof RegExp)&&y.async){if(!v.$async)throw new Error("async format in sync schema");return(0,e._)`await ${x}(${a})`}return typeof C=="function"?(0,e._)`${x}(${a})`:(0,e._)`${x}.test(${a})`}}}};return ya.default=r,ya}var Sh;function s1(){if(Sh)return pa;Sh=1,Object.defineProperty(pa,"__esModule",{value:!0});const t=[i1().default];return pa.default=t,pa}var vn={},wh;function a1(){return wh||(wh=1,Object.defineProperty(vn,"__esModule",{value:!0}),vn.contentVocabulary=vn.metadataVocabulary=void 0,vn.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],vn.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]),vn}var Ch;function o1(){if(Ch)return qs;Ch=1,Object.defineProperty(qs,"__esModule",{value:!0});const e=Iw(),t=zw(),r=n1(),n=s1(),i=a1(),s=[e.default,t.default,(0,r.default)(),n.default,i.metadataVocabulary,i.contentVocabulary];return qs.default=s,qs}var ga={},Ci={},Eh;function c1(){if(Eh)return Ci;Eh=1,Object.defineProperty(Ci,"__esModule",{value:!0}),Ci.DiscrError=void 0;var e;return(function(t){t.Tag="tag",t.Mapping="mapping"})(e||(Ci.DiscrError=e={})),Ci}var Ah;function l1(){if(Ah)return ga;Ah=1,Object.defineProperty(ga,"__esModule",{value:!0});const e=Oe(),t=c1(),r=hl(),n=ao(),i=Me(),a={keyword:"discriminator",type:"object",schemaType:"object",error:{message:({params:{discrError:o,tagName:c}})=>o===t.DiscrError.Tag?`tag "${c}" must be string`:`value of tag "${c}" must be in oneOf`,params:({params:{discrError:o,tag:c,tagName:l}})=>(0,e._)`{error: ${o}, tag: ${l}, tagValue: ${c}}`},code(o){const{gen:c,data:l,schema:u,parentSchema:m,it:_}=o,{oneOf:v}=m;if(!_.opts.discriminator)throw new Error("discriminator: requires discriminator option");const S=u.propertyName;if(typeof S!="string")throw new Error("discriminator: requires propertyName");if(u.mapping)throw new Error("discriminator: mapping is not supported");if(!v)throw new Error("discriminator: requires oneOf keyword");const E=c.let("valid",!1),g=c.const("tag",(0,e._)`${l}${(0,e.getProperty)(S)}`);c.if((0,e._)`typeof ${g} == "string"`,()=>y(),()=>o.error(!1,{discrError:t.DiscrError.Tag,tag:g,tagName:S})),o.ok(E);function y(){const x=C();c.if(!1);for(const h in x)c.elseIf((0,e._)`${g} === ${h}`),c.assign(E,f(x[h]));c.else(),o.error(!1,{discrError:t.DiscrError.Mapping,tag:g,tagName:S}),c.endIf()}function f(x){const h=c.name("valid"),b=o.subschema({keyword:"oneOf",schemaProp:x},h);return o.mergeEvaluated(b,e.Name),h}function C(){var x;const h={},b=k(m);let O=!0;for(let q=0;qthis.addVocabulary(S)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;const S=this.opts.$data?this.$dataMetaSchema(s,a):s;this.addMetaSchema(S,o,!1),this.refs["http://json-schema.org/schema"]=o}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(o)?o:void 0)}}t.Ajv=c,e.exports=t=c,e.exports.Ajv=c,Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var l=so();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return l.KeywordCxt}});var u=Oe();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return u._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return u.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return u.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return u.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return u.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return u.CodeGen}});var m=fl();Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return m.default}});var _=ao();Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return _.default}})})($s,$s.exports)),$s.exports}var xh;function v1(){return xh||(xh=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.formatLimitDefinition=void 0;const t=g1(),r=Oe(),n=r.operators,i={formatMaximum:{okStr:"<=",ok:n.LTE,fail:n.GT},formatMinimum:{okStr:">=",ok:n.GTE,fail:n.LT},formatExclusiveMaximum:{okStr:"<",ok:n.LT,fail:n.GTE},formatExclusiveMinimum:{okStr:">",ok:n.GT,fail:n.LTE}},s={message:({keyword:o,schemaCode:c})=>r.str`should be ${i[o].okStr} ${c}`,params:({keyword:o,schemaCode:c})=>r._`{comparison: ${i[o].okStr}, limit: ${c}}`};e.formatLimitDefinition={keyword:Object.keys(i),type:"string",schemaType:"string",$data:!0,error:s,code(o){const{gen:c,data:l,schemaCode:u,keyword:m,it:_}=o,{opts:v,self:S}=_;if(!v.validateFormats)return;const E=new t.KeywordCxt(_,S.RULES.all.format.definition,"format");E.$data?g():y();function g(){const C=c.scopeValue("formats",{ref:S.formats,code:v.code.formats}),x=c.const("fmt",r._`${C}[${E.schemaCode}]`);o.fail$data(r.or(r._`typeof ${x} != "object"`,r._`${x} instanceof RegExp`,r._`typeof ${x}.compare != "function"`,f(x)))}function y(){const C=E.schema,x=S.formats[C];if(!x||x===!0)return;if(typeof x!="object"||x instanceof RegExp||typeof x.compare!="function")throw new Error(`"${m}": format "${C}" does not define "compare" function`);const h=c.scopeValue("formats",{key:C,ref:x,code:v.code.formats?r._`${v.code.formats}${r.getProperty(C)}`:void 0});o.fail$data(f(h))}function f(C){return r._`${C}.compare(${l}, ${u}) ${i[m].fail} 0`}},dependencies:["format"]};const a=o=>(o.addKeyword(e.formatLimitDefinition),o);e.default=a})(ec)),ec}var Oh;function b1(){return Oh||(Oh=1,(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});const r=fw(),n=v1(),i=Oe(),s=new i.Name("fullFormats"),a=new i.Name("fastFormats"),o=(l,u={keywords:!0})=>{if(Array.isArray(u))return c(l,u,r.fullFormats,s),l;const[m,_]=u.mode==="fast"?[r.fastFormats,a]:[r.fullFormats,s],v=u.formats||r.formatNames;return c(l,v,m,_),u.keywords&&n.default(l),l};o.get=(l,u="full")=>{const _=(u==="fast"?r.fastFormats:r.fullFormats)[l];if(!_)throw new Error(`Unknown format "${l}"`);return _};function c(l,u,m,_){var v,S;(v=(S=l.opts.code).formats)!==null&&v!==void 0||(S.formats=i._`require("ajv-formats/dist/formats").${_}`);for(const E of u)l.addFormat(E,m[E])}e.exports=t=o,Object.defineProperty(t,"__esModule",{value:!0}),t.default=o})(Rs,Rs.exports)),Rs.exports}var _1=b1();const jh=$i(_1),S1={allErrors:!0,multipleOfPrecision:8,strict:!1,verbose:!0,discriminator:!1},w1=/^(#?([0-9A-Fa-f]{3}){1,2}\b|aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow|(rgb\(\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*,\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*,\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*\))|(rgb\(\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*\)))$/,C1=/^data:([a-z]+\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/;function E1(e,t,r={},n,i=dw,s){let a=new i({...S1,...r});return n?jh(a,n):n!==!1&&jh(a),a.addFormat("data-url",C1),a.addFormat("color",w1),a.addKeyword(zc),Array.isArray(e)&&a.addMetaSchema(e),ue(t)&&Object.keys(t).forEach(o=>{a.addFormat(o,t[o])}),s&&(a=s(a)),a}class A1{ajv;localizer;suppressDuplicateFiltering;lastSeenRootSchema;hasRegisteredRootSchema=!1;constructor(t,r){const{additionalMetaSchemas:n,customFormats:i,ajvOptionsOverrides:s,ajvFormatOptions:a,AjvClass:o,extenderFn:c,suppressDuplicateFiltering:l}=t;this.ajv=E1(n,i,s,a,o,c),this.localizer=r,this.suppressDuplicateFiltering=l}reset(){this.ajv.removeSchema(),this.lastSeenRootSchema=void 0,this.hasRegisteredRootSchema=!1}rawValidation(t,r){let n,i;try{t[Ue]&&(i=this.ajv.getSchema(t[Ue])),i===void 0&&(i=this.ajv.compile(t)),i(r)}catch(a){n=a,i===void 0&&this.ajv.removeSchema(t[Ue]!==void 0?t[Ue]:t)}let s;return i&&(typeof this.localizer=="function"&&((i.errors??[]).forEach(a=>{["missingProperty","property"].forEach(o=>{a.params?.[o]&&(a.params[o]=`'${a.params[o]}'`)}),a.params?.deps&&(a.params.deps=a.params.deps.split(", ").map(o=>`'${o}'`).join(", "))}),this.localizer(i.errors),(i.errors??[]).forEach(a=>{["missingProperty","property"].forEach(o=>{a.params?.[o]&&(a.params[o]=a.params[o].slice(1,-1))}),a.params?.deps&&(a.params.deps=a.params.deps.split(", ").map(o=>o.slice(1,-1)).join(", "))})),s=i.errors||void 0,i.errors=null),{errors:s,validationError:n}}validateFormData(t,r,n,i,s){const a=this.rawValidation(r,t);return iS(this,a,t,r,n,i,s,this.suppressDuplicateFiltering)}handleSchemaUpdate(t){if(this.lastSeenRootSchema===t&&this.hasRegisteredRootSchema)return;const r=t[Ue]??qh;this.ajv.getSchema(r)===void 0?this.ajv.addSchema(t,r):je(t,this.ajv.getSchema(r)?.schema)||(this.ajv.removeSchema(r),this.ajv.addSchema(t,r)),this.lastSeenRootSchema=t,this.hasRegisteredRootSchema=!0}isValid(t,r,n){let i,s=!1;try{this.handleSchemaUpdate(n);const a=rl(t);i=a[Ue]??m0(a);let o;return o=this.ajv.getSchema(i),o===void 0&&(o=this.ajv.addSchema(a,i).getSchema(i)||this.ajv.compile(a)),s=!0,o(r)}catch(a){return console.warn("Error encountered compiling schema:",a),!s&&i!==void 0&&this.ajv.removeSchema(i),!1}}}function P1(e={},t){return new A1(e,t)}const x1=P1();function qc(e,t=""){if(!e||typeof e!="object")return{};const r=Array.isArray(e.examples)?e.examples[0]:void 0,n=r===void 0?{}:{"ui:placeholder":String(r)};return e.writeOnly===!0?{"ui:widget":"SecretWidget","ui:options":{secretPath:t},...n}:e.type==="boolean"?{"ui:widget":"checkbox","ui:options":{label:!1}}:e.type==="array"&&e.items?{items:qc(e.items,t?`${t}[]`:"[]")}:e.type!=="object"||!e.properties?n:Object.fromEntries(Object.entries(e.properties).map(([i,s])=>[i,qc(s,t?`${t}.${i}`:i)]))}function O1({id:e,disabled:t,readonly:r,options:n,placeholder:i,registry:s}){const a=n.secretPath,o=s.formContext||{},c=o.secretOperations?.[a],l=!!o.configuredSecrets?.[a],u=c?.action==="replace",m=c?.action==="clear",_=t||r;function v(S){_||o.setSecretOperation?.(a,S)}return R.jsxs("div",{className:"configuration-secret space-y-0.5",children:[R.jsxs("div",{className:"flex flex-wrap items-center gap-0.5",children:[R.jsx("span",{className:"text-[0.7rem] text-slate-500",children:m?"Will be cleared when saved":u?"Replacement pending":l?"Configured":"Not configured"}),R.jsxs("div",{className:"flex gap-0.5",children:[R.jsx("button",{type:"button",className:"button-dark text-xs",disabled:_,onClick:()=>v(u?null:{action:"replace",value:""}),children:u?"Cancel replace":"Replace"}),R.jsx("button",{type:"button",className:m?"button-dark text-xs":"button-danger text-xs",disabled:_,onClick:()=>v(m?null:{action:"clear"}),children:m?"Undo clear":"Clear"})]})]}),u?R.jsx("input",{id:e,className:"field-input w-full",type:"password",autoComplete:"new-password",value:c.value,placeholder:i||"Enter replacement value",disabled:_,onChange:S=>v({action:"replace",value:S.target.value})}):null]})}function j1({children:e,classNames:t,description:r,errors:n,help:i,hidden:s,id:a,label:o,required:c,schema:l,style:u}){return s?R.jsx("div",{className:"hidden",children:e}):l?.type==="object"||l?.type==="array"?R.jsxs("div",{className:t,style:u,children:[e,n,i]}):R.jsxs("div",{className:`${t||""} configuration-line`,style:u,children:[R.jsx("div",{className:"configuration-key",children:R.jsxs("label",{htmlFor:a,className:"text-xs font-semibold text-slate-100",children:[o,c?R.jsx("span",{className:"ml-0.25 text-sky-300",children:"*"}):null]})}),R.jsxs("div",{className:"configuration-value",children:[r?R.jsx("div",{className:"configuration-value-description",children:r}):null,e,n,i]})]})}function k1({description:e,fieldPathId:t,properties:r,title:n}){const s=r.filter(o=>!o.hidden).map(o=>o.content),a=t.path.length===1;return t.path.length===0?R.jsxs("div",{children:[e?R.jsx("div",{className:"configuration-root-description",children:e}):null,R.jsx("div",{className:"configuration-tree",children:s})]}):typeof t.path.at(-1)=="number"?R.jsxs("div",{children:[e?R.jsx("div",{className:"configuration-item-description",children:e}):null,s]}):R.jsxs(ot,{title:n,clipOverflow:!1,className:`configuration-card${a?" configuration-top-level-card":""}`,headerClassName:a?"!bg-sky-950":"",bodyClassName:"configuration-card-body",children:[e?R.jsx("div",{className:"configuration-branch-description",children:e}):null,R.jsx("div",{className:"configuration-children",children:s})]})}function I1({buttonsProps:e,children:t,hasToolbar:r,index:n}){const i=e.disabled||e.readonly;return R.jsxs(ot,{title:`Item ${n+1}`,clipOverflow:!1,className:"configuration-card configuration-array-item",bodyClassName:"configuration-card-body",children:[r?R.jsxs("div",{className:"configuration-item-actions",children:[e.hasMoveUp||e.hasMoveDown?R.jsx("button",{type:"button",className:"button-dark text-xs",disabled:i||!e.hasMoveUp,onClick:e.onMoveUpItem,children:"Move up"}):null,e.hasMoveUp||e.hasMoveDown?R.jsx("button",{type:"button",className:"button-dark text-xs",disabled:i||!e.hasMoveDown,onClick:e.onMoveDownItem,children:"Move down"}):null,e.hasCopy?R.jsx("button",{type:"button",className:"button-dark text-xs",disabled:i,onClick:e.onCopyItem,children:"Duplicate"}):null,e.hasRemove?R.jsx("button",{type:"button",className:"button-danger text-xs",disabled:i,onClick:e.onRemoveItem,children:"Remove"}):null]}):null,R.jsx("div",{className:"configuration-children",children:t})]})}function N1({canAdd:e,disabled:t,fieldPathId:r,items:n,onAddClick:i,readonly:s,schema:a,title:o}){const c=r.path.length===1;return R.jsxs(ot,{title:o,meta:`${n.length} ${n.length===1?"item":"items"}`,clipOverflow:!1,className:`configuration-card configuration-array${c?" configuration-top-level-card":""}`,headerClassName:c?"!bg-sky-950":"",bodyClassName:"configuration-card-body",children:[a.description?R.jsx("div",{className:"configuration-branch-description",children:a.description}):null,e?R.jsx("div",{className:"configuration-array-actions",children:R.jsx("button",{type:"button",className:"button-dark text-xs",disabled:t||s,onClick:i,children:"Add item"})}):null,R.jsx("div",{className:"configuration-children",children:n.length?n:R.jsx("p",{className:"text-xs text-slate-500",children:"No items configured."})})]})}function R1({schema:e,value:t,onChange:r,configuredSecrets:n,secretOperations:i,setSecretOperation:s}){const a=Z.useMemo(()=>qc(e),[e]),o=Z.useMemo(()=>({SecretWidget:O1}),[]),c=Z.useMemo(()=>({ArrayFieldItemTemplate:I1,ArrayFieldTemplate:N1,FieldTemplate:j1,ObjectFieldTemplate:k1}),[]),l=Z.useMemo(()=>({configuredSecrets:n,secretOperations:i,setSecretOperation:s}),[n,i,s]);return R.jsx("div",{className:"configuration-schema-form",children:R.jsx(Vr,{schema:e,uiSchema:a,formData:t,validator:x1,widgets:o,templates:c,formContext:l,noHtml5Validate:!0,showErrorList:!1,onChange:({formData:u})=>r(u),children:R.jsx(R.Fragment,{})})})}function uc(e){return JSON.parse(JSON.stringify(e))}function $1({snapshot:e,socket:t,runSensitive:r,onSnapshot:n,onReload:i}){const s=e?.configuration?.config,a=e?.configuration?.schema,o=e?.configuration?.revision,[c,l]=Z.useState(()=>uc(s)),[u,m]=Z.useState({}),[_,v]=Z.useState(!1),[S,E]=Z.useState(""),[g,y]=Z.useState([]);Z.useEffect(()=>{l(uc(s)),m({}),E(""),y([])},[o,s]);const f=Z.useMemo(()=>JSON.stringify(c)!==JSON.stringify(s)||Object.keys(u).length>0,[c,u,s]);if(!s||!a)return R.jsx("p",{className:"surface p-1 text-sm text-red-200",children:"The configuration document is unavailable."});const C=(h,b)=>m(O=>{const k={...O};return b?k[h]=b:delete k[h],k});async function x(){v(!0),E(""),y([]);try{const h=await r(()=>Lp(t,{value:c,expectedRevision:o,secretOperations:u}));n(h.snapshot)}catch(h){E(h.message),y(h.validationErrors||[])}finally{v(!1)}}return R.jsxs(ot,{title:"Configuration",meta:`revision ${o}`,clipOverflow:!1,bodyClassName:"p-0.5",children:[R.jsxs("div",{className:"configuration-toolbar sticky top-0 z-20 mb-0.5 space-y-0.5 border border-neutral-500/60 bg-neutral-900/95 p-0.5 backdrop-blur",children:[R.jsx("p",{className:"text-xs text-slate-400",children:"Saved changes apply after an application restart."}),R.jsxs("div",{className:"flex flex-wrap gap-0.5",children:[R.jsx("button",{type:"button",className:"button-dark",disabled:_,onClick:i,children:"Reload"}),R.jsx("button",{type:"button",className:"button-dark",disabled:!f||_,onClick:()=>{l(uc(s)),m({})},children:"Reset"}),R.jsx("button",{type:"button",className:"button-dark",disabled:!f||_,onClick:x,children:_?"Saving…":"Save configuration"})]})]}),S?R.jsx("p",{className:"border border-red-500/60 bg-red-950/40 p-1 text-xs text-red-100",children:S}):null,g.length?R.jsxs("div",{className:"border border-red-500/60 bg-red-950/40 p-1 text-xs text-red-100",children:[R.jsx("p",{className:"font-semibold",children:"Configuration could not be saved"}),R.jsx("ul",{className:"mt-0.5 list-disc space-y-0.25 pl-4",children:g.map((h,b)=>R.jsxs("li",{children:[h.path,": ",h.message]},`${h.path}-${b}`))})]}):null,R.jsx(R1,{schema:a,value:c,onChange:l,configuredSecrets:e.configuration.configuredSecrets,secretOperations:u,setSecretOperation:C})]})}function F1({open:e,busy:t,error:r,onCancel:n,onConfirm:i}){const[s,a]=Z.useState("");if(!e)return null;async function o(l){l.preventDefault(),await i(s),a("")}function c(){a(""),n()}return R.jsx("div",{className:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/75 p-2",children:R.jsxs("form",{className:"w-full max-w-sm border border-neutral-500/70 bg-neutral-900 p-1 text-slate-100 shadow-2xl",onSubmit:o,children:[R.jsx("h2",{className:"text-base font-semibold",children:"Confirm password"}),R.jsx("p",{className:"mt-0.5 text-xs text-slate-400",children:"This sensitive action requires recent confirmation of your administrator password."}),R.jsx("input",{autoFocus:!0,autoComplete:"current-password",className:"field-input mt-1 w-full",type:"password",value:s,onChange:l=>a(l.target.value)}),r?R.jsx("p",{className:"mt-0.5 text-xs text-red-300",children:r}):null,R.jsxs("div",{className:"mt-1 flex justify-end gap-0.5",children:[R.jsx("button",{type:"button",className:"button-dark",disabled:t,onClick:c,children:"Cancel"}),R.jsx("button",{type:"submit",className:"button-dark",disabled:t||!s,children:t?"Confirming…":"Confirm"})]})]})})}const D1=[{key:"overview",label:"Overview"},{key:"fleet",label:"Fleet operations"},{key:"users",label:"Users and administrators",lockdownOnly:!0},{key:"configuration",label:"Configuration",lockdownOnly:!0}];function q1(){jp({identitySurface:"passive"});const e=kh(),t=jl(L=>L.session?.role||"user"),r=jl(L=>L.connected),[n,i]=kp(),s=n.get("section")||"overview",[a,o]=Z.useState(null),[c,l]=Z.useState(""),u=Z.useRef(null),[m,_]=Z.useState(!1),[v,S]=Z.useState(!1),[E,g]=Z.useState(""),{value:y}=Ip("page",{backgroundTheme:Np}),f=Rp(y?.backgroundTheme),C=t==="admin"||t==="lockdown",x=t==="lockdown",h=Z.useCallback(async()=>{if(!x){o(null);return}l("");try{o(await Vp(e))}catch(L){l(L.message)}},[x,e]);Z.useEffect(()=>{h()},[h,r]);const b=Z.useCallback(async L=>{try{return await L()}catch(B){if(B.code!=="PASSWORD_CONFIRMATION_REQUIRED")throw B;return new Promise((J,Y)=>{u.current={operation:L,resolve:J,reject:Y},g(""),_(!0)})}},[]);async function O(L){S(!0),g("");try{await zp(e,L);const B=u.current;if(u.current=null,_(!1),B)try{B.resolve(await B.operation())}catch(J){B.reject(J)}}catch(B){g(B.message)}finally{S(!1)}}function k(){const L=u.current;u.current=null,_(!1),L&&L.reject(new Error("Sensitive action cancelled."))}function $(L){i(L==="overview"?{}:{section:L})}const M=D1.filter(L=>!L.lockdownOnly||x),q=M.some(L=>L.key===s)?s:"overview";let U;return C?q==="fleet"?U=R.jsx(Dp,{}):x?a?q==="users"?U=R.jsxs("div",{className:"space-y-0.5",children:[R.jsx(my,{administrators:a.administrators,socket:e,runSensitive:b,onSnapshot:o}),R.jsx(fy,{})]}):q==="configuration"?U=R.jsx($1,{snapshot:a,socket:e,runSensitive:b,onSnapshot:o,onReload:h}):U=R.jsx(py,{snapshot:a,socket:e,runSensitive:b,onSnapshot:o}):U=R.jsx(ot,{title:"Loading administration",bodyClassName:"p-1 text-sm text-slate-300",children:R.jsx("p",{children:c||"Loading configuration and audit state…"})}):U=R.jsx(ot,{title:"Administrator access",bodyClassName:"p-1 text-sm text-slate-300",children:R.jsx("p",{children:"Routine fleet operations are available. Configuration, users, secrets, and system administration require a lockdown administrator."})}):U=R.jsx("div",{className:"mx-auto w-full max-w-md",children:R.jsx(Fp,{})}),R.jsxs("div",{className:`${f} min-h-screen text-slate-100`,children:[R.jsx($p,{}),R.jsx(F1,{open:m,busy:v,error:E,onCancel:k,onConfirm:O}),R.jsxs("main",{className:"mx-auto min-h-screen w-full max-w-[100rem] p-1",children:[R.jsx(ot,{title:"MultiRover administration",meta:r?t:"offline",bodyClassName:"p-0.5 text-xs text-slate-400",children:R.jsx("p",{children:a?`Active configuration revision ${a.configuration.revision}.${a.restartRequired?" An application restart is required to apply saved changes.":" The running application has loaded this revision."}`:"Central server administration and configuration."})}),C?R.jsxs(Ih,{currentTab:q,onTabChange:$,children:[R.jsx("nav",{"aria-label":"Administration sections",children:R.jsx(Nh,{className:"my-0.5",children:M.map(L=>R.jsx(Kn,{id:L.key,children:L.label},L.key))})}),R.jsx(Rh,{children:R.jsx("section",{className:"min-w-0",children:U})})]}):R.jsx("section",{className:"mt-0.5 min-w-0",children:U})]})]})}export{q1 as default}; -//# sourceMappingURL=AdminApp-B89XZuLF.js.map + deps: ${u}}`};const s={keyword:"dependencies",type:"object",schemaType:"object",error:e.error,code(c){const[l,u]=i(c);a(c,l),o(c,u)}};function i({schema:c}){const l={},u={};for(const m in c){if(m==="__proto__")continue;const _=Array.isArray(c[m])?l:u;_[m]=c[m]}return[l,u]}function a(c,l=c.schema){const{gen:u,data:m,it:_}=c;if(Object.keys(l).length===0)return;const v=u.let("missing");for(const S in l){const E=l[S];if(E.length===0)continue;const g=(0,n.propertyInData)(u,m,S,_.opts.ownProperties);c.setParams({property:S,depsCount:E.length,deps:E.join(", ")}),_.allErrors?u.if(g,()=>{for(const y of E)(0,n.checkReportMissingProp)(c,y)}):(u.if((0,t._)`${g} && (${(0,n.checkMissingProp)(c,E,v)})`),(0,n.reportMissingProp)(c,v),u.else())}}e.validatePropertyDeps=a;function o(c,l=c.schema){const{gen:u,data:m,keyword:_,it:v}=c,S=u.name("valid");for(const E in l)(0,r.alwaysValidSchema)(v,l[E])||(u.if((0,n.propertyInData)(u,m,E,v.opts.ownProperties),()=>{const g=c.subschema({keyword:_,schemaProp:E},S);c.mergeValidEvaluated(g,S)},()=>u.var(S,!0)),c.ok(S))}e.validateSchemaDeps=o,e.default=s})(uc)),uc}var aa={},dh;function X1(){if(dh)return aa;dh=1,Object.defineProperty(aa,"__esModule",{value:!0});const e=Oe(),t=Me(),n={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:{message:"property name must be valid",params:({params:s})=>(0,e._)`{propertyName: ${s.propertyName}}`},code(s){const{gen:i,schema:a,data:o,it:c}=s;if((0,t.alwaysValidSchema)(c,a))return;const l=i.name("valid");i.forIn("key",o,u=>{s.setParams({propertyName:u}),s.subschema({keyword:"propertyNames",data:u,dataTypes:["string"],propertyName:u,compositeRule:!0},l),i.if((0,e.not)(l),()=>{s.error(!0),c.allErrors||i.break()})}),s.ok(l)}};return aa.default=n,aa}var oa={},fh;function sp(){if(fh)return oa;fh=1,Object.defineProperty(oa,"__esModule",{value:!0});const e=ar(),t=Oe(),r=nn(),n=Me(),i={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:{message:"must NOT have additional properties",params:({params:a})=>(0,t._)`{additionalProperty: ${a.additionalProperty}}`},code(a){const{gen:o,schema:c,parentSchema:l,data:u,errsCount:m,it:_}=a;if(!m)throw new Error("ajv implementation error");const{allErrors:v,opts:S}=_;if(_.props=!0,S.removeAdditional!=="all"&&(0,n.alwaysValidSchema)(_,c))return;const E=(0,e.allSchemaProperties)(l.properties),g=(0,e.allSchemaProperties)(l.patternProperties);y(),a.ok((0,t._)`${m} === ${r.default.errors}`);function y(){o.forIn("key",u,b=>{!E.length&&!g.length?x(b):o.if(f(b),()=>x(b))})}function f(b){let O;if(E.length>8){const k=(0,n.schemaRefOrVal)(_,l.properties,"properties");O=(0,e.isOwnProperty)(o,k,b)}else E.length?O=(0,t.or)(...E.map(k=>(0,t._)`${b} === ${k}`)):O=t.nil;return g.length&&(O=(0,t.or)(O,...g.map(k=>(0,t._)`${(0,e.usePattern)(a,k)}.test(${b})`))),(0,t.not)(O)}function C(b){o.code((0,t._)`delete ${u}[${b}]`)}function x(b){if(S.removeAdditional==="all"||S.removeAdditional&&c===!1){C(b);return}if(c===!1){a.setParams({additionalProperty:b}),a.error(),v||o.break();return}if(typeof c=="object"&&!(0,n.alwaysValidSchema)(_,c)){const O=o.name("valid");S.removeAdditional==="failing"?(h(b,O,!1),o.if((0,t.not)(O),()=>{a.reset(),C(b)})):(h(b,O),v||o.if((0,t.not)(O),()=>o.break()))}}function h(b,O,k){const $={keyword:"additionalProperties",dataProp:b,dataPropType:n.Type.Str};k===!1&&Object.assign($,{compositeRule:!0,createErrors:!1,allErrors:!1}),a.subschema($,O)}}};return oa.default=i,oa}var ca={},hh;function Z1(){if(hh)return ca;hh=1,Object.defineProperty(ca,"__esModule",{value:!0});const e=ao(),t=ar(),r=Me(),n=sp(),s={keyword:"properties",type:"object",schemaType:"object",code(i){const{gen:a,schema:o,parentSchema:c,data:l,it:u}=i;u.opts.removeAdditional==="all"&&c.additionalProperties===void 0&&n.default.code(new e.KeywordCxt(u,n.default,"additionalProperties"));const m=(0,t.allSchemaProperties)(o);for(const g of m)u.definedProperties.add(g);u.opts.unevaluated&&m.length&&u.props!==!0&&(u.props=r.mergeEvaluated.props(a,(0,r.toHash)(m),u.props));const _=m.filter(g=>!(0,r.alwaysValidSchema)(u,o[g]));if(_.length===0)return;const v=a.name("valid");for(const g of _)S(g)?E(g):(a.if((0,t.propertyInData)(a,l,g,u.opts.ownProperties)),E(g),u.allErrors||a.else().var(v,!0),a.endIf()),i.it.definedProperties.add(g),i.ok(v);function S(g){return u.opts.useDefaults&&!u.compositeRule&&o[g].default!==void 0}function E(g){i.subschema({keyword:"properties",schemaProp:g,dataProp:g},v)}}};return ca.default=s,ca}var la={},mh;function Q1(){if(mh)return la;mh=1,Object.defineProperty(la,"__esModule",{value:!0});const e=ar(),t=Oe(),r=Me(),n=Me(),s={keyword:"patternProperties",type:"object",schemaType:"object",code(i){const{gen:a,schema:o,data:c,parentSchema:l,it:u}=i,{opts:m}=u,_=(0,e.allSchemaProperties)(o),v=_.filter(x=>(0,r.alwaysValidSchema)(u,o[x]));if(_.length===0||v.length===_.length&&(!u.opts.unevaluated||u.props===!0))return;const S=m.strictSchema&&!m.allowMatchingProperties&&l.properties,E=a.name("valid");u.props!==!0&&!(u.props instanceof t.Name)&&(u.props=(0,n.evaluatedPropsToName)(a,u.props));const{props:g}=u;y();function y(){for(const x of _)S&&f(x),u.allErrors?C(x):(a.var(E,!0),C(x),a.if(E))}function f(x){for(const h in S)new RegExp(x).test(h)&&(0,r.checkStrictMode)(u,`property ${h} matches pattern ${x} (use allowMatchingProperties)`)}function C(x){a.forIn("key",c,h=>{a.if((0,t._)`${(0,e.usePattern)(i,x)}.test(${h})`,()=>{const b=v.includes(x);b||i.subschema({keyword:"patternProperties",schemaProp:x,dataProp:h,dataPropType:n.Type.Str},E),u.opts.unevaluated&&g!==!0?a.assign((0,t._)`${g}[${h}]`,!0):!b&&!u.allErrors&&a.if((0,t.not)(E),()=>a.break())})})}}};return la.default=s,la}var ua={},ph;function ew(){if(ph)return ua;ph=1,Object.defineProperty(ua,"__esModule",{value:!0});const e=Me(),t={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(r){const{gen:n,schema:s,it:i}=r;if((0,e.alwaysValidSchema)(i,s)){r.fail();return}const a=n.name("valid");r.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},a),r.failResult(a,()=>r.reset(),()=>r.error())},error:{message:"must NOT be valid"}};return ua.default=t,ua}var da={},yh;function tw(){if(yh)return da;yh=1,Object.defineProperty(da,"__esModule",{value:!0});const t={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:ar().validateUnion,error:{message:"must match a schema in anyOf"}};return da.default=t,da}var fa={},gh;function rw(){if(gh)return fa;gh=1,Object.defineProperty(fa,"__esModule",{value:!0});const e=Oe(),t=Me(),n={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:{message:"must match exactly one schema in oneOf",params:({params:s})=>(0,e._)`{passingSchemas: ${s.passing}}`},code(s){const{gen:i,schema:a,parentSchema:o,it:c}=s;if(!Array.isArray(a))throw new Error("ajv implementation error");if(c.opts.discriminator&&o.discriminator)return;const l=a,u=i.let("valid",!1),m=i.let("passing",null),_=i.name("_valid");s.setParams({passing:m}),i.block(v),s.result(u,()=>s.reset(),()=>s.error(!0));function v(){l.forEach((S,E)=>{let g;(0,t.alwaysValidSchema)(c,S)?i.var(_,!0):g=s.subschema({keyword:"oneOf",schemaProp:E,compositeRule:!0},_),E>0&&i.if((0,e._)`${_} && ${u}`).assign(u,!1).assign(m,(0,e._)`[${m}, ${E}]`).else(),i.if(_,()=>{i.assign(u,!0),i.assign(m,E),g&&s.mergeEvaluated(g,e.Name)})})}}};return fa.default=n,fa}var ha={},vh;function nw(){if(vh)return ha;vh=1,Object.defineProperty(ha,"__esModule",{value:!0});const e=Me(),t={keyword:"allOf",schemaType:"array",code(r){const{gen:n,schema:s,it:i}=r;if(!Array.isArray(s))throw new Error("ajv implementation error");const a=n.name("valid");s.forEach((o,c)=>{if((0,e.alwaysValidSchema)(i,o))return;const l=r.subschema({keyword:"allOf",schemaProp:c},a);r.ok(a),r.mergeEvaluated(l)})}};return ha.default=t,ha}var ma={},bh;function iw(){if(bh)return ma;bh=1,Object.defineProperty(ma,"__esModule",{value:!0});const e=Oe(),t=Me(),n={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:{message:({params:i})=>(0,e.str)`must match "${i.ifClause}" schema`,params:({params:i})=>(0,e._)`{failingKeyword: ${i.ifClause}}`},code(i){const{gen:a,parentSchema:o,it:c}=i;o.then===void 0&&o.else===void 0&&(0,t.checkStrictMode)(c,'"if" without "then" and "else" is ignored');const l=s(c,"then"),u=s(c,"else");if(!l&&!u)return;const m=a.let("valid",!0),_=a.name("_valid");if(v(),i.reset(),l&&u){const E=a.let("ifClause");i.setParams({ifClause:E}),a.if(_,S("then",E),S("else",E))}else l?a.if(_,S("then")):a.if((0,e.not)(_),S("else"));i.pass(m,()=>i.error(!0));function v(){const E=i.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},_);i.mergeEvaluated(E)}function S(E,g){return()=>{const y=i.subschema({keyword:E},_);a.assign(m,_),i.mergeValidEvaluated(y,m),g?a.assign(g,(0,e._)`${E}`):i.setParams({ifClause:E})}}}};function s(i,a){const o=i.schema[a];return o!==void 0&&!(0,t.alwaysValidSchema)(i,o)}return ma.default=n,ma}var pa={},_h;function sw(){if(_h)return pa;_h=1,Object.defineProperty(pa,"__esModule",{value:!0});const e=Me(),t={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:r,parentSchema:n,it:s}){n.if===void 0&&(0,e.checkStrictMode)(s,`"${r}" without "if" is ignored`)}};return pa.default=t,pa}var Sh;function aw(){if(Sh)return ra;Sh=1,Object.defineProperty(ra,"__esModule",{value:!0});const e=np(),t=G1(),r=ip(),n=W1(),s=J1(),i=Y1(),a=X1(),o=sp(),c=Z1(),l=Q1(),u=ew(),m=tw(),_=rw(),v=nw(),S=iw(),E=sw();function g(y=!1){const f=[u.default,m.default,_.default,v.default,S.default,E.default,a.default,o.default,i.default,c.default,l.default];return y?f.push(t.default,n.default):f.push(e.default,r.default),f.push(s.default),f}return ra.default=g,ra}var ya={},ga={},wh;function ow(){if(wh)return ga;wh=1,Object.defineProperty(ga,"__esModule",{value:!0});const e=Oe(),r={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:{message:({schemaCode:n})=>(0,e.str)`must match format "${n}"`,params:({schemaCode:n})=>(0,e._)`{format: ${n}}`},code(n,s){const{gen:i,data:a,$data:o,schema:c,schemaCode:l,it:u}=n,{opts:m,errSchemaPath:_,schemaEnv:v,self:S}=u;if(!m.validateFormats)return;o?E():g();function E(){const y=i.scopeValue("formats",{ref:S.formats,code:m.code.formats}),f=i.const("fDef",(0,e._)`${y}[${l}]`),C=i.let("fType"),x=i.let("format");i.if((0,e._)`typeof ${f} == "object" && !(${f} instanceof RegExp)`,()=>i.assign(C,(0,e._)`${f}.type || "string"`).assign(x,(0,e._)`${f}.validate`),()=>i.assign(C,(0,e._)`"string"`).assign(x,f)),n.fail$data((0,e.or)(h(),b()));function h(){return m.strictSchema===!1?e.nil:(0,e._)`${l} && !${x}`}function b(){const O=v.$async?(0,e._)`(${f}.async ? await ${x}(${a}) : ${x}(${a}))`:(0,e._)`${x}(${a})`,k=(0,e._)`(typeof ${x} == "function" ? ${O} : ${x}.test(${a}))`;return(0,e._)`${x} && ${x} !== true && ${C} === ${s} && !${k}`}}function g(){const y=S.formats[c];if(!y){h();return}if(y===!0)return;const[f,C,x]=b(y);f===s&&n.pass(O());function h(){if(m.strictSchema===!1){S.logger.warn(k());return}throw new Error(k());function k(){return`unknown format "${c}" ignored in schema at path "${_}"`}}function b(k){const $=k instanceof RegExp?(0,e.regexpCode)(k):m.code.formats?(0,e._)`${m.code.formats}${(0,e.getProperty)(c)}`:void 0,M=i.scopeValue("formats",{key:c,ref:k,code:$});return typeof k=="object"&&!(k instanceof RegExp)?[k.type||"string",k.validate,(0,e._)`${M}.validate`]:["string",k,M]}function O(){if(typeof y=="object"&&!(y instanceof RegExp)&&y.async){if(!v.$async)throw new Error("async format in sync schema");return(0,e._)`await ${x}(${a})`}return typeof C=="function"?(0,e._)`${x}(${a})`:(0,e._)`${x}.test(${a})`}}}};return ga.default=r,ga}var Ch;function cw(){if(Ch)return ya;Ch=1,Object.defineProperty(ya,"__esModule",{value:!0});const t=[ow().default];return ya.default=t,ya}var vn={},Eh;function lw(){return Eh||(Eh=1,Object.defineProperty(vn,"__esModule",{value:!0}),vn.contentVocabulary=vn.metadataVocabulary=void 0,vn.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],vn.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]),vn}var Ah;function uw(){if(Ah)return Us;Ah=1,Object.defineProperty(Us,"__esModule",{value:!0});const e=$1(),t=K1(),r=aw(),n=cw(),s=lw(),i=[e.default,t.default,(0,r.default)(),n.default,s.metadataVocabulary,s.contentVocabulary];return Us.default=i,Us}var va={},Ci={},Ph;function dw(){if(Ph)return Ci;Ph=1,Object.defineProperty(Ci,"__esModule",{value:!0}),Ci.DiscrError=void 0;var e;return(function(t){t.Tag="tag",t.Mapping="mapping"})(e||(Ci.DiscrError=e={})),Ci}var xh;function fw(){if(xh)return va;xh=1,Object.defineProperty(va,"__esModule",{value:!0});const e=Oe(),t=dw(),r=ml(),n=oo(),s=Me(),a={keyword:"discriminator",type:"object",schemaType:"object",error:{message:({params:{discrError:o,tagName:c}})=>o===t.DiscrError.Tag?`tag "${c}" must be string`:`value of tag "${c}" must be in oneOf`,params:({params:{discrError:o,tag:c,tagName:l}})=>(0,e._)`{error: ${o}, tag: ${l}, tagValue: ${c}}`},code(o){const{gen:c,data:l,schema:u,parentSchema:m,it:_}=o,{oneOf:v}=m;if(!_.opts.discriminator)throw new Error("discriminator: requires discriminator option");const S=u.propertyName;if(typeof S!="string")throw new Error("discriminator: requires propertyName");if(u.mapping)throw new Error("discriminator: mapping is not supported");if(!v)throw new Error("discriminator: requires oneOf keyword");const E=c.let("valid",!1),g=c.const("tag",(0,e._)`${l}${(0,e.getProperty)(S)}`);c.if((0,e._)`typeof ${g} == "string"`,()=>y(),()=>o.error(!1,{discrError:t.DiscrError.Tag,tag:g,tagName:S})),o.ok(E);function y(){const x=C();c.if(!1);for(const h in x)c.elseIf((0,e._)`${g} === ${h}`),c.assign(E,f(x[h]));c.else(),o.error(!1,{discrError:t.DiscrError.Mapping,tag:g,tagName:S}),c.endIf()}function f(x){const h=c.name("valid"),b=o.subschema({keyword:"oneOf",schemaProp:x},h);return o.mergeEvaluated(b,e.Name),h}function C(){var x;const h={},b=k(m);let O=!0;for(let q=0;qthis.addVocabulary(S)),this.opts.discriminator&&this.addKeyword(s.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;const S=this.opts.$data?this.$dataMetaSchema(i,a):i;this.addMetaSchema(S,o,!1),this.refs["http://json-schema.org/schema"]=o}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(o)?o:void 0)}}t.Ajv=c,e.exports=t=c,e.exports.Ajv=c,Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var l=ao();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return l.KeywordCxt}});var u=Oe();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return u._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return u.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return u.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return u.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return u.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return u.CodeGen}});var m=hl();Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return m.default}});var _=oo();Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return _.default}})})(Fs,Fs.exports)),Fs.exports}var jh;function Sw(){return jh||(jh=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.formatLimitDefinition=void 0;const t=_w(),r=Oe(),n=r.operators,s={formatMaximum:{okStr:"<=",ok:n.LTE,fail:n.GT},formatMinimum:{okStr:">=",ok:n.GTE,fail:n.LT},formatExclusiveMaximum:{okStr:"<",ok:n.LT,fail:n.GTE},formatExclusiveMinimum:{okStr:">",ok:n.GT,fail:n.LTE}},i={message:({keyword:o,schemaCode:c})=>r.str`should be ${s[o].okStr} ${c}`,params:({keyword:o,schemaCode:c})=>r._`{comparison: ${s[o].okStr}, limit: ${c}}`};e.formatLimitDefinition={keyword:Object.keys(s),type:"string",schemaType:"string",$data:!0,error:i,code(o){const{gen:c,data:l,schemaCode:u,keyword:m,it:_}=o,{opts:v,self:S}=_;if(!v.validateFormats)return;const E=new t.KeywordCxt(_,S.RULES.all.format.definition,"format");E.$data?g():y();function g(){const C=c.scopeValue("formats",{ref:S.formats,code:v.code.formats}),x=c.const("fmt",r._`${C}[${E.schemaCode}]`);o.fail$data(r.or(r._`typeof ${x} != "object"`,r._`${x} instanceof RegExp`,r._`typeof ${x}.compare != "function"`,f(x)))}function y(){const C=E.schema,x=S.formats[C];if(!x||x===!0)return;if(typeof x!="object"||x instanceof RegExp||typeof x.compare!="function")throw new Error(`"${m}": format "${C}" does not define "compare" function`);const h=c.scopeValue("formats",{key:C,ref:x,code:v.code.formats?r._`${v.code.formats}${r.getProperty(C)}`:void 0});o.fail$data(f(h))}function f(C){return r._`${C}.compare(${l}, ${u}) ${s[m].fail} 0`}},dependencies:["format"]};const a=o=>(o.addKeyword(e.formatLimitDefinition),o);e.default=a})(tc)),tc}var kh;function ww(){return kh||(kh=1,(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});const r=p1(),n=Sw(),s=Oe(),i=new s.Name("fullFormats"),a=new s.Name("fastFormats"),o=(l,u={keywords:!0})=>{if(Array.isArray(u))return c(l,u,r.fullFormats,i),l;const[m,_]=u.mode==="fast"?[r.fastFormats,a]:[r.fullFormats,i],v=u.formats||r.formatNames;return c(l,v,m,_),u.keywords&&n.default(l),l};o.get=(l,u="full")=>{const _=(u==="fast"?r.fastFormats:r.fullFormats)[l];if(!_)throw new Error(`Unknown format "${l}"`);return _};function c(l,u,m,_){var v,S;(v=(S=l.opts.code).formats)!==null&&v!==void 0||(S.formats=s._`require("ajv-formats/dist/formats").${_}`);for(const E of u)l.addFormat(E,m[E])}e.exports=t=o,Object.defineProperty(t,"__esModule",{value:!0}),t.default=o})($s,$s.exports)),$s.exports}var Cw=ww();const Ih=Fi(Cw),Ew={allErrors:!0,multipleOfPrecision:8,strict:!1,verbose:!0,discriminator:!1},Aw=/^(#?([0-9A-Fa-f]{3}){1,2}\b|aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow|(rgb\(\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*,\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*,\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*\))|(rgb\(\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*\)))$/,Pw=/^data:([a-z]+\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/;function xw(e,t,r={},n,s=m1,i){let a=new s({...Ew,...r});return n?Ih(a,n):n!==!1&&Ih(a),a.addFormat("data-url",Pw),a.addFormat("color",Aw),a.addKeyword(Bc),Array.isArray(e)&&a.addMetaSchema(e),ue(t)&&Object.keys(t).forEach(o=>{a.addFormat(o,t[o])}),i&&(a=i(a)),a}class Ow{ajv;localizer;suppressDuplicateFiltering;lastSeenRootSchema;hasRegisteredRootSchema=!1;constructor(t,r){const{additionalMetaSchemas:n,customFormats:s,ajvOptionsOverrides:i,ajvFormatOptions:a,AjvClass:o,extenderFn:c,suppressDuplicateFiltering:l}=t;this.ajv=xw(n,s,i,a,o,c),this.localizer=r,this.suppressDuplicateFiltering=l}reset(){this.ajv.removeSchema(),this.lastSeenRootSchema=void 0,this.hasRegisteredRootSchema=!1}rawValidation(t,r){let n,s;try{t[Ue]&&(s=this.ajv.getSchema(t[Ue])),s===void 0&&(s=this.ajv.compile(t)),s(r)}catch(a){n=a,s===void 0&&this.ajv.removeSchema(t[Ue]!==void 0?t[Ue]:t)}let i;return s&&(typeof this.localizer=="function"&&((s.errors??[]).forEach(a=>{["missingProperty","property"].forEach(o=>{a.params?.[o]&&(a.params[o]=`'${a.params[o]}'`)}),a.params?.deps&&(a.params.deps=a.params.deps.split(", ").map(o=>`'${o}'`).join(", "))}),this.localizer(s.errors),(s.errors??[]).forEach(a=>{["missingProperty","property"].forEach(o=>{a.params?.[o]&&(a.params[o]=a.params[o].slice(1,-1))}),a.params?.deps&&(a.params.deps=a.params.deps.split(", ").map(o=>o.slice(1,-1)).join(", "))})),i=s.errors||void 0,s.errors=null),{errors:i,validationError:n}}validateFormData(t,r,n,s,i){const a=this.rawValidation(r,t);return oS(this,a,t,r,n,s,i,this.suppressDuplicateFiltering)}handleSchemaUpdate(t){if(this.lastSeenRootSchema===t&&this.hasRegisteredRootSchema)return;const r=t[Ue]??Vh;this.ajv.getSchema(r)===void 0?this.ajv.addSchema(t,r):je(t,this.ajv.getSchema(r)?.schema)||(this.ajv.removeSchema(r),this.ajv.addSchema(t,r)),this.lastSeenRootSchema=t,this.hasRegisteredRootSchema=!0}isValid(t,r,n){let s,i=!1;try{this.handleSchemaUpdate(n);const a=nl(t);s=a[Ue]??g0(a);let o;return o=this.ajv.getSchema(s),o===void 0&&(o=this.ajv.addSchema(a,s).getSchema(s)||this.ajv.compile(a)),i=!0,o(r)}catch(a){return console.warn("Error encountered compiling schema:",a),!i&&s!==void 0&&this.ajv.removeSchema(s),!1}}}function jw(e={},t){return new Ow(e,t)}const kw=jw(),Nh=["#0ea5e9","#6366f1","#a855f7","#14b8a6","#f59e0b","#ec4899"],$i=Z.createContext(0);function yl(){const e=Z.useContext($i);return{color:Nh[e%Nh.length],depth:e}}function Uc(e,t=""){if(!e||typeof e!="object")return{};const r=Array.isArray(e.examples)?e.examples[0]:void 0,n=r===void 0?{}:{"ui:placeholder":String(r)};return e.writeOnly===!0?{"ui:widget":"SecretWidget","ui:options":{secretPath:t},...n}:e.type==="boolean"?{"ui:widget":"checkbox","ui:options":{label:!1}}:e.type==="array"&&e.items?{items:Uc(e.items,t?`${t}[]`:"[]")}:e.type!=="object"||!e.properties?n:Object.fromEntries(Object.entries(e.properties).map(([s,i])=>[s,Uc(i,t?`${t}.${s}`:s)]))}function Iw({id:e,disabled:t,readonly:r,options:n,placeholder:s,registry:i}){const a=n.secretPath,o=i.formContext||{},c=o.secretOperations?.[a],l=!!o.configuredSecrets?.[a],u=c?.action==="replace",m=c?.action==="clear",_=t||r;function v(S){_||o.setSecretOperation?.(a,S)}return N.jsxs("div",{className:"configuration-secret space-y-0.5",children:[N.jsxs("div",{className:"flex flex-wrap items-center gap-0.5",children:[N.jsx("span",{className:"text-[0.7rem] text-slate-500",children:m?"Will be cleared when saved":u?"Replacement pending":l?"Configured":"Not configured"}),N.jsxs("div",{className:"flex gap-0.5",children:[N.jsx("button",{type:"button",className:"button-dark text-xs",disabled:_,onClick:()=>v(u?null:{action:"replace",value:""}),children:u?"Cancel replace":"Replace"}),N.jsx("button",{type:"button",className:m?"button-dark text-xs":"button-danger text-xs",disabled:_,onClick:()=>v(m?null:{action:"clear"}),children:m?"Undo clear":"Clear"})]})]}),u?N.jsx("input",{id:e,className:"field-input w-full",type:"password",autoComplete:"new-password",value:c.value,placeholder:s||"Enter replacement value",disabled:_,onChange:S=>v({action:"replace",value:S.target.value})}):null]})}function Nw({children:e,classNames:t,description:r,errors:n,help:s,hidden:i,id:a,label:o,required:c,schema:l,style:u}){return i?N.jsx("div",{className:"hidden",children:e}):l?.type==="object"||l?.type==="array"?N.jsxs("div",{className:t,style:u,children:[e,n,s]}):N.jsxs("div",{className:`${t||""} configuration-line`,style:u,children:[N.jsx("div",{className:"configuration-key",children:N.jsxs("label",{htmlFor:a,className:"text-xs font-semibold text-slate-100",children:[o,c?N.jsx("span",{className:"ml-0.25 text-sky-300",children:"*"}):null]})}),N.jsxs("div",{className:"configuration-value",children:[r?N.jsx("div",{className:"configuration-value-description",children:r}):null,e,n,s]})]})}function Rw({description:e,fieldPathId:t,properties:r,title:n}){const i=r.filter(c=>!c.hidden).map(c=>c.content),a=t.path.length===1,o=yl();return t.path.length===0?N.jsxs("div",{children:[e?N.jsx("div",{className:"configuration-root-description",children:e}):null,N.jsx($i.Provider,{value:0,children:N.jsx("div",{className:"configuration-tree",children:i})})]}):typeof t.path.at(-1)=="number"?N.jsxs("div",{children:[e?N.jsx("div",{className:"configuration-item-description",children:e}):null,i]}):N.jsxs(ot,{title:n,color:o.color,clipOverflow:!1,className:`configuration-card${a?" configuration-top-level-card":""}`,bodyClassName:"configuration-card-body",children:[e?N.jsx("div",{className:"configuration-branch-description",children:e}):null,N.jsx($i.Provider,{value:o.depth+1,children:N.jsx("div",{className:"configuration-children",children:i})})]})}function $w({buttonsProps:e,children:t,hasToolbar:r,index:n}){const s=e.disabled||e.readonly,i=yl();return N.jsxs(ot,{title:`Item ${n+1}`,color:i.color,clipOverflow:!1,className:"configuration-card configuration-array-item",bodyClassName:"configuration-card-body",children:[r?N.jsxs("div",{className:"configuration-item-actions",children:[e.hasMoveUp||e.hasMoveDown?N.jsx("button",{type:"button",className:"button-dark text-xs",disabled:s||!e.hasMoveUp,onClick:e.onMoveUpItem,children:"Move up"}):null,e.hasMoveUp||e.hasMoveDown?N.jsx("button",{type:"button",className:"button-dark text-xs",disabled:s||!e.hasMoveDown,onClick:e.onMoveDownItem,children:"Move down"}):null,e.hasCopy?N.jsx("button",{type:"button",className:"button-dark text-xs",disabled:s,onClick:e.onCopyItem,children:"Duplicate"}):null,e.hasRemove?N.jsx("button",{type:"button",className:"button-danger text-xs",disabled:s,onClick:e.onRemoveItem,children:"Remove"}):null]}):null,N.jsx($i.Provider,{value:i.depth+1,children:N.jsx("div",{className:"configuration-children",children:t})})]})}function Fw({canAdd:e,disabled:t,fieldPathId:r,items:n,onAddClick:s,readonly:i,schema:a,title:o}){const c=r.path.length===1,l=yl();return N.jsxs(ot,{title:o,meta:`${n.length} ${n.length===1?"item":"items"}`,color:l.color,clipOverflow:!1,className:`configuration-card configuration-array${c?" configuration-top-level-card":""}`,bodyClassName:"configuration-card-body",children:[a.description?N.jsx("div",{className:"configuration-branch-description",children:a.description}):null,e?N.jsx("div",{className:"configuration-array-actions",children:N.jsx("button",{type:"button",className:"button-dark text-xs",disabled:t||i,onClick:s,children:"Add item"})}):null,N.jsx($i.Provider,{value:l.depth+1,children:N.jsx("div",{className:"configuration-children",children:n.length?n:N.jsx("p",{className:"text-xs text-slate-500",children:"No items configured."})})})]})}function Dw({schema:e,value:t,onChange:r,configuredSecrets:n,secretOperations:s,setSecretOperation:i}){const a=Z.useMemo(()=>Uc(e),[e]),o=Z.useMemo(()=>({SecretWidget:Iw}),[]),c=Z.useMemo(()=>({ArrayFieldItemTemplate:$w,ArrayFieldTemplate:Fw,FieldTemplate:Nw,ObjectFieldTemplate:Rw}),[]),l=Z.useMemo(()=>({configuredSecrets:n,secretOperations:s,setSecretOperation:i}),[n,s,i]);return N.jsx("div",{className:"configuration-schema-form",children:N.jsx(Vr,{schema:e,uiSchema:a,formData:t,validator:kw,widgets:o,templates:c,formContext:l,noHtml5Validate:!0,showErrorList:!1,onChange:({formData:u})=>r(u),children:N.jsx(N.Fragment,{})})})}function dc(e){return JSON.parse(JSON.stringify(e))}function Tw({snapshot:e,socket:t,runSensitive:r,onSnapshot:n,onReload:s}){const i=e?.configuration?.config,a=e?.configuration?.schema,o=e?.configuration?.revision,[c,l]=Z.useState(()=>dc(i)),[u,m]=Z.useState({}),[_,v]=Z.useState(!1),[S,E]=Z.useState(""),[g,y]=Z.useState([]);Z.useEffect(()=>{l(dc(i)),m({}),E(""),y([])},[o,i]);const f=Z.useMemo(()=>JSON.stringify(c)!==JSON.stringify(i)||Object.keys(u).length>0,[c,u,i]);if(!i||!a)return N.jsx("p",{className:"surface p-1 text-sm text-red-200",children:"The configuration document is unavailable."});const C=(h,b)=>m(O=>{const k={...O};return b?k[h]=b:delete k[h],k});async function x(){v(!0),E(""),y([]);try{const h=await r(()=>Bp(t,{value:c,expectedRevision:o,secretOperations:u}));n(h.snapshot)}catch(h){E(h.message),y(h.validationErrors||[])}finally{v(!1)}}return N.jsxs(ot,{title:"Configuration",meta:`revision ${o}`,clipOverflow:!1,bodyClassName:"p-0.5",children:[N.jsxs("div",{className:"configuration-toolbar sticky top-0 z-20 mb-0.5 space-y-0.5 border border-neutral-500/60 bg-neutral-900/95 p-0.5 backdrop-blur",children:[N.jsx("p",{className:"text-xs text-slate-400",children:"Saved changes apply after an application restart."}),N.jsxs("div",{className:"flex flex-wrap gap-0.5",children:[N.jsx("button",{type:"button",className:"button-dark",disabled:_,onClick:s,children:"Reload"}),N.jsx("button",{type:"button",className:"button-dark",disabled:!f||_,onClick:()=>{l(dc(i)),m({})},children:"Reset"}),N.jsx("button",{type:"button",className:"button-dark",disabled:!f||_,onClick:x,children:_?"Saving…":"Save configuration"})]})]}),S?N.jsx("p",{className:"border border-red-500/60 bg-red-950/40 p-1 text-xs text-red-100",children:S}):null,g.length?N.jsxs("div",{className:"border border-red-500/60 bg-red-950/40 p-1 text-xs text-red-100",children:[N.jsx("p",{className:"font-semibold",children:"Configuration could not be saved"}),N.jsx("ul",{className:"mt-0.5 list-disc space-y-0.25 pl-4",children:g.map((h,b)=>N.jsxs("li",{children:[h.path,": ",h.message]},`${h.path}-${b}`))})]}):null,N.jsx(Dw,{schema:a,value:c,onChange:l,configuredSecrets:e.configuration.configuredSecrets,secretOperations:u,setSecretOperation:C})]})}function Mw({open:e,busy:t,error:r,onCancel:n,onConfirm:s}){const[i,a]=Z.useState("");if(!e)return null;async function o(l){l.preventDefault(),await s(i),a("")}function c(){a(""),n()}return N.jsx("div",{className:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/75 p-2",children:N.jsxs("form",{className:"w-full max-w-sm border border-neutral-500/70 bg-neutral-900 p-1 text-slate-100 shadow-2xl",onSubmit:o,children:[N.jsx("h2",{className:"text-base font-semibold",children:"Confirm password"}),N.jsx("p",{className:"mt-0.5 text-xs text-slate-400",children:"This sensitive action requires recent confirmation of your administrator password."}),N.jsx("input",{autoFocus:!0,autoComplete:"current-password",className:"field-input mt-1 w-full",type:"password",value:i,onChange:l=>a(l.target.value)}),r?N.jsx("p",{className:"mt-0.5 text-xs text-red-300",children:r}):null,N.jsxs("div",{className:"mt-1 flex justify-end gap-0.5",children:[N.jsx("button",{type:"button",className:"button-dark",disabled:t,onClick:c,children:"Cancel"}),N.jsx("button",{type:"submit",className:"button-dark",disabled:t||!i,children:t?"Confirming…":"Confirm"})]})]})})}const qw=[{key:"overview",label:"Overview"},{key:"fleet",label:"Fleet operations"},{key:"users",label:"Users and administrators",lockdownOnly:!0},{key:"configuration",label:"Configuration",lockdownOnly:!0}];function Vw(){Np({identitySurface:"passive"});const e=Rh(),t=Il(L=>L.session?.role||"user"),r=Il(L=>L.connected),[n,s]=Rp(),i=n.get("section")||"overview",[a,o]=Z.useState(null),[c,l]=Z.useState(""),u=Z.useRef(null),[m,_]=Z.useState(!1),[v,S]=Z.useState(!1),[E,g]=Z.useState(""),{value:y}=$p("page",{backgroundTheme:Fp}),f=Dp(y?.backgroundTheme),C=t==="admin"||t==="lockdown",x=t==="lockdown",h=Z.useCallback(async()=>{if(!x){o(null);return}l("");try{o(await Hp(e))}catch(L){l(L.message)}},[x,e]);Z.useEffect(()=>{h()},[h,r]);const b=Z.useCallback(async L=>{try{return await L()}catch(B){if(B.code!=="PASSWORD_CONFIRMATION_REQUIRED")throw B;return new Promise((J,Y)=>{u.current={operation:L,resolve:J,reject:Y},g(""),_(!0)})}},[]);async function O(L){S(!0),g("");try{await Kp(e,L);const B=u.current;if(u.current=null,_(!1),B)try{B.resolve(await B.operation())}catch(J){B.reject(J)}}catch(B){g(B.message)}finally{S(!1)}}function k(){const L=u.current;u.current=null,_(!1),L&&L.reject(new Error("Sensitive action cancelled."))}function $(L){s(L==="overview"?{}:{section:L})}const M=qw.filter(L=>!L.lockdownOnly||x),q=M.some(L=>L.key===i)?i:"overview";let U;return C?q==="fleet"?U=N.jsx(qp,{}):x?a?q==="users"?U=N.jsxs("div",{className:"space-y-0.5",children:[N.jsx(gy,{administrators:a.administrators,socket:e,runSensitive:b,onSnapshot:o}),N.jsx(py,{})]}):q==="configuration"?U=N.jsx(Tw,{snapshot:a,socket:e,runSensitive:b,onSnapshot:o,onReload:h}):U=N.jsx(vy,{snapshot:a,socket:e,runSensitive:b,onSnapshot:o}):U=N.jsx(ot,{title:"Loading administration",bodyClassName:"p-1 text-sm text-slate-300",children:N.jsx("p",{children:c||"Loading configuration and audit state…"})}):U=N.jsx(ot,{title:"Administrator access",bodyClassName:"p-1 text-sm text-slate-300",children:N.jsx("p",{children:"Routine fleet operations are available. Configuration, users, secrets, and system administration require a lockdown administrator."})}):U=N.jsx("div",{className:"mx-auto w-full max-w-md",children:N.jsx(Mp,{})}),N.jsxs("div",{className:`${f} min-h-screen text-slate-100`,children:[N.jsx(Tp,{}),N.jsx(Mw,{open:m,busy:v,error:E,onCancel:k,onConfirm:O}),N.jsxs("main",{className:"mx-auto min-h-screen w-full max-w-[100rem] p-1",children:[N.jsx(ot,{title:"MultiRover administration",meta:r?t:"offline",bodyClassName:"p-0.5 text-xs text-slate-400",children:N.jsx("p",{children:a?`Active configuration revision ${a.configuration.revision}.${a.restartRequired?" An application restart is required to apply saved changes.":" The running application has loaded this revision."}`:"Central server administration and configuration."})}),C?N.jsxs($h,{currentTab:q,onTabChange:$,children:[N.jsx("nav",{"aria-label":"Administration sections",children:N.jsx(Fh,{className:"my-0.5",children:M.map(L=>N.jsx(Kn,{id:L.key,children:L.label},L.key))})}),N.jsx(Dh,{children:N.jsx("section",{className:"min-w-0",children:U})})]}):N.jsx("section",{className:"mt-0.5 min-w-0",children:U})]})]})}export{Vw as default}; +//# sourceMappingURL=AdminApp-TTa85DeJ.js.map diff --git a/server/public/assets/AdminApp-B89XZuLF.js.map b/server/public/assets/AdminApp-TTa85DeJ.js.map similarity index 68% rename from server/public/assets/AdminApp-B89XZuLF.js.map rename to server/public/assets/AdminApp-TTa85DeJ.js.map index 9a654f87..e73d47cf 100644 --- a/server/public/assets/AdminApp-B89XZuLF.js.map +++ b/server/public/assets/AdminApp-TTa85DeJ.js.map @@ -1 +1 @@ -{"version":3,"file":"AdminApp-B89XZuLF.js","sources":["../../../webui/src/database/identityDatabaseApi.js","../../../webui/src/database/identityDatabaseUtils.js","../../../webui/src/database/IdentityDatabasePanel.jsx","../../../webui/src/admin/components/AdministratorAccounts.jsx","../../../webui/src/admin/components/AdminOverview.jsx","../../../webui/node_modules/@rjsf/utils/lib/isObject.js","../../../webui/node_modules/@rjsf/utils/lib/allowAdditionalItems.js","../../../webui/node_modules/@rjsf/utils/lib/getDecimalSeparator.js","../../../webui/node_modules/@rjsf/utils/lib/asNumber.js","../../../webui/node_modules/@rjsf/utils/lib/constants.js","../../../webui/node_modules/@rjsf/utils/lib/getUiOptions.js","../../../webui/node_modules/@rjsf/utils/lib/canExpand.js","../../../webui/node_modules/@rjsf/utils/lib/isPlainObject.js","../../../webui/node_modules/@rjsf/utils/lib/createErrorHandler.js","../../../webui/node_modules/fast-equals/dist/es/index.mjs","../../../webui/node_modules/@rjsf/utils/lib/deepEquals.js","../../../webui/node_modules/fast-uri/lib/utils.js","../../../webui/node_modules/fast-uri/lib/schemes.js","../../../webui/node_modules/fast-uri/index.js","../../../webui/node_modules/jsonpointer/jsonpointer.js","../../../webui/node_modules/@rjsf/utils/lib/findSchemaDefinition.js","../../../webui/node_modules/@rjsf/utils/lib/pathUtils.js","../../../webui/node_modules/@rjsf/utils/lib/getDiscriminatorFieldFromSchema.js","../../../webui/node_modules/@rjsf/utils/lib/guessType.js","../../../webui/node_modules/@rjsf/utils/lib/getSchemaType.js","../../../webui/node_modules/@rjsf/utils/lib/mergeSchemas.js","../../../webui/node_modules/@rjsf/utils/lib/getPropertySchema.js","../../../webui/node_modules/@rjsf/utils/lib/getOptionMatchingSimpleDiscriminator.js","../../../webui/node_modules/@rjsf/utils/lib/schema/getFirstMatchingOption.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/object.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/json-schema/json-schema.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/ord.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/array.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/memoize.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/json-schema/compare/compare.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/function.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/math.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/json-schema/merge/patterns.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/json-schema/merge/merge.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/json-schema/merge/all-of-merge.js","../../../webui/node_modules/@rjsf/utils/lib/schema/shallowAllOfMerge.js","../../../webui/node_modules/@rjsf/utils/lib/schema/retrieveSchema.js","../../../webui/node_modules/@rjsf/utils/lib/schema/findSelectedOptionInXxxOf.js","../../../webui/node_modules/@rjsf/utils/lib/schema/getFromSchema.js","../../../webui/node_modules/@rjsf/utils/lib/schema/findFieldInSchema.js","../../../webui/node_modules/@rjsf/utils/lib/schema/getClosestMatchingOption.js","../../../webui/node_modules/@rjsf/utils/lib/constIsAjvDataReference.js","../../../webui/node_modules/@rjsf/utils/lib/isConstant.js","../../../webui/node_modules/@rjsf/utils/lib/isFixedItems.js","../../../webui/node_modules/@rjsf/utils/lib/mergeDefaultsWithFormData.js","../../../webui/node_modules/@rjsf/utils/lib/mergeObjects.js","../../../webui/node_modules/@rjsf/utils/lib/toConstant.js","../../../webui/node_modules/@rjsf/utils/lib/optionsList.js","../../../webui/node_modules/@rjsf/utils/lib/schema/isSelect.js","../../../webui/node_modules/@rjsf/utils/lib/schema/isMultiSelect.js","../../../webui/node_modules/@rjsf/utils/lib/schema/getDefaultFormState.js","../../../webui/node_modules/@rjsf/utils/lib/isCustomWidget.js","../../../webui/node_modules/@rjsf/utils/lib/schema/isFilesArray.js","../../../webui/node_modules/@rjsf/utils/lib/schema/getDisplayLabel.js","../../../webui/node_modules/@rjsf/utils/lib/schema/omitExtraData.js","../../../webui/node_modules/@rjsf/utils/lib/schema/sanitizeDataForNewSchema.js","../../../webui/node_modules/@rjsf/utils/lib/schema/toPathSchema.js","../../../webui/node_modules/@rjsf/utils/lib/createSchemaUtils.js","../../../webui/node_modules/@rjsf/utils/lib/dataURItoBlob.js","../../../webui/node_modules/@rjsf/utils/lib/pad.js","../../../webui/node_modules/@rjsf/utils/lib/dateRangeOptions.js","../../../webui/node_modules/@rjsf/utils/lib/replaceStringParameters.js","../../../webui/node_modules/@rjsf/utils/lib/englishStringTranslator.js","../../../webui/node_modules/@rjsf/utils/lib/enumOptionsValueForIndex.js","../../../webui/node_modules/@rjsf/utils/lib/enumOptionsDeselectValue.js","../../../webui/node_modules/@rjsf/utils/lib/enumOptionsIsSelected.js","../../../webui/node_modules/@rjsf/utils/lib/enumOptionsIndexForValue.js","../../../webui/node_modules/@rjsf/utils/lib/enumOptionSelectedValue.js","../../../webui/node_modules/@rjsf/utils/lib/enumOptionsSelectValue.js","../../../webui/node_modules/@rjsf/utils/lib/enumOptionValueDecoder.js","../../../webui/node_modules/@rjsf/utils/lib/enumOptionValueEncoder.js","../../../webui/node_modules/@rjsf/utils/lib/ErrorSchemaBuilder.js","../../../webui/node_modules/@rjsf/utils/lib/getChangedFields.js","../../../webui/node_modules/@rjsf/utils/lib/getDateElementProps.js","../../../webui/node_modules/@rjsf/utils/lib/rangeSpec.js","../../../webui/node_modules/@rjsf/utils/lib/getInputProps.js","../../../webui/node_modules/@rjsf/utils/lib/getOptionValueFormat.js","../../../webui/node_modules/@rjsf/utils/lib/getSubmitButtonOptions.js","../../../webui/node_modules/@rjsf/utils/lib/getTemplate.js","../../../webui/node_modules/@rjsf/utils/lib/getTestIds.js","../../../webui/node_modules/react-is/cjs/react-is.production.min.js","../../../webui/node_modules/react-is/index.js","../../../webui/node_modules/@rjsf/utils/lib/getWidget.js","../../../webui/node_modules/@rjsf/utils/lib/hashForSchema.js","../../../webui/node_modules/@rjsf/utils/lib/hasWidget.js","../../../webui/node_modules/@rjsf/utils/lib/idGenerators.js","../../../webui/node_modules/@rjsf/utils/lib/isFormDataAvailable.js","../../../webui/node_modules/@rjsf/utils/lib/isRootSchema.js","../../../webui/node_modules/@rjsf/utils/lib/labelValue.js","../../../webui/node_modules/@rjsf/utils/lib/localToUTC.js","../../../webui/node_modules/@rjsf/utils/lib/logUnsupportedDefaultForEnum.js","../../../webui/node_modules/@rjsf/utils/lib/lookupFromFormContext.js","../../../webui/node_modules/@rjsf/utils/lib/noop.js","../../../webui/node_modules/@rjsf/utils/lib/orderProperties.js","../../../webui/node_modules/@rjsf/utils/lib/parseDateString.js","../../../webui/node_modules/@rjsf/utils/lib/resolveUiSchema.js","../../../webui/node_modules/@rjsf/utils/lib/schemaRequiresTrueValue.js","../../../webui/node_modules/@rjsf/utils/lib/SelectedOptionDescription.js","../../../webui/node_modules/@rjsf/utils/lib/shallowEquals.js","../../../webui/node_modules/@rjsf/utils/lib/shouldRender.js","../../../webui/node_modules/@rjsf/utils/lib/shouldRenderOptionalField.js","../../../webui/node_modules/@rjsf/utils/lib/toDateString.js","../../../webui/node_modules/@rjsf/utils/lib/toErrorList.js","../../../webui/node_modules/@rjsf/utils/lib/toErrorSchema.js","../../../webui/node_modules/@rjsf/utils/lib/toFieldPathId.js","../../../webui/node_modules/@rjsf/utils/lib/unwrapErrorHandler.js","../../../webui/node_modules/@rjsf/utils/lib/useAltDateWidgetProps.js","../../../webui/node_modules/@rjsf/utils/lib/useDeepCompareMemo.js","../../../webui/node_modules/@rjsf/utils/lib/useFileWidgetProps.js","../../../webui/node_modules/@rjsf/utils/lib/utcToLocal.js","../../../webui/node_modules/@rjsf/utils/lib/validationDataMerge.js","../../../webui/node_modules/@rjsf/utils/lib/withIdRefPrefix.js","../../../webui/node_modules/@rjsf/utils/lib/enums.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/ArrayField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/BooleanField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/CyclicSchemaField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/FallbackField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/LayoutGridField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/LayoutHeaderField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/LayoutMultiSchemaField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/MultiSchemaField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/NullField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/NumberField.js","../../../webui/node_modules/markdown-to-jsx/dist/entities.browser.js","../../../webui/node_modules/markdown-to-jsx/dist/react.js","../../../webui/node_modules/@rjsf/core/lib/components/constants.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/ObjectField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/OptionalDataControlsField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/SchemaField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/StringField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/index.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ArrayFieldDescriptionTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ArrayFieldItemButtonsTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ArrayFieldItemTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ArrayFieldTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ArrayFieldTitleTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/SchemaExamples.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/BaseInputTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ButtonTemplates/IconButton.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ButtonTemplates/AddButton.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ButtonTemplates/SubmitButton.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ButtonTemplates/index.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/CyclicSchemaExpandTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/RichDescription.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/DescriptionField.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ErrorList.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/FallbackFieldTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/FieldErrorTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/RichHelp.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/FieldHelpTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/FieldTemplate/Label.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/FieldTemplate/FieldTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/GridTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/MultiSchemaFieldTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ObjectFieldTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/OptionalDataControlsTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/TitleField.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/UnsupportedField.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/WrapIfAdditionalTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/index.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/AltDateTimeWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/AltDateWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/CheckboxesWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/CheckboxWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/ColorWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/DateTimeWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/DateWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/EmailWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/FileWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/HiddenWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/PasswordWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/RadioWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/RangeWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/RatingWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/SelectWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/TextareaWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/TextWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/TimeWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/UpDownWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/URLWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/index.js","../../../webui/node_modules/@rjsf/core/lib/getDefaultRegistry.js","../../../webui/node_modules/@rjsf/core/lib/components/Form.js","../../../webui/node_modules/@rjsf/validator-ajv8/lib/processRawValidationErrors.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/codegen/code.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/codegen/scope.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/codegen/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/util.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/names.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/errors.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/validate/boolSchema.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/rules.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/validate/applicability.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/validate/dataType.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/validate/defaults.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/code.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/validate/keyword.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/validate/subschema.js","../../../webui/node_modules/fast-deep-equal/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/json-schema-traverse/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/resolve.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/validate/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/runtime/validation_error.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/ref_error.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/fast-uri/lib/utils.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/fast-uri/lib/schemes.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/fast-uri/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/runtime/uri.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/core.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/core/id.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/core/ref.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/core/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/limitNumber.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/multipleOf.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/runtime/ucs2length.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/limitLength.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/pattern.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/limitProperties.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/required.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/limitItems.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/runtime/equal.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/const.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/enum.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/items.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/items2020.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/contains.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/dependencies.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/properties.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/not.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/anyOf.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/oneOf.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/allOf.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/if.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/thenElse.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/format/format.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/format/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/metadata.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/draft7.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/discriminator/types.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/discriminator/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/ajv.js","../../../webui/node_modules/ajv-formats/dist/formats.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/codegen/code.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/codegen/scope.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/codegen/index.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/util.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/names.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/errors.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/boolSchema.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/rules.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/applicability.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/dataType.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/defaults.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/code.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/keyword.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/subschema.js","../../../webui/node_modules/ajv-formats/node_modules/json-schema-traverse/index.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/resolve.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/index.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/runtime/validation_error.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/ref_error.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/index.js","../../../webui/node_modules/ajv-formats/node_modules/fast-uri/lib/utils.js","../../../webui/node_modules/ajv-formats/node_modules/fast-uri/lib/schemes.js","../../../webui/node_modules/ajv-formats/node_modules/fast-uri/index.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/runtime/uri.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/core.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/core/id.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/core/ref.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/core/index.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitNumber.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/multipleOf.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/runtime/ucs2length.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitLength.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/pattern.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitProperties.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/required.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitItems.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/runtime/equal.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/const.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/enum.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/index.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/items.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/items2020.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/contains.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/dependencies.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/properties.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/not.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/anyOf.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/oneOf.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/allOf.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/if.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/thenElse.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/index.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/format/format.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/format/index.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/metadata.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/draft7.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/discriminator/types.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/discriminator/index.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/ajv.js","../../../webui/node_modules/ajv-formats/dist/limit.js","../../../webui/node_modules/ajv-formats/dist/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/lib/createAjvInstance.js","../../../webui/node_modules/@rjsf/validator-ajv8/lib/validator.js","../../../webui/node_modules/@rjsf/validator-ajv8/lib/customizeValidator.js","../../../webui/node_modules/@rjsf/validator-ajv8/lib/index.js","../../../webui/src/admin/components/SchemaConfigurationForm.jsx","../../../webui/src/admin/components/ConfigurationEditor.jsx","../../../webui/src/admin/components/PasswordConfirmationDialog.jsx","../../../webui/src/admin/AdminApp.jsx"],"sourcesContent":["// Identity Database API\n// Purpose: Keeps identity socket event names and acknowledgement handling local to the administration user editor.\n// Scope: Provides small promise helpers over the shared socket without adding app-wide SessionContext actions.\nexport function emitIdentityAdmin(socket, eventName, payload = {}) {\n return new Promise((resolve, reject) => {\n socket.emit(eventName, payload, (resp = {}) => {\n if (resp.error) {\n reject(new Error(resp.error));\n return;\n }\n resolve(resp);\n });\n });\n}\n\nexport function listUsers(socket) {\n return emitIdentityAdmin(socket, 'identityAdmin:listUsers');\n}\n\nexport function getUser(socket, userId) {\n return emitIdentityAdmin(socket, 'identityAdmin:getUser', { userId });\n}\n\nexport function addSignal(socket, userId, type, value) {\n return emitIdentityAdmin(socket, 'identityAdmin:addSignal', { userId, type, value });\n}\n\nexport function removeSignal(socket, userId, type, value) {\n return emitIdentityAdmin(socket, 'identityAdmin:removeSignal', { userId, type, value });\n}\n\nexport function setVerified(socket, userId, enabled) {\n return emitIdentityAdmin(socket, 'identityAdmin:setVerified', { userId, enabled });\n}\n\nexport function setDeterrence(socket, userId, enabled, reason) {\n return emitIdentityAdmin(socket, 'identityAdmin:setDeterrence', { userId, enabled, reason });\n}\n\nexport function setMuted(socket, userId, enabled) {\n return emitIdentityAdmin(socket, 'identityAdmin:setMuted', { userId, enabled });\n}\n\nexport function setPermission(socket, userId, permissionKey, enabled) {\n return emitIdentityAdmin(socket, 'identityAdmin:setPermission', { userId, permissionKey, enabled });\n}\n\nexport function updateFeatureState(socket, userId, namespace, value) {\n return emitIdentityAdmin(socket, 'identityAdmin:updateFeatureState', { userId, namespace, value });\n}\n\nexport function deleteFeatureState(socket, userId, namespace) {\n return emitIdentityAdmin(socket, 'identityAdmin:deleteFeatureState', { userId, namespace });\n}\n","// Identity Database Utilities\n// Purpose: Provides local formatting, filtering, and JSON helpers for the administration user editor.\n// Scope: Avoids leaking database-editor-specific presentation helpers into shared UI modules.\nexport const SIGNAL_LABELS = {\n cookieUserId: 'Cookie keys',\n fingerprintId: 'Fingerprints',\n nickname: 'Nicknames',\n knownIp: 'Known IPs',\n};\n\nexport const SIGNAL_FIELDS = {\n cookieUserId: 'cookieUserIds',\n fingerprintId: 'fingerprintIds',\n nickname: 'nicknames',\n knownIp: 'knownIps',\n};\n\nexport function maskValue(value) {\n const text = String(value || '').trim();\n if (!text) return 'n/a';\n if (text.length <= 14) return text;\n return `${text.slice(0, 8)}...${text.slice(-6)}`;\n}\n\nexport function formatDateTime(value) {\n const ts = Number(value || 0);\n if (!Number.isFinite(ts) || ts <= 0) return 'never';\n try {\n return new Intl.DateTimeFormat('en-US', {\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n }).format(new Date(ts));\n } catch {\n return new Date(ts).toLocaleString();\n }\n}\n\nexport function userMatchesQuery(user, query) {\n const needle = String(query || '').trim().toLowerCase();\n if (!needle) return true;\n const haystack = [\n user?.id,\n user?.nickname,\n ...(user?.cookieUserIds || []),\n ...(user?.fingerprintIds || []),\n ...(user?.nicknames || []),\n ...(user?.knownIps || []),\n ...(user?.featureNamespaces || []),\n ...(user?.permissions || []).map((permission) => permission.key),\n ].join(' ').toLowerCase();\n return haystack.includes(needle);\n}\n\nexport function userMatchesFilter(user, filter) {\n if (filter === 'verified') return Boolean(user?.verified?.enabled);\n if (filter === 'deterred') return Boolean(user?.deterrence?.enabled);\n if (filter === 'muted') return Boolean(user?.deterrence?.muted);\n if (filter === 'unverified') return !user?.verified?.enabled;\n return true;\n}\n\nexport function stringifyJson(value) {\n return JSON.stringify(value ?? {}, null, 2);\n}\n\nexport function parseEditableJson(text) {\n const parsed = JSON.parse(String(text || '').trim() || '{}');\n if (!parsed || typeof parsed !== 'object') {\n throw new Error('JSON must be an object or array.');\n }\n return parsed;\n}\n","// Identity Database Panel\n// Purpose: Implements the lockdown admin identity database editor UI inside the centralized administration application.\n// Scope: Keeps list, detail, signal, status, feature-state, and raw JSON editing local to this feature.\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport CardFrame from '../components/CardFrame/index.jsx';\nimport Tabs, { Tab, TabList, TabPanel, TabPanels } from '../components/Tabs/index.jsx';\nimport { useSocket } from '../context/SocketContext.jsx';\nimport {\n addSignal,\n deleteFeatureState,\n getUser,\n listUsers,\n removeSignal,\n setDeterrence,\n setMuted,\n setPermission,\n setVerified,\n updateFeatureState,\n} from './identityDatabaseApi.js';\nimport {\n SIGNAL_FIELDS,\n SIGNAL_LABELS,\n formatDateTime,\n maskValue,\n parseEditableJson,\n stringifyJson,\n userMatchesFilter,\n userMatchesQuery,\n} from './identityDatabaseUtils.js';\n\nconst FILTERS = [\n { key: 'all', label: 'All' },\n { key: 'verified', label: 'Verified' },\n { key: 'deterred', label: 'Deterred' },\n { key: 'muted', label: 'Muted' },\n { key: 'unverified', label: 'Unverified' },\n];\n\nfunction StatusPill({ active, children }) {\n return (\n \n {children}\n \n );\n}\n\nfunction UserListCard({ users, selectedUserId, query, filter, loading, onQuery, onFilter, onRefresh, onSelect }) {\n const filtered = useMemo(\n () => users.filter((user) => userMatchesFilter(user, filter) && userMatchesQuery(user, query)),\n [filter, query, users],\n );\n\n const actions = (\n \n );\n\n return (\n \n
\n onQuery(event.target.value)}\n />\n \n
\n
\n {filtered.length ? filtered.map((user) => (\n onSelect(user.id)}\n >\n \n {user.nickname || 'unknown user'}\n {user.id}\n {maskValue(user.cookieUserIds?.[0])} / {maskValue(user.fingerprintIds?.[0])}\n \n \n verified\n deterred\n muted\n \n \n )) : (\n

No users match this view.

\n )}\n
\n
\n );\n}\n\nfunction UserDetailsCard({ user }) {\n return (\n \n
\n

Canonical user id

\n

{user.id}

\n
\n
\n

Primary nickname

\n

{user.nickname || 'unknown user'}

\n
\n
\n

Created

\n

{formatDateTime(user.createdAt)}

\n
\n
\n

Last seen

\n

{formatDateTime(user.lastSeenAt)}

\n
\n
\n );\n}\n\nfunction SignalEditor({ user, type, onAdd, onRemove }) {\n const [draft, setDraft] = useState('');\n const values = user?.[SIGNAL_FIELDS[type]] || [];\n\n const submit = async (event) => {\n event.preventDefault();\n const value = draft.trim();\n if (!value) return;\n await onAdd(type, value);\n setDraft('');\n };\n\n return (\n
\n

{SIGNAL_LABELS[type]}

\n
\n {values.length ? values.map((value) => (\n
\n {value}\n \n
\n )) :

No values.

}\n
\n
\n setDraft(event.target.value)}\n />\n \n \n
\n );\n}\n\nfunction SignalsCard({ user, onAddSignal, onRemoveSignal }) {\n return (\n \n {Object.keys(SIGNAL_LABELS).map((type) => (\n \n ))}\n \n );\n}\n\nfunction StatusCard({ user, onVerified, onDeterrence, onMuted }) {\n const [reason, setReason] = useState(user?.deterrence?.reason || '');\n\n return (\n \n
\n

Verification

\n \n

Updated {formatDateTime(user?.verified?.at)}

\n
\n
\n

Deterrence

\n \n setReason(event.target.value)}\n />\n \n
\n \n {/*\n Mute is intentionally presented inside deterrence status because\n it is a narrower moderation action, while its own timestamp makes\n it clear that toggling mute does not toggle full deterrence.\n */}\n

Updated {formatDateTime(user?.deterrence?.mutedAt)}

\n
\n
\n
\n );\n}\n\nfunction FeatureStateCard({ user, onSaveFeature, onDeleteFeature }) {\n const namespaces = Object.keys(user?.features || {}).sort();\n const initialNamespace = namespaces[0] || '';\n const [namespace, setNamespace] = useState(initialNamespace);\n const [text, setText] = useState(stringifyJson(initialNamespace ? user.features[initialNamespace] : {}));\n const [error, setError] = useState('');\n\n const save = async () => {\n const ns = namespace.trim();\n if (!ns) {\n setError('Namespace required.');\n return;\n }\n try {\n const parsed = parseEditableJson(text);\n await onSaveFeature(ns, parsed);\n setError('');\n } catch (err) {\n setError(err.message || 'Invalid JSON.');\n }\n };\n\n const remove = async () => {\n const ns = namespace.trim();\n if (!ns) return;\n if (!window.confirm(`Delete feature state \"${ns}\" from ${user.id}?`)) return;\n await onDeleteFeature(ns);\n // The selected namespace no longer exists after deletion. Reset the local\n // editor directly instead of mirroring new props through an effect.\n setNamespace('');\n setText('{}');\n setError('');\n };\n\n return (\n \n
\n {\n const next = event.target.value;\n setNamespace(next);\n setText(stringifyJson(user.features?.[next] || {}));\n }}\n />\n \n {namespaces.map((entry) => \n \n \n
\n setText(event.target.value)}\n />\n {error ?

{error}

: null}\n
\n );\n}\n\nfunction RawRecordCard({ user }) {\n return (\n \n
\n        {stringifyJson(user)}\n      
\n
\n );\n}\n\nfunction PermissionsCard({ user, permissions, onPermission }) {\n const grantedKeys = new Set((user?.permissions || []).map((permission) => permission.key));\n return (\n \n {permissions.map((permission) => (\n \n ))}\n \n );\n}\n\nexport default function IdentityDatabasePanel() {\n const socket = useSocket();\n const [users, setUsers] = useState([]);\n const [permissions, setPermissions] = useState([]);\n const [selectedUser, setSelectedUser] = useState(null);\n const [query, setQuery] = useState('');\n const [filter, setFilter] = useState('all');\n const [loading, setLoading] = useState(false);\n const [message, setMessage] = useState('');\n\n const refreshUsers = useCallback(async () => {\n setLoading(true);\n try {\n const resp = await listUsers(socket);\n setUsers(resp.users || []);\n setPermissions(resp.permissions || []);\n if (selectedUser?.id) {\n const updated = await getUser(socket, selectedUser.id);\n setSelectedUser(updated.user || null);\n }\n setMessage('');\n } catch (err) {\n setMessage(err.message || 'Failed to load users.');\n } finally {\n setLoading(false);\n }\n }, [selectedUser?.id, socket]);\n\n const selectUser = useCallback(async (userId) => {\n setLoading(true);\n try {\n const resp = await getUser(socket, userId);\n setSelectedUser(resp.user || null);\n setMessage('');\n } catch (err) {\n setMessage(err.message || 'Failed to load user.');\n } finally {\n setLoading(false);\n }\n }, [socket]);\n\n const applyUserUpdate = useCallback((user) => {\n setSelectedUser(user || null);\n if (!user?.id) return;\n setUsers((prev) => prev.map((entry) => (entry.id === user.id ? { ...entry, ...user } : entry)));\n }, []);\n\n const runMutation = useCallback(async (operation, successMessage) => {\n if (!selectedUser?.id) return;\n setLoading(true);\n try {\n const resp = await operation(selectedUser.id);\n applyUserUpdate(resp.user);\n setMessage(successMessage || 'Saved.');\n } catch (err) {\n setMessage(err.message || 'Save failed.');\n } finally {\n setLoading(false);\n }\n }, [applyUserUpdate, selectedUser?.id]);\n\n useEffect(() => {\n refreshUsers();\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleAddSignal = (type, value) =>\n runMutation((userId) => addSignal(socket, userId, type, value), 'Signal added.');\n const handleRemoveSignal = (type, value) =>\n runMutation((userId) => removeSignal(socket, userId, type, value), 'Signal removed.');\n const handleVerified = (enabled) =>\n runMutation((userId) => setVerified(socket, userId, enabled), 'Verification updated.');\n const handleDeterrence = (enabled, reason) =>\n runMutation((userId) => setDeterrence(socket, userId, enabled, reason), 'Deterrence updated.');\n const handleMuted = (enabled) =>\n runMutation((userId) => setMuted(socket, userId, enabled), 'Mute updated.');\n const handlePermission = (permissionKey, enabled) =>\n runMutation(\n (userId) => setPermission(socket, userId, permissionKey, enabled),\n 'Permission updated.',\n );\n const handleSaveFeature = (namespace, value) =>\n runMutation((userId) => updateFeatureState(socket, userId, namespace, value), 'Feature state saved.');\n const handleDeleteFeature = (namespace) =>\n runMutation((userId) => deleteFeatureState(socket, userId, namespace), 'Feature state deleted.');\n\n return (\n
\n \n
\n {message ?

{message}

: null}\n {selectedUser ? (\n <>\n \n \n \n Signals\n Status\n Permissions\n Feature state\n Raw JSON\n \n \n \n \n \n \n {/* These editors own drafts for one identity. Keys remount them\n when selection changes without effect-driven state mirroring. */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ) : (\n \n Select a user to inspect and edit the identity record.\n \n )}\n
\n
\n );\n}\n","// Administrator Accounts\n// Purpose: Provides lockdown administrators with explicit account creation, editing, password replacement, and deletion controls.\n// Scope: Never receives or displays password hashes; final-lockdown safety is enforced by the server.\nimport { useEffect, useState } from 'react';\nimport CardFrame from '../../components/CardFrame/index.jsx';\nimport { createAdministrator, deleteAdministrator, updateAdministrator } from '../api.js';\n\nfunction AdministratorRow({ administrator, socket, runSensitive, onSnapshot }) {\n const [draft, setDraft] = useState({\n username: administrator.username,\n discordId: administrator.discordId,\n role: administrator.role,\n password: '',\n });\n const [busy, setBusy] = useState(false);\n const [error, setError] = useState('');\n\n useEffect(() => {\n setDraft({ username: administrator.username, discordId: administrator.discordId, role: administrator.role, password: '' });\n }, [administrator]);\n\n async function perform(work) {\n setBusy(true);\n setError('');\n try {\n const response = await runSensitive(work);\n onSnapshot(response.snapshot);\n } catch (actionError) {\n setError(actionError.message);\n } finally {\n setBusy(false);\n }\n }\n\n return (\n
\n
\n setDraft({ ...draft, username: event.target.value })} />\n setDraft({ ...draft, discordId: event.target.value })} />\n \n setDraft({ ...draft, password: event.target.value })} />\n
\n {error ?

{error}

: null}\n
\n \n \n
\n
\n );\n}\n\nexport default function AdministratorAccounts({ administrators, socket, runSensitive, onSnapshot }) {\n const [draft, setDraft] = useState({ username: '', discordId: '', role: 'admin', password: '' });\n const [busy, setBusy] = useState(false);\n const [error, setError] = useState('');\n\n async function create(event) {\n event.preventDefault();\n setBusy(true);\n setError('');\n try {\n const response = await runSensitive(() => createAdministrator(socket, draft));\n onSnapshot(response.snapshot);\n setDraft({ username: '', discordId: '', role: 'admin', password: '' });\n } catch (actionError) {\n setError(actionError.message);\n } finally {\n setBusy(false);\n }\n }\n\n return (\n \n
\n setDraft({ ...draft, username: event.target.value })} />\n setDraft({ ...draft, discordId: event.target.value })} />\n \n setDraft({ ...draft, password: event.target.value })} />\n {error ?

{error}

: }\n \n \n {(administrators || []).map((administrator) => (\n \n ))}\n
\n );\n}\n","// Administration Overview\n// Purpose: Summarizes configuration state, revision history, audit history, and links to existing health/report surfaces.\n// Scope: Presents persisted administration metadata without duplicating operational service implementations.\nimport { Link } from 'react-router-dom';\nimport CardFrame from '../../components/CardFrame/index.jsx';\nimport { restoreConfigurationRevision } from '../api.js';\n\nfunction formatDate(value) {\n return Number.isFinite(Number(value)) ? new Date(Number(value)).toLocaleString() : 'unknown';\n}\n\nexport default function AdminOverview({ snapshot, socket, runSensitive, onSnapshot }) {\n const config = snapshot.configuration;\n\n async function restore(revision) {\n if (!window.confirm(`Restore configuration revision ${revision}? This creates a new active revision and requires a restart.`)) return;\n try {\n const response = await runSensitive(() => restoreConfigurationRevision(socket, {\n revision,\n expectedRevision: config.revision,\n }));\n onSnapshot(response.snapshot);\n } catch (error) {\n window.alert(error.message);\n }\n }\n\n return (\n
\n \n

Active revision

{config.revision}

\n

Administrators

{snapshot.administrators.length}

\n

Last configuration save

{formatDate(config.createdAt)}

\n
\n \n Open fleet reports\n Open driver application\n \n \n {snapshot.revisions.map((revision) => (\n
\n #{revision.revision}{formatDate(revision.createdAt)}{revision.actor}{revision.source}\n \n
\n ))}\n
\n \n {snapshot.auditEvents.map((event) => (\n
\n {formatDate(event.createdAt)}{event.actor}{event.action}\n
\n ))}\n
\n
\n );\n}\n","/** Determines whether a `thing` is an object for the purposes of RJSF. In this case, `thing` is an object if it has\n * the type `object` but is NOT null, an array or a File.\n *\n * @param thing - The thing to check to see whether it is an object\n * @returns - True if it is a non-null, non-array, non-File object\n */\nexport default function isObject(thing) {\n if (typeof thing !== 'object' || thing === null) {\n return false;\n }\n // lastModified is guaranteed to be a number on a File instance\n // as per https://w3c.github.io/FileAPI/#dfn-lastModified\n if ('lastModified' in thing &&\n typeof thing.lastModified === 'number' &&\n typeof File !== 'undefined' &&\n thing instanceof File) {\n return false;\n }\n // getMonth is guaranteed to be a method on a Date instance\n // as per https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-date.prototype.getmonth\n if ('getMonth' in thing &&\n typeof thing.getMonth === 'function' &&\n typeof Date !== 'undefined' &&\n thing instanceof Date) {\n return false;\n }\n return !Array.isArray(thing);\n}\n//# sourceMappingURL=isObject.js.map","import isObject from \"./isObject.js\";\n/** Checks the schema to see if it is allowing additional items, by verifying that `schema.additionalItems` is an\n * object. The user is warned in the console if `schema.additionalItems` has the value `true`.\n *\n * @param schema - The schema object to check\n * @returns - True if additional items is allowed, otherwise false\n */\nexport default function allowAdditionalItems(schema) {\n if (schema.additionalItems === true) {\n // oxlint-disable-next-line no-console\n console.warn('additionalItems=true is currently not supported');\n }\n return isObject(schema.additionalItems);\n}\n//# sourceMappingURL=allowAdditionalItems.js.map","/**\n * Determines the locale-specific decimal separator.\n * It uses the provided locale or the first locale in navigator.languages (if available) and falls back to \"en\".\n *\n * @param languages - Optional array of locales or a single locale string\n * @returns The decimal separator character (typically '.' or ',').\n */\nexport default function getDecimalSeparator(languages) {\n const locales = languages || (typeof navigator !== 'undefined' ? navigator.languages : undefined);\n if (locales) {\n try {\n const formatter = new Intl.NumberFormat(locales);\n const parts = formatter.formatToParts(1.1);\n return parts.find((part) => part.type === 'decimal')?.value || '.';\n }\n catch (e) {\n // Fallback\n }\n }\n return '.';\n}\n//# sourceMappingURL=getDecimalSeparator.js.map","import getDecimalSeparator from \"./getDecimalSeparator.js\";\n/** Attempts to convert the string into a number. If an empty string is provided, then `undefined` is returned.\n * If a `null` is provided, it is returned. If the string ends in a `.` or the locale-specific separator then the\n * string is returned because the user may be in the middle of typing a float number. If a number ends in a pattern\n * like `.0`, `.20`, `.030`, string is returned because the user may be typing number that will end in a non-zero\n * digit. Otherwise, the string is wrapped by `Number()` and if that result is not `NaN`, that number will be\n * returned, otherwise the string `value` will be.\n *\n * @param value - The string or null value to convert to a number\n * @returns - The `value` converted to a number when appropriate, otherwise the `value`\n */\nexport default function asNumber(value) {\n if (value === '') {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n const separator = getDecimalSeparator();\n // Normalize separator to standard '.' for pattern checking and parsing\n const standardValue = typeof value === 'string' && separator !== '.' ? value.replace(separator, '.') : value;\n // oxlint-disable-next-line typescript/prefer-string-starts-ends-with -- regex test() coerces undefined to \"undefined\" safely; endsWith() throws on undefined values passed at runtime\n if (/\\.$/.test(standardValue)) {\n // '3.' can't really be considered a number even if it parses in js. The\n // user is most likely entering a float.\n return value;\n }\n // oxlint-disable-next-line typescript/prefer-string-starts-ends-with -- same as above\n if (/\\.0$/.test(standardValue)) {\n // we need to return this as a string here, to allow for input like 3.07\n return value;\n }\n if (/\\.\\d*0$/.test(standardValue)) {\n // It's a number, that's cool - but we need it as a string so it doesn't screw\n // with the user when entering dollar amounts or other values (such as those with\n // specific precision or number of significant digits)\n return value;\n }\n const n = Number(standardValue);\n const valid = typeof n === 'number' && !Number.isNaN(n);\n return valid ? n : value;\n}\n//# sourceMappingURL=asNumber.js.map","/** Below are the list of all the keys into various elements of a RJSFSchema or UiSchema that are used by the various\n * utility functions. In addition to those keys, there are the special `ADDITIONAL_PROPERTY_FLAG`,\n * `RJSF_REF_KEY`, and `RJSF_REF_CYCLE_KEY` Symbols that are added to a schema under certain conditions by the\n * `retrieveSchema()` utility. Using Symbols keeps these internal markers invisible to JSON serialisation and\n * JSON Schema validators (AJV, ATA, etc.), which only enumerate string-keyed properties.\n */\nexport const ADDITIONAL_PROPERTY_FLAG = Symbol('__additional_property');\nexport const ADDITIONAL_PROPERTIES_KEY = 'additionalProperties';\nexport const ALL_OF_KEY = 'allOf';\nexport const ANY_OF_KEY = 'anyOf';\nexport const CONST_KEY = 'const';\nexport const DEFAULT_KEY = 'default';\nexport const DEFINITIONS_KEY = 'definitions';\nexport const DEPENDENCIES_KEY = 'dependencies';\nexport const ENUM_KEY = 'enum';\nexport const ERRORS_KEY = '__errors';\nexport const ID_KEY = '$id';\nexport const IF_KEY = 'if';\nexport const ITEMS_KEY = 'items';\nexport const JUNK_OPTION_ID = '_$junk_option_schema_id$_';\nexport const NAME_KEY = '$name';\nexport const ONE_OF_KEY = 'oneOf';\nexport const PATTERN_PROPERTIES_KEY = 'patternProperties';\nexport const PROPERTIES_KEY = 'properties';\nexport const READONLY_KEY = 'readonly';\nexport const REQUIRED_KEY = 'required';\nexport const SUBMIT_BTN_OPTIONS_KEY = 'submitButtonOptions';\nexport const REF_KEY = '$ref';\nexport const RJSF_REF_KEY = Symbol('__rjsf_ref');\nexport const RJSF_REF_CYCLE_KEY = Symbol('__rjsf_ref_cycle');\nexport const SCHEMA_KEY = '$schema';\nexport const DEFAULT_ID_PREFIX = 'root';\nexport const DEFAULT_ID_SEPARATOR = '_';\n/** The path of the discriminator value returned by the schema endpoint.\n * The discriminator is the value in a `oneOf` that determines which option is selected.\n */\nexport const DISCRIMINATOR_PATH = ['discriminator', 'propertyName'];\n/** The name of the `formContext` attribute in the React JSON Schema Form Registry\n */\nexport const FORM_CONTEXT_NAME = 'formContext';\n/** The name of the `layoutGridLookupMap` attribute in the form context\n */\nexport const LOOKUP_MAP_NAME = 'layoutGridLookupMap';\nexport const RJSF_PREFIX_KEY = '__rjsf';\nexport const RJSF_ADDITIONAL_PROPERTIES_FLAG = `${RJSF_PREFIX_KEY}_additionalProperties`;\nexport const ROOT_SCHEMA_PREFIX = `${RJSF_PREFIX_KEY}_rootSchema`;\nexport const UI_FIELD_KEY = 'ui:field';\nexport const UI_WIDGET_KEY = 'ui:widget';\nexport const UI_OPTIONS_KEY = 'ui:options';\nexport const UI_GLOBAL_OPTIONS_KEY = 'ui:globalOptions';\nexport const UI_DEFINITIONS_KEY = 'ui:definitions';\n/** The JSON Schema version strings\n */\nexport const JSON_SCHEMA_DRAFT_2019_09 = 'https://json-schema.org/draft/2019-09/schema';\nexport const JSON_SCHEMA_DRAFT_2020_12 = 'https://json-schema.org/draft/2020-12/schema';\n//# sourceMappingURL=constants.js.map","import { UI_OPTIONS_KEY, UI_WIDGET_KEY } from \"./constants.js\";\nimport isObject from \"./isObject.js\";\n/** Get all passed options from ui:options, and ui:, returning them in an object with the `ui:`\n * stripped off. Any `globalOptions` will always be returned, unless they are overridden by options in the `uiSchema`.\n *\n * @param [uiSchema={}] - The UI Schema from which to get any `ui:xxx` options\n * @param [globalOptions={}] - The optional Global UI Schema from which to get any fallback `xxx` options\n * @returns - An object containing all the `ui:xxx` options with the `ui:` stripped off along with all `globalOptions`\n */\nexport default function getUiOptions(uiSchema = {}, globalOptions = {}) {\n // Handle null or undefined uiSchema\n if (!uiSchema) {\n return { ...globalOptions };\n }\n return Object.keys(uiSchema)\n .filter((key) => key.startsWith('ui:'))\n .reduce((options, key) => {\n const value = uiSchema[key];\n if (key === UI_WIDGET_KEY && isObject(value)) {\n // oxlint-disable-next-line no-console\n console.error('Setting options via ui:widget object is no longer supported, use ui:options instead');\n return options;\n }\n if (key === UI_OPTIONS_KEY && isObject(value)) {\n return { ...options, ...value };\n }\n return { ...options, [key.substring(3)]: value };\n }, { ...globalOptions });\n}\n//# sourceMappingURL=getUiOptions.js.map","import getUiOptions from \"./getUiOptions.js\";\n/** Checks whether the field described by `schema`, having the `uiSchema` and `formData` supports expanding. The UI for\n * the field can expand if it has additional properties, is not forced as non-expandable by the `uiSchema` and the\n * `formData` object doesn't already have `schema.maxProperties` elements.\n *\n * @param schema - The schema for the field that is being checked\n * @param [uiSchema={}] - The uiSchema for the field\n * @param [formData] - The formData for the field\n * @returns - True if the schema element has additionalProperties, is expandable, and not at the maxProperties limit\n */\nexport default function canExpand(schema, uiSchema = {}, formData) {\n if (!(schema.additionalProperties || schema.patternProperties)) {\n return false;\n }\n const { expandable = true } = getUiOptions(uiSchema);\n if (expandable === false) {\n return expandable;\n }\n // if ui:options.expandable was not explicitly set to false, we can add\n // another property if we have not exceeded maxProperties yet\n if (schema.maxProperties !== undefined && formData) {\n return Object.keys(formData).length < schema.maxProperties;\n }\n return true;\n}\n//# sourceMappingURL=canExpand.js.map","/** Determines whether `thing` is a plain object, i.e. one created by the `Object` constructor or with a `null`\n * prototype. Unlike `isObject()`, class instances such as `Error` are not plain objects, which matters when\n * recursively walking a structure whose nested values are expected to be plain data.\n *\n * @param thing - The thing to check to see whether it is a plain object\n * @returns - True if it is a plain object, otherwise false\n */\nexport default function isPlainObject(thing) {\n if (typeof thing !== 'object' || thing === null) {\n return false;\n }\n const proto = Object.getPrototypeOf(thing);\n return proto === null || proto === Object.prototype;\n}\n//# sourceMappingURL=isPlainObject.js.map","import { ERRORS_KEY } from \"./constants.js\";\nimport isPlainObject from \"./isPlainObject.js\";\n/** Given a `formData` object, recursively creates a `FormValidation` error handling structure around it\n *\n * @param formData - The form data around which the error handler is created\n * @returns - A `FormValidation` object based on the `formData` structure\n */\nexport default function createErrorHandler(formData) {\n const handler = {\n // We store the list of errors for this node in a property named __errors\n // to avoid name collision with a possible sub schema field named\n // 'errors' (see `utils.toErrorSchema`).\n [ERRORS_KEY]: [],\n addError(message) {\n this[ERRORS_KEY].push(message);\n },\n };\n if (Array.isArray(formData)) {\n return formData.reduce((acc, value, key) => ({ ...acc, [key]: createErrorHandler(value) }), handler);\n }\n if (isPlainObject(formData)) {\n return Object.keys(formData).reduce((acc, key) => ({ ...acc, [key]: createErrorHandler(formData[key]) }), handler);\n }\n return handler;\n}\n//# sourceMappingURL=createErrorHandler.js.map","const { getOwnPropertyNames, getOwnPropertySymbols } = Object;\nconst { hasOwnProperty } = Object.prototype;\n/**\n * Combine two comparators into a single comparators.\n */\nfunction combineComparators(comparatorA, comparatorB) {\n return function isEqual(a, b, state) {\n return comparatorA(a, b, state) && comparatorB(a, b, state);\n };\n}\n/**\n * Wrap the provided `areItemsEqual` method to manage the circular state, allowing\n * for circular references to be safely included in the comparison without creating\n * stack overflows.\n */\nfunction createIsCircular(areItemsEqual) {\n return function isCircular(a, b, state) {\n if (!a || !b || typeof a !== 'object' || typeof b !== 'object') {\n return areItemsEqual(a, b, state);\n }\n const { cache } = state;\n const cachedA = cache.get(a);\n const cachedB = cache.get(b);\n if (cachedA && cachedB) {\n return cachedA === b && cachedB === a;\n }\n cache.set(a, b);\n cache.set(b, a);\n const result = areItemsEqual(a, b, state);\n cache.delete(a);\n cache.delete(b);\n return result;\n };\n}\n/**\n * Get the properties to strictly examine, which include both own properties that are\n * not enumerable and symbol properties.\n */\nfunction getStrictProperties(object) {\n const symbols = getOwnPropertySymbols(object);\n return symbols.length\n ? getOwnPropertyNames(object).concat(symbols)\n : getOwnPropertyNames(object);\n}\n/**\n * Whether the object contains the property passed as an own property.\n */\nconst hasOwn = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nObject.hasOwn || ((object, property) => hasOwnProperty.call(object, property));\n\nconst PREACT_VNODE = '__v';\nconst PREACT_OWNER = '__o';\nconst REACT_OWNER = '_owner';\n// `Float16Array` is recent enough that it cannot be referenced unguarded, and capturing its\n// availability once keeps that detail out of the comparison itself.\nconst HAS_FLOAT_16_ARRAY = typeof Float16Array !== 'undefined';\nconst { getOwnPropertyDescriptor, keys } = Object;\n/**\n * Whether the values passed are equal based on a [SameValue](https://262.ecma-international.org/7.0/#sec-samevalue) basis.\n * Simplified, this maps to if the two values are referentially equal to one another (`a === b`) or both are `NaN`.\n *\n * @note\n * When available in the environment, this is just a re-export of the global\n * [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is) method.\n */\nconst sameValueEqual = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nObject.is\n || function sameValueEqual(a, b) {\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n };\n/**\n * Whether the values passed are equal based on a [SameValue](https://262.ecma-international.org/7.0/#sec-samevaluezero) basis.\n * Simplified, this maps to if the two values are referentially equal to one another (`a === b`), both are `NaN`, or both\n * are either positive or negative zero.\n */\nfunction sameValueZeroEqual(a, b) {\n return a === b || (a !== a && b !== b);\n}\n/**\n * Whether the values passed are equal based on a\n * [Strict Equality Comparison](https://262.ecma-international.org/7.0/#sec-strict-equality-comparison) basis.\n * Simplified, this maps to if the two values are referentially equal to one another (`a === b`).\n *\n * @note\n * This is mainly available as a convenience function, such as being a default when a function to determine equality between\n * two objects is used.\n */\nfunction strictEqual(a, b) {\n return a === b;\n}\n/**\n * Whether the array buffers are equal in value.\n */\nfunction areArrayBuffersEqual(a, b) {\n return a.byteLength === b.byteLength && areTypedArraysEqual(new Uint8Array(a), new Uint8Array(b));\n}\n/**\n * Whether the arrays are equal in value.\n */\nfunction areArraysEqual(a, b, state) {\n let index = a.length;\n if (b.length !== index) {\n return false;\n }\n while (index-- > 0) {\n if (!state.equals(a[index], b[index], index, index, a, b, state)) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the dataviews are equal in value.\n */\nfunction areDataViewsEqual(a, b) {\n return (a.byteLength === b.byteLength\n && areTypedArraysEqual(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)));\n}\n/**\n * Whether the dates passed are equal in value.\n */\nfunction areDatesEqual(a, b) {\n return sameValueEqual(a.getTime(), b.getTime());\n}\n/**\n * Whether the errors passed are equal in value.\n *\n * @note\n * `name`, `message` and `stack` are own properties but are not enumerable, so they are compared\n * explicitly. `cause` is compared by value rather than by reference, matching how every other\n * nested value in the comparison is treated. Own enumerable properties (which custom `Error`\n * subclasses commonly add) are compared by composing this with the object comparator in the\n * comparator config, so that the strict and circular variants apply to them as well.\n */\nfunction areErrorsEqual(a, b, state) {\n return (a.name === b.name\n && a.message === b.message\n && a.stack === b.stack\n && state.equals(a.cause, b.cause, 'cause', 'cause', a, b, state));\n}\n/**\n * Whether the `Map`s are equal in value.\n */\nfunction areMapsEqual(a, b, state) {\n const size = a.size;\n if (size !== b.size) {\n return false;\n }\n if (!size) {\n return true;\n }\n const matchedIndices = new Uint8Array(size);\n const aIterable = a.entries();\n let aResult;\n let bResult;\n let index = 0;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while ((aResult = aIterable.next())) {\n if (aResult.done) {\n break;\n }\n const bIterable = b.entries();\n let hasMatch = 0;\n let matchIndex = 0;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while ((bResult = bIterable.next())) {\n if (bResult.done) {\n break;\n }\n if (matchedIndices[matchIndex]) {\n matchIndex++;\n continue;\n }\n const aEntry = aResult.value;\n const bEntry = bResult.value;\n if (state.equals(aEntry[0], bEntry[0], index, matchIndex, a, b, state)\n && state.equals(aEntry[1], bEntry[1], aEntry[0], bEntry[0], a, b, state)) {\n hasMatch = matchedIndices[matchIndex] = 1;\n break;\n }\n matchIndex++;\n }\n if (!hasMatch) {\n return false;\n }\n index++;\n }\n return true;\n}\n/**\n * Whether the objects are equal in value.\n */\nfunction areObjectsEqual(a, b, state) {\n const properties = keys(a);\n let index = properties.length;\n if (keys(b).length !== index) {\n return false;\n }\n // Decrementing `while` showed faster results than either incrementing or\n // decrementing `for` loop and than an incrementing `while` loop. Declarative\n // methods like `some` / `every` were not used to avoid incurring the garbage\n // cost of anonymous callbacks.\n while (index-- > 0) {\n if (!isPropertyEqual(a, b, state, properties[index])) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the objects are equal in value with strict property checking.\n */\nfunction areObjectsEqualStrict(a, b, state) {\n const properties = getStrictProperties(a);\n let index = properties.length;\n if (getStrictProperties(b).length !== index) {\n return false;\n }\n let property;\n let descriptorA;\n let descriptorB;\n // Decrementing `while` showed faster results than either incrementing or\n // decrementing `for` loop and than an incrementing `while` loop. Declarative\n // methods like `some` / `every` were not used to avoid incurring the garbage\n // cost of anonymous callbacks.\n while (index-- > 0) {\n property = properties[index];\n if (!isPropertyEqual(a, b, state, property)) {\n return false;\n }\n descriptorA = getOwnPropertyDescriptor(a, property);\n descriptorB = getOwnPropertyDescriptor(b, property);\n if ((descriptorA || descriptorB)\n && (!descriptorA\n || !descriptorB\n || descriptorA.configurable !== descriptorB.configurable\n || descriptorA.enumerable !== descriptorB.enumerable\n || descriptorA.writable !== descriptorB.writable)) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the primitive wrappers passed are equal in value.\n */\nfunction arePrimitiveWrappersEqual(a, b) {\n return sameValueEqual(a.valueOf(), b.valueOf());\n}\n/**\n * Whether the regexps passed are equal in value.\n */\nfunction areRegExpsEqual(a, b) {\n return a.source === b.source && a.flags === b.flags;\n}\n/**\n * Whether the `Set`s are equal in value.\n */\nfunction areSetsEqual(a, b, state) {\n const size = a.size;\n if (size !== b.size) {\n return false;\n }\n if (!size) {\n return true;\n }\n const matchedIndices = new Uint8Array(size);\n const aIterable = a.values();\n let aResult;\n let bResult;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while ((aResult = aIterable.next())) {\n if (aResult.done) {\n break;\n }\n const bIterable = b.values();\n let hasMatch = 0;\n let matchIndex = 0;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while ((bResult = bIterable.next())) {\n if (bResult.done) {\n break;\n }\n if (!matchedIndices[matchIndex]\n && state.equals(aResult.value, bResult.value, aResult.value, bResult.value, a, b, state)) {\n hasMatch = matchedIndices[matchIndex] = 1;\n break;\n }\n matchIndex++;\n }\n if (!hasMatch) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the TypedArray instances are equal in value.\n */\nfunction areTypedArraysEqual(a, b) {\n let index = a.length;\n if (b.length !== index || a.byteOffset !== b.byteOffset) {\n return false;\n }\n // Only float-backed views can hold `NaN`, and the additional check needed to treat it as equal\n // to itself measurably slows the loop, so integer views keep the plain comparison. This is\n // hoisted out of the loop so the cost is paid once per call rather than once per element.\n if (a instanceof Float64Array || a instanceof Float32Array || (HAS_FLOAT_16_ARRAY && a instanceof Float16Array)) {\n while (index-- > 0) {\n // `NaN` is the only value not equal to itself, and it is treated as equal here to match\n // the SameValueZero semantics used for every other numeric comparison in the library.\n if (a[index] !== b[index] && (a[index] === a[index] || b[index] === b[index])) {\n return false;\n }\n }\n return true;\n }\n while (index-- > 0) {\n if (a[index] !== b[index]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the URL instances are equal in value.\n */\nfunction areUrlsEqual(a, b) {\n // `href` is the normalized serialization of every component, so matching hrefs are equal without\n // any further work. Only a difference in query parameter ordering can survive a mismatch here.\n if (a.href === b.href) {\n return true;\n }\n return (a.protocol === b.protocol\n && a.username === b.username\n && a.password === b.password\n // `host` covers both the hostname and the port.\n && a.host === b.host\n && a.pathname === b.pathname\n && a.hash === b.hash\n && areSearchParamsEqual(a.searchParams, b.searchParams));\n}\n/**\n * Whether the search params passed are equal in value.\n *\n * @note\n * Order is not significant, matching how the other unordered collections in the library are\n * compared. Repeated keys are, so this is a comparison of multisets rather than of sets:\n * `a=1&a=2` is equal to `a=2&a=1`, but not to `a=1&a=1`.\n */\nfunction areSearchParamsEqual(a, b) {\n const serializedA = a.toString();\n const serializedB = b.toString();\n // Identical serializations are equal under any ordering, and this is by far the common case, so\n // it is worth checking before sorting anything.\n return serializedA === serializedB || sortSearchParams(serializedA) === sortSearchParams(serializedB);\n}\n/**\n * Reorder a serialized query string so that params holding the same pairs compare as equal\n * regardless of the order they appear in.\n *\n * @note\n * The serializer percent-encodes `&` and `=` wherever they appear inside a name or a value, so\n * splitting on `&` recovers exactly the pairs and nothing else.\n */\nfunction sortSearchParams(serialized) {\n return serialized.split('&').sort().join('&');\n}\nfunction isPropertyEqual(a, b, state, property) {\n if ((property === REACT_OWNER || property === PREACT_OWNER || property === PREACT_VNODE)\n && (a.$$typeof || b.$$typeof)) {\n return true;\n }\n return hasOwn(b, property) && state.equals(a[property], b[property], property, property, a, b, state);\n}\n\nconst toString = Object.prototype.toString;\n/**\n * Create a comparator method based on the type-specific equality comparators passed.\n */\nfunction createEqualityComparator(config) {\n const supportedComparatorMap = createSupportedComparatorMap(config);\n const { areArraysEqual, areDatesEqual, areFunctionsEqual, areMapsEqual, areNumbersEqual, areObjectsEqual, areRegExpsEqual, areSetsEqual, getUnsupportedCustomComparator, } = config;\n /**\n * compare the value of the two objects and return true if they are equivalent in values\n */\n return function comparator(a, b, state) {\n // If the items are strictly equal, no need to do a value comparison.\n if (a === b) {\n return true;\n }\n // If either of the items are nullish and fail the strictly equal check\n // above, then they must be unequal.\n if (a == null || b == null) {\n return false;\n }\n const type = typeof a;\n if (type !== typeof b) {\n return false;\n }\n if (type !== 'object') {\n if (type === 'number' || type === 'bigint') {\n return areNumbersEqual(a, b, state);\n }\n if (type === 'function') {\n return areFunctionsEqual(a, b, state);\n }\n // If a primitive value that is not strictly equal, it must be unequal.\n return false;\n }\n const constructor = a.constructor;\n // Checks are listed in order of commonality of use-case:\n // 1. Common complex object types (plain object, array)\n // 2. Common data values (date, regexp)\n // 3. Less-common complex object types (map, set)\n // 4. Less-common data values (promise, primitive wrappers)\n // Inherently this is both subjective and assumptive, however\n // when reviewing comparable libraries in the wild this order\n // appears to be generally consistent.\n // Constructors should match, otherwise there is potential for false positives\n // between class and subclass or custom object and POJO.\n if (constructor !== b.constructor) {\n return false;\n }\n // Try to fast-path equality checks for other complex object types in the\n // same realm to avoid capturing the string tag. Strict equality is used\n // instead of `instanceof` because it is more performant for the common\n // use-case. If someone is creating a subclass from a native class, it will be\n // handled with the string tag comparison.\n if (constructor === Object) {\n return areObjectsEqual(a, b, state);\n }\n if (constructor === Array) {\n return areArraysEqual(a, b, state);\n }\n if (constructor === Date) {\n return areDatesEqual(a, b, state);\n }\n if (constructor === RegExp) {\n return areRegExpsEqual(a, b, state);\n }\n if (constructor === Map) {\n return areMapsEqual(a, b, state);\n }\n if (constructor === Set) {\n return areSetsEqual(a, b, state);\n }\n if (constructor === Promise) {\n // Avoid tag checks for promise values, since we know if they are not referentially equal\n // then they are not equal.\n return false;\n }\n // `isArray()` works on subclasses and is cross-realm, so we can avoid capturing\n // the string tag or doing an `instanceof` in edge cases.\n if (Array.isArray(a)) {\n return areArraysEqual(a, b, state);\n }\n // Since this is a custom object, capture the string tag to determining its type.\n // This is reasonably performant in modern environments like v8 and SpiderMonkey.\n const tag = toString.call(a);\n const supportedComparator = supportedComparatorMap[tag];\n if (supportedComparator) {\n return supportedComparator(a, b, state);\n }\n const unsupportedCustomComparator = getUnsupportedCustomComparator && getUnsupportedCustomComparator(a, b, state, tag);\n if (unsupportedCustomComparator) {\n return unsupportedCustomComparator(a, b, state);\n }\n // If not matching any tags that require a specific type of comparison, then we hard-code false because\n // the only thing remaining is strict equality, which has already been compared. This is for a few reasons:\n // - Certain types that cannot be introspected (e.g., `WeakMap`). For these types, this is the only\n // comparison that can be made.\n // - For types that can be introspected but do not have an objective definition of what\n // equality is (`Error`, etc.), the subjective decision is to be conservative and strictly compare.\n // In all cases, these decisions should be reevaluated based on changes to the language and\n // common development practices.\n return false;\n };\n}\n/**\n * Create the configuration object used for building comparators.\n */\nfunction createEqualityComparatorConfig({ circular, createCustomConfig, strict, }) {\n let config = {\n areArrayBuffersEqual,\n areArraysEqual: strict ? areObjectsEqualStrict : areArraysEqual,\n areDataViewsEqual,\n areDatesEqual: areDatesEqual,\n // `Error` subclasses routinely carry their own enumerable properties (`status`, `code`, ...),\n // which the error comparator alone does not see, so it is composed with the object comparator.\n // `name` / `message` / `stack` are own but not enumerable, which is why errors need a\n // comparator of their own rather than being treated as plain objects in the first place.\n areErrorsEqual: strict\n ? combineComparators(areErrorsEqual, areObjectsEqualStrict)\n : combineComparators(areErrorsEqual, areObjectsEqual),\n areFunctionsEqual: strictEqual,\n areMapsEqual: strict ? combineComparators(areMapsEqual, areObjectsEqualStrict) : areMapsEqual,\n areNumbersEqual: sameValueEqual,\n areObjectsEqual: strict ? areObjectsEqualStrict : areObjectsEqual,\n arePrimitiveWrappersEqual: arePrimitiveWrappersEqual,\n areRegExpsEqual: areRegExpsEqual,\n areSetsEqual: strict ? combineComparators(areSetsEqual, areObjectsEqualStrict) : areSetsEqual,\n areTypedArraysEqual: strict\n ? combineComparators(areTypedArraysEqual, areObjectsEqualStrict)\n : areTypedArraysEqual,\n areUrlsEqual: areUrlsEqual,\n getUnsupportedCustomComparator: undefined,\n };\n if (createCustomConfig) {\n config = Object.assign({}, config, createCustomConfig(config));\n }\n if (circular) {\n const areArraysEqual = createIsCircular(config.areArraysEqual);\n // Errors are included because comparing `cause` and own properties by value means an error\n // that references itself would otherwise recurse without bound.\n const areErrorsEqual = createIsCircular(config.areErrorsEqual);\n const areMapsEqual = createIsCircular(config.areMapsEqual);\n const areObjectsEqual = createIsCircular(config.areObjectsEqual);\n const areSetsEqual = createIsCircular(config.areSetsEqual);\n config = Object.assign({}, config, {\n areArraysEqual,\n areErrorsEqual,\n areMapsEqual,\n areObjectsEqual,\n areSetsEqual,\n });\n }\n return config;\n}\n/**\n * Default equality comparator pass-through, used as the standard `isEqual` creator for\n * use inside the built comparator.\n */\nfunction createInternalEqualityComparator(compare) {\n return function (a, b, _indexOrKeyA, _indexOrKeyB, _parentA, _parentB, state) {\n return compare(a, b, state);\n };\n}\n/**\n * Create the `isEqual` function used by the consuming application.\n */\nfunction createIsEqual({ circular, comparator, createState, equals, strict }) {\n if (createState) {\n return function isEqual(a, b) {\n const { cache = circular ? new WeakMap() : undefined, meta } = createState();\n return comparator(a, b, {\n cache,\n equals,\n meta,\n strict,\n });\n };\n }\n if (circular) {\n return function isEqual(a, b) {\n return comparator(a, b, {\n cache: new WeakMap(),\n equals,\n meta: undefined,\n strict,\n });\n };\n }\n const state = {\n cache: undefined,\n equals,\n meta: undefined,\n strict,\n };\n return function isEqual(a, b) {\n return comparator(a, b, state);\n };\n}\n/**\n * Create a map of `toString()` values to their respective handlers for `tag`-based lookups.\n */\nfunction createSupportedComparatorMap({ areArrayBuffersEqual, areArraysEqual, areDataViewsEqual, areDatesEqual, areErrorsEqual, areFunctionsEqual, areMapsEqual, areObjectsEqual, arePrimitiveWrappersEqual, areRegExpsEqual, areSetsEqual, areTypedArraysEqual, areUrlsEqual, }) {\n return {\n '[object Arguments]': areObjectsEqual,\n '[object Array]': areArraysEqual,\n '[object ArrayBuffer]': areArrayBuffersEqual,\n '[object AsyncGeneratorFunction]': areFunctionsEqual,\n '[object BigInt]': arePrimitiveWrappersEqual,\n '[object BigInt64Array]': areTypedArraysEqual,\n '[object BigUint64Array]': areTypedArraysEqual,\n '[object Boolean]': arePrimitiveWrappersEqual,\n '[object DataView]': areDataViewsEqual,\n '[object Date]': areDatesEqual,\n // If an error tag, it should be tested explicitly. Like RegExp, the properties are not\n // enumerable, and therefore will give false positives if tested like a standard object.\n '[object Error]': areErrorsEqual,\n '[object Float16Array]': areTypedArraysEqual,\n '[object Float32Array]': areTypedArraysEqual,\n '[object Float64Array]': areTypedArraysEqual,\n '[object Function]': areFunctionsEqual,\n '[object GeneratorFunction]': areFunctionsEqual,\n '[object Int8Array]': areTypedArraysEqual,\n '[object Int16Array]': areTypedArraysEqual,\n '[object Int32Array]': areTypedArraysEqual,\n '[object Map]': areMapsEqual,\n '[object Number]': arePrimitiveWrappersEqual,\n '[object Object]': (a, b, state) => \n // The exception for value comparison is custom `Promise`-like class instances. These should\n // be treated the same as standard `Promise` objects, which means strict equality, and if\n // it reaches this point then that strict equality comparison has already failed.\n typeof a.then !== 'function' && typeof b.then !== 'function' && areObjectsEqual(a, b, state),\n // For RegExp, the properties are not enumerable, and therefore will give false positives if\n // tested like a standard object.\n '[object RegExp]': areRegExpsEqual,\n '[object Set]': areSetsEqual,\n '[object String]': arePrimitiveWrappersEqual,\n '[object URL]': areUrlsEqual,\n '[object Uint8Array]': areTypedArraysEqual,\n '[object Uint8ClampedArray]': areTypedArraysEqual,\n '[object Uint16Array]': areTypedArraysEqual,\n '[object Uint32Array]': areTypedArraysEqual,\n };\n}\n\n/**\n * Whether the items passed are deeply-equal in value.\n */\nconst deepEqual = createCustomEqual();\n/**\n * Whether the items passed are deeply-equal in value based on strict comparison.\n */\nconst strictDeepEqual = createCustomEqual({ strict: true });\n/**\n * Whether the items passed are deeply-equal in value, including circular references.\n */\nconst circularDeepEqual = createCustomEqual({ circular: true });\n/**\n * Whether the items passed are deeply-equal in value, including circular references,\n * based on strict comparison.\n */\nconst strictCircularDeepEqual = createCustomEqual({\n circular: true,\n strict: true,\n});\n/**\n * Whether the items passed are shallowly-equal in value.\n */\nconst shallowEqual = createCustomEqual({\n createInternalComparator: () => sameValueEqual,\n});\n/**\n * Whether the items passed are shallowly-equal in value based on strict comparison\n */\nconst strictShallowEqual = createCustomEqual({\n strict: true,\n createInternalComparator: () => sameValueEqual,\n});\n/**\n * Whether the items passed are shallowly-equal in value, including circular references.\n */\nconst circularShallowEqual = createCustomEqual({\n circular: true,\n createInternalComparator: () => sameValueEqual,\n});\n/**\n * Whether the items passed are shallowly-equal in value, including circular references,\n * based on strict comparison.\n */\nconst strictCircularShallowEqual = createCustomEqual({\n circular: true,\n createInternalComparator: () => sameValueEqual,\n strict: true,\n});\n/**\n * Create a custom equality comparison method.\n *\n * This can be done to create very targeted comparisons in extreme hot-path scenarios\n * where the standard methods are not performant enough, but can also be used to provide\n * support for legacy environments that do not support expected features like\n * `RegExp.prototype.flags` out of the box.\n */\nfunction createCustomEqual(options = {}) {\n const { circular = false, createInternalComparator: createCustomInternalComparator, createState, strict = false, } = options;\n const config = createEqualityComparatorConfig(options);\n const comparator = createEqualityComparator(config);\n const equals = createCustomInternalComparator\n ? createCustomInternalComparator(comparator)\n : createInternalEqualityComparator(comparator);\n return createIsEqual({ circular, comparator, createState, equals, strict });\n}\n\nexport { circularDeepEqual, circularShallowEqual, createCustomEqual, deepEqual, sameValueEqual, sameValueZeroEqual, shallowEqual, strictCircularDeepEqual, strictCircularShallowEqual, strictDeepEqual, strictEqual, strictShallowEqual };\n","import { createCustomEqual } from 'fast-equals';\n/** Implements a deep equals using `fast-equals.createCustomEqual`. Functions\n * are always considered equal, and circular references are tracked to avoid\n * infinite recursion on self-referential inputs.\n *\n * @param a - The first element to compare\n * @param b - The second element to compare\n * @returns - True if the `a` and `b` are deeply equal, false otherwise\n */\nconst deepEquals = createCustomEqual({\n circular: true,\n createCustomConfig: () => ({\n areFunctionsEqual(_a, b) {\n return typeof b === 'function';\n },\n }),\n});\nexport default deepEquals;\n//# sourceMappingURL=deepEquals.js.map","'use strict'\n\n/** @type {(value: string) => boolean} */\nconst isUUID = RegExp.prototype.test.bind(/^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)$/u)\n\n/** @type {(value: string) => boolean} */\nconst isPort = RegExp.prototype.test.bind(/^\\d*$/u)\n\n/** @type {(value: string) => boolean} */\nconst isHexPair = RegExp.prototype.test.bind(/^[\\da-f]{2}$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isUnreserved = RegExp.prototype.test.bind(/^[\\da-z\\-._~]$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isPathCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\\-._~!$&'()*+,;=:@/]$/u)\n\n/** @type {(value: string) => boolean} */\nconst isQueryFragmentCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\\-._~!$&'()*+,;=:@/?]$/u)\n\n/** @type {(value: string) => boolean} */\nconst isUserinfoCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\\-._~!$&'()*+,;=:]$/u)\n\n/**\n * @param {Array} input\n * @returns {string}\n */\nfunction stringArrayToHexStripped (input) {\n let acc = ''\n let code = 0\n let i = 0\n\n for (i = 0; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (code === 48) {\n continue\n }\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n break\n }\n\n for (i += 1; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n }\n return acc\n}\n\n/** @type {(value: string) => boolean} */\nconst isHextet = RegExp.prototype.test.bind(/^[\\dA-Fa-f]{1,4}$/)\n\n/** @type {(value: string) => boolean} */\nconst isIPvFuture = RegExp.prototype.test.bind(/^[vV][\\dA-Fa-f]+\\.[A-Za-z\\d\\-._~!$&'()*+,;=:]+$/)\n\n/** @type {(value: string) => boolean} */\nconst isZoneCharacter = RegExp.prototype.test.bind(/^[A-Za-z\\d\\-._~]$/)\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nconst nonSimpleDomain = RegExp.prototype.test.bind(/[^!\"$&'()*+,\\-.;=_`a-z{}~]/u)\n\n/** @type {(value: string) => boolean} */\nconst nonSimpleDomainChars = RegExp.prototype.test.bind(/[^\\d!\"$&'()*+,\\-.;=_`a-z{}~]/u)\n\n/** @type {(value: string) => boolean} */\nconst numericLastLabel = RegExp.prototype.test.bind(/(?:^|\\.)\\d+$/u)\n\n/**\n * True when `new URL('http://' + domain).hostname` may differ from `domain`,\n * i.e. when the caller must fall back to the WHATWG parser.\n *\n * Same purpose as `nonSimpleDomain`, but digits are allowed: for this character\n * set `hostname` is the identity, *except* that an all-numeric final label is\n * read as IPv4 shorthand (\"1.2.3\" -> \"1.2.0.3\", \"127.1\" -> \"127.0.0.1\",\n * \"a.b.1\" throws), which is why `nonSimpleDomain` excludes digits outright.\n * Rejecting that one shape lets the common `mail2.example.org` case stay on the\n * fast path.\n *\n * @param {string} domain - must already be lowercased\n * @returns {boolean}\n */\nfunction nonSimpleMailtoDomain (domain) {\n return nonSimpleDomainChars(domain) || numericLastLabel(domain)\n}\n\n/**\n * @param {string} zone\n * @returns {boolean}\n */\nfunction isZoneIdentifier (zone) {\n if (zone.length === 0) return false\n\n for (let i = 0; i < zone.length; i++) {\n if (isZoneCharacter(zone[i])) continue\n if (zone[i] === '%' && i + 2 < zone.length && isHexPair(zone.slice(i + 1, i + 3))) {\n i += 2\n continue\n }\n return false\n }\n\n return true\n}\n\n/**\n * Compresses the longest run of zero hextets to \"::\" per RFC 5952. A run of a\n * single zero hextet is left uncompressed. On ties the leftmost run wins.\n *\n * @param {string[]} hextets\n * @returns {string}\n */\nfunction compressIPv6ZeroRun (hextets) {\n let bestStart = -1\n let bestLength = 0\n let runStart = -1\n let runLength = 0\n for (let i = 0; i < hextets.length; i++) {\n if (hextets[i] === '0') {\n if (runStart === -1) runStart = i\n runLength++\n if (runLength > bestLength) {\n bestLength = runLength\n bestStart = runStart\n }\n } else {\n runStart = -1\n runLength = 0\n }\n }\n\n if (bestLength < 2) return hextets.join(':')\n\n const head = hextets.slice(0, bestStart).join(':')\n const tail = hextets.slice(bestStart + bestLength).join(':')\n return head + '::' + tail\n}\n\n/**\n * Validates an IPv6 address against the alternatives in RFC 3986 section\n * 3.2.2 and returns the same address with leading hextet zeroes removed.\n * An embedded IPv4 address counts as two hextets and is only valid at the end.\n *\n * @param {string} input\n * @returns {string|undefined}\n */\nfunction normalizeIPv6Address (input) {\n const compression = input.indexOf('::')\n if (compression !== -1 && input.indexOf('::', compression + 1) !== -1) return undefined\n\n const left = compression === -1 ? input.split(':') : input.slice(0, compression).split(':')\n const right = compression === -1 ? [] : input.slice(compression + 2).split(':')\n if (compression !== -1) {\n if (left.length === 1 && left[0] === '') left.length = 0\n if (right.length === 1 && right[0] === '') right.length = 0\n }\n\n const parts = left.concat(right)\n let hextetCount = 0\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i]\n if (part === '') return undefined\n\n if (part.indexOf('.') !== -1) {\n if (i !== parts.length - 1 || (compression !== -1 && right.length === 0) || !isIPv4(part)) return undefined\n hextetCount += 2\n continue\n }\n\n if (!isHextet(part)) return undefined\n parts[i] = parseInt(part, 16).toString(16)\n hextetCount++\n }\n\n if (compression === -1) {\n if (hextetCount !== 8) return undefined\n return compressIPv6ZeroRun(parts)\n }\n if (hextetCount >= 8) return undefined\n\n // expand \"::\" then re-compress the longest run for a canonical result\n const expanded = parts.slice(0, left.length)\n for (let i = hextetCount; i < 8; i++) expanded.push('0')\n for (let i = left.length; i < parts.length; i++) expanded.push(parts[i])\n return compressIPv6ZeroRun(expanded)\n}\n\n/**\n * @typedef {Object} NormalizeIPv6Result\n * @property {string} host - The normalized host.\n * @property {string} [escapedHost] - The escaped host.\n * @property {boolean} isIPV6 - Indicates if the host is an IPv6 address.\n * @property {boolean} [isIPVFuture] - Indicates if the host is an IPvFuture literal.\n * @property {boolean} [error] - Indicates if a bracketed IP literal is malformed.\n */\n\n/**\n * Validates and normalizes a bracketed IP literal. Raw zone separators remain\n * accepted for backwards compatibility, while encoded separators and zone\n * contents follow RFC 6874.\n *\n * @param {string} host\n * @returns {NormalizeIPv6Result}\n */\nfunction normalizeIPv6 (host) {\n const bracketed = host[0] === '[' && host[host.length - 1] === ']'\n const hasBracket = host[0] === '[' || host[host.length - 1] === ']'\n if (hasBracket && !bracketed) return { host, isIPV6: false, error: true }\n\n let input = bracketed ? host.slice(1, -1) : host\n if (bracketed && isIPvFuture(input)) {\n input = input.toLowerCase()\n return { host: `[${input}]`, escapedHost: input, isIPV6: false, isIPVFuture: true }\n }\n\n if (findToken(input, ':') < 2) {\n return { host, isIPV6: false, error: bracketed }\n }\n\n let zoneIdentifier = ''\n const zoneSeparator = input.indexOf('%')\n if (zoneSeparator !== -1) {\n const separatorLength = input.slice(zoneSeparator, zoneSeparator + 3).toLowerCase() === '%25' ? 3 : 1\n zoneIdentifier = input.slice(zoneSeparator + separatorLength)\n if (!isZoneIdentifier(zoneIdentifier)) return { host, isIPV6: false, error: true }\n input = input.slice(0, zoneSeparator)\n }\n\n const address = normalizeIPv6Address(input)\n if (address === undefined) return { host, isIPV6: false, error: true }\n\n return {\n host: address + (zoneIdentifier ? '%' + zoneIdentifier : ''),\n escapedHost: address + (zoneIdentifier ? '%25' + zoneIdentifier : ''),\n isIPV6: true\n }\n}\n\n/**\n * @param {string} str\n * @param {string} token\n * @returns {number}\n */\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\n/**\n * @param {string} path\n * @returns {string}\n *\n * @see https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n */\nfunction removeDotSegments (path) {\n let input = path\n const output = []\n let nextSlash = -1\n let len = 0\n\n // eslint-disable-next-line no-cond-assign\n while (len = input.length) {\n if (len === 1) {\n if (input === '.') {\n break\n } else if (input === '/') {\n output.push('/')\n break\n } else {\n output.push(input)\n break\n }\n } else if (len === 2) {\n if (input[0] === '.') {\n if (input[1] === '.') {\n break\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.') {\n output.push('/')\n break\n }\n }\n } else if (len === 3) {\n if (input === '/..') {\n if (output.length !== 0) {\n output.pop()\n }\n output.push('/')\n break\n }\n }\n if (input[0] === '.') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(3)\n continue\n }\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(2)\n continue\n } else if (input[2] === '.') {\n if (input[3] === '/') {\n input = input.slice(3)\n if (output.length !== 0) {\n output.pop()\n }\n continue\n }\n }\n }\n }\n\n // Rule 2E: Move normal path segment to output\n if ((nextSlash = input.indexOf('/', 1)) === -1) {\n output.push(input)\n break\n } else {\n output.push(input.slice(0, nextSlash))\n input = input.slice(nextSlash)\n }\n }\n\n return output.join('')\n}\n\n/**\n * Re-escape RFC 3986 gen-delims that must not appear literally in the host.\n * After the URI regex parses, these characters cannot be literal in the host\n * field, so any that appear after decoding came from percent-encoding and\n * must be restored to prevent authority structure changes.\n *\n * @param {string} host\n * @param {boolean} isIP - true for IPv4/IPv6 hosts (skip colon re-escaping)\n * @returns {string}\n */\nconst HOST_DELIMS = { '@': '%40', '/': '%2F', '?': '%3F', '#': '%23', ':': '%3A' }\nconst HOST_DELIM_RE = /[@/?#:]/g\nconst HOST_DELIM_NO_COLON_RE = /[@/?#]/g\n\nfunction reescapeHostDelimiters (host, isIP) {\n const re = isIP ? HOST_DELIM_NO_COLON_RE : HOST_DELIM_RE\n re.lastIndex = 0\n return host.replace(re, (ch) => HOST_DELIMS[ch])\n}\n\n/**\n * Normalizes percent escapes and optionally decodes only unreserved ASCII bytes.\n * Reserved delimiters such as `%2F` stay escaped; `%2E` is unreserved.\n *\n * @param {string} input\n * @param {boolean} [decodeUnreserved=false]\n * @returns {string}\n */\nfunction normalizePercentEncoding (input, decodeUnreserved = false) {\n if (input.indexOf('%') === -1) {\n return input\n }\n\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n if (input[i] === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n const normalizedHex = hex.toUpperCase()\n const decoded = String.fromCharCode(parseInt(normalizedHex, 16))\n\n if (decodeUnreserved && isUnreserved(decoded)) {\n output += decoded\n } else {\n output += '%' + normalizedHex\n }\n\n i += 2\n continue\n }\n }\n\n output += input[i]\n }\n\n return output\n}\n\n/** Pre-built `%XX` strings for every byte. Avoids per-call hex math/concat. */\nconst BYTE_HEX = new Array(256)\n{\n const HEX_DIGITS = '0123456789ABCDEF'\n for (let i = 0; i < 256; i++) {\n BYTE_HEX[i] = '%' + HEX_DIGITS[i >> 4] + HEX_DIGITS[i & 0xF]\n }\n}\n\n/**\n * Mirrors the pass-through set of the deprecated `escape()` global:\n * `A-Z a-z 0-9 * + - . / @ _`. Keeps drop-in semantics for ASCII input.\n *\n * @param {number} cp\n * @returns {boolean}\n */\nfunction isEscapeSafe (cp) {\n return (\n (cp >= 0x30 && cp <= 0x39) ||\n (cp >= 0x41 && cp <= 0x5A) ||\n (cp >= 0x61 && cp <= 0x7A) ||\n cp === 0x2A || cp === 0x2B || cp === 0x2D || cp === 0x2E ||\n cp === 0x2F || cp === 0x40 || cp === 0x5F\n )\n}\n\n/**\n * RFC 3986 percent-encode a non-ASCII Unicode code point as UTF-8 bytes.\n * Caller handles the ASCII branch inline for speed.\n *\n * @param {number} cp - Unicode code point (>= 0x80, <= 0x10FFFF)\n * @returns {string}\n */\nfunction percentEncodeNonAscii (cp) {\n if (cp < 0x800) {\n return BYTE_HEX[0xC0 | (cp >> 6)] +\n BYTE_HEX[0x80 | (cp & 0x3F)]\n }\n if (cp < 0x10000) {\n return BYTE_HEX[0xE0 | (cp >> 12)] +\n BYTE_HEX[0x80 | ((cp >> 6) & 0x3F)] +\n BYTE_HEX[0x80 | (cp & 0x3F)]\n }\n return BYTE_HEX[0xF0 | (cp >> 18)] +\n BYTE_HEX[0x80 | ((cp >> 12) & 0x3F)] +\n BYTE_HEX[0x80 | ((cp >> 6) & 0x3F)] +\n BYTE_HEX[0x80 | (cp & 0x3F)]\n}\n\n/**\n * Normalizes path data without turning reserved escapes into live path syntax.\n * Valid escapes are uppercased, raw unsafe characters are escaped, and only\n * unreserved bytes that are not `.` are decoded.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizePathEncoding (input) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n const normalizedHex = hex.toUpperCase()\n const decoded = String.fromCharCode(parseInt(normalizedHex, 16))\n\n if (decoded !== '.' && isUnreserved(decoded)) {\n output += decoded\n } else {\n output += '%' + normalizedHex\n }\n\n i += 2\n continue\n }\n }\n\n if (isPathCharacter(ch)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += isEscapeSafe(code) ? ch : BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Serializes a path without rewriting reserved data. Raw RFC 3986 path\n * characters remain literal, valid escapes are preserved and uppercased, and\n * everything else is UTF-8 percent-encoded. In a path-noscheme, a colon in the\n * first segment must be escaped so the result cannot be parsed as a scheme.\n *\n * @param {string} input\n * @param {boolean} [pathNoScheme=false]\n * @returns {string}\n */\nfunction serializePathEncoding (input, pathNoScheme = false) {\n let output = ''\n let firstSegment = pathNoScheme && input[0] !== '/'\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n output += '%' + hex.toUpperCase()\n i += 2\n continue\n }\n }\n\n if (ch === '/') {\n firstSegment = false\n }\n\n if (isPathCharacter(ch) && (ch !== ':' || !firstSegment)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Normalizes the percent-encoding of a query or fragment component.\n *\n * Like `normalizePathEncoding`, but uses the query/fragment character set\n * (which additionally allows `?`) and decodes `.` since it has no dot-segment\n * meaning outside of a path.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizeQueryFragmentEncoding (input) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n const normalizedHex = hex.toUpperCase()\n const decoded = String.fromCharCode(parseInt(normalizedHex, 16))\n\n if (isUnreserved(decoded)) {\n output += decoded\n } else {\n output += '%' + normalizedHex\n }\n\n i += 2\n continue\n }\n }\n\n if (isQueryFragmentCharacter(ch)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += isEscapeSafe(code) ? ch : BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Percent-encodes a URI component using its RFC 3986 literal character set.\n * Existing valid escapes are preserved and normalized to uppercase hex.\n *\n * @param {string} input\n * @param {(value: string) => boolean} isAllowed\n * @returns {string}\n */\nfunction encodeComponent (input, isAllowed) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n output += '%' + hex.toUpperCase()\n i += 2\n continue\n }\n }\n\n if (isAllowed(ch)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Encodes userinfo while preserving its RFC 3986 §3.2.1 literal characters.\n * In particular, authority delimiters such as `@`, `/`, `?`, and `#` are data.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction encodeUserinfo (input) {\n return encodeComponent(input, isUserinfoCharacter)\n}\n\n/**\n * Encodes query data using the RFC 3986 §3.4 grammar. A literal `#` must be\n * escaped because it would otherwise begin the fragment component.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction encodeQuery (input) {\n return encodeComponent(input, isQueryFragmentCharacter)\n}\n\n/**\n * Encodes fragment data using the RFC 3986 §3.5 grammar.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction encodeFragment (input) {\n return encodeComponent(input, isQueryFragmentCharacter)\n}\n\n/**\n * Escapes a component while preserving existing valid percent escapes.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction escapePreservingEscapes (input) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n output += '%' + hex.toUpperCase()\n i += 2\n continue\n }\n }\n\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += isEscapeSafe(code) ? ch : BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n\n return output\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @returns {string|undefined}\n */\nfunction recomposeAuthority (component) {\n const uriTokens = []\n\n if (component.userinfo !== undefined) {\n uriTokens.push(encodeUserinfo(component.userinfo))\n uriTokens.push('@')\n }\n\n if (component.host !== undefined) {\n let host = component.host\n if (!isIPv4(host)) {\n let ipV6res = normalizeIPv6(host)\n if (ipV6res.isIPV6 !== true && ipV6res.isIPVFuture !== true) {\n // Decode only unreserved bytes, once. In particular, keep %25 encoded\n // so it cannot introduce a second escape during recomposition.\n host = normalizePercentEncoding(host, true)\n ipV6res = normalizeIPv6(host)\n }\n if (ipV6res.isIPV6 === true || ipV6res.isIPVFuture === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = reescapeHostDelimiters(host, false)\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof component.port === 'number' || typeof component.port === 'string') {\n const port = String(component.port)\n if (!isPort(port)) {\n throw new TypeError('URI port is malformed.')\n }\n uriTokens.push(':')\n uriTokens.push(port)\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n BYTE_HEX,\n percentEncodeNonAscii,\n nonSimpleDomain,\n nonSimpleMailtoDomain,\n recomposeAuthority,\n reescapeHostDelimiters,\n normalizePercentEncoding,\n normalizePathEncoding,\n serializePathEncoding,\n normalizeQueryFragmentEncoding,\n encodeUserinfo,\n encodeQuery,\n encodeFragment,\n escapePreservingEscapes,\n removeDotSegments,\n isIPv4,\n isUUID,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n","'use strict'\n\nconst { isUUID, BYTE_HEX, percentEncodeNonAscii, nonSimpleMailtoDomain } = require('./utils')\nconst URN_REG = /^([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-./:;=@]|%[\\da-f]{2})+)$/iu\n\nconst supportedSchemeNames = /** @type {const} */ (['http', 'https', 'ws',\n 'wss', 'urn', 'urn:uuid', 'mailto'])\n\n/** @typedef {supportedSchemeNames[number]} SchemeName */\n\n/**\n * @param {string} name\n * @returns {name is SchemeName}\n */\nfunction isValidSchemeName (name) {\n return supportedSchemeNames.indexOf(/** @type {*} */ (name)) !== -1\n}\n\n/**\n * @callback SchemeFn\n * @param {import('../types/index').URIComponent} component\n * @param {import('../types/index').Options} options\n * @returns {import('../types/index').URIComponent}\n */\n\n/**\n * @typedef {Object} SchemeHandler\n * @property {SchemeName} scheme - The scheme name.\n * @property {boolean} [domainHost] - Indicates if the scheme supports domain hosts.\n * @property {SchemeFn} parse - Function to parse the URI component for this scheme.\n * @property {SchemeFn} serialize - Function to serialize the URI component for this scheme.\n * @property {boolean} [skipNormalize] - Indicates if normalization should be skipped for this scheme.\n * @property {boolean} [absolutePath] - Indicates if the scheme uses absolute paths.\n * @property {boolean} [unicodeSupport] - Indicates if the scheme supports Unicode.\n */\n\n/**\n * @param {import('../types/index').URIComponent} wsComponent\n * @returns {boolean}\n */\nfunction wsIsSecure (wsComponent) {\n if (wsComponent.secure === true) {\n return true\n } else if (wsComponent.secure === false) {\n return false\n } else if (wsComponent.scheme) {\n return (\n wsComponent.scheme.length === 3 &&\n (wsComponent.scheme[0] === 'w' || wsComponent.scheme[0] === 'W') &&\n (wsComponent.scheme[1] === 's' || wsComponent.scheme[1] === 'S') &&\n (wsComponent.scheme[2] === 's' || wsComponent.scheme[2] === 'S')\n )\n } else {\n return false\n }\n}\n\n/** @type {SchemeFn} */\nfunction httpParse (component) {\n if (!component.host) {\n component.error = component.error || 'HTTP URIs must have a host.'\n }\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction httpSerialize (component) {\n const secure = String(component.scheme).toLowerCase() === 'https'\n\n // normalize the default port\n if (component.port === (secure ? 443 : 80) || component.port === '') {\n component.port = undefined\n }\n\n // normalize the empty path\n if (!component.path) {\n component.path = '/'\n }\n\n // NOTE: We do not parse query strings for HTTP URIs\n // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n // and not the HTTP spec.\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction wsParse (wsComponent) {\n// indicate if the secure flag is set\n wsComponent.secure = wsIsSecure(wsComponent)\n\n // construct resouce name\n wsComponent.resourceName = (wsComponent.path || '/') + (wsComponent.query ? '?' + wsComponent.query : '')\n wsComponent.path = undefined\n wsComponent.query = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction wsSerialize (wsComponent) {\n// normalize the default port\n if (wsComponent.port === (wsIsSecure(wsComponent) ? 443 : 80) || wsComponent.port === '') {\n wsComponent.port = undefined\n }\n\n // ensure scheme matches secure flag\n if (typeof wsComponent.secure === 'boolean') {\n wsComponent.scheme = (wsComponent.secure ? 'wss' : 'ws')\n wsComponent.secure = undefined\n }\n\n // reconstruct path from resource name\n if (wsComponent.resourceName) {\n const queryIndex = wsComponent.resourceName.indexOf('?')\n const path = queryIndex === -1\n ? wsComponent.resourceName\n : wsComponent.resourceName.slice(0, queryIndex)\n wsComponent.path = (path && path !== '/' ? path : undefined)\n wsComponent.query = queryIndex === -1\n ? undefined\n : wsComponent.resourceName.slice(queryIndex + 1)\n wsComponent.resourceName = undefined\n }\n\n // forbid fragment component\n wsComponent.fragment = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnParse (urnComponent, options) {\n if (!urnComponent.path) {\n urnComponent.error = 'URN can not be parsed'\n return urnComponent\n }\n const matches = urnComponent.path.match(URN_REG)\n if (matches && matches[0] === urnComponent.path) {\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n urnComponent.nid = matches[1].toLowerCase()\n urnComponent.nss = matches[2]\n const urnScheme = `${scheme}:${options.nid || urnComponent.nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n urnComponent.path = undefined\n\n if (schemeHandler) {\n urnComponent = schemeHandler.parse(urnComponent, options)\n }\n } else {\n urnComponent.error = urnComponent.error || 'URN can not be parsed.'\n }\n\n return urnComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnSerialize (urnComponent, options) {\n if (urnComponent.nid === undefined) {\n throw new Error('URN without nid cannot be serialized')\n }\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n const nid = urnComponent.nid.toLowerCase()\n const urnScheme = `${scheme}:${options.nid || nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n\n if (schemeHandler) {\n urnComponent = schemeHandler.serialize(urnComponent, options)\n }\n\n const uriComponent = urnComponent\n const nss = urnComponent.nss\n uriComponent.path = `${nid || options.nid}:${nss}`\n\n options.skipEscape = true\n return uriComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidParse (urnComponent, options) {\n const uuidComponent = urnComponent\n uuidComponent.uuid = uuidComponent.nss\n uuidComponent.nss = undefined\n\n if (!options.tolerant && (!uuidComponent.uuid || !isUUID(uuidComponent.uuid))) {\n uuidComponent.error = uuidComponent.error || 'UUID is not valid.'\n }\n\n return uuidComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidSerialize (uuidComponent) {\n const urnComponent = uuidComponent\n // normalize UUID\n urnComponent.nss = (uuidComponent.uuid || '').toLowerCase()\n return urnComponent\n}\n\nconst http = /** @type {SchemeHandler} */ ({\n scheme: 'http',\n domainHost: true,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst https = /** @type {SchemeHandler} */ ({\n scheme: 'https',\n domainHost: http.domainHost,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst ws = /** @type {SchemeHandler} */ ({\n scheme: 'ws',\n domainHost: true,\n parse: wsParse,\n serialize: wsSerialize\n})\n\nconst wss = /** @type {SchemeHandler} */ ({\n scheme: 'wss',\n domainHost: ws.domainHost,\n parse: ws.parse,\n serialize: ws.serialize\n})\n\nconst urn = /** @type {SchemeHandler} */ ({\n scheme: 'urn',\n parse: urnParse,\n serialize: urnSerialize,\n skipNormalize: true\n})\n\nconst urnuuid = /** @type {SchemeHandler} */ ({\n scheme: 'urn:uuid',\n parse: urnuuidParse,\n serialize: urnuuidSerialize,\n skipNormalize: true\n})\n\n/**\n * Allow-sets for `encodeWithAllow`, each a `{ all, table, allowNonAscii }`\n * descriptor built by `allowSet`:\n *\n * - `LOCAL_PART` is the intersection of upstream uri-js's VCHAR and\n * NOT_PATH_NOSCHEME, minus \",\": the serializer joins recipients with \",\" and\n * `mailtoParse` splits the path on it, so a comma left literal inside a local\n * part would silently become a recipient delimiter.\n * - `HFNAME` is the qchar allow-set used for header names/values.\n * - `DTEXT` is RFC 6068 dtext-no-obs restricted to characters that are also\n * safe in a URI path; `DTEXT_IRI` additionally permits non-ASCII for\n * `unicodeSupport`.\n */\nconst LOCAL_PART_ALLOWED = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$'()*+=\"\nconst HFNAME_ALLOWED = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$'()*+,;:@\"\nconst DTEXT_ALLOWED = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$'()*+;:\"\n\n/**\n * @typedef {Object} AllowSet\n * @property {RegExp} all - matches a whole string needing no encoding at all.\n * @property {Uint8Array} table - per-ASCII-code allow lookup for the slow path.\n * @property {boolean} allowNonAscii - pass non-ASCII code points through (IRI).\n */\n\n/**\n * `all` deliberately excludes \"%\" and (for the IRI variant) surrogates, so any\n * input needing escape normalization or surrogate repair falls to the slow path.\n *\n * @param {string} chars\n * @param {boolean} [allowNonAscii=false]\n * @returns {AllowSet}\n */\nfunction allowSet (chars, allowNonAscii = false) {\n const table = new Uint8Array(128)\n for (let i = 0; i < chars.length; i++) {\n table[chars.charCodeAt(i)] = 1\n }\n const escaped = chars.replace(/[\\\\\\]^-]/gu, '\\\\$&')\n const cls = allowNonAscii ? `[${escaped}]|[^\\\\0-\\\\x7F\\\\uD800-\\\\uDFFF]` : `[${escaped}]`\n return { all: new RegExp(`^(?:${cls})*$`, 'u'), table, allowNonAscii }\n}\n\nconst LOCAL_PART = allowSet(LOCAL_PART_ALLOWED)\nconst HFNAME = allowSet(HFNAME_ALLOWED)\nconst DTEXT = allowSet(DTEXT_ALLOWED)\nconst DTEXT_IRI = allowSet(DTEXT_ALLOWED, true)\n\nconst HEX_PAIR = /^[\\da-f]{2}$/iu\nconst MAILTO_DOMAIN_LITERAL = /^\\[[\\x21-\\x5A\\x5E-\\x7E]*\\]$/u\nconst MAILTO_DOMAIN_ERROR = 'URI mailto has an invalid recipient domain.'\nconst HAS_SURROGATE = /[\\uD800-\\uDFFF]/u\n\n/**\n * @param {string} str\n * @returns {string}\n */\nfunction decodeHex (str) {\n if (typeof str !== 'string' || str.indexOf('%') === -1) {\n return str\n }\n try {\n return decodeURIComponent(str)\n } catch {\n return str\n }\n}\n\n/**\n * Replaces lone surrogates with U+FFFD, leaving valid pairs intact. Only called\n * when `HAS_SURROGATE` matched, so the scan cost is not on the common path.\n * (`String.prototype.toWellFormed` would do this natively but is Node 20+.)\n *\n * @param {string} input\n * @returns {string}\n */\nfunction replaceLoneSurrogates (input) {\n let result = ''\n for (let i = 0; i < input.length; i++) {\n const code = input.charCodeAt(i)\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n result += input[i] + input[i + 1]\n i++\n continue\n }\n }\n result += (code >= 0xD800 && code <= 0xDFFF) ? '\\uFFFD' : input[i]\n }\n return result\n}\n\n/**\n * Percent-encodes everything outside `set`, preserving existing valid escapes\n * (uppercased) and repairing lone surrogates.\n *\n * ASCII uses `BYTE_HEX` rather than `encodeURIComponent`. That is equivalent\n * only because every character `encodeURIComponent` leaves unescaped\n * (`A-Za-z0-9-_.!~*'()`) is present in all of the allow-sets above, so no such\n * character ever reaches the encode branch. Re-check if a set is narrowed.\n *\n * @param {string} input\n * @param {AllowSet} set\n * @returns {string}\n */\nfunction encodeWithAllow (input, set) {\n if (set.all.test(input)) {\n return input\n }\n\n const table = set.table\n let result = ''\n for (let i = 0; i < input.length; i++) {\n const code = input.charCodeAt(i)\n\n if (code < 0x80) {\n if (table[code] === 1) {\n result += input[i]\n } else if (code === 0x25 && i + 2 < input.length && HEX_PAIR.test(input.slice(i + 1, i + 3))) {\n result += '%' + input.slice(i + 1, i + 3).toUpperCase()\n i += 2\n } else {\n result += BYTE_HEX[code]\n }\n continue\n }\n\n if (code < 0xD800 || code > 0xDFFF) {\n result += set.allowNonAscii ? input[i] : percentEncodeNonAscii(code)\n continue\n }\n\n if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n result += set.allowNonAscii\n ? input[i] + input[i + 1]\n : percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n continue\n }\n }\n\n result += set.allowNonAscii ? '\\uFFFD' : percentEncodeNonAscii(0xFFFD)\n }\n return result\n}\n\n/**\n * @param {string} domain\n * @param {import('../types/index').Options} [options]\n * @param {{error?:string}} [component]\n * @returns {string}\n */\nfunction mailtoNormalizeDomain (domain, options, component) {\n const normalizedDomain = String(domain).toLowerCase()\n\n if (MAILTO_DOMAIN_LITERAL.test(normalizedDomain)) {\n return normalizedDomain\n }\n\n // `hostname` is the identity for these, so skip constructing a WHATWG URL.\n if (normalizedDomain !== '' && !nonSimpleMailtoDomain(normalizedDomain)) {\n return normalizedDomain\n }\n\n try {\n const parsedDomain = new URL('http://' + normalizedDomain)\n if (\n parsedDomain.username ||\n parsedDomain.password ||\n parsedDomain.port ||\n parsedDomain.pathname !== '/' ||\n parsedDomain.search ||\n parsedDomain.hash ||\n !parsedDomain.hostname\n ) {\n throw new Error(MAILTO_DOMAIN_ERROR)\n }\n\n return options && options.unicodeSupport\n ? normalizedDomain\n : parsedDomain.hostname\n } catch {\n if (component) {\n component.error = component.error || MAILTO_DOMAIN_ERROR\n }\n return normalizedDomain\n }\n}\n\n/**\n * Percent-encodes everything in a recipient domain that is not `dtext-no-obs`\n * (RFC 6068). Serialize-only: `mailtoNormalizeDomain` returns the domain\n * verbatim when validation fails, and `MAILTO_DOMAIN_LITERAL` accepts the full\n * RFC 5321 dcontent range (which includes \"?\", \"#\", \"&\" and \"/\"), so without\n * this an attacker-supplied recipient could inject header fields or a fragment\n * into the serialized URI. `mailtoParse` deliberately reports the raw domain\n * instead, so it must not use this.\n * @param {string} domain\n * @param {import('../types/index').Options} [options]\n * @returns {string}\n */\nfunction mailtoEncodeDomain (domain, options) {\n const set = options && options.unicodeSupport ? DTEXT_IRI : DTEXT\n\n // Keep the delimiters of a domain literal, encode its contents.\n if (domain.length > 1 && domain[0] === '[' && domain[domain.length - 1] === ']') {\n return '[' + encodeWithAllow(domain.slice(1, -1), set) + ']'\n }\n\n return encodeWithAllow(domain, set)\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @param {import('../types/index').Options} options\n * @returns {import('../types/index').URIComponent}\n */\nfunction mailtoParse (component, options) {\n const mailtoComponent = component\n\n // The handler sets `skipNormalize`, so path and query arrive raw. Everything\n // here goes through `decodeHex`, which subsumes the generic normalizers --\n // except that they also fold lone surrogates to U+FFFD, so do that here.\n let rawPath = mailtoComponent.path\n let rawQuery = mailtoComponent.query\n if (rawPath && HAS_SURROGATE.test(rawPath)) rawPath = replaceLoneSurrogates(rawPath)\n if (rawQuery && HAS_SURROGATE.test(rawQuery)) rawQuery = replaceLoneSurrogates(rawQuery)\n\n const to = rawPath\n ? (rawPath.indexOf(',') === -1 ? [rawPath] : rawPath.split(','))\n : []\n mailtoComponent.path = undefined\n\n if (rawQuery) {\n // Null prototype: header names come from untrusted input, so `headers[name]`\n // must not resolve to inherited members (\"constructor\", \"toString\", ...),\n // and \"__proto__\" has to land as a plain own property instead of hitting\n // Object.prototype's setter and being silently dropped. Allocated lazily so\n // the common subject/body-only URI does not pay for it.\n /** @type {Record|null} */\n let headers = null\n let start = 0\n while (start <= rawQuery.length) {\n let end = rawQuery.indexOf('&', start)\n if (end === -1) end = rawQuery.length\n const token = rawQuery.slice(start, end)\n start = end + 1\n\n const eqIdx = token.indexOf('=')\n if (eqIdx !== token.lastIndexOf('=')) {\n mailtoComponent.error = mailtoComponent.error || 'URI mailto has malformed header fields.'\n continue\n }\n const name = eqIdx === -1 ? token : token.slice(0, eqIdx)\n const value = eqIdx === -1 ? '' : token.slice(eqIdx + 1)\n if (name === 'to') {\n const addrs = value.split(',')\n for (let j = 0; j < addrs.length; j++) to.push(addrs[j])\n continue\n }\n if (name === 'subject') {\n mailtoComponent.subject = decodeHex(value)\n continue\n }\n if (name === 'body') {\n mailtoComponent.body = decodeHex(value)\n continue\n }\n if (headers === null) headers = /** @type {Record} */ (Object.create(null))\n headers[decodeHex(name)] = decodeHex(value)\n }\n if (headers !== null) mailtoComponent.headers = headers\n }\n\n mailtoComponent.query = undefined\n\n for (let i = 0; i < to.length; i++) {\n const rawAddr = to[i]\n const atIdx = rawAddr.lastIndexOf('@')\n if (atIdx < 0) {\n mailtoComponent.error = mailtoComponent.error || MAILTO_DOMAIN_ERROR\n to[i] = decodeHex(rawAddr)\n continue\n }\n const local = decodeHex(rawAddr.slice(0, atIdx))\n const domain = mailtoNormalizeDomain(decodeHex(rawAddr.slice(atIdx + 1)), options, mailtoComponent)\n to[i] = local + '@' + domain\n }\n\n if (to.length) mailtoComponent.to = to\n\n return mailtoComponent\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @param {import('../types/index').Options} options\n * @returns {import('../types/index').URIComponent}\n */\nfunction mailtoSerialize (component, options) {\n const mailtoComponent = component\n const to = Array.isArray(mailtoComponent.to) ? mailtoComponent.to.slice() : []\n if (to.length) {\n for (let i = 0; i < to.length; i++) {\n const addr = String(to[i])\n const atIdx = addr.lastIndexOf('@')\n const rawLocal = atIdx >= 0 ? addr.slice(0, atIdx) : addr\n const rawDomain = atIdx >= 0 ? addr.slice(atIdx + 1) : ''\n const local = encodeWithAllow(rawLocal, LOCAL_PART)\n const decodedDomain = decodeHex(rawDomain)\n // `component` is intentionally not passed: index.js's `serialize` writes\n // the error onto a private copy and returns only a string, so an error\n // recorded here would be unreachable. Safety comes from encoding instead.\n const normalizedDomain = mailtoNormalizeDomain(decodedDomain, options)\n to[i] = local + '@' + mailtoEncodeDomain(normalizedDomain, options)\n }\n // Every recipient is now fully encoded and only the joining commas are\n // literal, so bypass index.js's generic encoder, whose allow-set is\n // narrower than upstream's and would over-encode.\n mailtoComponent.path = to.join(',')\n options.skipEscape = true\n } else {\n // No recipients: drop any caller-supplied path, matching upstream uri-js.\n // `to` is the only recipient source, and `mailtoParse` always moves the\n // path into it, so a mailto component never legitimately carries one.\n mailtoComponent.path = undefined\n }\n\n const headers = mailtoComponent.headers && typeof mailtoComponent.headers === 'object'\n ? Object.assign(Object.create(null), mailtoComponent.headers)\n : Object.create(null)\n\n if (mailtoComponent.subject) headers.subject = mailtoComponent.subject\n if (mailtoComponent.body) headers.body = mailtoComponent.body\n mailtoComponent.headers = headers\n\n // `headers` has a null prototype and was filled via Object.assign, so every\n // enumerable key is an own property and no hasOwnProperty guard is needed.\n let query = ''\n let count = 0\n for (const name in headers) {\n if (count++ !== 0) query += '&'\n query += encodeWithAllow(name, HFNAME) + '=' + encodeWithAllow(String(headers[name]), HFNAME)\n }\n\n if (count !== 0) {\n mailtoComponent.query = query\n } else {\n mailtoComponent.headers = undefined\n }\n\n return mailtoComponent\n}\n\nconst mailto = /** @type {SchemeHandler} */ ({\n scheme: 'mailto',\n parse: mailtoParse,\n serialize: mailtoSerialize,\n domainHost: false,\n unicodeSupport: true,\n // `mailtoParse` re-derives every component from the raw path/query via\n // `decodeHex`, which subsumes the generic normalizers, so running them first\n // is wasted work (~28% of parsing a URI with header fields).\n skipNormalize: true,\n // A recipient list has no dot segments to remove, and `removeDotSegments`\n // would rewrite a \"./\"-prefixed local part.\n absolutePath: true\n})\n\nconst SCHEMES = /** @type {Record} */ ({\n http,\n https,\n ws,\n wss,\n urn,\n 'urn:uuid': urnuuid,\n mailto\n})\n\nObject.setPrototypeOf(SCHEMES, null)\n\n/**\n * @param {string|undefined} scheme\n * @returns {SchemeHandler|undefined}\n */\nfunction getSchemeHandler (scheme) {\n return (\n scheme && (\n SCHEMES[/** @type {SchemeName} */ (scheme)] ||\n SCHEMES[/** @type {SchemeName} */(scheme.toLowerCase())])\n ) ||\n undefined\n}\n\nmodule.exports = {\n wsIsSecure,\n SCHEMES,\n isValidSchemeName,\n getSchemeHandler,\n}\n","'use strict'\n\nconst { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, serializePathEncoding, normalizeQueryFragmentEncoding, encodeQuery, encodeFragment, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require('./lib/utils')\nconst { SCHEMES, getSchemeHandler } = require('./lib/schemes')\n\nconst VALID_SCHEME = /^[A-Za-z][A-Za-z0-9+.-]*$/u\nconst MALFORMED_SCHEME_ERROR = 'URI scheme is malformed.'\n\n/**\n * @param {string} scheme\n * @returns {string}\n */\nfunction decodeValidScheme (scheme) {\n const decodedScheme = unescape(String(scheme))\n if (!VALID_SCHEME.test(decodedScheme)) {\n throw new TypeError(MALFORMED_SCHEME_ERROR)\n }\n return decodedScheme\n}\n\n/**\n * @template {import('./types/index').URIComponent|string} T\n * @param {T} uri\n * @param {import('./types/index').Options} [options]\n * @returns {T}\n */\nfunction normalize (uri, options) {\n if (typeof uri === 'string') {\n uri = /** @type {T} */ (normalizeString(uri, options))\n } else if (typeof uri === 'object') {\n uri = /** @type {T} */ (parse(serialize(uri, options), options))\n }\n return uri\n}\n\n/**\n * @param {string} baseURI\n * @param {string} relativeURI\n * @param {import('./types/index').Options} [options]\n * @returns {string}\n */\nfunction resolve (baseURI, relativeURI, options) {\n const schemelessOptions = options ? Object.assign({ scheme: 'null' }, options) : { scheme: 'null' }\n const {\n parsed: baseParsed,\n malformedAuthorityOrPort: baseMalformed,\n malformedPercentEncoding: baseMalformedPercentEncoding,\n malformedSchemeSpecific: baseMalformedSchemeSpecific,\n malformedHost: baseMalformedHost,\n malformedScheme: baseMalformedScheme\n } = parseWithStatus(baseURI, schemelessOptions)\n const {\n parsed: relativeParsed,\n malformedAuthorityOrPort: relativeMalformed,\n malformedPercentEncoding: relativeMalformedPercentEncoding,\n malformedSchemeSpecific: relativeMalformedSchemeSpecific,\n malformedHost: relativeMalformedHost,\n malformedScheme: relativeMalformedScheme\n } = parseWithStatus(relativeURI, schemelessOptions)\n if (\n baseMalformed ||\n relativeMalformed ||\n baseMalformedPercentEncoding ||\n relativeMalformedPercentEncoding ||\n baseMalformedSchemeSpecific ||\n relativeMalformedSchemeSpecific ||\n baseMalformedHost ||\n relativeMalformedHost ||\n baseMalformedScheme ||\n relativeMalformedScheme\n ) {\n throw new Error(baseParsed.error || relativeParsed.error || 'URI is malformed.')\n }\n const resolved = resolveComponent(baseParsed, relativeParsed, schemelessOptions, true)\n const resolvedSchemeHandler = getSchemeHandler((options && options.scheme) || resolved.scheme)\n const resolvedHost = resolved.host\n const resolvedHostIsIP = resolvedHost !== undefined && resolvedHost !== '' &&\n (isIPv4(resolvedHost) || normalizeIPv6(resolvedHost).isIPV6)\n canonicalizeHost(resolved, options || {}, resolvedSchemeHandler, resolvedHostIsIP)\n // Percent escapes in an ASCII reg-name are encoded data. The WHATWG hostname\n // parser can reject them even though fast-uri preserves them safely as RFC\n // 3986 data. A raw non-ASCII host must still fail closed if conversion fails.\n const encodedASCIIHost = resolvedHost && resolvedHost.indexOf('%') !== -1 &&\n !/\\P{ASCII}/u.test(resolvedHost)\n if (resolved.error && !encodedASCIIHost) {\n throw new Error(resolved.error)\n }\n schemelessOptions.skipEscape = true\n return serialize(resolved, schemelessOptions)\n}\n\n/**\n * @param {import ('./types/index').URIComponent} base\n * @param {import ('./types/index').URIComponent} relative\n * @param {import('./types/index').Options} [options]\n * @param {boolean} [skipNormalization=false]\n * @returns {import ('./types/index').URIComponent}\n */\nfunction resolveComponent (base, relative, options, skipNormalization) {\n /** @type {import('./types/index').URIComponent} */\n const target = {}\n if (!skipNormalization) {\n base = parse(serialize(base, options), options) // normalize base component\n relative = parse(serialize(relative, options), options) // normalize relative component\n }\n options = options || {}\n\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (!relative.path) {\n target.path = base.path\n if (relative.query !== undefined) {\n target.query = relative.query\n } else {\n target.query = base.query\n }\n } else {\n if (relative.path[0] === '/') {\n target.path = removeDotSegments(relative.path)\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = '/' + relative.path\n } else if (!base.path) {\n target.path = relative.path\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf('/') + 1) + relative.path\n }\n target.path = removeDotSegments(target.path)\n }\n target.query = relative.query\n }\n // target.authority = base.authority;\n target.userinfo = base.userinfo\n target.host = base.host\n target.port = base.port\n }\n target.scheme = base.scheme\n }\n\n target.fragment = relative.fragment\n\n return target\n}\n\n/**\n * @param {import ('./types/index').URIComponent|string} uriA\n * @param {import ('./types/index').URIComponent|string} uriB\n * @param {import ('./types/index').Options} options\n * @returns {boolean}\n */\nfunction equal (uriA, uriB, options) {\n const normalizedA = normalizeComparableURI(uriA, options)\n const normalizedB = normalizeComparableURI(uriB, options)\n\n return normalizedA !== undefined && normalizedB !== undefined && normalizedA === normalizedB\n}\n\n/**\n * @param {Readonly} cmpts\n * @param {import('./types/index').Options} [opts]\n * @returns {string}\n */\nfunction serialize (cmpts, opts) {\n const component = {\n host: cmpts.host,\n scheme: cmpts.scheme,\n userinfo: cmpts.userinfo,\n port: cmpts.port,\n path: cmpts.path,\n query: cmpts.query,\n nid: cmpts.nid,\n nss: cmpts.nss,\n uuid: cmpts.uuid,\n fragment: cmpts.fragment,\n reference: cmpts.reference,\n resourceName: cmpts.resourceName,\n secure: cmpts.secure,\n to: cmpts.to,\n subject: cmpts.subject,\n body: cmpts.body,\n headers: cmpts.headers,\n error: ''\n }\n const options = Object.assign({}, opts)\n const uriTokens = []\n\n if (component.scheme) {\n component.scheme = decodeValidScheme(component.scheme)\n }\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || component.scheme)\n\n // perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options)\n\n const hasAuthority = component.userinfo !== undefined || component.host !== undefined || component.port !== undefined\n const pathNoScheme = !options.skipEscape && component.scheme === undefined && !hasAuthority\n\n if (component.path !== undefined) {\n if (!options.skipEscape) {\n component.path = serializePathEncoding(component.path, pathNoScheme)\n } else {\n component.path = normalizePercentEncoding(component.path)\n }\n }\n\n if (options.reference !== 'suffix' && component.scheme) {\n // Scheme handlers may replace the scheme during serialization.\n component.scheme = decodeValidScheme(component.scheme)\n uriTokens.push(component.scheme, ':')\n }\n\n const authority = recomposeAuthority(component)\n if (authority !== undefined) {\n if (options.reference !== 'suffix') {\n uriTokens.push('//')\n }\n\n uriTokens.push(authority)\n\n if (component.path && component.path[0] !== '/') {\n uriTokens.push('/')\n }\n }\n if (component.path !== undefined) {\n let s = component.path\n\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s)\n }\n\n // Dot-segment removal can expose a colon that was not originally in the\n // first segment (for example, \"./a:b\"). Reapply path-noscheme encoding so\n // the serialized relative reference cannot be reparsed as a URI scheme.\n if (pathNoScheme) {\n s = serializePathEncoding(s, true)\n }\n\n if (\n authority === undefined &&\n s[0] === '/' &&\n s[1] === '/'\n ) {\n // don't allow the path to start with \"//\"\n s = '/%2F' + s.slice(2)\n }\n\n uriTokens.push(s)\n }\n\n if (component.query !== undefined) {\n uriTokens.push('?', encodeQuery(component.query))\n }\n\n if (component.fragment !== undefined) {\n uriTokens.push('#', encodeFragment(component.fragment))\n }\n return uriTokens.join('')\n}\n\nconst URI_PARSE = /^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u\n\n// Captures the authority component (between \"//\" and the next \"/\", \"?\" or \"#\"),\n// with or without a scheme prefix, for the literal-backslash rejection below.\nconst AUTHORITY_PREFIX = /^(?:[^#/:?]+:)?\\/\\/([^/?#]*)/\n\n// Captures the leading authority-introducer region after an optional scheme: a\n// run of forward slashes, backslashes, and the characters the WHATWG URL parser\n// removes before parsing (TAB U+0009, LF U+000A, CR U+000D). A valid introducer\n// is exactly \"//\". Node treats \"\\\" as \"/\" on special schemes and strips those\n// characters first, so forms like \"\\\\\", \"/\\\", \"\\/\", \"//\", or a leading\n// \"//\" reach an authority in Node while fast-uri's URI_PARSE folds them into\n// the path group (host confusion / SSRF / redirect bypass).\nconst AUTHORITY_INTRODUCER_REGION = /^(?:[^#/:?]+:)?([/\\\\\\t\\n\\r]*)/\n\n/**\n * @param {import('./types/index').URIComponent} parsed\n * @param {RegExpMatchArray} matches\n * @returns {string|undefined}\n */\nfunction getParseError (parsed, matches) {\n if (matches[2] !== undefined && parsed.path && parsed.path[0] !== '/') {\n return 'URI path must start with \"/\" when authority is present.'\n }\n\n if (typeof parsed.port === 'number' && (parsed.port < 0 || parsed.port > 65535)) {\n return 'URI port is malformed.'\n }\n\n return undefined\n}\n\n/**\n * Checks percent syntax without decoding the represented octets. RFC 3986\n * percent-encoding is byte-oriented, so sequences such as `%FF` are valid even\n * though they are not independently valid UTF-8.\n *\n * @param {string|undefined} component\n * @returns {boolean}\n */\nfunction hasMalformedPercentEncoding (component) {\n if (component === undefined) return false\n\n let percent = component.indexOf('%')\n while (percent !== -1) {\n if (percent + 2 >= component.length || !/^[\\da-f]{2}$/iu.test(component.slice(percent + 1, percent + 3))) {\n return true\n }\n percent = component.indexOf('%', percent + 3)\n }\n\n return false\n}\n\n/**\n * Whether the host is a bracketed IP literal (RFC 3986 `IP-literal`).\n * An unterminated `[` is not a literal, so it must still be validated as a\n * reg-name instead of being waved through as an IP.\n *\n * @param {string} host\n * @returns {boolean}\n */\nfunction isIPLiteral (host) {\n return host[0] === '[' && host[host.length - 1] === ']'\n}\n\n/**\n * @param {RegExpMatchArray} matches\n * @returns {boolean}\n */\nfunction hasMalformedComponentPercentEncoding (matches) {\n // Bracketed IP literals use a raw \"%\" as the zone separator for historical\n // compatibility. Their parsing is intentionally left to normalizeIPv6.\n const host = matches[4]\n return hasMalformedPercentEncoding(matches[3]) ||\n (host !== undefined && !isIPLiteral(host) && hasMalformedPercentEncoding(host)) ||\n hasMalformedPercentEncoding(matches[6]) ||\n hasMalformedPercentEncoding(matches[7]) ||\n hasMalformedPercentEncoding(matches[8])\n}\n\n/**\n * @param {import('./types/index').URIComponent} parsed\n * @param {import('./types/index').Options} options\n * @param {{ domainHost?: boolean, unicodeSupport?: boolean }|undefined} schemeHandler\n * @param {boolean} isIP\n * @returns {boolean} whether host conversion failed\n */\nfunction canonicalizeHost (parsed, options, schemeHandler, isIP) {\n const bracketedIPLiteral =\n parsed.host &&\n parsed.host[0] === '[' &&\n parsed.host[parsed.host.length - 1] === ']'\n\n if (\n !options.unicodeSupport &&\n (!schemeHandler || !schemeHandler.unicodeSupport) &&\n parsed.host &&\n !isIPLiteral(parsed.host) &&\n (options.domainHost || (schemeHandler && schemeHandler.domainHost)) &&\n isIP === false &&\n !bracketedIPLiteral &&\n nonSimpleDomain(parsed.host)\n ) {\n try {\n parsed.host = new URL('http://' + parsed.host).hostname\n } catch (e) {\n parsed.error = parsed.error || \"Host's domain name can not be converted to ASCII: \" + e\n return true\n }\n }\n\n return false\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {{ parsed: import('./types/index').URIComponent, malformedAuthorityOrPort: boolean, malformedPercentEncoding: boolean, malformedSchemeSpecific: boolean, malformedHost: boolean, malformedScheme: boolean }}\n */\nfunction parseWithStatus (uri, opts) {\n const options = Object.assign({}, opts)\n /** @type {import('./types/index').URIComponent} */\n const parsed = {\n scheme: undefined,\n userinfo: undefined,\n host: '',\n port: undefined,\n path: '',\n query: undefined,\n fragment: undefined\n }\n\n let malformedAuthorityOrPort = false\n let malformedPercentEncoding = false\n let malformedSchemeSpecific = false\n let malformedHost = false\n let malformedIPLiteral = false\n let malformedScheme = false\n\n let isIP = false\n if (options.reference === 'suffix') {\n if (options.scheme) {\n uri = options.scheme + ':' + uri\n } else {\n uri = '//' + uri\n }\n }\n\n // A literal backslash (U+005C) is not a valid RFC 3986 URI character and is\n // not an authority delimiter. Reject it in the authority rather than\n // rewriting it: normalizing \"\\\" -> \"/\" (WHATWG error recovery) could silently\n // change the resource identified by an otherwise-invalid input, and lets \"\\\"\n // act as a host delimiter here while Node's native URL parses a different\n // host (SSRF / redirect / origin-allowlist bypass). Percent-encoded %5C is\n // untouched and remains valid encoded data.\n const authorityMatch = uri.match(AUTHORITY_PREFIX)\n if (authorityMatch !== null && authorityMatch[1].indexOf('\\\\') !== -1) {\n parsed.error = 'URI authority must not contain a literal backslash.'\n malformedAuthorityOrPort = true\n }\n\n // Reject a malformed or whitespace-smuggled authority introducer. fast-uri\n // only recognizes a literal \"//\"; anything else in the leading separator run\n // (a backslash, or a \"//\" that appears only after removing the TAB/LF/CR that\n // Node strips) means the authority fast-uri parses differs from the one Node's\n // URL resolves. Reject rather than rewrite, mirroring the literal-backslash\n // guard above. Percent-encoded forms (%5C, %09) are untouched, valid data.\n const introducerMatch = uri.match(AUTHORITY_INTRODUCER_REGION)\n if (introducerMatch !== null) {\n const region = introducerMatch[1]\n const normalizedRegion = region.replace(/[\\t\\n\\r]/g, '')\n // Two or more leading separators introduce an authority.\n if (normalizedRegion.length >= 2) {\n if (normalizedRegion.slice(0, 2) !== '//') {\n parsed.error = parsed.error || 'URI authority must not contain a literal backslash.'\n malformedAuthorityOrPort = true\n } else if (region.length !== normalizedRegion.length) {\n parsed.error = parsed.error || 'URI authority introducer must not contain whitespace.'\n malformedAuthorityOrPort = true\n }\n }\n }\n\n const matches = uri.match(URI_PARSE)\n\n if (matches) {\n // store each component\n parsed.scheme = matches[1]\n parsed.userinfo = matches[3]\n parsed.host = matches[4]\n parsed.port = parseInt(matches[5], 10)\n parsed.path = matches[6] || ''\n parsed.query = matches[7]\n parsed.fragment = matches[8]\n\n if (parsed.scheme !== undefined) {\n const decodedScheme = unescape(parsed.scheme)\n if (VALID_SCHEME.test(decodedScheme)) {\n parsed.scheme = decodedScheme.toLowerCase()\n } else {\n parsed.error = parsed.error || MALFORMED_SCHEME_ERROR\n malformedScheme = true\n }\n }\n\n malformedPercentEncoding = hasMalformedComponentPercentEncoding(matches)\n if (malformedPercentEncoding) {\n parsed.error = parsed.error || 'URI contains malformed percent-encoding.'\n }\n\n // fix port number\n if (isNaN(parsed.port)) {\n parsed.port = matches[5]\n }\n\n const parseError = getParseError(parsed, matches)\n if (parseError !== undefined) {\n parsed.error = parsed.error || parseError\n malformedAuthorityOrPort = true\n }\n\n if (parsed.host) {\n const ipv4result = isIPv4(parsed.host)\n if (ipv4result === false) {\n const bracketedIPLiteral = isIPLiteral(parsed.host)\n const hasIPLiteralBracket = parsed.host.indexOf('[') !== -1 || parsed.host.indexOf(']') !== -1\n const ipv6result = normalizeIPv6(parsed.host)\n isIP = ipv6result.isIPV6 || ipv6result.isIPVFuture === true\n malformedIPLiteral = hasIPLiteralBracket && (!bracketedIPLiteral || ipv6result.error === true)\n parsed.host = isIP ? ipv6result.host : ipv6result.host.toLowerCase()\n\n if (malformedIPLiteral) {\n parsed.error = parsed.error || 'URI host is malformed.'\n malformedAuthorityOrPort = true\n }\n } else {\n isIP = true\n }\n }\n if (parsed.scheme === undefined && parsed.userinfo === undefined && parsed.host === undefined && parsed.port === undefined && parsed.query === undefined && !parsed.path) {\n parsed.reference = 'same-document'\n } else if (parsed.scheme === undefined) {\n parsed.reference = 'relative'\n } else if (parsed.fragment === undefined) {\n parsed.reference = 'absolute'\n } else {\n parsed.reference = 'uri'\n }\n\n // check for reference errors\n if (options.reference && options.reference !== 'suffix' && options.reference !== parsed.reference) {\n parsed.error = parsed.error || 'URI is not a ' + options.reference + ' reference.'\n }\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme)\n\n // convert Unicode IDN -> ASCII IDN when the effective scheme uses domain hosts\n if (!malformedIPLiteral) {\n malformedHost = canonicalizeHost(parsed, options, schemeHandler, isIP)\n }\n\n if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {\n if (uri.indexOf('%') !== -1) {\n if (parsed.host !== undefined && !malformedIPLiteral) {\n const host = isIP ? parsed.host : normalizePercentEncoding(parsed.host, true)\n parsed.host = reescapeHostDelimiters(host, isIP)\n }\n }\n if (parsed.path) {\n parsed.path = normalizePathEncoding(parsed.path)\n }\n if (parsed.query) {\n parsed.query = normalizeQueryFragmentEncoding(parsed.query)\n }\n if (parsed.fragment) {\n parsed.fragment = normalizeQueryFragmentEncoding(parsed.fragment)\n }\n }\n\n // perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(parsed, options)\n if (schemeHandler === SCHEMES.urn && parsed.nid === undefined) {\n malformedSchemeSpecific = true\n }\n }\n } else {\n parsed.error = parsed.error || 'URI can not be parsed.'\n }\n return { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme }\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns\n */\nfunction parse (uri, opts) {\n return parseWithStatus(uri, opts).parsed\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {string}\n */\nfunction normalizeString (uri, opts) {\n return normalizeStringWithStatus(uri, opts).normalized\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {{ normalized: string, malformedAuthorityOrPort: boolean, malformedPercentEncoding: boolean, malformedSchemeSpecific: boolean, malformedHost: boolean, malformedScheme: boolean }}\n */\nfunction normalizeStringWithStatus (uri, opts) {\n const { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = parseWithStatus(uri, opts)\n return {\n normalized: malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? uri : serialize(parsed, opts),\n malformedAuthorityOrPort,\n malformedPercentEncoding,\n malformedSchemeSpecific,\n malformedHost,\n malformedScheme\n }\n}\n\n/**\n * @param {import ('./types/index').URIComponent|string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {string|undefined}\n */\nfunction normalizeComparableURI (uri, opts) {\n if (typeof uri !== 'string' && typeof uri !== 'object') {\n return undefined\n }\n\n let value\n try {\n value = typeof uri === 'string' ? uri : serialize(uri, opts)\n } catch {\n return undefined\n }\n const { normalized, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = normalizeStringWithStatus(value, opts)\n return malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? undefined : normalized\n}\n\nconst fastUri = {\n SCHEMES,\n normalize,\n resolve,\n resolveComponent,\n equal,\n serialize,\n parse\n}\n\nmodule.exports = fastUri\nmodule.exports.default = fastUri\nmodule.exports.fastUri = fastUri\n","var hasExcape = /~/\nvar escapeMatcher = /~[01]/g\nfunction escapeReplacer (m) {\n switch (m) {\n case '~1': return '/'\n case '~0': return '~'\n }\n throw new Error('Invalid tilde escape: ' + m)\n}\n\nfunction untilde (str) {\n if (!hasExcape.test(str)) return str\n return str.replace(escapeMatcher, escapeReplacer)\n}\n\nfunction setter (obj, pointer, value) {\n var part\n var hasNextPart\n\n for (var p = 1, len = pointer.length; p < len;) {\n if (pointer[p] === 'constructor' || pointer[p] === 'prototype' || pointer[p] === '__proto__') return obj\n\n part = untilde(pointer[p++])\n hasNextPart = len > p\n\n if (typeof obj[part] === 'undefined') {\n // support setting of /-\n if (Array.isArray(obj) && part === '-') {\n part = obj.length\n }\n\n // support nested objects/array when setting values\n if (hasNextPart) {\n if ((pointer[p] !== '' && pointer[p] < Infinity) || pointer[p] === '-') obj[part] = []\n else obj[part] = {}\n }\n }\n\n if (!hasNextPart) break\n obj = obj[part]\n }\n\n var oldValue = obj[part]\n if (value === undefined) delete obj[part]\n else obj[part] = value\n return oldValue\n}\n\nfunction compilePointer (pointer) {\n if (typeof pointer === 'string') {\n pointer = pointer.split('/')\n if (pointer[0] === '') return pointer\n throw new Error('Invalid JSON pointer.')\n } else if (Array.isArray(pointer)) {\n for (const part of pointer) {\n if (typeof part !== 'string' && typeof part !== 'number') {\n throw new Error('Invalid JSON pointer. Must be of type string or number.')\n }\n }\n return pointer\n }\n\n throw new Error('Invalid JSON pointer.')\n}\n\nfunction get (obj, pointer) {\n if (typeof obj !== 'object') throw new Error('Invalid input object.')\n pointer = compilePointer(pointer)\n var len = pointer.length\n if (len === 1) return obj\n\n for (var p = 1; p < len;) {\n obj = obj[untilde(pointer[p++])]\n if (len === p) return obj\n if (typeof obj !== 'object' || obj === null) return undefined\n }\n}\n\nfunction set (obj, pointer, value) {\n if (typeof obj !== 'object') throw new Error('Invalid input object.')\n pointer = compilePointer(pointer)\n if (pointer.length === 0) throw new Error('Invalid JSON pointer for set.')\n return setter(obj, pointer, value)\n}\n\nfunction compile (pointer) {\n var compiled = compilePointer(pointer)\n return {\n get: function (object) {\n return get(object, compiled)\n },\n set: function (object, value) {\n return set(object, compiled, value)\n }\n }\n}\n\nexports.get = get\nexports.set = set\nexports.compile = compile\n","import UriResolver from 'fast-uri';\nimport jsonpointer from 'jsonpointer';\nimport { ALL_OF_KEY, ID_KEY, JSON_SCHEMA_DRAFT_2019_09, JSON_SCHEMA_DRAFT_2020_12, REF_KEY, SCHEMA_KEY, } from \"./constants.js\";\nimport isObject from \"./isObject.js\";\n/** Looks for the `$id` pointed by `ref` in the schema definitions embedded in\n * a JSON Schema bundle\n *\n * @param schema - The schema wherein `ref` should be searched\n * @param ref - The `$id` of the reference to search for\n * @returns - The schema matching the reference, or `undefined` if no match is found\n */\nfunction findEmbeddedSchemaRecursive(schema, ref) {\n if (ID_KEY in schema && UriResolver.equal(schema[ID_KEY], ref)) {\n return schema;\n }\n for (const subSchema of Object.values(schema)) {\n if (Array.isArray(subSchema)) {\n for (const item of subSchema) {\n if (isObject(item)) {\n const result = findEmbeddedSchemaRecursive(item, ref);\n if (result !== undefined) {\n return result;\n }\n }\n }\n }\n else if (isObject(subSchema)) {\n const result = findEmbeddedSchemaRecursive(subSchema, ref);\n if (result !== undefined) {\n return result;\n }\n }\n }\n return undefined;\n}\n/** Parses a JSONSchema and makes all references absolute with respect to\n * the `baseURI` argument\n * @param schema - The schema to be processed\n * @param baseURI - The base URI to be used for resolving relative references\n */\nexport function makeAllReferencesAbsolute(schema, baseURI) {\n const currentURI = schema[ID_KEY] ?? baseURI;\n let result = schema;\n // Make all other references absolute\n if (REF_KEY in result) {\n result = { ...result, [REF_KEY]: UriResolver.resolve(currentURI, result[REF_KEY]) };\n }\n // Look for references in nested subschemas\n for (const [key, subSchema] of Object.entries(result)) {\n if (Array.isArray(subSchema)) {\n result = {\n ...result,\n [key]: subSchema.map((item) => (isObject(item) ? makeAllReferencesAbsolute(item, currentURI) : item)),\n };\n }\n else if (isObject(subSchema)) {\n result = { ...result, [key]: makeAllReferencesAbsolute(subSchema, currentURI) };\n }\n }\n return result;\n}\n/** Splits out the value at the `key` in `object` from the `object`, returning an array that contains in the first\n * location, the `object` minus the `key: value` and in the second location the `value`.\n *\n * @param key - The key from the object to extract\n * @param object - The object from which to extract the element\n * @returns - An array with the first value being the object minus the `key` element and the second element being the\n * value from `object[key]`\n */\nexport function splitKeyElementFromObject(key, object) {\n const { [key]: value, ...remaining } = object;\n return [remaining, value];\n}\n/** Given the name of a `$ref` from within a schema, using the `rootSchema`, recursively look up and return the\n * sub-schema using the path provided by that reference. If `#` is not the first character of the reference, the path\n * does not exist in the schema, or the reference resolves circularly back to itself, then throw an Error.\n * Otherwise return the sub-schema. Also deals with nested `$ref`s in the sub-schema.\n *\n * @param $ref - The ref string for which the schema definition is desired\n * @param [rootSchema={}] - The root schema in which to search for the definition\n * @param recurseList - List of $refs already resolved to prevent recursion\n * @param [baseURI=rootSchema['$id']] - The base URI to be used for resolving relative references\n * @returns - The sub-schema within the `rootSchema` which matches the `$ref` if it exists\n * @throws - Error indicating that no schema for that reference could be resolved\n */\nexport function findSchemaDefinitionRecursive($ref, rootSchema = {}, recurseList = [], baseURI = rootSchema[ID_KEY]) {\n const ref = $ref || '';\n let current = undefined;\n let currentBaseURI = baseURI;\n if (ref.startsWith('#')) {\n // Decode URI fragment representation.\n const decodedRef = decodeURIComponent(ref.substring(1));\n if (currentBaseURI === undefined || (ID_KEY in rootSchema && rootSchema[ID_KEY] === currentBaseURI)) {\n current = jsonpointer.get(rootSchema, decodedRef);\n }\n else if (rootSchema[SCHEMA_KEY] === JSON_SCHEMA_DRAFT_2020_12) {\n current = findEmbeddedSchemaRecursive(rootSchema, currentBaseURI.replace(/\\/$/, ''));\n if (current !== undefined) {\n current = jsonpointer.get(current, decodedRef);\n }\n }\n }\n else if (rootSchema[SCHEMA_KEY] === JSON_SCHEMA_DRAFT_2020_12) {\n const resolvedRef = currentBaseURI ? UriResolver.resolve(currentBaseURI, ref) : ref;\n const [refId, ...refAnchor] = resolvedRef.replace(/#\\/?$/, '').split('#');\n current = findEmbeddedSchemaRecursive(rootSchema, refId.replace(/\\/$/, ''));\n if (current !== undefined) {\n currentBaseURI = current[ID_KEY];\n if (refAnchor.length > 0) {\n current = jsonpointer.get(current, decodeURIComponent(refAnchor.join('#')));\n }\n }\n }\n if (current === undefined) {\n throw new Error(`Could not find a definition for ${$ref}.`);\n }\n const nextRef = current[REF_KEY];\n if (nextRef) {\n // Check for circular references.\n if (recurseList.includes(nextRef)) {\n if (recurseList.length === 1) {\n throw new Error(`Definition for ${$ref} is a circular reference`);\n }\n const [firstRef, ...restRefs] = recurseList;\n const circularPath = [...restRefs, ref, firstRef].join(' -> ');\n throw new Error(`Definition for ${firstRef} contains a circular reference through ${circularPath}`);\n }\n const [remaining, theRef] = splitKeyElementFromObject(REF_KEY, current);\n const subSchema = findSchemaDefinitionRecursive(theRef, rootSchema, [...recurseList, ref], currentBaseURI);\n if (Object.keys(remaining).length > 0) {\n if (rootSchema[SCHEMA_KEY] === JSON_SCHEMA_DRAFT_2019_09 ||\n rootSchema[SCHEMA_KEY] === JSON_SCHEMA_DRAFT_2020_12) {\n return { [ALL_OF_KEY]: [remaining, subSchema] };\n }\n return { ...remaining, ...subSchema };\n }\n return subSchema;\n }\n return current;\n}\n/** Given the name of a `$ref` from within a schema, using the `rootSchema`, look up and return the sub-schema using the\n * path provided by that reference. If `#` is not the first character of the reference, the path does not exist in\n * the schema, or the reference resolves circularly back to itself, then throw an Error. Otherwise return the\n * sub-schema. Also deals with nested `$ref`s in the sub-schema.\n *\n * @param $ref - The ref string for which the schema definition is desired\n * @param [rootSchema={}] - The root schema in which to search for the definition\n * @param [baseURI=rootSchema['$id']] - The base URI to be used for resolving relative references\n * @returns - The sub-schema within the `rootSchema` which matches the `$ref` if it exists\n * @throws - Error indicating that no schema for that reference could be resolved\n */\nexport default function findSchemaDefinition($ref, rootSchema = {}, baseURI = rootSchema[ID_KEY]) {\n const recurseList = [];\n return findSchemaDefinitionRecursive($ref, rootSchema, recurseList, baseURI);\n}\n//# sourceMappingURL=findSchemaDefinition.js.map","/** Matches unsigned integer strings that represent valid array indexes */\nconst reIsIndex = /^(?:0|[1-9]\\d*)$/;\n/** Converts a dotted path string, such as produced for validation error properties, into its list of\n * path segments. Array indexes may be written bracketed (`'a[0].b'`) or dotted (`'a.0.b'`), and empty\n * segments — from a leading `.`, a trailing `.` or a `..` run — are dropped.\n *\n * Only the grammar RJSF itself produces is supported: dots and brackets are always separators, so\n * quoted keys are not recognized and keys containing dots must be addressed with a segment list\n * instead of a string.\n *\n * @param path - The string path to convert, such as `'.level1.level2[2].level3'`\n * @returns - The list of path segments, such as `['level1', 'level2', '2', 'level3']`\n */\nexport function toPath(path) {\n return path.split(/[.[\\]]+/).filter(Boolean);\n}\n/** Normalizes an `ObjectPath` into a list of path segments, wrapping a single key into a one-element list */\nfunction normalizePath(path) {\n return Array.isArray(path) ? path : [path];\n}\n/** Determines whether a path segment could mutate the prototype chain. Only `__proto__` can: assigning to it\n * invokes the prototype setter rather than creating an own property. `constructor` and `prototype` are safe\n * here — and are legal JSON Schema property names — because both reads and writes below are own-property-only,\n * so `['constructor', 'prototype', 'polluted']` shadows `constructor` with a fresh object instead of walking\n * into `Object.prototype`. Only writes need this check; reads are already own-property-only\n */\nfunction isUnsafeSegment(segment) {\n return segment === '__proto__';\n}\n/** Determines whether a path segment represents a valid array index */\nfunction isIndex(segment) {\n return typeof segment === 'number' ? Number.isInteger(segment) && segment >= 0 : reIsIndex.test(segment);\n}\n/** Determines whether `value` can hold properties, i.e. is an object (arrays included) or a function */\nfunction isSettable(value) {\n return value != null && (typeof value === 'object' || typeof value === 'function');\n}\n/** Gets the value at `path` of `obj`, returning `defaultValue` when the resolved value is `undefined`\n *\n * Every segment must be an OWN property, matching {@link hasByPath}, so the two can be used as a\n * guard/read pair. Inherited members are never resolved: `getByPath({}, 'toString')` returns\n * `defaultValue`, not `Function.prototype.toString`. For the plain form data and schemas RJSF navigates,\n * an inherited member is never data, and the own-property rule also makes prototype internals such as\n * `__proto__` unreachable unless they are genuine own data keys\n *\n * An empty segment list resolves to nothing, so `defaultValue` is returned. This matches {@link hasByPath},\n * which is `false` for an empty path, and keeps a computed-but-empty path (`toPath('')` for a root-level\n * validation error, say) from resolving to the whole object\n *\n * The value at a runtime-computed path cannot be known statically, so `R` is the CALLER'S declaration of\n * the expected type (like `Map.get()`); it defaults to `unknown`, which forces narrowing when no type is given\n *\n * @param obj - The object to query\n * @param path - The single key or list of path segments at which to get the value\n * @param [defaultValue] - The value returned when the resolved value is `undefined`\n * @returns - The resolved value, otherwise `defaultValue`\n */\nexport function getByPath(obj, path, defaultValue) {\n let current;\n if (!Array.isArray(path)) {\n // Fast path for the most common call shape, a single constant key, avoiding the segment-list allocation\n current = isSettable(obj) && Object.hasOwn(obj, path) ? obj[path] : undefined;\n }\n else if (path.length === 0) {\n // An empty path resolves to nothing, mirroring `hasByPath()`\n current = undefined;\n }\n else {\n current = obj;\n for (let i = 0; i < path.length; i++) {\n const segment = path[i];\n // Only own data keys resolve, so inherited members and prototype internals are never read\n if (!isSettable(current) || !Object.hasOwn(current, segment)) {\n current = undefined;\n break;\n }\n current = current[segment];\n }\n }\n // The single deliberate cast in these utilities: the resolved value is trusted to be the `R` the caller declared\n return (current === undefined ? defaultValue : current);\n}\n/** Sets `value` at `path` of `obj`, mutating and returning `obj`. Missing intermediate containers are\n * created: arrays when the next segment is a valid array index, plain objects otherwise (or always plain\n * objects when `createIntermediateObjects` is true)\n *\n * A `__proto__` segment is refused in any position — assigning to it would mutate the prototype chain rather\n * than create an own property — and the write is silently skipped. Every other key, `constructor` and\n * `prototype` included, is written as an own property\n *\n * @param obj - The object to modify\n * @param path - The single key or list of path segments at which to set the value\n * @param value - The value to set\n * @param [createIntermediateObjects] - When true, always create plain objects for missing intermediate\n * containers, even for numeric path segments\n * @returns - The mutated `obj`\n */\nexport function setByPath(obj, path, value, createIntermediateObjects = false) {\n if (!isSettable(obj)) {\n return obj;\n }\n // Fast path for a single constant key, avoiding the segment-list allocation\n if (!Array.isArray(path)) {\n // Refuse a segment that could mutate the prototype chain (prototype pollution)\n if (!isUnsafeSegment(path)) {\n const target = obj;\n target[path] = value;\n }\n return obj;\n }\n const segments = path;\n // Refuse paths that could mutate the prototype chain (prototype pollution)\n if (segments.some(isUnsafeSegment)) {\n return obj;\n }\n let current = obj;\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n if (i === segments.length - 1) {\n current[segment] = value;\n }\n else {\n // Own properties only, so an inherited member is never traversed into\n const existing = Object.hasOwn(current, segment) ? current[segment] : undefined;\n if (isSettable(existing)) {\n current = existing;\n }\n else {\n const next = createIntermediateObjects || !isIndex(segments[i + 1]) ? {} : [];\n current[segment] = next;\n /* v8 ignore next -- a fresh {} or [] is always settable; the guard exists only to narrow the type */\n if (isSettable(next)) {\n current = next;\n }\n }\n }\n }\n return obj;\n}\n/** Determines whether `obj` has an own property at `path`\n *\n * Every segment is checked with `Object.hasOwn()`, so inherited properties report `false` —\n * `hasByPath({}, 'toString')` is `false`. {@link getByPath} applies the same own-property rule, so the\n * two can be used as a guard/read pair\n *\n * @param obj - The object to query\n * @param path - The single key or list of path segments to check for\n * @returns - True if the own property exists at `path`, otherwise false\n */\nexport function hasByPath(obj, path) {\n // Fast path for a single constant key, avoiding the segment-list allocation\n if (!Array.isArray(path)) {\n return isSettable(obj) && Object.hasOwn(obj, path);\n }\n let current = obj;\n for (let i = 0; i < path.length; i++) {\n if (!isSettable(current) || !Object.hasOwn(current, path[i])) {\n return false;\n }\n current = current[path[i]];\n }\n return path.length > 0;\n}\n/** Removes the own property at `path` of `obj`, mutating `obj`\n *\n * Both the parent lookup and the delete are own-property-only, so no segment can reach the prototype chain and\n * no `UNSAFE_SEGMENTS`-style guard is needed: deleting a `__proto__` that is not an own property is a no-op\n *\n * @param obj - The object to modify\n * @param path - The single key or list of path segments at which to remove the property\n * @returns - True if the property was removed or did not exist, otherwise false\n */\nexport function unsetByPath(obj, path) {\n const segments = normalizePath(path);\n // An empty path names no property, so there is nothing to remove\n if (segments.length === 0) {\n return true;\n }\n const parent = segments.length > 1 ? getByPath(obj, segments.slice(0, -1)) : obj;\n if (parent == null) {\n return true;\n }\n try {\n // Returns false for a non-configurable property instead of throwing like `delete` in strict mode\n return Reflect.deleteProperty(parent, segments[segments.length - 1]);\n }\n catch {\n // Reflect.deleteProperty throws when the target is a primitive\n return false;\n }\n}\n//# sourceMappingURL=pathUtils.js.map","import { DISCRIMINATOR_PATH } from \"./constants.js\";\nimport { getByPath } from \"./pathUtils.js\";\n/** Returns the `discriminator.propertyName` when defined in the `schema` if it is a string. A warning is generated when\n * it is not a string. Returns `undefined` when a valid discriminator is not present.\n *\n * @param schema - The schema from which the discriminator is potentially obtained\n * @returns - The `discriminator.propertyName` if it exists in the schema, otherwise `undefined`\n */\nexport default function getDiscriminatorFieldFromSchema(schema) {\n let discriminator;\n const maybeString = getByPath(schema, DISCRIMINATOR_PATH);\n if (typeof maybeString === 'string') {\n discriminator = maybeString;\n }\n else if (maybeString !== undefined) {\n // oxlint-disable-next-line no-console\n console.warn(`Expecting discriminator to be a string, got \"${typeof maybeString}\" instead`);\n }\n return discriminator;\n}\n//# sourceMappingURL=getDiscriminatorFieldFromSchema.js.map","/** Given a specific `value` attempts to guess the type of a schema element. In the case where we have to implicitly\n * create a schema, it is useful to know what type to use based on the data we are defining.\n *\n * @param value - The value from which to guess the type\n * @returns - The best guess for the object type\n */\nexport default function guessType(value) {\n if (Array.isArray(value)) {\n return 'array';\n }\n if (typeof value === 'string') {\n return 'string';\n }\n if (value == null) {\n return 'null';\n }\n if (typeof value === 'boolean') {\n return 'boolean';\n }\n if (typeof value === 'number' && !Number.isNaN(value)) {\n return 'number';\n }\n if (typeof value === 'object') {\n return 'object';\n }\n // Default to string if we can't figure it out\n return 'string';\n}\n//# sourceMappingURL=guessType.js.map","import guessType from \"./guessType.js\";\n/** Gets the type of a given `schema`. If the type is not explicitly defined, then an attempt is made to infer it from\n * other elements of the schema as follows:\n * - schema.const: Returns the `guessType()` of that value\n * - schema.enum: Returns `string`\n * - schema.properties: Returns `object`\n * - schema.additionalProperties: Returns `object`\n * - schema.patternProperties: Returns `object`\n * - type is an array with a length of 2 and one type is 'null': Returns the other type\n *\n * @param schema - The schema for which to get the type\n * @returns - The type of the schema\n */\nexport default function getSchemaType(schema) {\n let { type } = schema;\n if (!type && schema.const) {\n return guessType(schema.const);\n }\n if (!type && schema.enum) {\n return 'string';\n }\n if (!type && (schema.properties || schema.additionalProperties || schema.patternProperties)) {\n return 'object';\n }\n if (Array.isArray(type)) {\n if (type.length === 2 && type.includes('null')) {\n type = type.find((t) => t !== 'null');\n }\n else {\n // oxlint-disable-next-line prefer-destructuring\n type = type[0];\n }\n }\n return type;\n}\n//# sourceMappingURL=getSchemaType.js.map","import { REQUIRED_KEY } from \"./constants.js\";\nimport getSchemaType from \"./getSchemaType.js\";\nimport isObject from \"./isObject.js\";\n/** Recursively merge deeply nested schemas. The difference between `mergeSchemas` and `mergeObjects` is that\n * `mergeSchemas` only concats arrays for values under the 'required' keyword, and when it does, it doesn't include\n * duplicate values.\n *\n * @param obj1 - The first schema object to merge\n * @param obj2 - The second schema object to merge\n * @returns - The merged schema object\n */\nexport default function mergeSchemas(obj1, obj2) {\n const acc = { ...obj1 }; // Prevent mutation of source object.\n const result = Object.keys(obj2).reduce((accumulator, key) => {\n const left = obj1 ? obj1[key] : {}, right = obj2[key];\n if (obj1 && key in obj1 && isObject(right)) {\n accumulator[key] = mergeSchemas(left, right);\n }\n else if (obj1 &&\n obj2 &&\n (getSchemaType(obj1) === 'object' || getSchemaType(obj2) === 'object') &&\n key === REQUIRED_KEY &&\n Array.isArray(left) &&\n Array.isArray(right)) {\n // Don't include duplicate values when merging 'required' fields.\n accumulator[key] = [...new Set([...left, ...right])];\n }\n else {\n accumulator[key] = right;\n }\n return accumulator;\n }, acc);\n // Copy own Symbol-keyed properties from obj2 (Object.keys skips them).\n for (const sym of Object.getOwnPropertySymbols(obj2)) {\n // To avoid issues with symbols, we cast them to GenericSymbolObjectType. If we make the mergeSchema function take\n // in GenericSymbolObjectType rather than GenericObjectType, it causes a bunch of type errors downstream\n result[sym] = obj2[sym];\n }\n return result;\n}\n//# sourceMappingURL=mergeSchemas.js.map","import { PROPERTIES_KEY } from \"./constants.js\";\n/** Returns the sub-schema declared for `property` in the `properties` of `schema`, falling back to an empty schema\n * when the schema has no such property. Callers treat the properties of a schema as schemas of the same type `S`,\n * which the `JSONSchema7` typing of `properties` cannot express, so this function owns that single assertion rather\n * than repeating it at every lookup.\n *\n * @param schema - The schema, if any, from which to read the property sub-schema\n * @param property - The name of the property whose sub-schema is desired\n * @returns - The sub-schema for `property`, or an empty schema when it is not declared\n */\nexport default function getPropertySchema(schema, property) {\n return (schema?.[PROPERTIES_KEY]?.[property] ?? {});\n}\n//# sourceMappingURL=getPropertySchema.js.map","import getPropertySchema from \"./getPropertySchema.js\";\nimport { getByPath } from \"./pathUtils.js\";\n/** Compares the value of `discriminatorField` within `formData` against the value of `discriminatorField` within schema for each `option`.\n * Returns index of first `option` whose discriminator matches formData. Returns `undefined` if there is no match.\n * This function does not work with discriminators of `\"type\": \"object\"` and `\"type\": \"array\"`\n *\n * @param formData - The current formData, if any, used to figure out a match\n * @param options - The list of options to find a matching options from\n * @param [discriminatorField] - The optional name of the field within the options object whose value is used to\n * determine which option is selected\n * @returns - The index of the matched option or undefined if there is no match\n */\nexport default function getOptionMatchingSimpleDiscriminator(formData, options, discriminatorField) {\n if (formData && discriminatorField) {\n const value = getByPath(formData, discriminatorField);\n if (value === undefined) {\n return undefined;\n }\n for (let i = 0; i < options.length; i += 1) {\n const option = options[i];\n const discriminator = getPropertySchema(option, discriminatorField);\n if (discriminator.type !== 'object' && discriminator.type !== 'array') {\n if (discriminator.const === value) {\n return i;\n }\n const enumValues = discriminator.enum;\n if (enumValues?.includes(value)) {\n return i;\n }\n }\n }\n }\n return undefined;\n}\n//# sourceMappingURL=getOptionMatchingSimpleDiscriminator.js.map","import { PROPERTIES_KEY } from \"../constants.js\";\nimport getOptionMatchingSimpleDiscriminator from \"../getOptionMatchingSimpleDiscriminator.js\";\nimport { getByPath } from \"../pathUtils.js\";\n/** Given the `formData` and list of `options`, attempts to find the index of the first option that matches the data.\n * Always returns the first option if there is nothing that matches.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param formData - The current formData, if any, used to figure out a match\n * @param options - The list of options to find a matching options from\n * @param rootSchema - The root schema, used to primarily to look up `$ref`s\n * @param [discriminatorField] - The optional name of the field within the options object whose value is used to\n * determine which option is selected\n * @returns - The index of the first matched option or 0 if none is available\n */\nexport default function getFirstMatchingOption(validator, formData, options, rootSchema, discriminatorField) {\n // For performance, skip validating subschemas if formData is undefined. We just\n // want to get the first option in that case.\n if (formData === undefined) {\n return 0;\n }\n const simpleDiscriminatorMatch = getOptionMatchingSimpleDiscriminator(formData, options, discriminatorField);\n if (typeof simpleDiscriminatorMatch === 'number') {\n return simpleDiscriminatorMatch;\n }\n for (let i = 0; i < options.length; i += 1) {\n const option = options[i];\n // If we have a discriminator field, then we will use this to make the determination\n const discriminator = discriminatorField\n ? option[PROPERTIES_KEY]?.[discriminatorField]\n : undefined;\n if (discriminatorField && discriminator !== undefined) {\n const value = getByPath(formData, discriminatorField);\n if (validator.isValid(discriminator, value, rootSchema)) {\n return i;\n }\n }\n else if (option[PROPERTIES_KEY]) {\n // If the schema describes an object then we need to add slightly more\n // strict matching to the schema, because unless the schema uses the\n // \"requires\" keyword, an object will match the schema as long as it\n // doesn't have matching keys with a conflicting type. To do this we use an\n // \"anyOf\" with an array of requires. This augmentation expresses that the\n // schema should match if any of the keys in the schema are present on the\n // object and pass validation.\n //\n // Create an \"anyOf\" schema that requires at least one of the keys in the\n // \"properties\" object\n const requiresAnyOf = {\n anyOf: Object.keys(option[PROPERTIES_KEY]).map((key) => ({\n required: [key],\n })),\n };\n let augmentedSchema;\n // If the \"anyOf\" keyword already exists, wrap the augmentation in an \"allOf\"\n if (option.anyOf) {\n // Create a shallow clone of the option\n const { ...shallowClone } = option;\n if (!shallowClone.allOf) {\n shallowClone.allOf = [];\n }\n else {\n // If \"allOf\" already exists, shallow clone the array\n shallowClone.allOf = shallowClone.allOf.slice();\n }\n shallowClone.allOf.push(requiresAnyOf);\n augmentedSchema = shallowClone;\n }\n else {\n augmentedSchema = { ...option, ...requiresAnyOf };\n }\n // Remove the \"required\" field as it's likely that not all fields have\n // been filled in yet, which will mean that the schema is not valid\n delete augmentedSchema.required;\n if (validator.isValid(augmentedSchema, formData, rootSchema)) {\n return i;\n }\n }\n else if (validator.isValid(option, formData, rootSchema)) {\n return i;\n }\n }\n return 0;\n}\n//# sourceMappingURL=getFirstMatchingOption.js.map","export function isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nconst objProto = Object.prototype;\nexport function isRecordEmpty(rec) {\n for (const key in rec) {\n if (objProto.hasOwnProperty.call(rec, key)) {\n return false;\n }\n }\n return true;\n}\n//# sourceMappingURL=object.js.map","import { isRecordEmpty } from \"../object.js\";\nexport const JSON_SCHEMA_TYPE_NAMES = [\n \"array\",\n \"boolean\",\n \"integer\",\n \"null\",\n \"number\",\n \"object\",\n \"string\",\n];\nexport const SET_OF_JSON_SCHEMA_TYPE_NAMES = new Set(JSON_SCHEMA_TYPE_NAMES);\nexport function isJsonSchemaType(type) {\n return SET_OF_JSON_SCHEMA_TYPE_NAMES.has(type);\n}\n// WARN: Order is important\nexport const RECORDS_OF_SUB_SCHEMAS = [\n \"$defs\",\n \"definitions\",\n \"properties\",\n \"patternProperties\",\n \"dependencies\",\n];\nexport const SET_OF_RECORDS_OF_SUB_SCHEMAS = new Set(RECORDS_OF_SUB_SCHEMAS);\n// WARN: Order is important\nexport const ARRAYS_OF_SUB_SCHEMAS = [\n \"items\",\n \"allOf\",\n \"oneOf\",\n \"anyOf\",\n];\nexport const SET_OF_ARRAYS_OF_SUB_SCHEMAS = new Set(ARRAYS_OF_SUB_SCHEMAS);\n// WARN: Order is important\nexport const SUB_SCHEMAS = [\n \"items\",\n \"additionalItems\",\n \"additionalProperties\",\n \"propertyNames\",\n \"contains\",\n \"if\",\n \"then\",\n \"else\",\n \"not\",\n];\nexport const SET_OF_SUB_SCHEMAS = new Set(SUB_SCHEMAS);\n// WARN: Order is important\nexport const ALL_SUB_SCHEMA_KEYS = [\n ...RECORDS_OF_SUB_SCHEMAS,\n ...ARRAYS_OF_SUB_SCHEMAS,\n ...SUB_SCHEMAS,\n];\nexport function isSchemaObject(schemaDef) {\n return typeof schemaDef === \"object\";\n}\nexport function isAllowAnySchema(def) {\n return isSchemaObject(def) ? isRecordEmpty(def) : def === true;\n}\n//# sourceMappingURL=json-schema.js.map","export function ascComparator(a, b) {\n if (a < b)\n return -1;\n if (a > b)\n return 1;\n return 0;\n}\n//# sourceMappingURL=ord.js.map","export function union(larger, smaller) {\n const ll = larger.length;\n if (ll === 0) {\n return smaller;\n }\n let sl = smaller.length;\n if (sl === 0) {\n return larger;\n }\n if (ll < sl) {\n const tmp = larger;\n larger = smaller;\n smaller = tmp;\n sl = ll;\n }\n const data = new Set(larger);\n for (let i = 0; i < sl; i++) {\n data.add(smaller[i]);\n }\n return Array.from(data);\n}\nexport function intersection(a, b) {\n const result = [];\n if (a.length === 0 || b.length === 0) {\n return result;\n }\n if (a.length > b.length) {\n const tmp = a;\n a = b;\n b = tmp;\n }\n const setB = new Set(b);\n for (let i = 0; i < a.length && setB.size > 0; i++) {\n const val = a[i];\n if (setB.delete(val)) {\n result.push(val);\n }\n }\n return result;\n}\nexport function isArrayEmpty(arr) {\n return arr.length === 0;\n}\nexport function createArrayComparator(compare) {\n return (a, b) => {\n const d = a.length - b.length;\n if (d !== 0) {\n return d;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n const d = compare(a[i], b[i]);\n if (d !== 0) {\n return d;\n }\n }\n }\n return 0;\n };\n}\nexport function createDeduplicator(compare, { threshold = 12 } = {}) {\n return (arr) => {\n const al = arr.length;\n if (al === 0) {\n return arr;\n }\n if (al <= threshold) {\n const result = [];\n let rl = 0;\n outer: for (let i = 0; i < al; i++) {\n const item = arr[i];\n for (let j = 0; j < rl; j++) {\n if (compare(item, result[j]) === 0) {\n continue outer;\n }\n }\n rl = result.push(item);\n }\n return result;\n }\n const sorted = arr.slice().sort(compare);\n let wIndex = 0;\n for (let rIndex = 1; rIndex < al; rIndex++) {\n if (compare(sorted[wIndex], sorted[rIndex]) !== 0) {\n if (++wIndex !== rIndex) {\n sorted[wIndex] = sorted[rIndex];\n }\n }\n }\n sorted.length = wIndex + 1;\n return sorted;\n };\n}\nexport function createIntersector(compare) {\n return (a, b) => {\n const result = [];\n let al = a.length;\n let bl = b.length;\n if (al === 0 || bl === 0) {\n return result;\n }\n if (al > bl) {\n const tmpArr = a;\n a = b;\n b = tmpArr;\n const tmpL = al;\n al = bl;\n bl = tmpL;\n }\n const aSorted = [...a].sort(compare);\n const bSorted = [...b].sort(compare);\n let i = 0, j = 0;\n while (i < al && j < bl) {\n const cmp = compare(aSorted[i], bSorted[j]);\n if (cmp === 0) {\n // Only push if result is empty OR last pushed value is different\n if (result.length === 0 ||\n compare(result[result.length - 1], aSorted[i]) !== 0) {\n result.push(aSorted[i]);\n }\n i++;\n j++;\n }\n else if (cmp < 0) {\n i++;\n }\n else {\n j++;\n }\n }\n return result;\n };\n}\n//# sourceMappingURL=array.js.map","export function memoize(cache, func) {\n return (arg) => {\n if (cache.has(arg)) {\n return cache.get(arg);\n }\n const ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n}\nexport const weakMemoize = memoize;\n//# sourceMappingURL=memoize.js.map","import { ascComparator } from \"../../ord.js\";\nimport { createArrayComparator, createDeduplicator, isArrayEmpty, } from \"../../array.js\";\nimport { isRecordEmpty } from \"../../object.js\";\nimport { weakMemoize } from \"../../memoize.js\";\nimport { isAllowAnySchema, isSchemaObject } from \"../json-schema.js\";\nconst zero = () => 0;\nconst isUndefined = (v) => v === undefined;\nconst isSchemaPrimitiveExceptNull = (value) => typeof value !== \"object\";\nconst PRIMITIVE_TYPE_ORDER = {\n boolean: 0,\n number: 1,\n string: 2,\n};\nfunction compareSchemaPrimitive(a, b) {\n const ta = typeof a;\n const tb = typeof b;\n return ta === tb\n ? ascComparator(a, b)\n : PRIMITIVE_TYPE_ORDER[ta] - PRIMITIVE_TYPE_ORDER[tb];\n}\nfunction insertUniqueValues(mutableTarget, mutableSource) {\n const tl = mutableTarget.length;\n if (tl === 0)\n return mutableSource;\n const sl = mutableSource.length;\n if (sl === 0)\n return mutableTarget;\n if (sl > tl) {\n const t = mutableTarget;\n mutableTarget = mutableSource;\n mutableSource = t;\n }\n const seen = new Set(mutableTarget);\n const l = mutableSource.length;\n for (let i = 0; i < l; i++) {\n const key = mutableSource[i];\n if (!seen.has(key)) {\n mutableTarget.push(key);\n }\n }\n return mutableTarget;\n}\nfunction createCmpMatcher(isEmpty, compare, compareEmpty = zero) {\n return (a, b) => {\n if (isEmpty(a)) {\n if (isEmpty(b)) {\n return compareEmpty(a, b);\n }\n return -1;\n }\n if (isEmpty(b)) {\n return 1;\n }\n return compare(a, b);\n };\n}\nfunction createOptionalComparator(compare) {\n return createCmpMatcher(isUndefined, compare);\n}\nfunction createNarrowingOptionalComparator(isEmpty, compare) {\n return createCmpMatcher((v) => v === undefined || isEmpty(v), compare);\n}\nfunction createArrayOrItemComparator(compare, compareArray) {\n return createCmpMatcher(Array.isArray, compare, compareArray);\n}\nconst compareOptionalSameTypeSchemaPrimitives = createOptionalComparator(ascComparator);\nconst compareNumbersWithZeroDefault = createNarrowingOptionalComparator((v) => v === 0, (a, b) => a - b);\nexport function createComparator({ deduplicationCache = new WeakMap(), sortedKeysCache = new WeakMap(), } = {}) {\n const getSortedKeys = weakMemoize(sortedKeysCache, (obj) => Object.keys(obj).sort());\n function createRecordsComparator(compare) {\n return (a, b) => {\n const aKeys = getSortedKeys(a);\n const bKeys = getSortedKeys(b);\n const l = Math.min(aKeys.length, bKeys.length);\n for (let i = 0; i < l; i++) {\n const cmp = ascComparator(aKeys[i], bKeys[i]);\n if (cmp !== 0) {\n return cmp;\n }\n }\n if (aKeys.length !== bKeys.length) {\n return aKeys.length - bKeys.length;\n }\n for (let i = 0; i < l; i++) {\n const key = aKeys[i];\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n const cmp = compare(a[key], b[key]);\n if (cmp !== 0) {\n return cmp;\n }\n }\n return 0;\n };\n }\n function createArrayComparatorWithDeduplication(compare) {\n const cmp = createArrayComparator(compare);\n const deduplicate = weakMemoize(deduplicationCache, \n // NOTE: Always sort output\n createDeduplicator(compare, { threshold: 0 }));\n return (a, b) => cmp(deduplicate(a), deduplicate(b));\n }\n const compareArrayOfSameTypePrimitivesWithDeduplication = createArrayComparatorWithDeduplication(ascComparator);\n function compareSchemaDefinitions(a, b) {\n if (isSchemaObject(a)) {\n if (isSchemaObject(b)) {\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n const allKeys = insertUniqueValues(aKeys, bKeys);\n const l = allKeys.length;\n for (let i = 0; i < l; i++) {\n const key = allKeys[i];\n if (a[key] === b[key]) {\n continue;\n }\n const cmp = COMPARATORS[key] ?? compareOptionalSchemaValues;\n const d = cmp(a[key], b[key]);\n if (d !== 0) {\n return d;\n }\n }\n return 0;\n }\n return b === true && isRecordEmpty(a) ? 0 : 1;\n }\n if (isSchemaObject(b)) {\n return a === true && isRecordEmpty(b) ? 0 : -1;\n }\n return ascComparator(a, b);\n }\n const compareOptionalSchemaValues = createOptionalComparator(compareSchemaValues);\n const compareNonNullSchemaValue = createCmpMatcher(isSchemaPrimitiveExceptNull, createArrayOrItemComparator(createRecordsComparator(compareOptionalSchemaValues), createArrayComparator(compareSchemaValues)), compareSchemaPrimitive);\n function compareSchemaValues(a, b) {\n if (a === null) {\n return -1;\n }\n if (b === null) {\n return 1;\n }\n return compareNonNullSchemaValue(a, b);\n }\n const compareOptionalSchemaDefinitions = createOptionalComparator(compareSchemaDefinitions);\n const compareRecordOfOptionalSchemasWithEmptyRecordDefault = createNarrowingOptionalComparator(isRecordEmpty, createRecordsComparator(compareOptionalSchemaDefinitions));\n const compareOptionalArrayOfSchemasWithDeduplication = createOptionalComparator(createArrayComparatorWithDeduplication(compareSchemaDefinitions));\n const compareSchemaDefinitionsWithEmptyDefinitionDefault = createNarrowingOptionalComparator(isAllowAnySchema, compareSchemaDefinitions);\n const COMPARATORS = {\n $id: compareOptionalSameTypeSchemaPrimitives,\n $comment: compareOptionalSameTypeSchemaPrimitives,\n $defs: compareRecordOfOptionalSchemasWithEmptyRecordDefault,\n $ref: compareOptionalSameTypeSchemaPrimitives,\n $schema: compareOptionalSameTypeSchemaPrimitives,\n const: compareOptionalSchemaValues,\n contains: compareOptionalSchemaDefinitions,\n contentEncoding: compareOptionalSameTypeSchemaPrimitives,\n contentMediaType: compareOptionalSameTypeSchemaPrimitives,\n default: compareOptionalSchemaValues,\n definitions: compareRecordOfOptionalSchemasWithEmptyRecordDefault,\n description: compareOptionalSameTypeSchemaPrimitives,\n else: compareOptionalSchemaDefinitions,\n examples: compareOptionalSchemaValues,\n exclusiveMaximum: compareOptionalSameTypeSchemaPrimitives,\n exclusiveMinimum: compareOptionalSameTypeSchemaPrimitives,\n format: compareOptionalSameTypeSchemaPrimitives,\n if: compareOptionalSchemaDefinitions,\n maximum: compareOptionalSameTypeSchemaPrimitives,\n maxItems: compareOptionalSameTypeSchemaPrimitives,\n maxLength: compareOptionalSameTypeSchemaPrimitives,\n maxProperties: compareOptionalSameTypeSchemaPrimitives,\n minimum: compareOptionalSameTypeSchemaPrimitives,\n multipleOf: compareOptionalSameTypeSchemaPrimitives,\n not: compareOptionalSchemaDefinitions,\n pattern: compareOptionalSameTypeSchemaPrimitives,\n propertyNames: compareOptionalSchemaDefinitions,\n readOnly: compareOptionalSameTypeSchemaPrimitives,\n then: compareOptionalSchemaDefinitions,\n title: compareOptionalSameTypeSchemaPrimitives,\n writeOnly: compareOptionalSameTypeSchemaPrimitives,\n uniqueItems: createNarrowingOptionalComparator((v) => v === false, zero),\n minLength: compareNumbersWithZeroDefault,\n minItems: compareNumbersWithZeroDefault,\n minProperties: compareNumbersWithZeroDefault,\n required: createNarrowingOptionalComparator(isArrayEmpty, compareArrayOfSameTypePrimitivesWithDeduplication),\n enum: createNarrowingOptionalComparator(isArrayEmpty, createArrayComparatorWithDeduplication(compareSchemaValues)),\n type: createOptionalComparator((a, b) => {\n const isAArr = Array.isArray(a);\n const isBArr = Array.isArray(b);\n if (!isAArr && !isBArr) {\n return ascComparator(a, b);\n }\n return compareArrayOfSameTypePrimitivesWithDeduplication(isAArr ? a : [a], isBArr ? b : [b]);\n }),\n items: createNarrowingOptionalComparator((v) => !Array.isArray(v) && isAllowAnySchema(v), createArrayOrItemComparator(compareSchemaDefinitions, createArrayComparator(compareSchemaDefinitions))),\n anyOf: compareOptionalArrayOfSchemasWithDeduplication,\n allOf: compareOptionalArrayOfSchemasWithDeduplication,\n oneOf: compareOptionalArrayOfSchemasWithDeduplication,\n properties: compareRecordOfOptionalSchemasWithEmptyRecordDefault,\n patternProperties: compareRecordOfOptionalSchemasWithEmptyRecordDefault,\n additionalProperties: compareSchemaDefinitionsWithEmptyDefinitionDefault,\n additionalItems: compareSchemaDefinitionsWithEmptyDefinitionDefault,\n dependencies: createNarrowingOptionalComparator(isRecordEmpty, createRecordsComparator(createOptionalComparator(createArrayOrItemComparator(compareSchemaDefinitions, compareArrayOfSameTypePrimitivesWithDeduplication)))),\n };\n return {\n compareSchemaValues,\n compareSchemaDefinitions,\n };\n}\n//# sourceMappingURL=compare.js.map","export function identity(v) {\n return v;\n}\n//# sourceMappingURL=function.js.map","export const gcd = (a, b) => (a ? gcd(b % a, a) : b);\nexport const lcm = (a, b) => Math.abs(a * b) / gcd(a, b);\n//# sourceMappingURL=math.js.map","export function legacyPatternsMerger(a, b) {\n return a === b ? a : `(?=${a})(?=${b})`;\n}\nexport function simplePatternsMerger(a, b) {\n return a === b ? a : `(?=.*(?:${a}))(?=.*(?:${b}))`;\n}\n//# sourceMappingURL=patterns.js.map","import { intersection, union, } from \"../../array.js\";\nimport { identity } from \"../../function.js\";\nimport { lcm } from \"../../math.js\";\nimport { isAllowAnySchema } from \"../json-schema.js\";\nimport { simplePatternsMerger } from \"./patterns.js\";\nfunction createPairCombinations(l, r, action) {\n const ll = l.length;\n const rl = r.length;\n if (ll > 0 && rl > 0) {\n for (let i = 0; i < ll; i++) {\n const lv = l[i];\n for (let j = 0; j < rl; j++) {\n action(lv, r[j]);\n }\n }\n }\n}\nfunction mergeBooleans(l, r) {\n return l || r;\n}\nfunction createRecordsMerge(merge) {\n return (left, right) => {\n const target = { ...left };\n const keys = Object.keys(right);\n const l = keys.length;\n for (let i = 0; i < l; i++) {\n const key = keys[i];\n target[key] =\n left[key] === undefined ? right[key] : merge(left[key], right[key]);\n }\n return target;\n };\n}\nfunction createMap(items) {\n const map = new Map();\n for (const pair of items) {\n for (const key of pair[0]) {\n map.set(key, pair[1]);\n }\n }\n return map;\n}\nfunction assignSchemaDefinitionOrRecordOfSchemaDefinitions(target, key, value) {\n if (value === undefined || isAllowAnySchema(value)) {\n delete target[key];\n }\n else {\n target[key] = value;\n }\n}\nconst PROPERTIES_ASSIGNER_KEYS = [\n \"properties\",\n \"patternProperties\",\n \"additionalProperties\",\n];\nfunction compilePatterns(patterns) {\n const keys = Object.keys(patterns);\n const l = keys.length;\n const result = [];\n for (let i = 0; i < l; i++) {\n const source = keys[i];\n result.push({\n regExp: new RegExp(source),\n schema: patterns[source],\n });\n }\n return [result, keys];\n}\nconst EMPTY_PATTERNS_AND_KEYS = [[], []];\n/**\n * @returns `true` when `false` schema occurred\n */\nfunction appendKeyConstraints(target, key, patterns) {\n const l = patterns.length;\n for (let i = 0; i < l; i++) {\n const p = patterns[i];\n if (!p.regExp.test(key)) {\n continue;\n }\n const s = p.schema;\n if (s === false) {\n return true;\n }\n target.push(s);\n }\n return false;\n}\nconst ITEMS_ASSIGNER_KEYS = [\n \"items\",\n \"additionalItems\",\n];\nconst CONDITION_ASSIGNER_KEYS = [\n \"if\",\n \"then\",\n \"else\",\n];\nfunction assignCondition(target, source) {\n if (source.if !== undefined) {\n target.if = source.if;\n }\n if (source.then !== undefined) {\n target.then = source.then;\n }\n if (source.else !== undefined) {\n target.else = source.else;\n }\n return target;\n}\nfunction intersectSchemaTypes(a, b) {\n if (a === b) {\n return a;\n }\n switch (a) {\n case \"number\": {\n if (b === \"integer\") {\n return \"integer\";\n }\n }\n // eslint-disable-next-line no-fallthrough\n case \"integer\": {\n if (b === \"number\") {\n return \"integer\";\n }\n }\n // eslint-disable-next-line no-fallthrough\n default:\n return undefined;\n }\n}\nexport function check(a, b, check) {\n return [a, b, check];\n}\nfunction createChecksMap(checks) {\n const map = new Map();\n for (const [a, b, check] of checks) {\n const fn = (target) => {\n if (!check(target)) {\n throw new Error(`Schema keys '${a}' and '${b}' are conflicting (${a}: ${JSON.stringify(target[a])}, ${b}: ${JSON.stringify(target[b])})`);\n }\n };\n for (const k of [\n [a, b],\n [b, a],\n ]) {\n let arr = map.get(k[0]);\n if (arr === undefined) {\n arr = [];\n map.set(k[0], arr);\n }\n arr.push({ oppositeKey: k[1], check: fn });\n }\n }\n return map;\n}\nexport const DEFAULT_CHECKS = [\n check(\"minimum\", \"maximum\", (t) => t.maximum >= t.minimum),\n check(\"exclusiveMinimum\", \"maximum\", (t) => t.maximum > t.exclusiveMinimum),\n check(\"minimum\", \"exclusiveMaximum\", (t) => t.exclusiveMaximum > t.minimum),\n check(\"exclusiveMinimum\", \"exclusiveMaximum\", (t) => t.exclusiveMaximum > t.exclusiveMinimum),\n check(\"minLength\", \"maxLength\", (t) => t.maxLength >= t.minLength),\n check(\"minItems\", \"maxItems\", (t) => t.maxItems >= t.minItems),\n check(\"minProperties\", \"maxProperties\", (t) => t.maxProperties >= t.minProperties),\n];\nexport function createMerger({ mergePatterns = simplePatternsMerger, isSubRegExp = Object.is, intersectJson = intersection, deduplicateJsonSchemaDef = identity, defaultMerger = identity, assigners = [], checks = DEFAULT_CHECKS, mergers, } = {}) {\n function mergeArrayOfSchemaDefinitions(schemas) {\n const l = schemas.length;\n let result = schemas[0];\n for (let i = 1; i < l; i++) {\n const r = mergeSchemaDefinitions(result, schemas[i]);\n if (r === false) {\n return false;\n }\n if (isAllowAnySchema(r)) {\n continue;\n }\n result = r;\n }\n return result;\n }\n function createProperty(constraints, key, value, patterns, oppositeValue, oppositePatterns, oppositeAdditional) {\n constraints.length = 0;\n if (value === false) {\n return false;\n }\n constraints.push(value);\n const isOppositeValueDefined = oppositeValue !== undefined;\n if (isOppositeValueDefined) {\n if (oppositeValue === false) {\n return false;\n }\n constraints.push(oppositeValue);\n }\n if (appendKeyConstraints(constraints, key, oppositePatterns)) {\n return false;\n }\n const isNotYetAllowed = constraints.length < 2;\n if (oppositeAdditional === false) {\n // There are no allowing constraints from opposite side -> drop property\n if (isNotYetAllowed) {\n return undefined;\n }\n // Applying patterns of current schema cause they may disappear\n if (appendKeyConstraints(constraints, key, patterns)) {\n return false;\n }\n }\n else if (isNotYetAllowed && oppositeAdditional !== undefined) {\n constraints.push(oppositeAdditional);\n }\n const l = constraints.length;\n if (l === 1) {\n return constraints[0];\n }\n return mergeArrayOfSchemaDefinitions(constraints);\n }\n function assignPatternPropertiesAndAdditionalPropertiesMerge(target, patterns, patternKeys, matchedPatterns, oppositeAdditional, isOppositeTruthy) {\n const l = patternKeys.length;\n if (l > 0 && oppositeAdditional !== false) {\n if (isOppositeTruthy) {\n // TODO: in some cases we can just assign new value instead of copying\n Object.assign(target, patterns);\n }\n else {\n for (let i = 0; i < l; i++) {\n const pattern = patternKeys[i];\n if (matchedPatterns.has(pattern)) {\n continue;\n }\n target[pattern] = mergeSchemaDefinitions(patterns[pattern], oppositeAdditional);\n }\n }\n }\n return target;\n }\n const propertiesAssigner = (target, { properties: lProps = {}, patternProperties: lPatterns, additionalProperties: lAdditional = true, }, { properties: rProps = {}, patternProperties: rPatterns, additionalProperties: rAdditional = true, }) => {\n // Special case\n const isLAddTruthy = isAllowAnySchema(lAdditional);\n const isRAddTruthy = isAllowAnySchema(rAdditional);\n if (isLAddTruthy && isRAddTruthy) {\n assignSchemaDefinitionOrRecordOfSchemaDefinitions(target, \"properties\", mergeRecordsOfSchemaDefinitions(lProps, rProps));\n assignSchemaDefinitionOrRecordOfSchemaDefinitions(target, \"patternProperties\", lPatterns && rPatterns\n ? mergeRecordsOfSchemaDefinitions(lPatterns, rPatterns)\n : (lPatterns ?? rPatterns));\n delete target.additionalProperties;\n return target;\n }\n // Additional Properties\n const additionalProperties = mergeSchemaDefinitions(lAdditional, rAdditional);\n assignSchemaDefinitionOrRecordOfSchemaDefinitions(target, \"additionalProperties\", additionalProperties);\n // Properties\n const properties = {};\n const lKeys = Object.keys(lProps);\n const lKeysLen = lKeys.length;\n const [lCompiledPatterns, lPatternKeys] = lPatterns\n ? compilePatterns(lPatterns)\n : EMPTY_PATTERNS_AND_KEYS;\n const [rCompiledPatterns, rPatternKeys] = rPatterns\n ? compilePatterns(rPatterns)\n : EMPTY_PATTERNS_AND_KEYS;\n const constraints = [];\n const lKeysSet = new Set();\n const mappedRAdditional = isRAddTruthy ? undefined : rAdditional;\n for (let i = 0; i < lKeysLen; i++) {\n const key = lKeys[i];\n lKeysSet.add(key);\n const prop = createProperty(constraints, key, lProps[key], lCompiledPatterns, rProps[key], rCompiledPatterns, mappedRAdditional);\n if (prop !== undefined) {\n properties[key] = prop;\n }\n }\n const rKeys = Object.keys(rProps);\n const rKeysLen = rKeys.length;\n const mappedLAdditional = isLAddTruthy ? undefined : lAdditional;\n for (let i = 0; i < rKeysLen; i++) {\n const key = rKeys[i];\n if (lKeysSet.has(key)) {\n continue;\n }\n const prop = createProperty(constraints, key, rProps[key], rCompiledPatterns, undefined, lCompiledPatterns, mappedLAdditional);\n if (prop !== undefined) {\n properties[key] = prop;\n }\n }\n assignSchemaDefinitionOrRecordOfSchemaDefinitions(target, \"properties\", properties);\n // Pattern Properties\n // (lPatterns and rPatterns) or (lPatterns and rAdditional) or (rPatterns and lAdditional)\n let patterns = {};\n const matchedPatterns = new Set();\n if (lPatternKeys.length > 0 && rPatternKeys.length > 0) {\n createPairCombinations(lPatternKeys, rPatternKeys, (lKey, rKey) => {\n if (isSubRegExp(lKey, rKey)) {\n matchedPatterns.add(lKey);\n }\n if (isSubRegExp(rKey, lKey)) {\n matchedPatterns.add(rKey);\n }\n patterns[mergePatterns(lKey, rKey)] = mergeSchemaDefinitions(lPatterns[lKey], rPatterns[rKey]);\n });\n }\n patterns = assignPatternPropertiesAndAdditionalPropertiesMerge(patterns, lPatterns, lPatternKeys, matchedPatterns, rAdditional, isRAddTruthy);\n patterns = assignPatternPropertiesAndAdditionalPropertiesMerge(patterns, rPatterns, rPatternKeys, matchedPatterns, lAdditional, isLAddTruthy);\n assignSchemaDefinitionOrRecordOfSchemaDefinitions(target, \"patternProperties\", patterns);\n return target;\n };\n const itemsAssigner = (target, \n // NOTE: Schema that has `additionalItems` without an `items` keyword is invalid\n // so the assigner should be triggered only be colliding `items` properties\n // so default values are used only for type narrowing\n { items: lItems = [], additionalItems: lAdditional }, { items: rItems = [], additionalItems: rAdditional }) => {\n const isLArr = Array.isArray(lItems);\n const isRArr = Array.isArray(rItems);\n const itemsArray = [];\n target.items = itemsArray;\n if (isLArr && isRArr) {\n const [l, additional, tail] = lItems.length < rItems.length\n ? [lItems.length, lAdditional, rItems]\n : [rItems.length, rAdditional, lItems];\n let i = 0;\n for (; i < l; i++) {\n itemsArray.push(mergeSchemaDefinitions(lItems[i], rItems[i]));\n }\n if (additional === false) {\n target.additionalItems = false;\n }\n else {\n const isAdditionalTruthy = additional === undefined || isAllowAnySchema(additional);\n for (; i < tail.length; i++) {\n itemsArray.push(isAdditionalTruthy\n ? tail[i]\n : mergeSchemaDefinitions(tail[i], additional));\n }\n assignSchemaDefinitionOrRecordOfSchemaDefinitions(target, \"additionalItems\", lAdditional !== undefined && rAdditional !== undefined\n ? mergeSchemaDefinitions(lAdditional, rAdditional)\n : (lAdditional ?? rAdditional));\n }\n }\n else if (isLArr || isRArr) {\n const [arr, item, additional] = (isLArr ? [lItems, rItems, lAdditional] : [rItems, lItems, rAdditional]);\n assignSchemaDefinitionOrRecordOfSchemaDefinitions(target, \"additionalItems\", additional && mergeSchemaDefinitions(additional, item));\n for (let i = 0; i < arr.length; i++) {\n itemsArray.push(mergeSchemaDefinitions(arr[i], item));\n }\n }\n else {\n delete target.additionalItems;\n target.items = mergeSchemaDefinitions(lItems, rItems);\n }\n return target;\n };\n const conditionAssigner = (target, l, r) => {\n assignCondition(target, l);\n const cond = assignCondition({}, r);\n if (target.allOf === undefined) {\n target.allOf = [cond];\n }\n else {\n target.allOf = target.allOf.concat(cond);\n }\n return target;\n };\n function mergeArraysOfSchemaDefinition(l, r) {\n const definitions = [];\n createPairCombinations(l, r, (a, b) => {\n try {\n definitions.push(mergeSchemaDefinitions(a, b));\n }\n catch { }\n });\n if (definitions.length === 0) {\n throw new Error(`No valid schema combinations could be produced for \"${JSON.stringify(l)}\" and \"${JSON.stringify(r)}\"; the merged result is empty`);\n }\n return deduplicateJsonSchemaDef(definitions);\n }\n const ASSIGNERS_MAP = createMap([\n [PROPERTIES_ASSIGNER_KEYS, propertiesAssigner],\n [ITEMS_ASSIGNER_KEYS, itemsAssigner],\n [CONDITION_ASSIGNER_KEYS, conditionAssigner],\n ...assigners,\n ]);\n const CHECKS_MAP = createChecksMap(checks);\n function mergeSchemaDefinitions(left, right) {\n if (left === false || right === false) {\n return false;\n }\n if (isAllowAnySchema(left)) {\n if (isAllowAnySchema(right)) {\n return true;\n }\n return right;\n }\n if (isAllowAnySchema(right)) {\n return left;\n }\n let target = { ...left };\n const assigners = new Set();\n const checks = new Set();\n const rKeys = Reflect.ownKeys(right);\n const l = rKeys.length;\n for (let i = 0; i < l; i++) {\n const rKey = rKeys[i];\n const rv = right[rKey];\n if (rv === undefined) {\n continue;\n }\n const checkData = CHECKS_MAP.get(rKey);\n if (checkData !== undefined) {\n const l = checkData.length;\n for (let j = 0; j < l; j++) {\n const item = checkData[j];\n if (left[item.oppositeKey] !== undefined) {\n checks.add(item.check);\n }\n }\n }\n const lv = left[rKey];\n if (lv === undefined) {\n // @ts-expect-error too complex\n target[rKey] = rv;\n continue;\n }\n const assign = ASSIGNERS_MAP.get(rKey);\n if (assign) {\n assigners.add(assign);\n continue;\n }\n const merge = MERGERS[rKey] ?? defaultMerger;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n target[rKey] = merge(lv, rv);\n }\n for (const assign of assigners) {\n target = assign(target, left, right);\n }\n for (const check of checks) {\n check(target);\n }\n return target;\n }\n const mergeRecordsOfSchemaDefinitions = createRecordsMerge(mergeSchemaDefinitions);\n const MERGERS = {\n $id: defaultMerger,\n $ref: defaultMerger,\n $schema: defaultMerger,\n $comment: defaultMerger,\n $defs: mergeRecordsOfSchemaDefinitions,\n definitions: mergeRecordsOfSchemaDefinitions,\n type: (a, b) => {\n if (a === b) {\n return a;\n }\n const isAArr = Array.isArray(a);\n const isBArr = Array.isArray(b);\n if (!isAArr && !isBArr) {\n const intersection = intersectSchemaTypes(a, b);\n if (intersection !== undefined) {\n return intersection;\n }\n }\n else if (isAArr || isBArr) {\n const r = new Set();\n if (isAArr && isBArr) {\n createPairCombinations(a, b, (x, y) => {\n const type = intersectSchemaTypes(x, y);\n if (type !== undefined) {\n r.add(type);\n }\n });\n }\n else {\n const arr = (isAArr ? a : b);\n const el = (isAArr ? b : a);\n const l = arr.length;\n for (let i = 0; i < l; i++) {\n const intersection = intersectSchemaTypes(el, arr[i]);\n if (intersection !== undefined) {\n r.add(intersection);\n }\n }\n }\n const s = r.size;\n if (s === 1) {\n return r.values().next().value;\n }\n if (s > 1) {\n return Array.from(r);\n }\n }\n throw new Error(`It is not possible to create an intersection of the following incompatible types: ${a.toString()}, ${b.toString()}`);\n },\n default: defaultMerger,\n description: defaultMerger,\n title: defaultMerger,\n const: defaultMerger,\n format: defaultMerger,\n contentEncoding: defaultMerger,\n contentMediaType: defaultMerger,\n not: (a, b) => {\n const items = deduplicateJsonSchemaDef([a, b]);\n return items.length === 1 ? items[0] : { anyOf: items };\n },\n pattern: mergePatterns,\n readOnly: mergeBooleans,\n writeOnly: mergeBooleans,\n enum: (a, b) => {\n const data = intersectJson(a, b);\n if (data.length === 0) {\n throw new Error(`Intersection of the following enums is empty: \"${JSON.stringify(a)}\", \"${JSON.stringify(b)}\"`);\n }\n return data;\n },\n anyOf: mergeArraysOfSchemaDefinition,\n oneOf: mergeArraysOfSchemaDefinition,\n allOf: (l, r) => deduplicateJsonSchemaDef(l.concat(r)),\n propertyNames: mergeSchemaDefinitions,\n contains: mergeSchemaDefinitions,\n dependencies: createRecordsMerge((a, b) => {\n if (Array.isArray(a)) {\n if (Array.isArray(b)) {\n return union(a, b);\n }\n return mergeSchemaDefinitions(b, { required: a });\n }\n if (Array.isArray(b)) {\n return mergeSchemaDefinitions(a, { required: b });\n }\n return mergeSchemaDefinitions(a, b);\n }),\n examples: (l, r) => {\n // https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-10.4\n if (!Array.isArray(l) || !Array.isArray(r)) {\n throw new Error(`Value of the 'examples' field should be an array, but got \"${JSON.stringify(l)}\" and \"${JSON.stringify(r)}\"`);\n }\n // TODO: Proper deduplication\n return union(l, r);\n },\n multipleOf: (a, b) => {\n let factor = 1;\n while (!Number.isInteger(a) || !Number.isInteger(b)) {\n factor *= 10;\n a *= 10;\n b *= 10;\n }\n return lcm(a, b) / factor;\n },\n exclusiveMaximum: Math.min,\n maximum: Math.min,\n maxItems: Math.min,\n maxLength: Math.min,\n maxProperties: Math.min,\n exclusiveMinimum: Math.max,\n minimum: Math.max,\n minItems: Math.max,\n minLength: Math.max,\n minProperties: Math.max,\n uniqueItems: mergeBooleans,\n required: union,\n ...mergers,\n };\n return {\n mergeSchemaDefinitions,\n mergeArrayOfSchemaDefinitions,\n };\n}\n//# sourceMappingURL=merge.js.map","import { transformSchemaDefinition } from \"../transform.js\";\nfunction getAllOfSchemas(schema) {\n const result = [];\n const stack = [schema];\n while (stack.length > 0) {\n const current = stack.pop();\n if (typeof current === \"boolean\" || current.allOf === undefined) {\n result.push(current);\n continue;\n }\n const { allOf, ...rest } = current;\n result.push(rest);\n for (let i = allOf.length - 1; i >= 0; i--) {\n stack.push(allOf[i]);\n }\n }\n return result;\n}\nexport function createShallowAllOfMerge(mergeArrayOfSchemaDefinitions) {\n return (schema) => mergeArrayOfSchemaDefinitions(getAllOfSchemas(schema));\n}\nexport function createDeepAllOfMerge(shallowMerge) {\n return (schemaDef) => transformSchemaDefinition(schemaDef, (def) => {\n if (typeof def === \"boolean\" || def.allOf === undefined) {\n return def;\n }\n return shallowMerge(def);\n });\n}\n//# sourceMappingURL=all-of-merge.js.map","import { createComparator, createMerger, createShallowAllOfMerge } from '@x0k/json-schema-merge';\nimport { createDeduplicator, createIntersector } from '@x0k/json-schema-merge/lib/array';\nconst { compareSchemaDefinitions, compareSchemaValues } = createComparator();\nconst { mergeArrayOfSchemaDefinitions } = createMerger({\n intersectJson: createIntersector(compareSchemaValues),\n deduplicateJsonSchemaDef: createDeduplicator(compareSchemaDefinitions),\n});\n/** Shared `@x0k/json-schema-merge` shallow-allOf merge function used by `retrieveSchema` and\n * `omitExtraData`. Constructed once from a single comparator/merger/intersector/deduplicator\n * pipeline so both consumers share the same configuration without duplicating setup code.\n *\n * Usage: pass a schema that contains an `allOf` keyword and receive the merged result.\n *\n * @example\n * const merged = shallowAllOfMerge(schema); // schema.allOf is merged into the parent schema\n */\nexport default createShallowAllOfMerge(mergeArrayOfSchemaDefinitions);\n//# sourceMappingURL=shallowAllOfMerge.js.map","import { ADDITIONAL_PROPERTIES_KEY, ADDITIONAL_PROPERTY_FLAG, ALL_OF_KEY, ANY_OF_KEY, DEPENDENCIES_KEY, ID_KEY, IF_KEY, ITEMS_KEY, ONE_OF_KEY, PATTERN_PROPERTIES_KEY, PROPERTIES_KEY, REF_KEY, RJSF_REF_CYCLE_KEY, RJSF_REF_KEY, } from \"../constants.js\";\nimport deepEquals from \"../deepEquals.js\";\nimport findSchemaDefinition, { splitKeyElementFromObject } from \"../findSchemaDefinition.js\";\nimport getDiscriminatorFieldFromSchema from \"../getDiscriminatorFieldFromSchema.js\";\nimport guessType from \"../guessType.js\";\nimport isObject from \"../isObject.js\";\nimport mergeSchemas from \"../mergeSchemas.js\";\nimport { getByPath } from \"../pathUtils.js\";\nimport getFirstMatchingOption from \"./getFirstMatchingOption.js\";\nimport shallowAllOfMerge from \"./shallowAllOfMerge.js\";\n/** Retrieves an expanded schema that has had all of its conditions, additional properties, references and dependencies\n * resolved and merged into the `schema` given a `validator`, `rootSchema` and `rawFormData` that is used to do the\n * potentially recursive resolution.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param schema - The schema for which retrieving a schema is desired\n * @param [rootSchema={}] - The root schema that will be forwarded to all the APIs\n * @param [rawFormData] - The current formData, if any, to assist retrieving a schema\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @param [resolveAnyOfOrOneOfRefs = false] - Optional flag indicating whether to resolved refs in anyOf/oneOf lists\n * @returns - The schema having its conditions, additional properties, references and dependencies resolved\n */\nexport default function retrieveSchema(validator, schema, rootSchema = {}, rawFormData, experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs = false) {\n return retrieveSchemaInternal(validator, schema, rootSchema, rawFormData, undefined, undefined, experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs)[0];\n}\n/** Converts boolean schemas to equivalent object schemas for APIs that operate on `StrictRJSFSchema` objects.\n *\n * @param schema - The schema or boolean schema to normalize\n * @returns - The original schema or an equivalent object schema\n */\nfunction normalizeBooleanSchema(schema) {\n if (typeof schema !== 'boolean') {\n return schema;\n }\n return (schema ? {} : { not: {} });\n}\n/** Resolves a conditional block (if/else/then) by removing the condition and merging the appropriate conditional branch\n * with the rest of the schema. If `expandAllBranches` is true, then the `retrieveSchemaInteral()` results for both\n * conditions will be returned.\n *\n * @param validator - An implementation of the `ValidatorType` interface that is used to detect valid schema conditions\n * @param schema - The schema for which resolving a condition is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and\n * dependencies as a list of schemas\n * @param recurseList - The list of recursive references already processed\n * @param [formData] - The current formData to assist retrieving a schema\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - A list of schemas with the appropriate conditions resolved, possibly with all branches expanded\n */\nexport function resolveCondition(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {\n const { if: expression, then, else: otherwise, ...resolvedSchemaLessConditional } = schema;\n const conditionValue = validator.isValid(expression, formData || {}, rootSchema);\n let resolvedSchemas = [resolvedSchemaLessConditional];\n let schemas = [];\n if (expandAllBranches) {\n if (then && typeof then !== 'boolean') {\n const thenSchema = then;\n schemas = schemas.concat(retrieveSchemaInternal(validator, thenSchema, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf));\n }\n if (otherwise && typeof otherwise !== 'boolean') {\n const otherwiseSchema = otherwise;\n schemas = schemas.concat(retrieveSchemaInternal(validator, otherwiseSchema, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf));\n }\n }\n else {\n const conditionalBranch = (conditionValue ? then : otherwise);\n if (conditionalBranch !== undefined) {\n const conditionalSchema = normalizeBooleanSchema(conditionalBranch);\n schemas = schemas.concat(retrieveSchemaInternal(validator, conditionalSchema, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf));\n }\n }\n if (schemas.length) {\n resolvedSchemas = schemas.map((s) => mergeSchemas(resolvedSchemaLessConditional, s));\n }\n return resolvedSchemas.flatMap((s) => retrieveSchemaInternal(validator, s, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf));\n}\n/** Given a list of lists of allOf, anyOf or oneOf values, create a list of lists of all permutations of the values. The\n * `listOfLists` is expected to be all resolved values of the 1st...nth schemas within an `allOf`, `anyOf` or `oneOf`.\n * From those lists, build a matrix for each `xxxOf` where there is more than one schema for a row in the list of lists.\n *\n * For example:\n * - If there are three xxxOf rows (A, B, C) and they have been resolved such that there is only one A, two B and three\n * C schemas then:\n * - The permutation for the first row is `[[A]]`\n * - The permutations for the second row are `[[A,B1], [A,B2]]`\n * - The permutations for the third row are `[[A,B1,C1], [A,B1,C2], [A,B1,C3], [A,B2,C1], [A,B2,C2], [A,B2,C3]]`\n *\n * @param listOfLists - The list of lists of elements that represent the allOf, anyOf or oneOf resolved values in order\n * @returns - The list of all permutations of schemas for a set of `xxxOf`s\n */\nexport function getAllPermutationsOfXxxOf(listOfLists) {\n const allPermutations = listOfLists.reduce((permutations, list) => {\n // When there are more than one set of schemas for a row, duplicate the set of permutations and add in the values\n if (list.length > 1) {\n return list.flatMap((element) => permutations.map((permutation) => [...permutation, element]));\n }\n // Otherwise just push in the single value into the current set of permutations\n permutations.forEach((permutation) => permutation.push(list[0]));\n return permutations;\n }, [[]]);\n return allPermutations;\n}\n/** Returns the subset of 'patternProperties' specifications that match the given 'key'\n *\n * @param schema - The schema whose 'patternProperties' are to be filtered\n * @param key - The key to match against the 'patternProperties' specifications\n * @returns - The subset of 'patternProperties' specifications that match the given 'key'\n */\nexport function getMatchingPatternProperties(schema, key) {\n const patternProperties = schema.patternProperties ?? {};\n return Object.fromEntries(Object.entries(patternProperties).filter(([pattern]) => RegExp(pattern).test(key)));\n}\n/** Resolves references and dependencies within a schema and its 'allOf' children. Passes the `expandAllBranches` flag\n * down to the `retrieveSchemaInternal()`, `resolveReference()` and `resolveDependencies()` helper calls. If\n * `expandAllBranches` is true, then all possible dependencies and/or allOf branches are returned.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param schema - The schema for which resolving a schema is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies\n * as a list of schemas\n * @param recurseList - The list of recursive references already processed\n * @param [formData] - The current formData, if any, to assist retrieving a schema\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @param [resolveAnyOfOrOneOfRefs] - Optional flag indicating whether to resolved refs in anyOf/oneOf lists\n * @returns - The list of schemas having its references, dependencies and allOf schemas resolved\n */\nexport function resolveSchema(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs) {\n const updatedSchemas = resolveReference(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs);\n if (updatedSchemas.length > 1 || updatedSchemas[0] !== schema) {\n // return the updatedSchemas array if it has either multiple schemas within it\n // OR the first schema is not the same as the original schema\n return updatedSchemas;\n }\n if (DEPENDENCIES_KEY in schema) {\n const resolvedSchemas = resolveDependencies(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf);\n return resolvedSchemas.flatMap((s) => retrieveSchemaInternal(validator, s, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf));\n }\n if (ALL_OF_KEY in schema && Array.isArray(schema[ALL_OF_KEY])) {\n const allOfSchemaElements = schema.allOf.map((allOfSubschema) => retrieveSchemaInternal(validator, allOfSubschema, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf));\n const allPermutations = getAllPermutationsOfXxxOf(allOfSchemaElements);\n return allPermutations.map((permutation) => ({\n ...schema,\n allOf: permutation,\n }));\n }\n // No $ref or dependencies or allOf attribute was found, returning the original schema.\n return [schema];\n}\n/** Resolves all references within a schema and then returns the `retrieveSchemaInternal()` if the resolved schema is\n * actually different than the original. Passes the `expandAllBranches` flag down to the `retrieveSchemaInternal()`\n * helper call.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param schema - The schema for which resolving a reference is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies\n * as a list of schemas\n * @param recurseList - The list of recursive references already processed\n * @param [formData] - The current formData, if any, to assist retrieving a schema\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @param [resolveAnyOfOrOneOfRefs] - Optional flag indicating whether to resolved refs in anyOf/oneOf lists\n * @returns - The list schemas retrieved after having all references resolved\n */\nexport function resolveReference(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs) {\n const updatedSchema = resolveAllReferences(schema, rootSchema, recurseList, undefined, resolveAnyOfOrOneOfRefs);\n if (updatedSchema !== schema) {\n // Only call this if the schema was actually changed by the `resolveAllReferences()` function\n return retrieveSchemaInternal(validator, updatedSchema, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs);\n }\n return [schema];\n}\n/** Resolves all references within the schema itself as well as any of its properties and array items.\n *\n * @param schema - The schema for which resolving all references is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param recurseList - List of $refs already resolved to prevent recursion\n * @param [baseURI] - The base URI to be used for resolving relative references\n * @param [resolveAnyOfOrOneOfRefs] - Optional flag indicating whether to resolved refs in anyOf/oneOf lists\n * @param [markCycleOnDetection=false] - When true and a recursive $ref is detected, the returned schema is tagged\n * with `__rjsf_ref_cycle: true` so that `SchemaField` can render a cycle indicator instead of recursing.\n * Should only be `true` when called from an **object-property** context, because object properties are always\n * rendered (creating an infinite loop), whereas array items and anyOf/oneOf branches are data-driven.\n * @returns - given schema will all references resolved or the original schema if no internal `$refs` were resolved\n */\nexport function resolveAllReferences(schema, rootSchema, recurseList, baseURI, resolveAnyOfOrOneOfRefs, markCycleOnDetection = false) {\n if (!isObject(schema)) {\n return schema;\n }\n let resolvedSchema = schema;\n let currentBaseURI = baseURI;\n // resolve top level ref\n if (REF_KEY in resolvedSchema) {\n const { $ref, ...localSchema } = resolvedSchema;\n // Check for a recursive reference and stop the loop\n if (recurseList.includes($ref)) {\n return markCycleOnDetection ? { ...resolvedSchema, [RJSF_REF_CYCLE_KEY]: true } : resolvedSchema;\n }\n recurseList.push($ref);\n // Retrieve the referenced schema definition.\n const refSchema = findSchemaDefinition($ref, rootSchema, currentBaseURI);\n resolvedSchema = { ...refSchema, ...localSchema, [RJSF_REF_KEY]: $ref };\n if (ID_KEY in resolvedSchema) {\n currentBaseURI = resolvedSchema[ID_KEY];\n }\n }\n if (PROPERTIES_KEY in resolvedSchema) {\n const childrenLists = [];\n const updatedProps = {};\n for (const [key, value] of Object.entries(resolvedSchema[PROPERTIES_KEY] ?? {})) {\n const childList = [...recurseList];\n // Mark cycles only when NOT in resolveAnyOfOrOneOfRefs mode. When resolveAnyOfOrOneOfRefs=true\n // (e.g. from ObjectField), options are resolved against a shared recurseList that accumulates\n // refs across branches, causing false positives. In simple (non-anyOf) resolution, a $ref cycle\n // in an object property always causes an infinite render loop and must be caught.\n updatedProps[key] = resolveAllReferences(value, rootSchema, childList, currentBaseURI, resolveAnyOfOrOneOfRefs, !resolveAnyOfOrOneOfRefs);\n childrenLists.push(childList);\n }\n for (const ref of new Set(childrenLists.flat())) {\n if (!recurseList.includes(ref)) {\n recurseList.push(ref);\n }\n }\n resolvedSchema = { ...resolvedSchema, [PROPERTIES_KEY]: updatedProps };\n }\n if (ITEMS_KEY in resolvedSchema &&\n !Array.isArray(resolvedSchema.items) &&\n typeof resolvedSchema.items !== 'boolean') {\n resolvedSchema = {\n ...resolvedSchema,\n // Array items are only rendered when data exists, so a $ref cycle here does NOT cause an infinite render.\n items: resolveAllReferences(resolvedSchema.items, rootSchema, recurseList, currentBaseURI, resolveAnyOfOrOneOfRefs),\n };\n }\n if (resolveAnyOfOrOneOfRefs) {\n let key;\n let schemas;\n if (ANY_OF_KEY in schema && Array.isArray(schema[ANY_OF_KEY])) {\n key = ANY_OF_KEY;\n schemas = resolvedSchema[ANY_OF_KEY];\n }\n else if (ONE_OF_KEY in schema && Array.isArray(schema[ONE_OF_KEY])) {\n key = ONE_OF_KEY;\n schemas = resolvedSchema[ONE_OF_KEY];\n }\n if (key && schemas) {\n resolvedSchema = {\n ...resolvedSchema,\n [key]: schemas.map((s) => resolveAllReferences(s, rootSchema, recurseList, currentBaseURI, resolveAnyOfOrOneOfRefs)),\n };\n }\n }\n return deepEquals(schema, resolvedSchema) ? schema : resolvedSchema;\n}\n/** Creates new 'properties' items for each key in the `formData`\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param theSchema - The schema for which the existing additional properties is desired\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s * @param validator\n * @param [aFormData] - The current formData, if any, to assist retrieving a schema\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The updated schema with additional properties stubbed\n */\nexport function stubExistingAdditionalProperties(validator, theSchema, rootSchema, aFormData, experimental_customMergeAllOf) {\n // Clone the schema so that we don't ruin the consumer's original\n const schema = {\n ...theSchema,\n properties: { ...theSchema.properties },\n };\n // make sure formData is an object\n const formData = aFormData && isObject(aFormData) ? aFormData : {};\n Object.keys(formData).forEach((key) => {\n if (key in schema.properties) {\n // No need to stub, our schema already has the property\n return;\n }\n if (PATTERN_PROPERTIES_KEY in schema) {\n const matchingProperties = getMatchingPatternProperties(schema, key);\n if (Object.keys(matchingProperties).length > 0) {\n schema.properties[key] = retrieveSchema(validator, { [ALL_OF_KEY]: Object.values(matchingProperties) }, rootSchema, formData[key], experimental_customMergeAllOf);\n schema.properties[key][ADDITIONAL_PROPERTY_FLAG] = true;\n return;\n }\n }\n if (ADDITIONAL_PROPERTIES_KEY in schema && schema.additionalProperties !== false) {\n let additionalProperties;\n if (typeof schema.additionalProperties !== 'boolean') {\n if (REF_KEY in schema.additionalProperties) {\n additionalProperties = retrieveSchema(validator, { [REF_KEY]: schema.additionalProperties[REF_KEY] }, rootSchema, formData[key], experimental_customMergeAllOf);\n }\n else if ('type' in schema.additionalProperties) {\n additionalProperties = { ...schema.additionalProperties };\n }\n else if (ANY_OF_KEY in schema.additionalProperties || ONE_OF_KEY in schema.additionalProperties) {\n additionalProperties = {\n type: 'object',\n ...schema.additionalProperties,\n };\n }\n else {\n additionalProperties = { type: guessType(formData[key]) };\n }\n }\n else {\n additionalProperties = { type: guessType(formData[key]) };\n }\n // The type of our new key should match the additionalProperties value;\n schema.properties[key] = additionalProperties;\n // Set our additional property flag so we know it was dynamically added\n schema.properties[key][ADDITIONAL_PROPERTY_FLAG] = true;\n }\n else {\n // Invalid property\n schema.properties[key] = { type: 'null' };\n // Set our additional property flag so we know it was dynamically added\n schema.properties[key][ADDITIONAL_PROPERTY_FLAG] = true;\n }\n });\n return schema;\n}\n/**\n * Internal helper that merges allOf schemas using @x0k/json-schema-merge's shallow allOf merge\n * @param schema - The schema containing an `allOf` keyword\n * @returns The schema with allOf schemas merged\n */\nfunction mergeAllOf(schema) {\n return shallowAllOfMerge(schema);\n}\n/** Internal handler that retrieves an expanded schema that has had all of its conditions, additional properties,\n * references and dependencies resolved and merged into the `schema` given a `validator`, `rootSchema` and `rawFormData`\n * that is used to do the potentially recursive resolution. If `expandAllBranches` is true, then all possible branches\n * of the schema and its references, conditions and dependencies are returned.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param schema - The schema for which retrieving a schema is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param [rawFormData] - The current formData, if any, to assist retrieving a schema\n * @param [expandAllBranches=false] - Flag, if true, will return all possible branches of conditions, any/oneOf and\n * dependencies as a list of schemas\n * @param [recurseList=[]] - The optional, list of recursive references already processed\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @param [resolveAnyOfOrOneOfRefs] - Optional flag indicating whether to resolved refs in anyOf/oneOf lists\n * @returns - The schema(s) resulting from having its conditions, additional properties, references and dependencies\n * resolved. Multiple schemas may be returned if `expandAllBranches` is true.\n */\nexport function retrieveSchemaInternal(validator, schema, rootSchema, rawFormData, expandAllBranches = false, recurseList = [], experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs) {\n if (!isObject(schema)) {\n return [{}];\n }\n const resolvedSchemas = resolveSchema(validator, schema, rootSchema, expandAllBranches, recurseList, rawFormData, experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs);\n return resolvedSchemas.flatMap((s) => {\n let resolvedSchema = s;\n if (IF_KEY in resolvedSchema) {\n return resolveCondition(validator, resolvedSchema, rootSchema, expandAllBranches, recurseList, rawFormData, experimental_customMergeAllOf);\n }\n if (ALL_OF_KEY in resolvedSchema) {\n // resolve allOf schemas\n if (expandAllBranches) {\n const { allOf, ...restOfSchema } = resolvedSchema;\n return [...allOf, restOfSchema];\n }\n try {\n const withContainsSchemas = [];\n const withoutContainsSchemas = [];\n // Collect Symbol-keyed properties from allOf subschemas before merging; shallowAllOfMerge\n // (external library) only operates on string keys and will drop them.\n const allOfSymbols = {};\n resolvedSchema.allOf?.forEach((allOfItem) => {\n if (typeof allOfItem === 'object' && allOfItem.contains) {\n withContainsSchemas.push(allOfItem);\n }\n else {\n withoutContainsSchemas.push(allOfItem);\n for (const sym of Object.getOwnPropertySymbols(allOfItem)) {\n if (!(sym in allOfSymbols)) {\n allOfSymbols[sym] = allOfItem[sym];\n }\n }\n }\n });\n if (withContainsSchemas.length) {\n resolvedSchema = { ...resolvedSchema, allOf: withoutContainsSchemas };\n }\n resolvedSchema = experimental_customMergeAllOf\n ? experimental_customMergeAllOf(resolvedSchema)\n : mergeAllOf(resolvedSchema);\n // Re-apply collected Symbol properties that the merge dropped.\n for (const sym of Object.getOwnPropertySymbols(allOfSymbols)) {\n resolvedSchema[sym] = allOfSymbols[sym];\n }\n if (withContainsSchemas.length) {\n resolvedSchema.allOf = withContainsSchemas;\n }\n }\n catch (e) {\n // oxlint-disable-next-line no-console\n console.warn('could not merge subschemas in allOf:\\n', e);\n const { allOf, ...resolvedSchemaWithoutAllOf } = resolvedSchema;\n return resolvedSchemaWithoutAllOf;\n }\n }\n if (PROPERTIES_KEY in resolvedSchema && PATTERN_PROPERTIES_KEY in resolvedSchema) {\n resolvedSchema = Object.keys(resolvedSchema.properties).reduce((acc, key) => {\n const matchingProperties = getMatchingPatternProperties(acc, key);\n if (Object.keys(matchingProperties).length > 0) {\n acc.properties[key] = retrieveSchema(validator, { allOf: [acc.properties[key], ...Object.values(matchingProperties)] }, rootSchema, getByPath(rawFormData, key), experimental_customMergeAllOf);\n }\n return acc;\n }, {\n ...resolvedSchema,\n properties: { ...resolvedSchema.properties },\n });\n }\n const hasAdditionalProperties = PATTERN_PROPERTIES_KEY in resolvedSchema ||\n (ADDITIONAL_PROPERTIES_KEY in resolvedSchema && resolvedSchema.additionalProperties !== false);\n if (hasAdditionalProperties) {\n return stubExistingAdditionalProperties(validator, resolvedSchema, rootSchema, rawFormData, experimental_customMergeAllOf);\n }\n return resolvedSchema;\n });\n}\n/** Resolves an `anyOf` or `oneOf` within a schema (if present) to the list of schemas returned from\n * `retrieveSchemaInternal()` for the best matching option. If `expandAllBranches` is true, then a list of schemas for ALL\n * options are retrieved and returned.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param schema - The schema for which retrieving a schema is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies\n * as a list of schemas\n * @param [rawFormData] - The current formData, if any, to assist retrieving a schema, defaults to an empty object\n * @returns - Either an array containing the best matching option or all options if `expandAllBranches` is true\n */\nexport function resolveAnyOrOneOfSchemas(validator, schema, rootSchema, expandAllBranches, rawFormData) {\n let anyOrOneOf;\n const { oneOf, anyOf, ...remaining } = schema;\n if (Array.isArray(oneOf)) {\n anyOrOneOf = oneOf;\n }\n else if (Array.isArray(anyOf)) {\n anyOrOneOf = anyOf;\n }\n if (anyOrOneOf) {\n // Ensure that during expand all branches we pass an object rather than undefined so that all options are interrogated\n const formData = rawFormData === undefined && expandAllBranches ? {} : rawFormData;\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n anyOrOneOf = anyOrOneOf.map((s) => resolveAllReferences(s, rootSchema, []));\n // Call this to trigger the set of isValid() calls that the schema parser will need\n const option = getFirstMatchingOption(validator, formData, anyOrOneOf, rootSchema, discriminator);\n if (expandAllBranches) {\n // Also trigger isValid() for the relaxed variants so that precompiled validators capture their hashes.\n // omitExtraData's handleOneOf relaxes additionalProperties:false → true before scoring; those mutated\n // schemas must be present in a precompiled validator's compiled set or isValid() will throw at runtime.\n // Using getFirstMatchingOption (rather than calling isValid directly) ensures that the augmented forms\n // of each option (as constructed internally by getFirstMatchingOption for options with properties) are\n // also captured. The return value is discarded — the call is purely for ParserValidator's side effect.\n const relaxed = relaxOptionsForScoring(anyOrOneOf, false, rootSchema);\n getFirstMatchingOption(validator, formData, relaxed, rootSchema, discriminator);\n return anyOrOneOf.map((item) => mergeSchemas(remaining, item));\n }\n return [mergeSchemas(remaining, anyOrOneOf[option])];\n }\n return [schema];\n}\n/** Normalises a list of `oneOf`/`anyOf` options for use in option-scoring only (not for filtering).\n * Boolean schemas are converted to their object equivalents (`true` → `{}`, `false` → `{not:{}}`).\n * When `resolveRefs` is `true`, each object option is first passed through `resolveAllReferences`\n * so that `$ref`-based options expose their `additionalProperties` constraint before relaxation.\n * Any option whose `additionalProperties` is `false` is widened to `true` so that\n * `getClosestMatchingOption` / `validator.isValid()` does not produce false negatives when the\n * form data contains keys not listed in `properties`.\n *\n * @param options - The raw `oneOf`/`anyOf` array, which may contain boolean schemas\n * @param [resolveRefs=false] - When `true`, resolve `$ref`s in each option before relaxing; pass\n * `rootSchema` as well. Set `false` (default) when refs are already resolved at the call site.\n * @param [rootSchema] - Required when `resolveRefs` is `true`; the root schema used to look up `$ref`s\n * @returns - A new array of plain schema objects with `additionalProperties` relaxed where needed\n */\nexport function relaxOptionsForScoring(options, resolveRefs = false, rootSchema) {\n return options.map((d) => {\n if (!isObject(d)) {\n return normalizeBooleanSchema(d);\n }\n const schema = resolveRefs && rootSchema ? resolveAllReferences(d, rootSchema, []) : d;\n return schema.additionalProperties === false ? { ...schema, additionalProperties: true } : schema;\n });\n}\n/** Resolves dependencies within a schema and its 'anyOf/oneOf' children. Passes the `expandAllBranches` flag down to\n * the `resolveAnyOrOneOfSchema()` and `processDependencies()` helper calls.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param schema - The schema for which resolving a dependency is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies\n * as a list of schemas\n * @param recurseList - The list of recursive references already processed\n * @param [formData] - The current formData, if any, to assist retrieving a schema\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The list of schemas with their dependencies resolved\n */\nexport function resolveDependencies(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {\n // Drop the dependencies from the source schema.\n const { dependencies, ...remainingSchema } = schema;\n const resolvedSchemas = resolveAnyOrOneOfSchemas(validator, remainingSchema, rootSchema, expandAllBranches, formData);\n return resolvedSchemas.flatMap((resolvedSchema) => processDependencies(validator, dependencies, resolvedSchema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf));\n}\n/** Processes all the `dependencies` recursively into the list of `resolvedSchema`s as needed. Passes the\n * `expandAllBranches` flag down to the `withDependentSchema()` and the recursive `processDependencies()` helper calls.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param dependencies - The set of dependencies that needs to be processed\n * @param resolvedSchema - The schema for which processing dependencies is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies\n * as a list of schemas\n * @param recurseList - The list of recursive references already processed\n * @param [formData] - The current formData, if any, to assist retrieving a schema\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The schema with the `dependencies` resolved into it\n */\nexport function processDependencies(validator, dependencies, resolvedSchema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {\n let schemas = [resolvedSchema];\n // Process dependencies updating the local schema properties as appropriate.\n for (const dependencyKey in dependencies) {\n if ((expandAllBranches || getByPath(formData, dependencyKey) !== undefined) &&\n (!resolvedSchema.properties || dependencyKey in resolvedSchema.properties)) {\n const [remainingDependencies, dependencyValue] = splitKeyElementFromObject(dependencyKey, dependencies);\n if (Array.isArray(dependencyValue)) {\n schemas[0] = withDependentProperties(resolvedSchema, dependencyValue);\n }\n else if (isObject(dependencyValue)) {\n schemas = withDependentSchema(validator, resolvedSchema, rootSchema, dependencyKey, dependencyValue, expandAllBranches, recurseList, formData, experimental_customMergeAllOf);\n }\n return schemas.flatMap((schema) => processDependencies(validator, remainingDependencies, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf));\n }\n }\n return schemas;\n}\n/** Updates a schema with additionally required properties added\n *\n * @param schema - The schema for which resolving a dependent properties is desired\n * @param [additionallyRequired] - An optional array of additionally required names\n * @returns - The schema with the additional required values merged in\n */\nexport function withDependentProperties(schema, additionallyRequired) {\n if (!additionallyRequired) {\n return schema;\n }\n const required = Array.isArray(schema.required)\n ? Array.from(new Set([...schema.required, ...additionallyRequired]))\n : additionallyRequired;\n return { ...schema, required };\n}\n/** Merges a dependent schema into the `schema` dealing with oneOfs and references. Passes the `expandAllBranches` flag\n * down to the `retrieveSchemaInternal()`, `resolveReference()` and `withExactlyOneSubschema()` helper calls.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param schema - The schema for which resolving a dependent schema is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param dependencyKey - The key name of the dependency\n * @param dependencyValue - The potentially dependent schema\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies\n * as a list of schemas\n * @param recurseList - The list of recursive references already processed\n * @param [formData]- The current formData to assist retrieving a schema\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The list of schemas with the dependent schema resolved into them\n */\nexport function withDependentSchema(validator, schema, rootSchema, dependencyKey, dependencyValue, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {\n const dependentSchemas = retrieveSchemaInternal(validator, dependencyValue, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf);\n return dependentSchemas.flatMap((dependent) => {\n const { oneOf, ...dependentSchema } = dependent;\n const mergedSchema = mergeSchemas(schema, dependentSchema);\n // Since it does not contain oneOf, we return the original schema.\n if (oneOf === undefined) {\n return mergedSchema;\n }\n // Resolve $refs inside oneOf.\n const resolvedOneOfs = oneOf.map((subschema) => {\n if (typeof subschema === 'boolean' || !(REF_KEY in subschema)) {\n return [subschema];\n }\n return resolveReference(validator, subschema, rootSchema, expandAllBranches, recurseList, formData);\n });\n const allPermutations = getAllPermutationsOfXxxOf(resolvedOneOfs);\n return allPermutations.flatMap((resolvedOneOf) => withExactlyOneSubschema(validator, mergedSchema, rootSchema, dependencyKey, resolvedOneOf, expandAllBranches, recurseList, formData, experimental_customMergeAllOf));\n });\n}\n/** Returns a list of `schema`s with the best choice from the `oneOf` options merged into it. If `expandAllBranches` is\n * true, then a list of schemas for ALL options are retrieved and returned. Passes the `expandAllBranches` flag down to\n * the `retrieveSchemaInternal()` helper call.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used to validate oneOf options\n * @param schema - The schema for which resolving a oneOf subschema is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param dependencyKey - The key name of the oneOf dependency\n * @param oneOf - The list of schemas representing the oneOf options\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies\n * as a list of schemas\n * @param recurseList - The list of recursive references already processed\n * @param [formData] - The current formData to assist retrieving a schema\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - Either an array containing the best matching option or all options if `expandAllBranches` is true\n */\nexport function withExactlyOneSubschema(validator, schema, rootSchema, dependencyKey, oneOf, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {\n const validSubschemas = oneOf.filter((subschema) => {\n if (typeof subschema === 'boolean' || !subschema?.properties) {\n return false;\n }\n const { [dependencyKey]: conditionPropertySchema } = subschema.properties;\n if (conditionPropertySchema) {\n const conditionSchema = {\n type: 'object',\n properties: {\n [dependencyKey]: conditionPropertySchema,\n },\n };\n return validator.isValid(conditionSchema, formData, rootSchema) || expandAllBranches;\n }\n return false;\n });\n if (!expandAllBranches && validSubschemas.length !== 1) {\n // oxlint-disable-next-line no-console\n console.warn(\"ignoring oneOf in dependencies because there isn't exactly one subschema that is valid\");\n return [schema];\n }\n return validSubschemas.flatMap((s) => {\n const subschema = s;\n const [dependentSubschema] = splitKeyElementFromObject(dependencyKey, subschema.properties);\n const dependentSchema = { ...subschema, properties: dependentSubschema };\n const schemas = retrieveSchemaInternal(validator, dependentSchema, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf);\n return schemas.map((resolvedSubschema) => mergeSchemas(schema, resolvedSubschema));\n });\n}\n//# sourceMappingURL=retrieveSchema.js.map","import { CONST_KEY, DEFAULT_KEY, PROPERTIES_KEY } from \"../constants.js\";\nimport deepEquals from \"../deepEquals.js\";\nimport getDiscriminatorFieldFromSchema from \"../getDiscriminatorFieldFromSchema.js\";\nimport { getByPath } from \"../pathUtils.js\";\nimport retrieveSchema from \"./retrieveSchema.js\";\n/** Finds the option inside the `schema['any/oneOf']` list which has the `properties[selectorField].default` or\n * `properties[selectorField].const` that matches the `formData[selectorField]` value. For the purposes of this\n * function, `selectorField` is either `schema.discriminator.propertyName` or `fallbackField`. The `LayoutGridField`\n * works directly with schemas in a recursive manner, making this faster than `getFirstMatchingOption()`.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param schema - The schema element in which to search for the selected anyOf/oneOf option\n * @param fallbackField - The field to use as a backup selector field if the schema does not have a required field\n * @param xxx - Either `anyOf` or `oneOf`, defines which value is being sought\n * @param [formData={}] - The form data that is used to determine which anyOf/oneOf option to descend\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The anyOf/oneOf option that matches the selector field in the schema or undefined if nothing is selected\n */\nexport default function findSelectedOptionInXxxOf(validator, rootSchema, schema, fallbackField, xxx, formData = {}, experimental_customMergeAllOf) {\n if (Array.isArray(schema[xxx])) {\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n const selectorField = discriminator || fallbackField;\n const xxxOfs = schema[xxx].map((xxxOf) => retrieveSchema(validator, xxxOf, rootSchema, formData, experimental_customMergeAllOf));\n const data = getByPath(formData, selectorField);\n if (data !== undefined) {\n return xxxOfs.find((xxxOfOption) => deepEquals(getByPath(xxxOfOption, [PROPERTIES_KEY, selectorField, DEFAULT_KEY], getByPath(xxxOfOption, [PROPERTIES_KEY, selectorField, CONST_KEY])), data));\n }\n }\n return undefined;\n}\n//# sourceMappingURL=findSelectedOptionInXxxOf.js.map","import { REF_KEY } from \"../constants.js\";\nimport { getByPath, hasByPath, toPath } from \"../pathUtils.js\";\nimport retrieveSchema from \"./retrieveSchema.js\";\n/** Internal helper function that acts like `getByPath` but additionally retrieves `$ref`s as needed to get the path\n * for schemas containing potentially nested `$ref`s.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param schema - The current node within the JSON schema recursion\n * @param path - The remaining keys in the path to the desired property\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The internal schema from the `schema` for the given `path` or undefined if not found\n */\nfunction getFromSchemaInternal(validator, rootSchema, schema, path, experimental_customMergeAllOf) {\n let fieldSchema = schema;\n // hasByPath instead of `in` because `schema` can be undefined at runtime when drilling past a non-matching xxxOf\n if (hasByPath(schema, REF_KEY)) {\n fieldSchema = retrieveSchema(validator, schema, rootSchema, undefined, experimental_customMergeAllOf);\n }\n if (path.length === 0) {\n return fieldSchema;\n }\n const pathList = Array.isArray(path) ? [...path] : toPath(path);\n const [part, ...nestedPath] = pathList;\n if (part !== undefined && part !== '' && hasByPath(fieldSchema, part)) {\n fieldSchema = getByPath(fieldSchema, part);\n return getFromSchemaInternal(validator, rootSchema, fieldSchema, nestedPath, experimental_customMergeAllOf);\n }\n return undefined;\n}\nexport default function getFromSchema(validator, rootSchema, schema, path, defaultValue, experimental_customMergeAllOf) {\n const result = getFromSchemaInternal(validator, rootSchema, schema, path, experimental_customMergeAllOf);\n if (result === undefined) {\n return defaultValue;\n }\n return result;\n}\n//# sourceMappingURL=getFromSchema.js.map","import { ANY_OF_KEY, ONE_OF_KEY, PROPERTIES_KEY, REQUIRED_KEY } from \"../constants.js\";\nimport { getByPath, hasByPath } from \"../pathUtils.js\";\nimport findSelectedOptionInXxxOf from \"./findSelectedOptionInXxxOf.js\";\nimport getFromSchema from \"./getFromSchema.js\";\n/** Unique schema that represents no schema was found, exported for testing purposes */\nexport const NOT_FOUND_SCHEMA = { title: '!@#$_UNKNOWN_$#@!' };\n/** Finds the field specified by the `path` within the root or recursed `schema`. If there is no field for the specified\n * `path`, then the default `{ field: undefined, isRequired: undefined }` is returned. It determines whether a leaf\n * field is in the `required` list for its parent and if so, it is marked as required on return.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param schema - The node within the JSON schema in which to search\n * @param path - The keys in the path to the desired field\n * @param [formData={}] - The form data that is used to determine which anyOf/oneOf option to descend\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - An object that contains the field and its required state. If no field can be found then\n * `{ field: undefined, isRequired: undefined }` is returned.\n */\nexport default function findFieldInSchema(validator, rootSchema, schema, path, formData = {}, experimental_customMergeAllOf) {\n const pathList = Array.isArray(path) ? [...path] : path.split('.');\n let parentField = schema;\n // store the desired field into a variable and removing it from the `pathList`\n const fieldName = pathList.pop();\n const fieldNameKey = String(fieldName);\n if (pathList.length) {\n // drilling into the schema for each sub-path and taking into account of the any/oneOfs\n pathList.forEach((subPath) => {\n parentField = getFromSchema(validator, rootSchema, parentField, [PROPERTIES_KEY, subPath], {}, experimental_customMergeAllOf);\n if (hasByPath(parentField, ONE_OF_KEY)) {\n // if this sub-path has a `oneOf` then use the formData to drill into the schema with the selected option\n parentField = findSelectedOptionInXxxOf(validator, rootSchema, parentField, fieldNameKey, ONE_OF_KEY, getByPath(formData, subPath), experimental_customMergeAllOf);\n }\n else if (hasByPath(parentField, ANY_OF_KEY)) {\n // if this sub-path has a `anyOf` then use the formData to drill into the schema with the selected option\n parentField = findSelectedOptionInXxxOf(validator, rootSchema, parentField, fieldNameKey, ANY_OF_KEY, getByPath(formData, subPath), experimental_customMergeAllOf);\n }\n });\n }\n if (hasByPath(parentField, ONE_OF_KEY)) {\n // When oneOf is in the root schema, use the formData to drill into the schema with the selected option\n parentField = findSelectedOptionInXxxOf(validator, rootSchema, parentField, fieldNameKey, ONE_OF_KEY, formData, experimental_customMergeAllOf);\n }\n else if (hasByPath(parentField, ANY_OF_KEY)) {\n // When anyOf is in the root schema, use the formData to drill into the schema with the selected option\n parentField = findSelectedOptionInXxxOf(validator, rootSchema, parentField, fieldNameKey, ANY_OF_KEY, formData, experimental_customMergeAllOf);\n }\n // taking the most updated `parentField`, get our desired field\n let field = getFromSchema(validator, rootSchema, parentField, [PROPERTIES_KEY, fieldName], NOT_FOUND_SCHEMA, experimental_customMergeAllOf);\n if (field === NOT_FOUND_SCHEMA) {\n field = undefined;\n }\n // check to see if our desired field is in the `required` list for its parent\n const requiredArray = getFromSchema(validator, rootSchema, parentField, REQUIRED_KEY, [], experimental_customMergeAllOf);\n let isRequired;\n if (field && Array.isArray(requiredArray)) {\n isRequired = requiredArray.includes(fieldNameKey);\n }\n return { field, isRequired };\n}\n//# sourceMappingURL=findFieldInSchema.js.map","import { ONE_OF_KEY, REF_KEY, JUNK_OPTION_ID, ANY_OF_KEY } from \"../constants.js\";\nimport getDiscriminatorFieldFromSchema from \"../getDiscriminatorFieldFromSchema.js\";\nimport getOptionMatchingSimpleDiscriminator from \"../getOptionMatchingSimpleDiscriminator.js\";\nimport guessType from \"../guessType.js\";\nimport isObject from \"../isObject.js\";\nimport { getByPath, hasByPath } from \"../pathUtils.js\";\nimport getFirstMatchingOption from \"./getFirstMatchingOption.js\";\nimport retrieveSchema, { resolveAllReferences } from \"./retrieveSchema.js\";\n/** A junk option used to determine when the getFirstMatchingOption call really matches an option rather than returning\n * the first item\n */\nexport const JUNK_OPTION = {\n type: 'object',\n $id: JUNK_OPTION_ID,\n properties: {\n __not_really_there__: {\n type: 'number',\n },\n },\n};\n/** Recursive function that calculates the score of a `formData` against the given `schema`. The computation is fairly\n * simple. Initially the total score is 0. When `schema.properties` object exists, then all the `key/value` pairs within\n * the object are processed as follows after obtaining the formValue from `formData` using the `key`:\n * - If the `value` contains a `$ref`, `calculateIndexScore()` is called recursively with the formValue and the new\n * schema that is the result of the ref in the schema being resolved and that sub-schema's resulting score is added to\n * the total.\n * - If the `value` contains a `oneOf` and there is a formValue, then score based on the index returned from calling\n * `getClosestMatchingOption()` of that oneOf.\n * - If the type of the `value` is 'object', `calculateIndexScore()` is called recursively with the formValue and the\n * `value` itself as the sub-schema, and the score is added to the total.\n * - If the type of the `value` matches the guessed-type of the `formValue`, the score is incremented by 1, UNLESS the\n * value has a `default` or `const`. In those case, if the `default` or `const` and the `formValue` match, the score\n * is incremented by another 1 otherwise it is decremented by 1.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param rootSchema - The root JSON schema of the entire form\n * @param schema - The schema for which the score is being calculated\n * @param formData - The form data associated with the schema, used to calculate the score\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The score a schema against the formData\n */\nexport function calculateIndexScore(validator, rootSchema, schema, formData, experimental_customMergeAllOf) {\n let totalScore = 0;\n if (schema) {\n if (isObject(schema.properties)) {\n totalScore += Object.entries(schema.properties).reduce((score, [key, value]) => {\n const formValue = formData?.[key];\n if (typeof value === 'boolean') {\n return score;\n }\n if (hasByPath(value, REF_KEY)) {\n const newSchema = retrieveSchema(validator, value, rootSchema, formValue, experimental_customMergeAllOf);\n return (score +\n calculateIndexScore(validator, rootSchema, newSchema, formValue || {}, experimental_customMergeAllOf));\n }\n if ((hasByPath(value, ONE_OF_KEY) || hasByPath(value, ANY_OF_KEY)) && formValue) {\n const xxxOfKey = hasByPath(value, ONE_OF_KEY) ? ONE_OF_KEY : ANY_OF_KEY;\n const discriminator = getDiscriminatorFieldFromSchema(value);\n return (score +\n getClosestMatchingOption(validator, rootSchema, formValue, getByPath(value, xxxOfKey), -1, discriminator, experimental_customMergeAllOf));\n }\n if (value.type === 'object') {\n // If the structure is matching then give it a little boost in score\n const structureBoost = typeof formValue === 'object' && formValue !== null ? 1 : 0;\n return (score +\n structureBoost +\n calculateIndexScore(validator, rootSchema, value, formValue, experimental_customMergeAllOf));\n }\n if (value.type === guessType(formValue)) {\n // If the types match, then we bump the score by one\n let newScore = score + 1;\n if (value.default) {\n // If the schema contains a readonly default value score the value that matches the default higher and\n // any non-matching value lower\n newScore += formValue === value.default ? 1 : -1;\n }\n else if (value.const) {\n // If the schema contains a const value score the value that matches the default higher and\n // any non-matching value lower\n newScore += formValue === value.const ? 1 : -1;\n }\n // TODO eventually, deal with enums/arrays\n return newScore;\n }\n return score;\n }, 0);\n }\n else if (typeof schema.type === 'string' && schema.type === guessType(formData)) {\n totalScore += 1;\n }\n }\n return totalScore;\n}\n/** Determines which of the given `options` provided most closely matches the `formData`. Using\n * `getFirstMatchingOption()` to match two schemas that differ only by the readOnly, default or const value of a field\n * based on the `formData` and returns 0 when there is no match. Rather than passing in all the `options` at once to\n * this utility, instead an array of valid option indexes is created by iterating over the list of options, call\n * `getFirstMatchingOptions` with a list of one junk option and one good option, seeing if the good option is considered\n * matched.\n *\n * Once the list of valid indexes is created, if there is only one valid index, just return it. Otherwise, if there are\n * no valid indexes, then fill the valid indexes array with the indexes of all the options. Next, the index of the\n * option with the highest score is determined by iterating over the list of valid options, calling\n * `calculateIndexScore()` on each, comparing it against the current best score, and returning the index of the one that\n * eventually has the best score.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param rootSchema - The root JSON schema of the entire form\n * @param formData - The form data associated with the schema\n * @param options - The list of options that can be selected from\n * @param [selectedOption=-1] - The index of the currently selected option, defaulted to -1 if not specified\n * @param [discriminatorField] - The optional name of the field within the options object whose value is used to\n * determine which option is selected\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The index of the option that is the closest match to the `formData` or the `selectedOption` if no match\n */\nexport default function getClosestMatchingOption(validator, rootSchema, formData, options, selectedOption = -1, discriminatorField, experimental_customMergeAllOf) {\n // First resolve any refs in the options\n const resolvedOptions = options.map((option) => resolveAllReferences(option, rootSchema, []));\n const simpleDiscriminatorMatch = getOptionMatchingSimpleDiscriminator(formData, options, discriminatorField);\n if (typeof simpleDiscriminatorMatch === 'number') {\n return simpleDiscriminatorMatch;\n }\n // Reduce the array of options down to a list of the indexes that are considered matching options\n const allValidIndexes = resolvedOptions.reduce((validList, option, index) => {\n const testOptions = [JUNK_OPTION, option];\n const match = getFirstMatchingOption(validator, formData, testOptions, rootSchema, discriminatorField);\n // The match is the real option, so add its index to list of valid indexes\n if (match === 1) {\n validList.push(index);\n }\n return validList;\n }, []);\n // There is only one valid index, so return it!\n if (allValidIndexes.length === 1) {\n return allValidIndexes[0];\n }\n if (!allValidIndexes.length) {\n // No indexes were valid, so we'll score all the options, add all the indexes\n allValidIndexes.push(...resolvedOptions.keys());\n }\n const scoreCount = new Set();\n // Score all the options in the list of valid indexes and return the index with the best score\n const { bestIndex } = allValidIndexes.reduce((scoreData, index) => {\n const { bestScore } = scoreData;\n const option = resolvedOptions[index];\n const score = calculateIndexScore(validator, rootSchema, option, formData, experimental_customMergeAllOf);\n scoreCount.add(score);\n if (score > bestScore) {\n return { bestIndex: index, bestScore: score };\n }\n return scoreData;\n }, { bestIndex: selectedOption, bestScore: 0 });\n // if all scores are the same go with selectedOption\n if (scoreCount.size === 1 && selectedOption >= 0) {\n return selectedOption;\n }\n return bestIndex;\n}\n//# sourceMappingURL=getClosestMatchingOption.js.map","import { CONST_KEY, getSchemaType, isObject } from \"./index.js\";\n/**\n * Checks if the schema const property value is an AJV $data reference\n * and the current schema is not an object or array\n *\n * @param schema - The schema to check if the const is an AJV $data reference\n * @returns - true if the schema const property value is an AJV $data reference otherwise false.\n */\nexport default function constIsAjvDataReference(schema) {\n const schemaConst = schema[CONST_KEY];\n const schemaType = getSchemaType(schema);\n return (isObject(schemaConst) && typeof schemaConst?.$data === 'string' && schemaType !== 'object' && schemaType !== 'array');\n}\n//# sourceMappingURL=constIsAjvDataReference.js.map","import { CONST_KEY } from \"./constants.js\";\n/** This function checks if the given `schema` matches a single constant value. This happens when either the schema has\n * an `enum` array with a single value or there is a `const` defined.\n *\n * @param schema - The schema for a field\n * @returns - True if the `schema` has a single constant value, false otherwise\n */\nexport default function isConstant(schema) {\n return (Array.isArray(schema.enum) && schema.enum.length === 1) || CONST_KEY in schema;\n}\n//# sourceMappingURL=isConstant.js.map","import isObject from \"./isObject.js\";\n/** Detects whether the given `schema` contains fixed items. This is the case when `schema.items` is an array that only\n * contains objects.\n *\n * @param schema - The schema in which to check for fixed items\n * @returns - True if there are fixed items in the schema, false otherwise\n */\nexport default function isFixedItems(schema) {\n return Array.isArray(schema.items) && schema.items.every((item) => isObject(item));\n}\n//# sourceMappingURL=isFixedItems.js.map","import isObject from \"./isObject.js\";\n/** Merges the `defaults` object of type `T` into the `formData` of type `T`\n *\n * When merging defaults and form data, we want to merge in this specific way:\n * - objects are deeply merged\n * - arrays are merged in such a way that:\n * - when the array is set in form data, only array entries set in form data\n * are deeply merged; additional entries from the defaults are ignored unless `mergeExtraArrayDefaults` is true, in\n * which case the extras are appended onto the end of the form data\n * - when the array is not set in form data, the default is copied over\n * - scalars are overwritten/set by form data unless undefined and there is a default AND `defaultSupercedesUndefined`\n * is true\n *\n * @param [defaults] - The defaults to merge\n * @param [formData] - The form data into which the defaults will be merged\n * @param [mergeExtraArrayDefaults=false] - If true, any additional default array entries are appended onto the formData\n * @param [defaultSupercedesUndefined=false] - If true, an explicit undefined value will be overwritten by the default value\n * @param [overrideFormDataWithDefaults=false] - If true, the default value will overwrite the form data value. If the value\n * doesn't exist in the default, we take it from formData and in the case where the value is set to undefined in formData.\n * This is useful when we have already merged formData with defaults and want to add an additional field from formData\n * that does not exist in defaults.\n * @returns - The resulting merged form data with defaults\n */\nexport default function mergeDefaultsWithFormData(defaults, formData, mergeExtraArrayDefaults = false, defaultSupercedesUndefined = false, overrideFormDataWithDefaults = false) {\n if (Array.isArray(formData)) {\n const defaultsArray = Array.isArray(defaults) ? defaults : [];\n // If overrideFormDataWithDefaults is true, we want to override the formData with the defaults\n const overrideArray = overrideFormDataWithDefaults ? defaultsArray : formData;\n const overrideOppositeArray = overrideFormDataWithDefaults ? formData : defaultsArray;\n const mapped = overrideArray.map((value, idx) => {\n // We want to explicitly make sure that the value is NOT undefined since null, 0 and empty space are valid values\n if (overrideOppositeArray[idx] !== undefined) {\n return mergeDefaultsWithFormData(defaultsArray[idx], formData[idx], mergeExtraArrayDefaults, defaultSupercedesUndefined, overrideFormDataWithDefaults);\n }\n return value;\n });\n // Merge any extra defaults when mergeExtraArrayDefaults is true\n // Or when overrideFormDataWithDefaults is true and the default array is shorter than the formData array\n if ((mergeExtraArrayDefaults || overrideFormDataWithDefaults) && mapped.length < overrideOppositeArray.length) {\n mapped.push(...overrideOppositeArray.slice(mapped.length));\n }\n return mapped;\n }\n if (isObject(formData)) {\n // oxlint-disable-next-line prefer-object-spread -- spread loses T type, Object.assign preserves it\n const acc = Object.assign({}, defaults); // Prevent mutation of source object.\n const formDataObj = formData;\n const defaultsObj = isObject(defaults) ? defaults : undefined;\n return Object.keys(formDataObj).reduce((accumulator, key) => {\n const keyValue = formDataObj[key];\n const keyExistsInDefaults = defaultsObj !== undefined && key in defaultsObj;\n const keyExistsInFormData = key in formDataObj;\n const keyDefault = defaultsObj?.[key] ?? {};\n // If any direct child of this key's default is itself an object or array,\n // the shallow spread below would bypass its merge rules. Route those cases\n // to the recursive path; the recursive call repeats this check one level deeper.\n const defaultValueNeedsDeepMerge = keyExistsInDefaults &&\n isObject(keyDefault) &&\n Object.values(keyDefault).some((v) => isObject(v) || Array.isArray(v));\n const keyDefaultIsObject = keyExistsInDefaults && isObject(defaultsObj?.[key]);\n const keyHasFormDataObject = keyExistsInFormData && isObject(keyValue);\n if (keyDefaultIsObject && keyHasFormDataObject && !defaultValueNeedsDeepMerge) {\n accumulator[key] = {\n ...defaultsObj?.[key],\n ...keyValue,\n };\n return accumulator;\n }\n accumulator[key] = mergeDefaultsWithFormData(defaultsObj?.[key], keyValue, mergeExtraArrayDefaults, defaultSupercedesUndefined, \n // overrideFormDataWithDefaults can be true only when the key value exists in defaults\n // Or if the key value doesn't exist in formData\n overrideFormDataWithDefaults && (keyExistsInDefaults || !keyExistsInFormData));\n return acc;\n }, acc);\n }\n /**\n * If the defaultSupercedesUndefined flag is true\n * And formData is set to undefined or null and defaults are defined\n * Or if formData is a number and is NaN return defaults\n * Or if overrideFormDataWithDefaults flag is true and formData is set to not undefined/null return defaults\n */\n if ((defaultSupercedesUndefined &&\n ((!(defaults === undefined) && formData == null) || (typeof formData === 'number' && Number.isNaN(formData)))) ||\n (overrideFormDataWithDefaults && formData != null)) {\n return defaults;\n }\n return formData;\n}\n//# sourceMappingURL=mergeDefaultsWithFormData.js.map","import isObject from \"./isObject.js\";\n/** Recursively merge deeply nested objects.\n *\n * @param obj1 - The first object to merge\n * @param obj2 - The second object to merge\n * @param [concatArrays=false] - Optional flag that, when true, will cause arrays to be concatenated. Use\n * \"preventDuplicates\" to merge arrays in a manner that prevents any duplicate entries from being merged.\n * NOTE: Uses shallow comparison for the duplicate checking.\n * @returns - A new object that is the merge of the two given objects\n */\nexport default function mergeObjects(obj1, obj2, concatArrays = false) {\n return Object.keys(obj2).reduce((acc, key) => {\n const left = obj1 ? obj1[key] : {}, right = obj2[key];\n if (obj1 && key in obj1 && isObject(right)) {\n acc[key] = mergeObjects(left, right, concatArrays);\n }\n else if (concatArrays && Array.isArray(left) && Array.isArray(right)) {\n let toMerge = right;\n if (concatArrays === 'preventDuplicates') {\n toMerge = right.reduce((result, value) => {\n if (!left.includes(value)) {\n result.push(value);\n }\n return result;\n }, []);\n }\n acc[key] = left.concat(toMerge);\n }\n else {\n acc[key] = right;\n }\n return acc;\n }, { ...obj1 }); // Prevent mutation of source object.\n}\n//# sourceMappingURL=mergeObjects.js.map","import { CONST_KEY, ENUM_KEY } from \"./constants.js\";\n/** Returns the constant value from the schema when it is either a single value enum or has a const key. Otherwise\n * throws an error.\n *\n * @param schema - The schema from which to obtain the constant value\n * @returns - The constant value for the schema\n * @throws - Error when the schema does not have a constant value\n */\nexport default function toConstant(schema) {\n if (ENUM_KEY in schema && Array.isArray(schema.enum) && schema.enum.length === 1) {\n return schema.enum[0];\n }\n if (CONST_KEY in schema) {\n return schema.const;\n }\n throw new Error('schema cannot be inferred as a constant');\n}\n//# sourceMappingURL=toConstant.js.map","import { CONST_KEY, DEFAULT_KEY } from \"./constants.js\";\nimport getDiscriminatorFieldFromSchema from \"./getDiscriminatorFieldFromSchema.js\";\nimport getPropertySchema from \"./getPropertySchema.js\";\nimport getUiOptions from \"./getUiOptions.js\";\nimport { getByPath } from \"./pathUtils.js\";\nimport toConstant from \"./toConstant.js\";\n/** Reorders `options` according to `order`, which may contain a `'*'` wildcard representing all\n * remaining options in their original order. Options not listed in `order` (and not covered by\n * a wildcard) are dropped.\n */\nfunction applyEnumOrder(options, order) {\n const optionsByValue = new Map(options.map((opt) => [String(opt.value), opt]));\n const orderedKeys = new Set(order.filter((v) => v !== '*').map(String));\n const rest = options.filter((opt) => !orderedKeys.has(String(opt.value)));\n return order.flatMap((entry) => {\n if (entry === '*') {\n return rest;\n }\n const opt = optionsByValue.get(String(entry));\n return opt ? [opt] : [];\n });\n}\n/** Gets the list of options from the `schema`. If the schema has an enum list, then those enum values are returned. The\n * label will be the same as the `value`.\n *\n * If the schema has a `oneOf` or `anyOf`, then the value is the list of either:\n * - The `const` values from the schema if present\n * - If the schema has a discriminator and the label using either the `schema.title` or the value. If a `uiSchema` is\n * provided, and it has the `ui:enumNames` matched with `enum` or it has an associated `oneOf` or `anyOf` with a list of\n * objects containing `ui:title` then the UI schema values will replace the values from the schema.\n *\n * @param schema - The schema from which to extract the options list\n * @param [uiSchema] - The optional uiSchema from which to get alternate labels for the options\n * @returns - The list of options from the schema\n */\nexport default function optionsList(schema, uiSchema) {\n if (schema.enum) {\n let enumNames;\n let enumOrder;\n if (uiSchema) {\n const { enumNames: uiEnumNames, enumOrder: uiEnumOrder } = getUiOptions(uiSchema);\n enumNames = uiEnumNames;\n enumOrder = uiEnumOrder;\n }\n let options = schema.enum.map((value, i) => {\n const label = Array.isArray(enumNames)\n ? enumNames[i] || String(value)\n : enumNames?.[String(value)] || String(value);\n return { label, value };\n });\n if (enumOrder) {\n options = applyEnumOrder(options, enumOrder);\n }\n return options;\n }\n let altSchemas = undefined;\n let altUiSchemas = undefined;\n if (schema.anyOf) {\n altSchemas = schema.anyOf;\n altUiSchemas = uiSchema?.anyOf;\n }\n else if (schema.oneOf) {\n altSchemas = schema.oneOf;\n altUiSchemas = uiSchema?.oneOf;\n }\n // See if there is a discriminator path specified in the schema, and if so, use it as the selectorField, otherwise\n // pull one from the uiSchema\n let selectorField = getDiscriminatorFieldFromSchema(schema);\n if (uiSchema) {\n const { optionsSchemaSelector = selectorField } = getUiOptions(uiSchema);\n selectorField = optionsSchemaSelector;\n }\n return altSchemas?.map((aSchemaDef, index) => {\n const { title } = getUiOptions(altUiSchemas?.[index]);\n const aSchema = aSchemaDef;\n let value;\n let label = title;\n if (selectorField) {\n const innerSchema = getPropertySchema(aSchema, selectorField);\n value = getByPath(innerSchema, DEFAULT_KEY, getByPath(innerSchema, CONST_KEY));\n // Use nullish coalescing so that an explicitly empty string title is preserved\n label = label ?? innerSchema?.title ?? aSchema.title ?? String(value);\n }\n else {\n value = toConstant(aSchema);\n label = label ?? aSchema.title ?? String(value);\n }\n return {\n schema: aSchema,\n label,\n value,\n };\n });\n}\n//# sourceMappingURL=optionsList.js.map","import isConstant from \"../isConstant.js\";\nimport retrieveSchema from \"./retrieveSchema.js\";\n/** Checks to see if the `schema` combination represents a select\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param theSchema - The schema for which check for a select flag is desired\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - True if schema contains a select, otherwise false\n */\nexport default function isSelect(validator, theSchema, rootSchema = {}, experimental_customMergeAllOf) {\n const schema = retrieveSchema(validator, theSchema, rootSchema, undefined, experimental_customMergeAllOf);\n const altSchemas = schema.oneOf || schema.anyOf;\n if (Array.isArray(schema.enum)) {\n return true;\n }\n if (Array.isArray(altSchemas)) {\n return altSchemas.every((altSchema) => typeof altSchema !== 'boolean' && isConstant(altSchema));\n }\n return false;\n}\n//# sourceMappingURL=isSelect.js.map","import isSelect from \"./isSelect.js\";\n/** Checks to see if the `schema` combination represents a multi-select\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param schema - The schema for which check for a multi-select flag is desired\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - True if schema contains a multi-select, otherwise false\n */\nexport default function isMultiSelect(validator, schema, rootSchema, experimental_customMergeAllOf) {\n if (!schema.uniqueItems || !schema.items || typeof schema.items === 'boolean') {\n return false;\n }\n return isSelect(validator, schema.items, rootSchema, experimental_customMergeAllOf);\n}\n//# sourceMappingURL=isMultiSelect.js.map","import { ALL_OF_KEY, ANY_OF_KEY, CONST_KEY, DEFAULT_KEY, DEPENDENCIES_KEY, IF_KEY, ONE_OF_KEY, REF_KEY, } from \"../constants.js\";\nimport constIsAjvDataReference from \"../constIsAjvDataReference.js\";\nimport deepEquals from \"../deepEquals.js\";\nimport findSchemaDefinition from \"../findSchemaDefinition.js\";\nimport getDiscriminatorFieldFromSchema from \"../getDiscriminatorFieldFromSchema.js\";\nimport getPropertySchema from \"../getPropertySchema.js\";\nimport getSchemaType from \"../getSchemaType.js\";\nimport isConstant from \"../isConstant.js\";\nimport isFixedItems from \"../isFixedItems.js\";\nimport isObject from \"../isObject.js\";\nimport mergeDefaultsWithFormData from \"../mergeDefaultsWithFormData.js\";\nimport mergeObjects from \"../mergeObjects.js\";\nimport mergeSchemas from \"../mergeSchemas.js\";\nimport optionsList from \"../optionsList.js\";\nimport { getByPath } from \"../pathUtils.js\";\nimport getClosestMatchingOption from \"./getClosestMatchingOption.js\";\nimport isMultiSelect from \"./isMultiSelect.js\";\nimport isSelect from \"./isSelect.js\";\nimport retrieveSchema, { resolveDependencies } from \"./retrieveSchema.js\";\nconst PRIMITIVE_TYPES = ['string', 'number', 'integer', 'boolean', 'null'];\n/** Enum that indicates how `schema.additionalItems` should be handled by the `getInnerSchemaForArrayItem()` function.\n */\nexport var AdditionalItemsHandling;\n(function (AdditionalItemsHandling) {\n AdditionalItemsHandling[AdditionalItemsHandling[\"Ignore\"] = 0] = \"Ignore\";\n AdditionalItemsHandling[AdditionalItemsHandling[\"Invert\"] = 1] = \"Invert\";\n AdditionalItemsHandling[AdditionalItemsHandling[\"Fallback\"] = 2] = \"Fallback\";\n})(AdditionalItemsHandling || (AdditionalItemsHandling = {}));\n/** Given a `schema` will return an inner schema that for an array item. This is computed differently based on the\n * `additionalItems` enum and the value of `idx`. There are four possible returns:\n * 1. If `idx` is >= 0, then if `schema.items` is an array the `idx`th element of the array is returned if it is a valid\n * index and not a boolean, otherwise it falls through to 3.\n * 2. If `schema.items` is not an array AND truthy and not a boolean, then `schema.items` is returned since it actually\n * is a schema, otherwise it falls through to 3.\n * 3. If `additionalItems` is not `AdditionalItemsHandling.Ignore` and `schema.additionalItems` is an object, then\n * `schema.additionalItems` is returned since it actually is a schema, otherwise it falls through to 4.\n * 4. {} is returned representing an empty schema\n *\n * @param schema - The schema from which to get the particular item\n * @param [additionalItems=AdditionalItemsHandling.Ignore] - How do we want to handle additional items?\n * @param [idx=-1] - Index, if non-negative, will be used to return the idx-th element in a `schema.items` array\n * @returns - The best fit schema object from the `schema` given the `additionalItems` and `idx` modifiers\n */\nexport function getInnerSchemaForArrayItem(schema, additionalItems = AdditionalItemsHandling.Ignore, idx = -1) {\n if (idx >= 0) {\n if (Array.isArray(schema.items) && idx < schema.items.length) {\n const item = schema.items[idx];\n if (typeof item !== 'boolean') {\n return item;\n }\n }\n }\n else if (schema.items && !Array.isArray(schema.items) && typeof schema.items !== 'boolean') {\n return schema.items;\n }\n if (additionalItems !== AdditionalItemsHandling.Ignore && isObject(schema.additionalItems)) {\n return schema.additionalItems;\n }\n return {};\n}\n/** Determines whether `value` holds anything: a non-empty string or array, or an object with at least one own key.\n * Everything else — including numbers, booleans, `null` and `undefined` — has no content.\n *\n * @param value - The value to inspect\n * @returns - True if the value holds content, otherwise false\n */\nfunction hasContent(value) {\n if (typeof value === 'string' || Array.isArray(value)) {\n return value.length > 0;\n }\n if (typeof value === 'object' && value !== null) {\n return Object.keys(value).length > 0;\n }\n return false;\n}\n/** Checks if the given `schema` contains the `null` type along with another type AND if the `default` contained within\n * the schema is `null` AND the `computedDefault` is empty. If all of those conditions are true, then the `schema`'s\n * default should be `null` rather than `computedDefault`.\n *\n * @param schema - The schema to inspect\n * @param computedDefault - The computed default for the schema\n * @returns - Flag indicating whether a null should be returned instead of the computedDefault\n */\nexport function computeDefaultBasedOnSchemaTypeAndDefaults(schema, computedDefault) {\n const { default: schemaDefault, type } = schema;\n const shouldReturnNullAsDefault = Array.isArray(type) && type.includes('null') && !hasContent(computedDefault) && schemaDefault === null;\n return shouldReturnNullAsDefault ? null : computedDefault;\n}\n/** Either add `computedDefault` at `key` into `obj` or not add it based on its value, the value of\n * `includeUndefinedValues`, the value of `emptyObjectFields` and if its parent field is required. Generally undefined\n * `computedDefault` values are added only when `includeUndefinedValues` is either true/\"excludeObjectChildren\". If `\n * includeUndefinedValues` is false and `emptyObjectFields` is not \"skipDefaults\", then non-undefined and non-empty-object\n * values will be added based on certain conditions.\n *\n * @param acc - The object into which the computed default may be added\n * @param key - The key into the object at which the computed default may be added\n * @param computedDefault - The computed default value that maybe should be added to the obj\n * @param includeUndefinedValues - Optional flag, if true, cause undefined values to be added as defaults.\n * If \"excludeObjectChildren\", cause undefined values for this object and pass `includeUndefinedValues` as\n * false when computing defaults for any nested object properties. If \"allowEmptyObject\", prevents undefined\n * values in this object while allow the object itself to be empty and passing `includeUndefinedValues` as\n * false when computing defaults for any nested object properties.\n * @param isParentRequired - The optional boolean that indicates whether the parent field is required\n * @param requiredFields - The list of fields that are required\n * @param experimental_defaultFormStateBehavior - Optional configuration object, if provided, allows users to override\n * default form state behavior\n * @param isConst - Optional flag, if true, indicates that the schema has a const property defined, thus we should always return the computedDefault since it's coming from the const.\n * @param isNullType - The type of the schema is null\n */\nfunction maybeAddDefaultToObject(acc, key, computedDefault, includeUndefinedValues, isParentRequired, requiredFields = [], experimental_defaultFormStateBehavior = {}, isConst = false, isNullType = false) {\n const { emptyObjectFields = 'populateAllDefaults' } = experimental_defaultFormStateBehavior;\n if (includeUndefinedValues === true || isConst) {\n // If includeUndefinedValues is explicitly true\n // Or if the schema has a const property defined, then we should always return the computedDefault since it's coming from the const.\n acc[key] = computedDefault;\n }\n else if (includeUndefinedValues === 'excludeObjectChildren') {\n // Fix for Issue #4709: When in 'excludeObjectChildren' mode, don't set primitive fields to empty objects\n // Only add the computed default if it's not an empty object placeholder for a primitive field\n if ((isNullType && computedDefault !== undefined) ||\n !isObject(computedDefault) ||\n Object.keys(computedDefault).length > 0) {\n acc[key] = computedDefault;\n }\n // If computedDefault is an empty object {}, don't add it - let the field stay undefined\n }\n else if (emptyObjectFields !== 'skipDefaults') {\n // If isParentRequired is undefined, then we are at the root level of the schema so defer to the requiredness of\n // the field key itself in the `requiredField` list\n const isSelfOrParentRequired = isParentRequired === undefined ? requiredFields.includes(key) : isParentRequired;\n if (isObject(computedDefault)) {\n // If emptyObjectFields 'skipEmptyDefaults' store computedDefault if it's a non-empty object(e.g. not {})\n if (emptyObjectFields === 'skipEmptyDefaults') {\n if (Object.keys(computedDefault).length > 0) {\n acc[key] = computedDefault;\n }\n } // Else store computedDefault if it's a non-empty object(e.g. not {}) and satisfies certain conditions\n // Condition 1: If computedDefault is not empty or if the key is a required field\n // Condition 2: If the parent object is required or emptyObjectFields is not 'populateRequiredDefaults'\n else if ((Object.keys(computedDefault).length > 0 || requiredFields.includes(key)) &&\n (isSelfOrParentRequired || emptyObjectFields !== 'populateRequiredDefaults')) {\n acc[key] = computedDefault;\n }\n }\n else if (\n // Store computedDefault if it's a defined primitive (e.g., true) and satisfies certain conditions\n // Condition 1: computedDefault is not undefined\n // Condition 2: If emptyObjectFields is 'populateAllDefaults' or 'skipEmptyDefaults)\n // Or if isSelfOrParentRequired is 'true' and the key is a required field\n computedDefault !== undefined &&\n (emptyObjectFields === 'populateAllDefaults' ||\n emptyObjectFields === 'skipEmptyDefaults' ||\n (isSelfOrParentRequired && requiredFields.includes(key)))) {\n acc[key] = computedDefault;\n }\n }\n}\n/** Computes the defaults for the current `schema` given the `rawFormData` and `parentDefaults` if any. This drills into\n * each level of the schema, recursively, to fill out every level of defaults provided by the schema.\n *\n * @param validator - an implementation of the `ValidatorType` interface that will be used when necessary\n * @param rawSchema - The schema for which the default state is desired\n * @param computeDefaultsProps - Optional props for this function\n * @returns - The resulting `formData` with all the defaults provided\n */\nexport function computeDefaults(validator, rawSchema, computeDefaultsProps = {}) {\n const { parentDefaults, rawFormData, rootSchema = {}, includeUndefinedValues = false, _recurseList = [], experimental_defaultFormStateBehavior, experimental_customMergeAllOf, required, shouldMergeDefaultsIntoFormData = false, initialDefaultsGenerated, } = computeDefaultsProps;\n let formData = (isObject(rawFormData) ? rawFormData : {});\n const schema = isObject(rawSchema) ? rawSchema : {};\n // Compute the defaults recursively: give highest priority to deepest nodes unless nestedDefaultsPrecedence is ancestorWins.\n let defaults = parentDefaults;\n const preferParentDefaults = defaults && experimental_defaultFormStateBehavior?.nestedDefaultsPrecedence === 'ancestorWins';\n // If we get a new schema, then we need to recompute defaults again for the new schema found.\n let schemaToCompute = null;\n let experimental_dfsb_to_compute = experimental_defaultFormStateBehavior;\n let updatedRecurseList = _recurseList;\n if (schema[CONST_KEY] !== undefined &&\n experimental_defaultFormStateBehavior?.constAsDefaults !== 'never' &&\n !constIsAjvDataReference(schema)) {\n defaults = schema[CONST_KEY];\n }\n else if (isObject(defaults) &&\n isObject(schema.default) &&\n !schema[ANY_OF_KEY] &&\n !schema[ONE_OF_KEY] &&\n !schema[REF_KEY]) {\n // For object defaults, merge defaults by precedence setting.\n // Skip this for anyOf/oneOf/$ref schemas - they need special handling.\n if (preferParentDefaults) {\n // Use schema.default as the base and only override values that are defined in parent defaults.\n defaults = mergeObjects(schema.default, defaults);\n }\n else {\n // Only override parent defaults that are defined in schema.default.\n defaults = mergeObjects(defaults, schema.default);\n }\n }\n else if (DEFAULT_KEY in schema &&\n !preferParentDefaults &&\n !schema[ANY_OF_KEY] &&\n !schema[ONE_OF_KEY] &&\n !schema[REF_KEY]) {\n // If the schema has a default value and parentDefaults does not have precedence\n // And if the schema does not have anyOf or oneOf (since we need to merge the defaults with the formData)\n // Then we should use it as the default.\n defaults = schema.default;\n }\n else if (REF_KEY in schema) {\n const refName = schema[REF_KEY];\n // Use referenced schema defaults for this node.\n if (!_recurseList.includes(refName)) {\n updatedRecurseList = _recurseList.concat(refName);\n schemaToCompute = findSchemaDefinition(refName, rootSchema);\n }\n // If the referenced schema exists and parentDefaults is not set\n // Then set the defaults from the current schema for the referenced schema.\n // Only do this if rawFormData has no meaningful data - we don't want to override user's existing values.\n // Check for undefined OR empty object - rawFormData may be coerced to {} when not an object.\n const hasNoExistingData = rawFormData === undefined || (isObject(rawFormData) && Object.keys(rawFormData).length === 0);\n if (schemaToCompute && !defaults && hasNoExistingData) {\n defaults = schema.default;\n }\n // If shouldMergeDefaultsIntoFormData is true\n // And the schemaToCompute is set and the rawFormData is not an object\n // Then set the formData to the rawFormData\n if (shouldMergeDefaultsIntoFormData && schemaToCompute && !isObject(rawFormData)) {\n formData = rawFormData;\n }\n }\n else if (DEPENDENCIES_KEY in schema) {\n // Get the default if set from properties to ensure the dependencies conditions are resolved based on it\n const defaultFormData = {\n ...getDefaultBasedOnSchemaType(validator, schema, computeDefaultsProps, defaults),\n ...formData,\n };\n const resolvedSchema = resolveDependencies(validator, schema, rootSchema, false, [], defaultFormData, experimental_customMergeAllOf);\n [schemaToCompute] = resolvedSchema; // pick the first element from resolve dependencies\n }\n else if (isFixedItems(schema) && !preferParentDefaults) {\n // If the schema contains fixed items and parentDefaults does not have precedence\n // Then construct defaults from defaults of array items.\n defaults = schema.items.map((itemSchema, idx) => computeDefaults(validator, itemSchema, {\n rootSchema,\n includeUndefinedValues,\n _recurseList,\n experimental_defaultFormStateBehavior,\n experimental_customMergeAllOf,\n parentDefaults: Array.isArray(parentDefaults) ? parentDefaults[idx] : undefined,\n rawFormData: formData,\n required,\n shouldMergeDefaultsIntoFormData,\n }));\n }\n else if (ONE_OF_KEY in schema) {\n const { oneOf, ...remaining } = schema;\n if (oneOf.length === 0) {\n return undefined;\n }\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n const { type = 'null' } = remaining;\n if (!Array.isArray(type) &&\n PRIMITIVE_TYPES.includes(type) &&\n experimental_dfsb_to_compute?.constAsDefaults === 'skipOneOf') {\n // If we are in a oneOf of a primitive type, then we want to pass constAsDefaults as 'never' for the recursion\n experimental_dfsb_to_compute = {\n ...experimental_dfsb_to_compute,\n constAsDefaults: 'never',\n };\n }\n schemaToCompute = oneOf[getClosestMatchingOption(validator, rootSchema, rawFormData ?? schema.default, oneOf, 0, discriminator, experimental_customMergeAllOf)];\n schemaToCompute = mergeSchemas(remaining, schemaToCompute);\n }\n else if (ANY_OF_KEY in schema) {\n const { anyOf, ...remaining } = schema;\n if (anyOf.length === 0) {\n return undefined;\n }\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n schemaToCompute = anyOf[getClosestMatchingOption(validator, rootSchema, rawFormData ?? schema.default, anyOf, 0, discriminator, experimental_customMergeAllOf)];\n schemaToCompute = mergeSchemas(remaining, schemaToCompute);\n }\n if (schemaToCompute) {\n return computeDefaults(validator, schemaToCompute, {\n rootSchema,\n includeUndefinedValues,\n _recurseList: updatedRecurseList,\n experimental_defaultFormStateBehavior: experimental_dfsb_to_compute,\n experimental_customMergeAllOf,\n parentDefaults: defaults,\n rawFormData: rawFormData ?? formData,\n required,\n shouldMergeDefaultsIntoFormData,\n initialDefaultsGenerated,\n });\n }\n // No defaults defined for this node, fallback to generic typed ones.\n if (defaults === undefined) {\n defaults = schema.default;\n }\n const defaultBasedOnSchemaType = getDefaultBasedOnSchemaType(validator, schema, computeDefaultsProps, defaults);\n let defaultsWithFormData = defaultBasedOnSchemaType ?? defaults;\n // if shouldMergeDefaultsIntoFormData is true, then merge the defaults into the formData.\n if (shouldMergeDefaultsIntoFormData) {\n const { arrayMinItems = {} } = experimental_defaultFormStateBehavior || {};\n const { mergeExtraDefaults } = arrayMinItems;\n const matchingFormData = ensureFormDataMatchingSchema(validator, schema, rootSchema, rawFormData, experimental_defaultFormStateBehavior, experimental_customMergeAllOf);\n if (!isObject(rawFormData) || ALL_OF_KEY in schema) {\n // If the formData is not an object which means it's a primitive field, then we need to merge the defaults into the formData.\n // Or if the schema has allOf, we need to merge the defaults into the formData because we don't compute the defaults for allOf.\n defaultsWithFormData = mergeDefaultsWithFormData(defaultsWithFormData, matchingFormData, mergeExtraDefaults, true);\n }\n }\n return defaultsWithFormData;\n}\n/**\n * Ensure that the formData matches the given schema. If it's not matching in the case of a selectField, we change it to match the schema.\n *\n * @param validator - an implementation of the `ValidatorType` interface that will be used when necessary\n * @param schema - The schema for which the formData state is desired\n * @param rootSchema - The root schema, used to primarily to look up `$ref`s\n * @param formData - The current formData\n * @param [experimental_defaultFormStateBehavior] - Optional configuration object, if provided, allows users to override default form state behavior\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - valid formData that matches schema\n */\nexport function ensureFormDataMatchingSchema(validator, schema, rootSchema, formData, experimental_defaultFormStateBehavior, experimental_customMergeAllOf) {\n const shouldRetrieveAllOf = experimental_defaultFormStateBehavior?.allOf === 'populateDefaults' && ALL_OF_KEY in schema;\n const schemaToMatch = shouldRetrieveAllOf\n ? retrieveSchema(validator, schema, rootSchema, formData, experimental_customMergeAllOf)\n : schema;\n const isSelectField = !isConstant(schemaToMatch) &&\n isSelect(validator, schemaToMatch, rootSchema, experimental_customMergeAllOf);\n let validFormData = formData;\n if (isSelectField) {\n const getOptionsList = optionsList(schemaToMatch);\n const isValid = getOptionsList?.some((option) => deepEquals(option.value, formData));\n validFormData = isValid ? formData : undefined;\n }\n // Override the formData with the const if the constAsDefaults is set to always\n const constTakesPrecedence = schemaToMatch[CONST_KEY] && experimental_defaultFormStateBehavior?.constAsDefaults === 'always';\n if (constTakesPrecedence) {\n validFormData = schemaToMatch.const;\n }\n else if (isObject(validFormData) && isObject(schemaToMatch.properties)) {\n validFormData = Object.keys(schemaToMatch.properties).reduce((acc, key) => {\n const propertySchema = getPropertySchema(schemaToMatch, key);\n if (key in acc && (shouldRetrieveAllOf || (isObject(propertySchema) && ALL_OF_KEY in propertySchema))) {\n acc[key] = ensureFormDataMatchingSchema(validator, propertySchema, rootSchema, acc[key], experimental_defaultFormStateBehavior, experimental_customMergeAllOf);\n }\n return acc;\n }, { ...validFormData });\n }\n return validFormData;\n}\n/** Computes the default value for objects.\n *\n * @param validator - an implementation of the `ValidatorType` interface that will be used when necessary\n * @param rawSchema - The schema for which the default state is desired\n * @param computeDefaultsProps - Optional props for this function\n * @param defaults - Optional props for this function\n * @returns - The default value based on the schema type if they are defined for object or array schemas.\n */\nexport function getObjectDefaults(validator, rawSchema, { rawFormData, rootSchema = {}, includeUndefinedValues = false, _recurseList = [], experimental_defaultFormStateBehavior, experimental_customMergeAllOf, required, shouldMergeDefaultsIntoFormData, initialDefaultsGenerated, } = {}, defaults) {\n {\n const formData = (isObject(rawFormData) ? rawFormData : {});\n const schema = rawSchema;\n // Retrieve the schema:\n // - If schema contains `allOf` AND `experimental_defaultFormStateBehavior.allOf` is set to `populateDefaults`\n // - OR if schema contains an 'if' AND `emptyObjectFields` is not set to `skipEmptyDefaults`\n // This ensures we compute defaults correctly for schemas with these keywords.\n const shouldRetrieveSchema = (experimental_defaultFormStateBehavior?.allOf === 'populateDefaults' && ALL_OF_KEY in schema) ||\n (experimental_defaultFormStateBehavior?.emptyObjectFields !== 'skipEmptyDefaults' && IF_KEY in schema);\n const retrievedSchema = shouldRetrieveSchema\n ? retrieveSchema(validator, schema, rootSchema, formData, experimental_customMergeAllOf)\n : schema;\n const parentConst = retrievedSchema[CONST_KEY];\n const objectDefaults = Object.keys(retrievedSchema.properties || {}).reduce((acc, key) => {\n const propertySchema = getPropertySchema(retrievedSchema, key);\n // Check if the parent schema has a const property defined AND we are supporting const as defaults, then we\n // should always return the computedDefault since it's coming from the const.\n const hasParentConst = isObject(parentConst) && parentConst[key] !== undefined;\n const hasConst = ((isObject(propertySchema) && CONST_KEY in propertySchema) || hasParentConst) &&\n experimental_defaultFormStateBehavior?.constAsDefaults !== 'never' &&\n !constIsAjvDataReference(propertySchema);\n // Compute the defaults for this node, with the parent defaults we might\n // have from a previous run: defaults[key].\n const computedDefault = computeDefaults(validator, propertySchema, {\n rootSchema,\n _recurseList,\n experimental_defaultFormStateBehavior,\n experimental_customMergeAllOf,\n includeUndefinedValues: includeUndefinedValues === true,\n parentDefaults: getByPath(defaults, key),\n rawFormData: getByPath(formData, key),\n required: retrievedSchema.required?.includes(key),\n shouldMergeDefaultsIntoFormData,\n initialDefaultsGenerated,\n });\n maybeAddDefaultToObject(acc, key, computedDefault, includeUndefinedValues, required, retrievedSchema.required, experimental_defaultFormStateBehavior, hasConst, propertySchema?.type === 'null');\n return acc;\n }, {});\n if (retrievedSchema.additionalProperties && !initialDefaultsGenerated) {\n // as per spec additionalProperties may be either schema or boolean\n const additionalPropertiesSchema = isObject(retrievedSchema.additionalProperties)\n ? retrievedSchema.additionalProperties\n : {};\n const keys = new Set();\n const formDataRequired = [];\n Object.keys(formData)\n .filter((key) => !retrievedSchema.properties || !retrievedSchema.properties[key])\n .forEach((key) => {\n keys.add(key);\n formDataRequired.push(key);\n });\n // Only seed keys from schema defaults when formData has no additionalProperties of its own.\n // If the user already has data (e.g. after a key rename), injecting default keys would\n // re-add stale entries that no longer exist in formData.\n if (isObject(defaults) && formDataRequired.length === 0) {\n Object.keys(defaults)\n .filter((key) => !retrievedSchema.properties || !retrievedSchema.properties[key])\n .forEach((key) => keys.add(key));\n }\n keys.forEach((key) => {\n const computedDefault = computeDefaults(validator, additionalPropertiesSchema, {\n rootSchema,\n _recurseList,\n experimental_defaultFormStateBehavior,\n experimental_customMergeAllOf,\n includeUndefinedValues: includeUndefinedValues === true,\n parentDefaults: getByPath(defaults, key),\n rawFormData: getByPath(formData, key),\n required: retrievedSchema.required?.includes(key),\n shouldMergeDefaultsIntoFormData,\n initialDefaultsGenerated,\n });\n // Since these are additional properties we don't need to add the `experimental_defaultFormStateBehavior` prop\n maybeAddDefaultToObject(objectDefaults, key, computedDefault, includeUndefinedValues, required, formDataRequired);\n });\n }\n return computeDefaultBasedOnSchemaTypeAndDefaults(rawSchema, objectDefaults);\n }\n}\n/** Computes the default value for arrays.\n *\n * @param validator - an implementation of the `ValidatorType` interface that will be used when necessary\n * @param rawSchema - The schema for which the default state is desired\n * @param computeDefaultsProps - Optional props for this function\n * @param initialDefaults - Optional props for this function\n * @returns - The default value based on the schema type if they are defined for object or array schemas.\n */\nexport function getArrayDefaults(validator, rawSchema, { rawFormData, rootSchema = {}, _recurseList = [], experimental_defaultFormStateBehavior, experimental_customMergeAllOf, required, requiredAsRoot = false, shouldMergeDefaultsIntoFormData, initialDefaultsGenerated, } = {}, initialDefaults) {\n let defaults = initialDefaults;\n const schema = rawSchema;\n const arrayMinItemsStateBehavior = experimental_defaultFormStateBehavior?.arrayMinItems ?? {};\n const { populate: arrayMinItemsPopulate, mergeExtraDefaults: arrayMergeExtraDefaults } = arrayMinItemsStateBehavior;\n const neverPopulate = arrayMinItemsPopulate === 'never';\n const ignoreMinItemsFlagSet = arrayMinItemsPopulate === 'requiredOnly';\n const isPopulateAll = arrayMinItemsPopulate === 'all' || (!neverPopulate && !ignoreMinItemsFlagSet);\n const computeSkipPopulate = arrayMinItemsStateBehavior?.computeSkipPopulate ?? (() => false);\n const isSkipEmptyDefaults = experimental_defaultFormStateBehavior?.emptyObjectFields === 'skipEmptyDefaults';\n const emptyDefault = isSkipEmptyDefaults ? undefined : [];\n // Inject defaults into existing array defaults\n if (Array.isArray(defaults)) {\n defaults = defaults.map((item, idx) => {\n const schemaItem = getInnerSchemaForArrayItem(schema, AdditionalItemsHandling.Fallback, idx);\n const itemFormData = Array.isArray(rawFormData) ? rawFormData[idx] : undefined;\n return computeDefaults(validator, schemaItem, {\n rootSchema,\n _recurseList,\n experimental_defaultFormStateBehavior,\n experimental_customMergeAllOf,\n parentDefaults: item,\n rawFormData: itemFormData,\n required,\n shouldMergeDefaultsIntoFormData,\n initialDefaultsGenerated,\n });\n });\n }\n // Deeply inject defaults into already existing form data\n if (Array.isArray(rawFormData)) {\n const schemaItem = getInnerSchemaForArrayItem(schema);\n if (neverPopulate) {\n defaults = rawFormData;\n }\n else {\n const itemDefaults = rawFormData.map((item, idx) => computeDefaults(validator, schemaItem, {\n rootSchema,\n _recurseList,\n experimental_defaultFormStateBehavior,\n experimental_customMergeAllOf,\n rawFormData: item,\n parentDefaults: getByPath(defaults, idx),\n required,\n shouldMergeDefaultsIntoFormData,\n initialDefaultsGenerated,\n }));\n // If the populate 'requiredOnly' flag is set then we only merge and include extra defaults if they are required.\n // Or if populate 'all' is set we merge and include extra defaults.\n const mergeExtraDefaults = ((ignoreMinItemsFlagSet && required) || isPopulateAll) && arrayMergeExtraDefaults;\n defaults = mergeDefaultsWithFormData(defaults, itemDefaults, mergeExtraDefaults);\n }\n }\n const defaultsLength = Array.isArray(defaults) ? defaults.length : 0;\n if (neverPopulate) {\n if (shouldMergeDefaultsIntoFormData && !required) {\n // Optional arrays with no existing data should be omitted entirely rather than defaulted to `[]`.\n // Required arrays still fall through to `defaults ?? emptyDefault` below so that `[]` is surfaced,\n // letting the validator report `minItems` violations instead of a missing-required-property error.\n return defaults;\n }\n return defaults ?? emptyDefault;\n }\n if (ignoreMinItemsFlagSet && !required) {\n // If no form data exists or defaults are set leave the field empty/non-existent, otherwise\n // return form data/defaults\n return defaults || undefined;\n }\n let arrayDefault;\n if (!schema.minItems ||\n isMultiSelect(validator, schema, rootSchema, experimental_customMergeAllOf) ||\n computeSkipPopulate(validator, schema, rootSchema) ||\n schema.minItems <= defaultsLength) {\n // we don't want undefined defaults unless it is both not required or not required as root\n arrayDefault = defaults || (!required && !requiredAsRoot) ? defaults : emptyDefault;\n }\n else {\n const defaultEntries = defaults || [];\n const fillerSchema = getInnerSchemaForArrayItem(schema, AdditionalItemsHandling.Invert);\n const fillerDefault = fillerSchema.default;\n // Calculate filler entries for remaining items (minItems - existing raw data/defaults)\n const fillerEntries = Array.from({ length: schema.minItems - defaultsLength }, () => computeDefaults(validator, fillerSchema, {\n parentDefaults: fillerDefault,\n rootSchema,\n _recurseList,\n experimental_defaultFormStateBehavior,\n experimental_customMergeAllOf,\n required,\n shouldMergeDefaultsIntoFormData,\n }));\n // then fill up the rest with either the item default or empty, up to minItems\n arrayDefault = defaultEntries.concat(fillerEntries);\n }\n return computeDefaultBasedOnSchemaTypeAndDefaults(rawSchema, arrayDefault);\n}\n/** Computes the default value based on the schema type.\n *\n * @param validator - an implementation of the `ValidatorType` interface that will be used when necessary\n * @param rawSchema - The schema for which the default state is desired\n * @param computeDefaultsProps - Optional props for this function\n * @param defaults - Optional props for this function\n * @returns - The default value based on the schema type if they are defined for object or array schemas.\n */\nexport function getDefaultBasedOnSchemaType(validator, rawSchema, computeDefaultsProps = {}, defaults) {\n switch (getSchemaType(rawSchema)) {\n // We need to recurse for object schema inner default values.\n case 'object': {\n return getObjectDefaults(validator, rawSchema, computeDefaultsProps, defaults);\n }\n case 'array': {\n return getArrayDefaults(validator, rawSchema, computeDefaultsProps, defaults);\n }\n case 'boolean': {\n // A required boolean with no explicit default gets false — it must be\n // present in the submitted data, and false is the natural zero-value.\n if (computeDefaultsProps.required && defaults === undefined) {\n return false;\n }\n return undefined;\n }\n default:\n return undefined;\n }\n}\n/** Returns the superset of `formData` that includes the given set updated to include any missing fields that have\n * computed to have defaults provided in the `schema`.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param theSchema - The schema for which the default state is desired\n * @param [formData] - The current formData, if any, onto which to provide any missing defaults\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @param [includeUndefinedValues=false] - Optional flag, if true, cause undefined values to be added as defaults.\n * If \"excludeObjectChildren\", cause undefined values for this object and pass `includeUndefinedValues` as\n * false when computing defaults for any nested object properties.\n * @param [experimental_defaultFormStateBehavior] Optional configuration object, if provided, allows users to override default form state behavior\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @param initialDefaultsGenerated - Optional flag, indicates whether or not initial defaults have been generated\n * @returns - The resulting `formData` with all the defaults provided\n */\nexport default function getDefaultFormState(validator, theSchema, formData, rootSchema, includeUndefinedValues = false, experimental_defaultFormStateBehavior, experimental_customMergeAllOf, initialDefaultsGenerated) {\n if (!isObject(theSchema)) {\n throw new Error(`Invalid schema: ${theSchema}`);\n }\n const schema = retrieveSchema(validator, theSchema, rootSchema, formData, experimental_customMergeAllOf);\n // Get the computed defaults with 'shouldMergeDefaultsIntoFormData' set to true to merge defaults into formData.\n // This is done when for example the value from formData does not exist in the schema 'enum' property, in such\n // cases we take the value from the defaults because the value from the formData is not valid.\n const defaults = computeDefaults(validator, schema, {\n rootSchema,\n includeUndefinedValues,\n experimental_defaultFormStateBehavior,\n experimental_customMergeAllOf,\n rawFormData: formData,\n shouldMergeDefaultsIntoFormData: true,\n initialDefaultsGenerated,\n requiredAsRoot: true,\n });\n if (schema.type !== 'object' && isObject(schema.default)) {\n return {\n ...defaults,\n ...formData,\n };\n }\n // If the formData is an object or an array, add additional properties from formData and override formData with\n // defaults since the defaults are already merged with formData.\n if (isObject(formData) || Array.isArray(formData)) {\n const { mergeDefaultsIntoFormData } = experimental_defaultFormStateBehavior || {};\n const defaultSupercedesUndefined = mergeDefaultsIntoFormData === 'useDefaultIfFormDataUndefined';\n const matchingFormData = ensureFormDataMatchingSchema(validator, schema, rootSchema ?? schema, formData, experimental_defaultFormStateBehavior, experimental_customMergeAllOf);\n const result = mergeDefaultsWithFormData(defaults, matchingFormData, true, // set to true to add any additional default array entries.\n defaultSupercedesUndefined, true);\n return result;\n }\n return defaults;\n}\n//# sourceMappingURL=getDefaultFormState.js.map","import getUiOptions from \"./getUiOptions.js\";\n/** Checks to see if the `uiSchema` contains the `widget` field and that the widget is not `hidden`\n *\n * @param uiSchema - The UI Schema from which to detect if it is customized\n * @returns - True if the `uiSchema` describes a custom widget, false otherwise\n */\nexport default function isCustomWidget(uiSchema = {}) {\n return (\n // TODO: Remove the `&& uiSchema['ui:widget'] !== 'hidden'` once we support hidden widgets for arrays.\n // https://rjsf-team.github.io/react-jsonschema-form/docs/usage/widgets/#hidden-widgets\n 'widget' in getUiOptions(uiSchema) && getUiOptions(uiSchema).widget !== 'hidden');\n}\n//# sourceMappingURL=isCustomWidget.js.map","import { UI_WIDGET_KEY } from \"../constants.js\";\nimport retrieveSchema from \"./retrieveSchema.js\";\n/** Checks to see if the `schema` and `uiSchema` combination represents an array of files\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param schema - The schema for which check for array of files flag is desired\n * @param [uiSchema={}] - The UI schema from which to check the widget\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - True if schema/uiSchema contains an array of files, otherwise false\n */\nexport default function isFilesArray(validator, schema, uiSchema = {}, rootSchema, experimental_customMergeAllOf) {\n if (uiSchema[UI_WIDGET_KEY] === 'files') {\n return true;\n }\n if (schema.items) {\n const itemsSchema = retrieveSchema(validator, schema.items, rootSchema, undefined, experimental_customMergeAllOf);\n return itemsSchema.type === 'string' && itemsSchema.format === 'data-url';\n }\n return false;\n}\n//# sourceMappingURL=isFilesArray.js.map","import { ADDITIONAL_PROPERTY_FLAG, UI_FIELD_KEY, UI_WIDGET_KEY } from \"../constants.js\";\nimport getSchemaType from \"../getSchemaType.js\";\nimport getUiOptions from \"../getUiOptions.js\";\nimport isCustomWidget from \"../isCustomWidget.js\";\nimport isFilesArray from \"./isFilesArray.js\";\nimport isMultiSelect from \"./isMultiSelect.js\";\n/** Determines whether the combination of `schema` and `uiSchema` properties indicates that the label for the `schema`\n * should be displayed in a UI.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param schema - The schema for which the display label flag is desired\n * @param [uiSchema={}] - The UI schema from which to derive potentially displayable information\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @param [globalOptions={}] - The optional Global UI Schema from which to get any fallback `xxx` options\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - True if the label should be displayed or false if it should not\n */\nexport default function getDisplayLabel(validator, schema, uiSchema = {}, rootSchema, globalOptions, experimental_customMergeAllOf) {\n const uiOptions = getUiOptions(uiSchema, globalOptions);\n const { label = true } = uiOptions;\n let displayLabel = Boolean(label);\n if (displayLabel) {\n const schemaType = getSchemaType(schema);\n const addedByAdditionalProperty = Boolean(schema[ADDITIONAL_PROPERTY_FLAG]);\n if (schemaType === 'array') {\n displayLabel =\n addedByAdditionalProperty ||\n isMultiSelect(validator, schema, rootSchema, experimental_customMergeAllOf) ||\n isFilesArray(validator, schema, uiSchema, rootSchema, experimental_customMergeAllOf) ||\n isCustomWidget(uiSchema);\n }\n if (schemaType === 'object') {\n displayLabel = addedByAdditionalProperty;\n }\n if (schemaType === 'boolean' && uiSchema && !uiSchema[UI_WIDGET_KEY]) {\n displayLabel = false;\n }\n if (uiSchema?.[UI_FIELD_KEY]) {\n displayLabel = false;\n }\n }\n return displayLabel;\n}\n//# sourceMappingURL=getDisplayLabel.js.map","import { NAME_KEY, RJSF_ADDITIONAL_PROPERTIES_FLAG } from \"../constants.js\";\nimport findSchemaDefinition from \"../findSchemaDefinition.js\";\nimport getDiscriminatorFieldFromSchema from \"../getDiscriminatorFieldFromSchema.js\";\nimport getSchemaType from \"../getSchemaType.js\";\nimport isObject from \"../isObject.js\";\nimport { getByPath, hasByPath, setByPath, toPath } from \"../pathUtils.js\";\nimport getClosestMatchingOption from \"./getClosestMatchingOption.js\";\nimport isSelect from \"./isSelect.js\";\nimport { relaxOptionsForScoring, resolveAllReferences } from \"./retrieveSchema.js\";\nimport shallowAllOfMerge from \"./shallowAllOfMerge.js\";\n/** Returns the `formData` with only the elements specified in the `fields` list\n *\n * @param formData - The data for the `Form`\n * @param fields - The fields to keep while filtering\n * @deprecated - To be removed as an exported `@rjsf/utils` function in a future release\n */\nexport function getUsedFormData(formData, fields) {\n // For the case of a single input form\n if (fields.length === 0 && typeof formData !== 'object') {\n return formData;\n }\n // Keep only the values at the given field paths; `fields` contains either dotted strings or the\n // deep path lists produced by `getFieldNames()`\n const data = {};\n fields.forEach((field) => {\n const path = Array.isArray(field) ? field : toPath(field);\n if (hasByPath(formData, path)) {\n setByPath(data, path, getByPath(formData, path));\n }\n });\n if (Array.isArray(formData)) {\n return Object.keys(data).map((key) => data[key]);\n }\n return data;\n}\n/** Returns the list of field names from inspecting the `pathSchema` as well as using the `formData`\n *\n * @param pathSchema - The `PathSchema` object for the form\n * @param [formData] - The form data to use while checking for empty objects/arrays\n * @deprecated - To be removed as an exported `@rjsf/utils` function in a future release\n */\n// oxlint-disable-next-line typescript/no-deprecated\nexport function getFieldNames(pathSchema, formData) {\n const formValueHasData = (value, isLeaf) => {\n if (typeof value !== 'object' || value === null) {\n return true;\n }\n const isEmptyValue = Array.isArray(value) ? value.length === 0 : Object.keys(value).length === 0;\n return isEmptyValue || isLeaf;\n };\n const getAllPaths = (_obj, acc = [], paths = [[]]) => {\n const objKeys = Object.keys(_obj);\n objKeys.forEach((key) => {\n const data = _obj[key];\n if (typeof data === 'object') {\n const newPaths = paths.map((path) => [...path, key]);\n // If an object is marked with additionalProperties, all its keys are valid\n if (data[RJSF_ADDITIONAL_PROPERTIES_FLAG] && data[NAME_KEY] !== '') {\n acc.push(data[NAME_KEY]);\n }\n else {\n getAllPaths(data, acc, newPaths);\n }\n }\n else if (key === NAME_KEY && data !== '') {\n paths.forEach((path) => {\n const formValue = getByPath(formData, path);\n const isLeaf = objKeys.length === 1;\n // adds path to fieldNames if it points to a value or an empty object/array which is not a leaf\n if (formValueHasData(formValue, isLeaf) ||\n (Array.isArray(formValue) && formValue.every((val) => formValueHasData(val, isLeaf)))) {\n acc.push(path);\n }\n });\n }\n });\n return acc;\n };\n return getAllPaths(pathSchema);\n}\n/** Returns true when a form value is considered empty: null/undefined/'', an empty array, or a plain\n * object whose every own value is itself empty (recursive). Scalars like `0` and `false` are not empty.\n *\n * @param value - The value to check\n * @returns - True if the value is considered empty, false otherwise\n */\nexport function isValueEmpty(value) {\n if (value == null || value === '') {\n return true;\n }\n if (Array.isArray(value)) {\n return value.length === 0;\n }\n if (isObject(value)) {\n return Object.values(value).every(isValueEmpty);\n }\n return false;\n}\n/** Merges an `allOf` schema into a single flat schema, delegating to `experimental_customMergeAllOf`\n * when provided or falling back to the module-level `shallowAllOfMerge` otherwise.\n *\n * @param schema - A schema containing an `allOf` array to be merged\n * @param [experimental_customMergeAllOf] - Optional custom merge function; see `Form` documentation\n * @returns - The merged schema with `allOf` resolved into a single schema object\n */\nfunction doMergeAllOf(schema, experimental_customMergeAllOf) {\n return experimental_customMergeAllOf ? experimental_customMergeAllOf(schema) : shallowAllOfMerge(schema);\n}\n/** A recursive, schema-driven filter that walks `schema` and `formData` in lockstep, keeping only\n * values that are described by the schema. Handles `$ref`, `allOf`, `anyOf`, `oneOf`, `if/then/else`,\n * `patternProperties`, `additionalProperties`, `propertyNames`, and `dependencies`. Optional object\n * properties whose schema-filtered content is entirely empty (per `isValueEmpty`) are pruned; required\n * properties and scalar values are always kept when schema-defined.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param schema - The schema for which to filter the formData\n * @param [rootSchema] - The root schema, used primarily to look up `$ref`s\n * @param [formData] - The data for the `Form`\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The `formData` after omitting extra data, or `undefined` when `formData` is undefined\n */\nexport default function omitExtraData(validator, schema, rootSchema = {}, formData, experimental_customMergeAllOf) {\n /** Type predicate that narrows `value` to `GenericObjectType` — true when `value` is a plain,\n * non-array object (i.e. a JSON object). Used to distinguish JSON objects from arrays and primitives.\n *\n * @param value - The value to check\n * @returns - True if `value` is a plain non-array object\n */\n function isObjectValue(value) {\n return isObject(value);\n }\n /** Type predicate that narrows a `S | boolean` schema definition to `S` — true when `schemaDef` is\n * a schema object rather than a JSON Schema boolean shorthand (`true` meaning allow-all, `false`\n * meaning deny-all).\n *\n * @param schemaDef - The schema definition to check\n * @returns - True if `schemaDef` is a schema object\n */\n function isSchemaObj(schemaDef) {\n return isObject(schemaDef);\n }\n /** Copies schema-defined properties from `source` into `target`, applying `omit` recursively for\n * each value. Handles `properties`, `patternProperties`, and `additionalProperties`.\n * Optional object-valued properties are pruned when every key in the filtered result is both\n * optional (per the inner schema's `required`) and empty (per `isValueEmpty`). This preserves\n * optional objects whose required children have empty values, while still dropping objects whose\n * schema-filtered content is entirely optional-and-empty. Required properties and scalar values\n * are always written when defined. Always returns `target` — pruning of the object itself is\n * the caller's responsibility.\n *\n * @param childSchema - The object schema describing which properties are allowed\n * @param source - The source form data object to read values from\n * @param target - The accumulator object to write filtered values into\n * @returns - `target` after all schema-defined properties have been processed\n */\n function handleObject(childSchema, source, target) {\n const { properties, additionalProperties, patternProperties } = childSchema;\n const requiredSet = new Set(childSchema.required ?? []);\n /** Recursively omits extra data from `value` via `omit`, then conditionally writes the result to\n * `target[key]`. Optional object-valued properties are dropped when every key in the filtered\n * result is both optional (within the inner schema's `required` list) and has an empty value per\n * `isValueEmpty`. This per-key approach prevents required-but-empty child properties — kept by\n * inner `setProperty` calls — from inadvertently causing the parent optional object to be dropped,\n * while still pruning optional objects whose schema-filtered content is entirely empty. Vacuously\n * true for `{}`, so empty results are always dropped. Scalar and array values are not pruned here.\n *\n * @param key - The property key to write on `target`\n * @param schemaDef - The schema (or boolean shorthand) that governs the value at `key`\n * @param value - The raw source value to filter\n * @param [required=false] - When true the property is never pruned regardless of its filtered value\n */\n function setProperty(key, schemaDef, value, required = false) {\n const v = omit(schemaDef, value, target[key]);\n if (!required && isObject(v)) {\n // Resolve $ref so we can inspect the effective required list for the inner schema.\n let sd = isSchemaObj(schemaDef) ? schemaDef : {};\n if (sd.$ref !== undefined) {\n sd = findSchemaDefinition(sd.$ref, rootSchema);\n }\n const innerRequired = new Set(sd.required ?? []);\n // Drop this optional object when every key in v is both optional in the inner schema\n // and has an empty value. Vacuously true for {} so empty objects are always dropped.\n const shouldDrop = Object.entries(v).every(([k, val]) => !innerRequired.has(k) && isValueEmpty(val));\n if (shouldDrop) {\n return;\n }\n }\n if (v !== undefined) {\n // oxlint-disable-next-line no-param-reassign\n target[key] = v;\n }\n }\n if (properties !== undefined) {\n for (const [key, schemaDef] of Object.entries(properties)) {\n setProperty(key, schemaDef, source[key], requiredSet.has(key));\n }\n }\n // Track keys not handled by properties/patterns so additionalProperties can pick them up.\n let patternPropertiesRest;\n if (patternProperties !== undefined) {\n patternPropertiesRest = [];\n const patterns = Object.entries(patternProperties).map(([pattern, schemaDef]) => [\n new RegExp(pattern),\n schemaDef,\n ]);\n const knownProperties = new Set(Object.keys(properties ?? {}));\n for (const [key, value] of Object.entries(source)) {\n if (!knownProperties.has(key)) {\n const matched = patterns.find(([re]) => re.test(key));\n if (matched === undefined) {\n patternPropertiesRest.push(key);\n }\n else {\n setProperty(key, matched[1], value);\n }\n }\n }\n }\n // JSON Schema spec: absent additionalProperties defaults to true (allow all extra keys). Here\n // we treat it as false so omitExtraData never inadvertently passes through undescribed keys.\n if (additionalProperties !== undefined && additionalProperties !== false) {\n const addlSchema = additionalProperties;\n if (patternPropertiesRest !== undefined) {\n for (const key of patternPropertiesRest) {\n setProperty(key, addlSchema, source[key]);\n }\n }\n else {\n const knownProperties = new Set(Object.keys(properties ?? {}));\n for (const [key, value] of Object.entries(source)) {\n if (!knownProperties.has(key)) {\n setProperty(key, addlSchema, value);\n }\n }\n }\n }\n return target;\n }\n /** Filters array elements from `source` into `target` according to `schema.items` and\n * `schema.additionalItems`. Only called when `items` is defined (guarded in `omit`). Uses index\n * assignment (not push) so a pre-populated `target` from a prior branch is overwritten rather than\n * appended to, preventing item duplication. For tuple schemas (`items` is an array) elements up to\n * `min(items.length, source.length)` are filtered by their per-index schema; elements beyond the\n * tuple are covered by `additionalItems` when present, or the target is truncated when absent.\n * For list schemas (`items` is a single schema) every source element is filtered and `target.length`\n * is set to `source.length`.\n *\n * @param childSchema - The array schema describing `items` and optionally `additionalItems`\n * @param source - The source array to read elements from\n * @param target - The accumulator array to write filtered elements into\n * @returns - `target` after all applicable source elements have been written\n */\n function handleArray(childSchema, source, target) {\n const { items, additionalItems } = childSchema;\n if (Array.isArray(items)) {\n const tupleLength = Math.min(items.length, source.length);\n let i = 0;\n for (; i < tupleLength; i += 1) {\n // oxlint-disable-next-line no-param-reassign\n target[i] = omit(items[i], source[i]);\n }\n // Without additionalItems, truncate at the tuple boundary to drop any pre-existing items.\n if (!additionalItems) {\n // oxlint-disable-next-line no-param-reassign\n target.length = tupleLength;\n return target;\n }\n for (; i < source.length; i += 1) {\n // oxlint-disable-next-line no-param-reassign\n target[i] = omit(additionalItems, source[i]);\n }\n }\n else {\n for (let i = 0; i < source.length; i += 1) {\n // oxlint-disable-next-line no-param-reassign\n target[i] = omit(items, source[i]);\n }\n }\n // Truncate any pre-existing items beyond the source length.\n // oxlint-disable-next-line no-param-reassign\n target.length = source.length;\n return target;\n }\n /** Applies the `if/then/else` conditional keywords from `schema` to `target`. When `schema.if` is\n * absent the original `target` is returned unchanged. Otherwise the condition is evaluated — using\n * `validator.isValid` for schema conditions or the boolean value directly — and the matching branch\n * (`then` or `else`) is applied via `omit`. When the selected branch is absent, `target` is returned\n * unchanged.\n *\n * @param childSchema - The schema potentially containing `if`, `then`, and `else` keywords\n * @param source - The current form data value, passed to `validator.isValid` and the branch `omit`\n * @param target - The already-filtered value to merge the branch result into\n * @returns - The result of applying the matched branch, or `target` when no branch applies\n */\n function handleConditions(childSchema, source, target) {\n const { if: condition, then, else: otherwise } = childSchema;\n if (condition === undefined) {\n return target;\n }\n // validator.isValid signature: (schema, formData, rootSchema)\n const isThenBranch = isSchemaObj(condition)\n ? validator.isValid(condition, source, rootSchema)\n : condition;\n const branch = isThenBranch ? then : otherwise;\n return branch === undefined ? target : omit(branch, source, target, false);\n }\n /** Applies the best-matching `oneOf` option to `source`, merging the result into `target`. When\n * `oneOf` is not an array or the schema represents a select widget (enum-driven), `target` is\n * returned unchanged. `additionalProperties: false` is relaxed on each option before scoring so that\n * `getClosestMatchingOption` can validate freely, but the original option schema is used for the\n * actual `omit` call.\n *\n * @param oneOf - The `oneOf` array from the schema, or `undefined`\n * @param childSchema - The parent schema containing the `oneOf` keyword\n * @param source - The current form data value used to score each option\n * @param target - The already-filtered value to merge the winning option's result into\n * @returns - The result of applying the best-matching option, or `target` when no matching applies\n */\n function handleOneOf(oneOf, childSchema, source, target) {\n if (!Array.isArray(oneOf) || isSelect(validator, childSchema, rootSchema, experimental_customMergeAllOf)) {\n return target;\n }\n // Resolve $refs and relax additionalProperties:false → true in one pass for scoring only.\n // The unrelaxed resolved schema is re-derived for the winning option so that omit() still\n // respects additionalProperties:false during filtering.\n const scoringOptions = relaxOptionsForScoring(oneOf, true, rootSchema);\n const bestIndex = getClosestMatchingOption(validator, rootSchema, source, scoringOptions, 0, getDiscriminatorFieldFromSchema(childSchema), experimental_customMergeAllOf);\n const winning = oneOf[bestIndex];\n // For object options, re-resolve without relaxation so additionalProperties:false is respected.\n // For boolean options, scoringOptions already holds the converted schema (true→{}, false→{not:{}}).\n const resolved = isObject(winning)\n ? resolveAllReferences(winning, rootSchema, [])\n : scoringOptions[bestIndex];\n return omit(resolved, source, target, false);\n }\n /** Applies `anyOf` branches from `schema` to `source`, merging results into `target`. When `anyOf`\n * is absent or not an array, `target` is returned unchanged. For undefined or empty sources (so that\n * defaults can flow through all branches) every branch is applied in sequence. For non-empty sources\n * the best-matching branch is selected via `handleOneOf`.\n *\n * @param childSchema - The schema potentially containing an `anyOf` keyword\n * @param source - The current form data value; empty or undefined triggers all-branch application\n * @param target - The already-filtered value to merge branch results into\n * @returns - The result after applying the relevant `anyOf` branch(es), or `target` when inapplicable\n */\n function handleAnyOf(childSchema, source, target) {\n const { anyOf } = childSchema;\n if (!Array.isArray(anyOf)) {\n return target;\n }\n // For undefined or empty collections, apply every branch so defaults flow through.\n if (source === undefined ||\n (Array.isArray(source) && source.length === 0) ||\n (isObject(source) && Object.keys(source).length === 0)) {\n let result = target;\n for (const branch of anyOf) {\n result = omit(branch, source, result, false);\n }\n return result;\n }\n return handleOneOf(anyOf, childSchema, source, target);\n }\n /** Applies schema-based `dependencies` from `schema` to `source`, merging each active dependency's\n * schema into `target` via `omit`. Property dependencies (plain string arrays) are skipped — only\n * schema dependencies are processed. A dependency is considered active when its trigger key is\n * present on `source`.\n *\n * @param childSchema - The schema potentially containing a `dependencies` keyword\n * @param source - The current form data value; must be a plain object for dependencies to apply\n * @param target - The already-filtered value to merge dependency results into\n * @returns - The result after applying all active schema dependencies, or `target` when inapplicable\n */\n function handleDependencies(childSchema, source, target) {\n const { dependencies } = childSchema;\n if (dependencies === undefined || !isObjectValue(source)) {\n return target;\n }\n let result = target;\n for (const [key, deps] of Object.entries(dependencies)) {\n // Skip property dependencies (string arrays); only process schema dependencies.\n if (key in source && !Array.isArray(deps)) {\n result = omit(deps, source, result, false);\n }\n }\n return result;\n }\n /** Core recursive filter. Resolves `$ref`s, merges `allOf`, then delegates to the type-specific\n * handlers (`handleObject`, `handleArray`) and keyword handlers (`handleAnyOf`, `handleOneOf`,\n * `handleConditions`, `handleDependencies`). Returns `undefined` when `source` is undefined or\n * `schemaDef` is `false`; when `schemaDef` is `true` or empty returns `target ?? source` (when\n * `useSourceAsFallback` is true) or `target` (when false) to avoid aliasing `source` as the\n * accumulator across multiple compositional branches.\n *\n * @param schemaDef - The schema (or boolean shorthand) to filter `source` against\n * @param source - The raw form data value to filter\n * @param [target] - An optional accumulator carrying results from prior oneOf/anyOf processing\n * @param [useSourceAsFallback=true] - When false a permissive schema (`true`/`{}`) returns `target`\n * rather than `source`, preventing compositional branches from aliasing the accumulator to `source`\n * @returns - The filtered value, or `undefined` when the schema rejects the value\n */\n function omit(schemaDef, source, target, useSourceAsFallback = true) {\n if (source === undefined || schemaDef === false) {\n return undefined;\n }\n if (schemaDef === true || !schemaDef || Object.keys(schemaDef).length === 0) {\n return target ?? (useSourceAsFallback ? source : undefined);\n }\n let localSchema = schemaDef;\n const { $ref: ref, allOf } = localSchema;\n if (ref !== undefined) {\n return omit(findSchemaDefinition(ref, rootSchema), source, target, useSourceAsFallback);\n }\n if (allOf) {\n localSchema = doMergeAllOf(localSchema, experimental_customMergeAllOf);\n // Schemas whose allOf entries contain if/then/else keywords may not fully merge: the merger\n // can only hoist one if/then/else triple to the parent level, so additional entries stay in\n // allOf. Process any that remain so their conditional properties are not silently dropped.\n // See: https://github.com/rjsf-team/react-jsonschema-form/issues/5142\n const remainingAllOf = localSchema.allOf;\n if (remainingAllOf) {\n for (let i = 0; i < remainingAllOf.length; i++) {\n // oxlint-disable-next-line no-param-reassign\n target = omit(remainingAllOf[i], source, target, false);\n }\n }\n }\n let filtered = handleAnyOf(localSchema, source, handleOneOf(localSchema.oneOf, localSchema, source, target));\n const type = getSchemaType(localSchema);\n if (type === 'object') {\n if (!isObjectValue(source)) {\n return undefined;\n }\n filtered = handleObject(localSchema, source, isObjectValue(filtered) ? filtered : {});\n }\n else if (type === 'array') {\n if (!Array.isArray(source)) {\n return undefined;\n }\n if (localSchema.items !== undefined) {\n filtered = handleArray(localSchema, source, Array.isArray(filtered) ? filtered : []);\n }\n }\n // Post-prune after conditions (oneOf/anyOf/if-then) but BEFORE dependencies: keys added by\n // dependency sub-schemas are legitimate extensions of the allowed property set and must not be\n // pruned. Keys added only by winning conditional branches are still removed here so the result\n // honours additionalProperties:false.\n const afterConditions = handleConditions(localSchema, source, filtered);\n if (localSchema.additionalProperties === false && isObjectValue(afterConditions)) {\n const knownKeys = new Set(Object.keys(localSchema.properties ?? {}));\n const patterns = localSchema.patternProperties\n ? Object.keys(localSchema.patternProperties).map((p) => new RegExp(p))\n : [];\n for (const key of Object.keys(afterConditions)) {\n if (!knownKeys.has(key) && !patterns.some((re) => re.test(key))) {\n // oxlint-disable-next-line no-param-reassign\n delete afterConditions[key];\n }\n }\n }\n const result = handleDependencies(localSchema, source, afterConditions);\n return result ?? (useSourceAsFallback ? source : undefined);\n }\n return omit(schema, formData);\n}\n//# sourceMappingURL=omitExtraData.js.map","import { CONST_KEY, DEFAULT_KEY, PROPERTIES_KEY, REF_KEY } from \"../constants.js\";\nimport deepEquals from \"../deepEquals.js\";\nimport getPropertySchema from \"../getPropertySchema.js\";\nimport { getByPath, hasByPath } from \"../pathUtils.js\";\nimport retrieveSchema from \"./retrieveSchema.js\";\nconst NO_VALUE = Symbol('no Value');\nfunction enumValuesForSchema(schema) {\n if (Array.isArray(schema.enum)) {\n return schema.enum;\n }\n const options = (schema.oneOf || schema.anyOf);\n if (!Array.isArray(options)) {\n return undefined;\n }\n const values = options\n .map((option) => {\n if (CONST_KEY in option) {\n return option[CONST_KEY];\n }\n return Array.isArray(option.enum) && option.enum.length === 1 ? option.enum[0] : NO_VALUE;\n })\n .filter((value) => value !== NO_VALUE);\n return values.length > 0 ? values : undefined;\n}\nfunction replacementForInvalidEnumValue(schema, formValue) {\n const enumValues = enumValuesForSchema(schema);\n if (!enumValues || enumValues.some((value) => deepEquals(value, formValue))) {\n return NO_VALUE;\n }\n const defaultValue = getByPath(schema, DEFAULT_KEY, NO_VALUE);\n if (defaultValue !== NO_VALUE && enumValues.some((value) => deepEquals(value, defaultValue))) {\n return defaultValue;\n }\n return enumValues.length === 1 ? enumValues[0] : undefined;\n}\n/** Sanitize the `data` associated with the `oldSchema` so it is considered appropriate for the `newSchema`. If the new\n * schema does not contain any properties, then `undefined` is returned to clear all the form data. Due to the nature\n * of schemas, this sanitization happens recursively for nested objects of data. Also, any properties in the old schema\n * that are non-existent in the new schema are set to `undefined`. The data sanitization process has the following flow:\n *\n * - If the new schema is an object that contains a `properties` object then:\n * - Create a `removeOldSchemaData` object, setting each key in the `oldSchema.properties` having `data` to undefined\n * - Create an empty `nestedData` object for use in the key filtering below:\n * - Iterate over each key in the `newSchema.properties` as follows:\n * - Get the `formValue` of the key from the `data`\n * - Get the `oldKeySchema` and `newKeyedSchema` for the key, defaulting to `{}` when it doesn't exist\n * - Retrieve the schema for any refs within each `oldKeySchema` and/or `newKeySchema`\n * - Get the types of the old and new keyed schemas and if the old doesn't exist or the old & new are the same then:\n * - If `removeOldSchemaData` has an entry for the key, delete it since the new schema has the same property\n * - If type of the key in the new schema is `object`:\n * - Store the value from the recursive `sanitizeDataForNewSchema` call in `nestedData[key]`\n * - Otherwise, check for default or const values:\n * - Get the old and new `default` values from the schema and check:\n * - If the new `default` value does not match the form value:\n * - If the key is new and its form value is undefined, or the old `default` matches the form value, then:\n * - Replace `removeOldSchemaData[key]` with the new `default`\n * - Otherwise, if the new schema is `readOnly` then replace `removeOldSchemaData[key]` with undefined\n * - Get the old and new `const` values from the schema and check:\n * - If the new `const` value does not match the form value:\n * - If the old `const` value DOES match the form value, then:\n * - Replace `removeOldSchemaData[key]` with the new `const`\n * - Otherwise, replace `removeOldSchemaData[key]` with undefined\n * - Once all keys have been processed, return an object built as follows:\n * - `{ ...data, ...removeOldSchemaData, ...nestedData }`\n * - If the new and old schema types are array and the `data` is an array then:\n * - If the type of the old and new schema `items` are a non-array objects:\n * - Retrieve the schema for any refs within each `oldKeySchema.items` and/or `newKeySchema.items`\n * - If the `type`s of both items are the same (or the old does not have a type):\n * - If the type is \"object\", then:\n * - For each element in the `data` recursively sanitize the data, stopping at `maxItems` if specified\n * - Otherwise, just return the `data` removing any values after `maxItems` if it is set\n * - If the type of the old and new schema `items` are booleans of the same value, return `data` as is\n * - Otherwise return `undefined`\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param rootSchema - The root JSON schema of the entire form\n * @param [newSchema] - The new schema for which the data is being sanitized\n * @param [oldSchema] - The old schema from which the data originated\n * @param [data={}] - The form data associated with the schema, defaulting to an empty object when undefined\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The new form data, with all the fields uniquely associated with the old schema set\n * to `undefined`. Will return `undefined` if the new schema is not an object containing properties.\n */\nexport default function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, data = {}, experimental_customMergeAllOf) {\n // By default, we will clear the form data\n let newFormData;\n const newProperties = newSchema?.[PROPERTIES_KEY];\n // If the new schema is of type object and that object contains a list of properties\n if (newProperties) {\n // Create an object containing root-level keys in the old schema, setting each key to undefined to remove the data\n const removeOldSchemaData = {};\n const oldProperties = oldSchema?.[PROPERTIES_KEY];\n if (oldProperties) {\n Object.keys(oldProperties).forEach((key) => {\n if (hasByPath(data, key)) {\n removeOldSchemaData[key] = undefined;\n }\n });\n }\n const keys = Object.keys(newProperties);\n // Create a place to store nested data that will be a side-effect of the filter\n const nestedData = {};\n keys.forEach((key) => {\n const formValue = data?.[key];\n const isNewProperty = !hasByPath(oldSchema, [PROPERTIES_KEY, key]);\n let oldKeyedSchema = getPropertySchema(oldSchema, key);\n let newKeyedSchema = getPropertySchema(newSchema, key);\n // Resolve the refs if they exist\n if (hasByPath(oldKeyedSchema, REF_KEY)) {\n oldKeyedSchema = retrieveSchema(validator, oldKeyedSchema, rootSchema, formValue, experimental_customMergeAllOf);\n }\n if (hasByPath(newKeyedSchema, REF_KEY)) {\n newKeyedSchema = retrieveSchema(validator, newKeyedSchema, rootSchema, formValue, experimental_customMergeAllOf);\n }\n // Now get types and see if they are the same\n const oldSchemaTypeForKey = oldKeyedSchema.type;\n const newSchemaTypeForKey = newKeyedSchema.type;\n // Check if the old option has the same key with the same type\n if (!oldSchemaTypeForKey || oldSchemaTypeForKey === newSchemaTypeForKey) {\n if (key in removeOldSchemaData) {\n // SIDE-EFFECT: remove the undefined value for a key that has the same type between the old and new schemas\n delete removeOldSchemaData[key];\n }\n // If it is an object, we'll recurse and store the resulting sanitized data for the key\n if (newSchemaTypeForKey === 'object' || (newSchemaTypeForKey === 'array' && Array.isArray(formValue))) {\n // SIDE-EFFECT: process the new schema type of object recursively to save iterations\n const itemData = sanitizeDataForNewSchema(validator, rootSchema, newKeyedSchema, isNewProperty && newSchemaTypeForKey === 'array' ? newKeyedSchema : oldKeyedSchema, formValue, experimental_customMergeAllOf);\n if (itemData !== undefined || newSchemaTypeForKey === 'array') {\n // only put undefined values for the array type and not the object type\n nestedData[key] = itemData;\n }\n }\n else {\n // Ok, the non-object types match, let's make sure that a default or a const of a different value is replaced\n // with the new default or const. This allows the case where two schemas differ that only by the default/const\n // value to be properly selected\n const newOptionDefault = getByPath(newKeyedSchema, DEFAULT_KEY, NO_VALUE);\n const oldOptionDefault = getByPath(oldKeyedSchema, DEFAULT_KEY, NO_VALUE);\n if (newOptionDefault !== NO_VALUE && newOptionDefault !== formValue) {\n if ((isNewProperty && formValue === undefined) || oldOptionDefault === formValue) {\n // Initialize a newly entered property or replace an old default with the new default.\n removeOldSchemaData[key] = newOptionDefault;\n }\n else if (newKeyedSchema.readOnly === true) {\n // If the new schema has the default set to read-only, treat it like a const and remove the value\n removeOldSchemaData[key] = undefined;\n }\n }\n const newOptionConst = getByPath(newKeyedSchema, CONST_KEY, NO_VALUE);\n const oldOptionConst = getByPath(oldKeyedSchema, CONST_KEY, NO_VALUE);\n if (newOptionConst !== NO_VALUE && newOptionConst !== formValue) {\n // Since this is a const, if the old value matches, replace the value with the new const otherwise clear it\n removeOldSchemaData[key] = oldOptionConst === formValue ? newOptionConst : undefined;\n }\n if (hasByPath(data, key)) {\n const enumReplacement = replacementForInvalidEnumValue(newKeyedSchema, formValue);\n if (enumReplacement !== NO_VALUE) {\n removeOldSchemaData[key] = enumReplacement;\n }\n }\n }\n }\n });\n newFormData = {\n ...(typeof data === 'string' || Array.isArray(data) ? undefined : data),\n ...removeOldSchemaData,\n ...nestedData,\n };\n // First apply removing the old schema data, then apply the nested data, then apply the old data keys to keep\n }\n else if (oldSchema?.type === 'array' && newSchema?.type === 'array' && Array.isArray(data)) {\n let oldSchemaItems = oldSchema.items;\n let newSchemaItems = newSchema.items;\n // If any of the array types `items` are arrays (remember arrays are objects) then we'll just drop the data\n // Eventually, we may want to deal with when either of the `items` are arrays since those tuple validations\n if (typeof oldSchemaItems === 'object' &&\n typeof newSchemaItems === 'object' &&\n !Array.isArray(oldSchemaItems) &&\n !Array.isArray(newSchemaItems)) {\n if (hasByPath(oldSchemaItems, REF_KEY)) {\n oldSchemaItems = retrieveSchema(validator, oldSchemaItems, rootSchema, data, experimental_customMergeAllOf);\n }\n if (hasByPath(newSchemaItems, REF_KEY)) {\n newSchemaItems = retrieveSchema(validator, newSchemaItems, rootSchema, data, experimental_customMergeAllOf);\n }\n // Now get types and see if they are the same\n const oldSchemaType = getByPath(oldSchemaItems, 'type');\n const newSchemaType = getByPath(newSchemaItems, 'type');\n // Check if the old option has the same key with the same type\n if (!oldSchemaType || oldSchemaType === newSchemaType) {\n const maxItems = newSchema.maxItems ?? -1;\n if (newSchemaType === 'object') {\n newFormData = data.reduce((newValue, aValue) => {\n const itemValue = sanitizeDataForNewSchema(validator, rootSchema, newSchemaItems, oldSchemaItems, aValue, experimental_customMergeAllOf);\n if (itemValue !== undefined && (maxItems < 0 || newValue.length < maxItems)) {\n newValue.push(itemValue);\n }\n return newValue;\n }, []);\n }\n else {\n // Filter out items that are no longer valid in the new items schema (e.g., enum values that changed)\n const newItemEnumValues = enumValuesForSchema(newSchemaItems);\n const filteredData = newItemEnumValues\n ? data.filter((item) => newItemEnumValues.some((v) => deepEquals(v, item)))\n : data;\n newFormData = maxItems > 0 && filteredData.length > maxItems ? filteredData.slice(0, maxItems) : filteredData;\n }\n }\n }\n else if (typeof oldSchemaItems === 'boolean' &&\n typeof newSchemaItems === 'boolean' &&\n oldSchemaItems === newSchemaItems) {\n // If they are both booleans and have the same value just return the data as is otherwise fall-thru to undefined\n newFormData = data;\n }\n // Also probably want to deal with `prefixItems` as tuples with the latest 2020 draft\n }\n return newFormData;\n}\n//# sourceMappingURL=sanitizeDataForNewSchema.js.map","// oxlint-disable typescript/no-deprecated\nimport { ADDITIONAL_PROPERTIES_KEY, ALL_OF_KEY, ANY_OF_KEY, DEPENDENCIES_KEY, IF_KEY, ITEMS_KEY, NAME_KEY, ONE_OF_KEY, PROPERTIES_KEY, REF_KEY, RJSF_ADDITIONAL_PROPERTIES_FLAG, } from \"../constants.js\";\nimport deepEquals from \"../deepEquals.js\";\nimport getDiscriminatorFieldFromSchema from \"../getDiscriminatorFieldFromSchema.js\";\nimport getPropertySchema from \"../getPropertySchema.js\";\nimport isObject from \"../isObject.js\";\nimport { getByPath, setByPath } from \"../pathUtils.js\";\nimport getClosestMatchingOption from \"./getClosestMatchingOption.js\";\nimport retrieveSchema from \"./retrieveSchema.js\";\n/** An internal helper that generates an `PathSchema` object for the `schema`, recursively with protection against\n * infinite recursion\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param schema - The schema for which the `PathSchema` is desired\n * @param [name=''] - The base name for the schema\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @param [formData] - The current formData, if any, to assist retrieving a schema\n * @param [_recurseList=[]] - The list of retrieved schemas currently being recursed, used to prevent infinite recursion\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The `PathSchema` object for the `schema`\n */\nfunction toPathSchemaInternal(validator, schema, name, rootSchema, formData, _recurseList = [], experimental_customMergeAllOf) {\n if (REF_KEY in schema || DEPENDENCIES_KEY in schema || ALL_OF_KEY in schema || IF_KEY in schema) {\n const innerSchema = retrieveSchema(validator, schema, rootSchema, formData, experimental_customMergeAllOf);\n const sameSchemaIndex = _recurseList.findIndex((item) => deepEquals(item, innerSchema));\n if (sameSchemaIndex === -1) {\n return toPathSchemaInternal(validator, innerSchema, name, rootSchema, formData, _recurseList.concat(innerSchema), experimental_customMergeAllOf);\n }\n }\n let pathSchema = {\n [NAME_KEY]: name.replace(/^\\./, ''),\n };\n if (ONE_OF_KEY in schema || ANY_OF_KEY in schema) {\n const xxxOf = ONE_OF_KEY in schema ? schema.oneOf : schema.anyOf;\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n const index = getClosestMatchingOption(validator, rootSchema, formData, xxxOf, 0, discriminator, experimental_customMergeAllOf);\n const innerSchema = xxxOf[index];\n pathSchema = {\n ...pathSchema,\n ...toPathSchemaInternal(validator, innerSchema, name, rootSchema, formData, _recurseList, experimental_customMergeAllOf),\n };\n }\n if (ADDITIONAL_PROPERTIES_KEY in schema && schema[ADDITIONAL_PROPERTIES_KEY] !== false) {\n setByPath(pathSchema, RJSF_ADDITIONAL_PROPERTIES_FLAG, true);\n const additionalSchema = (isObject(schema[ADDITIONAL_PROPERTIES_KEY]) ? schema[ADDITIONAL_PROPERTIES_KEY] : {});\n const definedProperties = schema[PROPERTIES_KEY] ?? {};\n for (const key of Object.keys((formData ?? {}))) {\n if (!(key in definedProperties)) {\n pathSchema[key] = toPathSchemaInternal(validator, additionalSchema, `${name}.${key}`, rootSchema, getByPath(formData, key), _recurseList, experimental_customMergeAllOf);\n }\n }\n }\n if (ITEMS_KEY in schema && Array.isArray(formData)) {\n const { items: schemaItems, additionalItems: schemaAdditionalItems } = schema;\n if (Array.isArray(schemaItems)) {\n formData.forEach((element, i) => {\n if (schemaItems[i]) {\n pathSchema[i] = toPathSchemaInternal(validator, schemaItems[i], `${name}.${i}`, rootSchema, element, _recurseList, experimental_customMergeAllOf);\n }\n else if (schemaAdditionalItems) {\n pathSchema[i] = toPathSchemaInternal(validator, schemaAdditionalItems, `${name}.${i}`, rootSchema, element, _recurseList, experimental_customMergeAllOf);\n }\n else {\n // oxlint-disable-next-line no-console\n console.warn(`Unable to generate path schema for \"${name}.${i}\". No schema defined for it`);\n }\n });\n }\n else {\n formData.forEach((element, i) => {\n pathSchema[i] = toPathSchemaInternal(validator, schemaItems, `${name}.${i}`, rootSchema, element, _recurseList, experimental_customMergeAllOf);\n });\n }\n }\n else if (PROPERTIES_KEY in schema) {\n // This is a deprecated function that is no longer used by RJSF\n // oxlint-disable-next-line guard-for-in\n for (const property in schema.properties) {\n const field = getPropertySchema(schema, property);\n pathSchema[property] = toPathSchemaInternal(validator, field, `${name}.${property}`, rootSchema, \n // It's possible that formData is not an object -- this can happen if an\n // array item has just been added, but not populated with data yet\n getByPath(formData, property), _recurseList, experimental_customMergeAllOf);\n }\n }\n return pathSchema;\n}\n/** Generates an `PathSchema` object for the `schema`, recursively\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param schema - The schema for which the `PathSchema` is desired\n * @param [name=''] - The base name for the schema\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @param [formData] - The current formData, if any, to assist retrieving a schema\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The `PathSchema` object for the `schema`\n * @deprecated - To be removed as an exported `@rjsf/utils` function in a future release\n */\nexport default function toPathSchema(validator, schema, name = '', rootSchema, formData, experimental_customMergeAllOf) {\n return toPathSchemaInternal(validator, schema, name, rootSchema, formData, undefined, experimental_customMergeAllOf);\n}\n//# sourceMappingURL=toPathSchema.js.map","import { ID_KEY, JSON_SCHEMA_DRAFT_2020_12, SCHEMA_KEY } from \"./constants.js\";\nimport deepEquals from \"./deepEquals.js\";\nimport { makeAllReferencesAbsolute } from \"./findSchemaDefinition.js\";\nimport { findFieldInSchema, findSelectedOptionInXxxOf, getDefaultFormState, getDisplayLabel, getClosestMatchingOption, getFirstMatchingOption, getFromSchema, isFilesArray, isMultiSelect, isSelect, omitExtraData, retrieveSchema, sanitizeDataForNewSchema, toPathSchema, } from \"./schema/index.js\";\n/** The `SchemaUtils` class provides a wrapper around the publicly exported APIs in the `utils/schema` directory such\n * that one does not have to explicitly pass the `validator`, `rootSchema`, `experimental_defaultFormStateBehavior` or\n * `experimental_customMergeAllOf` to each method. Since these generally do not change across a `Form`, this allows for\n * providing a simplified set of APIs to the `@rjsf/core` components and the various themes as well. This class\n * implements the `SchemaUtilsType` interface.\n */\nclass SchemaUtils {\n rootSchema;\n validator;\n experimental_defaultFormStateBehavior;\n experimental_customMergeAllOf;\n /** Constructs the `SchemaUtils` instance with the given `validator` and `rootSchema` stored as instance variables\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param experimental_defaultFormStateBehavior - Configuration flags to allow users to override default form state behavior\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n */\n constructor(validator, rootSchema, experimental_defaultFormStateBehavior, experimental_customMergeAllOf) {\n if (rootSchema?.[SCHEMA_KEY] === JSON_SCHEMA_DRAFT_2020_12) {\n this.rootSchema = makeAllReferencesAbsolute(rootSchema, rootSchema[ID_KEY] ?? '#');\n }\n else {\n this.rootSchema = rootSchema;\n }\n this.validator = validator;\n this.experimental_defaultFormStateBehavior = experimental_defaultFormStateBehavior;\n this.experimental_customMergeAllOf = experimental_customMergeAllOf;\n }\n /** Returns the `rootSchema` in the `SchemaUtilsType`\n *\n * @returns - The `rootSchema`\n */\n getRootSchema() {\n return this.rootSchema;\n }\n /** Returns the `ValidatorType` in the `SchemaUtilsType`\n *\n * @returns - The `ValidatorType`\n */\n getValidator() {\n return this.validator;\n }\n /** Determines whether either the `validator` and `rootSchema` differ from the ones associated with this instance of\n * the `SchemaUtilsType`. If either `validator` or `rootSchema` are falsy, then return false to prevent the creation\n * of a new `SchemaUtilsType` with incomplete properties.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be compared against the current one\n * @param rootSchema - The root schema that will be compared against the current one\n * @param [experimental_defaultFormStateBehavior] Optional configuration object, if provided, allows users to override default form state behavior\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - True if the `SchemaUtilsType` differs from the given `validator` or `rootSchema`\n */\n doesSchemaUtilsDiffer(validator, rootSchema, experimental_defaultFormStateBehavior = {}, experimental_customMergeAllOf) {\n // If either validator or rootSchema are falsy, return false to prevent the creation\n // of a new SchemaUtilsType with incomplete properties.\n if (!validator || !rootSchema) {\n return false;\n }\n return (this.validator !== validator ||\n !deepEquals(this.rootSchema, rootSchema) ||\n !deepEquals(this.experimental_defaultFormStateBehavior, experimental_defaultFormStateBehavior) ||\n this.experimental_customMergeAllOf !== experimental_customMergeAllOf);\n }\n /** Finds the field specified by the `path` within the root or recursed `schema`. If there is no field for the specified\n * `path`, then the default `{ field: undefined, isRequired: undefined }` is returned. It determines whether a leaf\n * field is in the `required` list for its parent and if so, it is marked as required on return.\n *\n * @param schema - The current node within the JSON schema\n * @param path - The remaining keys in the path to the desired field\n * @param [formData] - The form data that is used to determine which oneOf option\n * @returns - An object that contains the field and its required state. If no field can be found then\n * `{ field: undefined, isRequired: undefined }` is returned.\n */\n findFieldInSchema(schema, path, formData) {\n return findFieldInSchema(this.validator, this.rootSchema, schema, path, formData, this.experimental_customMergeAllOf);\n }\n /** Finds the oneOf option inside the `schema['any/oneOf']` list which has the `properties[selectorField].default` that\n * matches the `formData[selectorField]` value. For the purposes of this function, `selectorField` is either\n * `schema.discriminator.propertyName` or `fallbackField`.\n *\n * @param schema - The schema element in which to search for the selected oneOf option\n * @param fallbackField - The field to use as a backup selector field if the schema does not have a required field\n * @param xxx - Either `oneOf` or `anyOf`, defines which value is being sought\n * @param [formData={}] - The form data that is used to determine which oneOf option\n * @returns - The anyOf/oneOf option that matches the selector field in the schema or undefined if nothing is selected\n */\n findSelectedOptionInXxxOf(schema, fallbackField, xxx, formData) {\n return findSelectedOptionInXxxOf(this.validator, this.rootSchema, schema, fallbackField, xxx, formData, this.experimental_customMergeAllOf);\n }\n /** Returns the superset of `formData` that includes the given set updated to include any missing fields that have\n * computed to have defaults provided in the `schema`.\n *\n * @param schema - The schema for which the default state is desired\n * @param [formData] - The current formData, if any, onto which to provide any missing defaults\n * @param [includeUndefinedValues=false] - Optional flag, if true, cause undefined values to be added as defaults.\n * If \"excludeObjectChildren\", pass `includeUndefinedValues` as false when computing defaults for any nested\n * object properties.\n * @param initialDefaultsGenerated - Indicates whether or not initial defaults have been generated\n * @returns - The resulting `formData` with all the defaults provided\n */\n getDefaultFormState(schema, formData, includeUndefinedValues = false, initialDefaultsGenerated) {\n return getDefaultFormState(this.validator, schema, formData, this.rootSchema, includeUndefinedValues, this.experimental_defaultFormStateBehavior, this.experimental_customMergeAllOf, initialDefaultsGenerated);\n }\n /** Determines whether the combination of `schema` and `uiSchema` properties indicates that the label for the `schema`\n * should be displayed in a UI.\n *\n * @param schema - The schema for which the display label flag is desired\n * @param [uiSchema] - The UI schema from which to derive potentially displayable information\n * @param [globalOptions={}] - The optional Global UI Schema from which to get any fallback `xxx` options\n * @returns - True if the label should be displayed or false if it should not\n */\n getDisplayLabel(schema, uiSchema, globalOptions) {\n return getDisplayLabel(this.validator, schema, uiSchema, this.rootSchema, globalOptions, this.experimental_customMergeAllOf);\n }\n /** Determines which of the given `options` provided most closely matches the `formData`.\n * Returns the index of the option that is valid and is the closest match, or 0 if there is no match.\n *\n * The closest match is determined using the number of matching properties, and more heavily favors options with\n * matching readOnly, default, or const values.\n *\n * @param formData - The form data associated with the schema\n * @param options - The list of options that can be selected from\n * @param [selectedOption] - The index of the currently selected option, defaulted to -1 if not specified\n * @param [discriminatorField] - The optional name of the field within the options object whose value is used to\n * determine which option is selected\n * @returns - The index of the option that is the closest match to the `formData` or the `selectedOption` if no match\n */\n getClosestMatchingOption(formData, options, selectedOption, discriminatorField) {\n return getClosestMatchingOption(this.validator, this.rootSchema, formData, options, selectedOption, discriminatorField, this.experimental_customMergeAllOf);\n }\n /** Given the `formData` and list of `options`, attempts to find the index of the first option that matches the data.\n * Always returns the first option if there is nothing that matches.\n *\n * @param formData - The current formData, if any, used to figure out a match\n * @param options - The list of options to find a matching options from\n * @param [discriminatorField] - The optional name of the field within the options object whose value is used to\n * determine which option is selected\n * @returns - The firstindex of the matched option or 0 if none is available\n */\n getFirstMatchingOption(formData, options, discriminatorField) {\n return getFirstMatchingOption(this.validator, formData, options, this.rootSchema, discriminatorField);\n }\n getFromSchema(schema, path, defaultValue) {\n return getFromSchema(this.validator, this.rootSchema, schema, path, \n // @ts-expect-error TS2769: No overload matches this call\n defaultValue, this.experimental_customMergeAllOf);\n }\n /** Checks to see if the `schema` and `uiSchema` combination represents an array of files\n *\n * @param schema - The schema for which check for array of files flag is desired\n * @param [uiSchema] - The UI schema from which to check the widget\n * @returns - True if schema/uiSchema contains an array of files, otherwise false\n */\n isFilesArray(schema, uiSchema) {\n return isFilesArray(this.validator, schema, uiSchema, this.rootSchema, this.experimental_customMergeAllOf);\n }\n /** Checks to see if the `schema` combination represents a multi-select\n *\n * @param schema - The schema for which check for a multi-select flag is desired\n * @returns - True if schema contains a multi-select, otherwise false\n */\n isMultiSelect(schema) {\n return isMultiSelect(this.validator, schema, this.rootSchema, this.experimental_customMergeAllOf);\n }\n /** Checks to see if the `schema` combination represents a select\n *\n * @param schema - The schema for which check for a select flag is desired\n * @returns - True if schema contains a select, otherwise false\n */\n isSelect(schema) {\n return isSelect(this.validator, schema, this.rootSchema, this.experimental_customMergeAllOf);\n }\n /**\n * The function takes a `schema` and `formData` and returns a copy of the formData with any fields not defined in the schema removed.\n * This is useful for ensuring that only data that is relevant to the schema is preserved. Objects with `additionalProperties`\n * keyword set to `true` will not have their extra fields removed.\n *\n * @param schema - The schema to use for filtering the `formData`\n * @param [formData] - The formData to filter\n * @returns The new form data, with any fields not defined in the schema removed\n */\n omitExtraData(schema, formData) {\n return omitExtraData(this.validator, schema, this.rootSchema, formData);\n }\n /** Retrieves an expanded schema that has had all of its conditions, additional properties, references and\n * dependencies resolved and merged into the `schema` given a `rawFormData` that is used to do the potentially\n * recursive resolution.\n *\n * @param schema - The schema for which retrieving a schema is desired\n * @param [rawFormData] - The current formData, if any, to assist retrieving a schema\n * @param [resolveAnyOfOrOneOfRefs] - Optional flag indicating whether to resolved refs in anyOf/oneOf lists\n * @returns - The schema having its conditions, additional properties, references and dependencies resolved\n */\n retrieveSchema(schema, rawFormData, resolveAnyOfOrOneOfRefs) {\n return retrieveSchema(this.validator, schema, this.rootSchema, rawFormData, this.experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs);\n }\n /** Sanitize the `data` associated with the `oldSchema` so it is considered appropriate for the `newSchema`. If the\n * new schema does not contain any properties, then `undefined` is returned to clear all the form data. Due to the\n * nature of schemas, this sanitization happens recursively for nested objects of data. Also, any properties in the\n * old schemas that are non-existent in the new schema are set to `undefined`.\n *\n * @param [newSchema] - The new schema for which the data is being sanitized\n * @param [oldSchema] - The old schema from which the data originated\n * @param [data={}] - The form data associated with the schema, defaulting to an empty object when undefined\n * @returns - The new form data, with all the fields uniquely associated with the old schema set\n * to `undefined`. Will return `undefined` if the new schema is not an object containing properties.\n */\n sanitizeDataForNewSchema(newSchema, oldSchema, data) {\n return sanitizeDataForNewSchema(this.validator, this.rootSchema, newSchema, oldSchema, data, this.experimental_customMergeAllOf);\n }\n /** Generates an `PathSchema` object for the `schema`, recursively\n *\n * @param schema - The schema for which the display label flag is desired\n * @param [name] - The base name for the schema\n * @param [formData] - The current formData, if any, onto which to provide any missing defaults\n * @returns - The `PathSchema` object for the `schema`\n */\n // oxlint-disable-next-line typescript/no-deprecated\n toPathSchema(schema, name, formData) {\n // oxlint-disable-next-line typescript/no-deprecated\n return toPathSchema(this.validator, schema, name, this.rootSchema, formData, this.experimental_customMergeAllOf);\n }\n}\n/** Creates a `SchemaUtilsType` interface that is based around the given `validator` and `rootSchema` parameters. The\n * resulting interface implementation will forward the `validator` and `rootSchema` to all the wrapped APIs.\n *\n * @param validator - an implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param [experimental_defaultFormStateBehavior] Optional configuration object, if provided, allows users to override default form state behavior\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - An implementation of a `SchemaUtilsType` interface\n */\nexport default function createSchemaUtils(validator, rootSchema, experimental_defaultFormStateBehavior = {}, experimental_customMergeAllOf) {\n return new SchemaUtils(validator, rootSchema, experimental_defaultFormStateBehavior, experimental_customMergeAllOf);\n}\n//# sourceMappingURL=createSchemaUtils.js.map","/** Given the `FileReader.readAsDataURL()` based `dataURI` extracts that data into an actual Blob along with the name\n * of that Blob if provided in the URL. If no name is provided, then the name falls back to `unknown`.\n *\n * @param dataURI - The `DataUrl` potentially containing name and raw data to be converted to a Blob\n * @returns - an object containing a Blob and its name, extracted from the URI\n */\nexport default function dataURItoBlob(dataURILike) {\n // check if is dataURI\n if (!dataURILike.includes('data:')) {\n throw new Error('File is invalid: URI must be a dataURI');\n }\n const dataURI = dataURILike.slice(5);\n // split the dataURI into media and base64, with the base64 signature\n const splitted = dataURI.split(';base64,');\n // if the base64 signature is not present, the latter part will become empty\n if (splitted.length !== 2) {\n throw new Error('File is invalid: dataURI must be base64');\n }\n // extract the mime type, media parameters including the name, and the base64 string\n const [media, base64] = splitted;\n const [mime, ...mediaparams] = media.split(';');\n const type = mime || '';\n // extract the name from the parameters\n const name = decodeURI(\n // parse the parameters into key-value pairs, find a key, and extract a value\n // if no key is found, then the name is unknown\n mediaparams.map((param) => param.split('=')).find(([key]) => key === 'name')?.[1] || 'unknown');\n // Built the Uint8Array Blob parameter from the base64 string.\n try {\n const binary = atob(base64);\n const array = new Array(binary.length);\n for (let i = 0; i < binary.length; i += 1) {\n array[i] = binary.charCodeAt(i);\n }\n // Create the blob object\n const blob = new window.Blob([new Uint8Array(array)], { type });\n return { blob, name };\n }\n catch (error) {\n throw new Error(`File is invalid: ${error.message}`);\n }\n}\n//# sourceMappingURL=dataURItoBlob.js.map","/** Returns a string representation of the `num` that is padded with leading \"0\"s if necessary\n *\n * @param num - The number to pad\n * @param width - The width of the string at which no lead padding is necessary\n * @returns - The number converted to a string with leading zero padding if the number of digits is less than `width`\n */\nexport default function pad(num, width) {\n let s = String(num);\n while (s.length < width) {\n s = `0${s}`;\n }\n return s;\n}\n//# sourceMappingURL=pad.js.map","import pad from \"./pad.js\";\n/** Returns a list of options for a date range between `start` and `stop`. If the start date is greater than the end\n * date, then the date range is reversed. If `start` and `stop` are negative numbers (or zero), then they will be\n * treated as relative to the current year.\n *\n * @param start - The starting point of the date range\n * @param stop - The ending point of the date range\n * @returns - The list of EnumOptionsType for the date range between `start` and `stop`\n * @throws - Error when `start` and `stop` aren't both <= 0 or > 0\n */\nexport default function dateRangeOptions(start, stop) {\n const bothRelative = start <= 0 && stop <= 0;\n const eitherNegative = start < 0 || stop < 0;\n if (!bothRelative && eitherNegative) {\n throw new Error(`Both start (${start}) and stop (${stop}) must both be <= 0 or > 0, got one of each`);\n }\n const currentYear = new Date().getFullYear();\n const resolvedStart = bothRelative ? currentYear + start : start;\n const resolvedStop = bothRelative ? currentYear + stop : stop;\n if (resolvedStart > resolvedStop) {\n return dateRangeOptions(stop, start).reverse();\n }\n const options = [];\n for (let i = resolvedStart; i <= resolvedStop; i += 1) {\n options.push({ value: i, label: pad(i, 2) });\n }\n return options;\n}\n//# sourceMappingURL=dateRangeOptions.js.map","/** Potentially substitutes all replaceable parameters with the associated value(s) from the `params` if available. When\n * a `params` array is provided, each value in the array is used to replace any of the replaceable parameters in the\n * `inputString` using the `%1`, `%2`, etc. replacement specifiers.\n *\n * @param inputString - The string which will be potentially updated with replacement parameters\n * @param params - The optional list of replaceable parameter values to substitute into the english string\n * @returns - The updated string with any replacement specifiers replaced\n */\nexport default function replaceStringParameters(inputString, params) {\n let output = inputString;\n if (Array.isArray(params)) {\n const parts = output.split(/(%\\d)/);\n params.forEach((param, index) => {\n const partIndex = parts.findIndex((part) => part === `%${index + 1}`);\n if (partIndex >= 0) {\n parts[partIndex] = param;\n }\n });\n output = parts.join('');\n }\n return output;\n}\n//# sourceMappingURL=replaceStringParameters.js.map","import replaceStringParameters from \"./replaceStringParameters.js\";\n/** Translates a `TranslatableString` value `stringToTranslate` into english. When a `params` array is provided, each\n * value in the array is used to replace any of the replaceable parameters in the `stringToTranslate` using the `%1`,\n * `%2`, etc. replacement specifiers.\n *\n * @param stringToTranslate - The `TranslatableString` value to convert to english\n * @param params - The optional list of replaceable parameter values to substitute into the english string\n * @returns - The `stringToTranslate` itself with any replaceable parameter values substituted\n */\nexport default function englishStringTranslator(stringToTranslate, params) {\n return replaceStringParameters(stringToTranslate, params);\n}\n//# sourceMappingURL=englishStringTranslator.js.map","/** Returns the value(s) from `allEnumOptions` at the index(es) provided by `valueIndex`. If `valueIndex` is not an\n * array AND the index is not valid for `allEnumOptions`, `emptyValue` is returned. If `valueIndex` is an array, AND it\n * contains an invalid index, the returned array will have the resulting undefined values filtered out, leaving only\n * valid values or in the worst case, an empty array.\n *\n * @param valueIndex - The index(es) of the value(s) that should be returned\n * @param [allEnumOptions=[]] - The list of all the known enumOptions\n * @param [emptyValue] - The value to return when the non-array `valueIndex` does not refer to a real option\n * @returns - The single or list of values specified by the single or list of indexes if they are valid. Otherwise,\n * `emptyValue` or an empty list.\n */\nexport default function enumOptionsValueForIndex(valueIndex, allEnumOptions = [], emptyValue) {\n if (Array.isArray(valueIndex)) {\n return (valueIndex\n .map((index) => enumOptionsValueForIndex(index, allEnumOptions))\n // The recursive call returns undefined for a bad option, filter those out\n .filter((val) => val !== undefined));\n }\n // So Number(null) and Number('') both return 0, so use emptyValue for those two values\n const index = valueIndex === '' || valueIndex === null ? -1 : Number(valueIndex);\n const option = allEnumOptions[index];\n return option ? option.value : emptyValue;\n}\n//# sourceMappingURL=enumOptionsValueForIndex.js.map","import deepEquals from \"./deepEquals.js\";\nimport enumOptionsValueForIndex from \"./enumOptionsValueForIndex.js\";\n/** Removes the enum option value at the `valueIndex` from the currently `selected` (list of) value(s). If `selected` is\n * a list, then that list is updated to remove the enum option value with the `valueIndex` in `allEnumOptions`. If it is\n * a single value, then if the enum option value with the `valueIndex` in `allEnumOptions` matches `selected`, undefined\n * is returned, otherwise the `selected` value is returned.\n *\n * @param valueIndex - The index of the value to be removed from the selected list or single value\n * @param selected - The current (list of) selected value(s)\n * @param [allEnumOptions=[]] - The list of all the known enumOptions\n * @returns - The updated `selected` with the enum option value at `valueIndex` in `allEnumOptions` removed from it,\n * unless `selected` is a single value. In that case, if the `valueIndex` value matches `selected`, returns\n * undefined, otherwise `selected`.\n */\nexport default function enumOptionsDeselectValue(valueIndex, selected, allEnumOptions = []) {\n const value = enumOptionsValueForIndex(valueIndex, allEnumOptions);\n if (Array.isArray(selected)) {\n return selected.filter((v) => !deepEquals(v, value));\n }\n return deepEquals(value, selected) ? undefined : selected;\n}\n//# sourceMappingURL=enumOptionsDeselectValue.js.map","import deepEquals from \"./deepEquals.js\";\n/** Determines whether the given `value` is (one of) the `selected` value(s).\n *\n * @param value - The value being checked to see if it is selected\n * @param selected - The current selected value or list of values\n * @returns - true if the `value` is one of the `selected` ones, false otherwise\n */\nexport default function enumOptionsIsSelected(value, selected) {\n if (Array.isArray(selected)) {\n return selected.some((sel) => deepEquals(sel, value));\n }\n return deepEquals(selected, value);\n}\n//# sourceMappingURL=enumOptionsIsSelected.js.map","import enumOptionsIsSelected from \"./enumOptionsIsSelected.js\";\n/** Returns the index(es) of the options in `allEnumOptions` whose value(s) match the ones in `value`. All the\n * `enumOptions` are filtered based on whether they are a \"selected\" `value` and the index of each selected one is then\n * stored in an array. If `multiple` is true, that array is returned, otherwise the first element in the array is\n * returned.\n *\n * @param value - The single value or list of values for which indexes are desired\n * @param [allEnumOptions=[]] - The list of all the known enumOptions\n * @param [multiple=false] - Optional flag, if true will return a list of index, otherwise a single one\n * @returns - A single string index for the first `value` in `allEnumOptions`, if not `multiple`. Otherwise, the list\n * of indexes for (each of) the value(s) in `value`.\n */\nexport default function enumOptionsIndexForValue(value, allEnumOptions = [], multiple = false) {\n const selectedIndexes = allEnumOptions\n .map((opt, index) => (enumOptionsIsSelected(opt.value, value) ? String(index) : undefined))\n .filter((opt) => typeof opt !== 'undefined');\n if (!multiple) {\n return selectedIndexes[0];\n }\n return selectedIndexes;\n}\n//# sourceMappingURL=enumOptionsIndexForValue.js.map","import enumOptionsIndexForValue from \"./enumOptionsIndexForValue.js\";\n/** Computes the value to pass to a select element's `value` attribute.\n *\n * When `format` is `'realValue'`, converts form data values to strings.\n * When `format` is `'indexed'` (the default), resolves to index-based values via\n * `enumOptionsIndexForValue`. Returns `emptyValue` when the current value is empty.\n *\n * @param value - The current form data value\n * @param enumOptions - The available enum options\n * @param multiple - Whether the select allows multiple selections\n * @param [format='indexed'] - How option values are encoded on the DOM\n * @param emptyValue - The value to return when the selection is empty\n * @returns The value to use for the select element's `value` attribute\n */\nexport default function enumOptionSelectedValue(value, enumOptions, multiple, format = 'indexed', emptyValue) {\n const isEmpty = typeof value === 'undefined' ||\n (multiple && Array.isArray(value) && value.length < 1) ||\n (!multiple && value === emptyValue);\n if (isEmpty) {\n return emptyValue;\n }\n if (format === 'realValue') {\n return multiple ? value.map(String) : String(value);\n }\n const indexes = enumOptionsIndexForValue(value, enumOptions, multiple);\n return typeof indexes === 'undefined' ? emptyValue : indexes;\n}\n//# sourceMappingURL=enumOptionSelectedValue.js.map","import enumOptionsValueForIndex from \"./enumOptionsValueForIndex.js\";\n/** Add the enum option value at the `valueIndex` to the list of `selected` values in the proper order as defined by\n * `allEnumOptions`\n *\n * @param valueIndex - The index of the value that should be selected\n * @param selected - The current list of selected values\n * @param [allEnumOptions=[]] - The list of all the known enumOptions\n * @returns - The updated list of selected enum values with enum value at the `valueIndex` added to it\n */\nexport default function enumOptionsSelectValue(valueIndex, selected, allEnumOptions = []) {\n const value = enumOptionsValueForIndex(valueIndex, allEnumOptions);\n if (value != null) {\n const index = allEnumOptions.findIndex((opt) => value === opt.value);\n const all = allEnumOptions.map(({ value: val }) => val);\n const updated = selected.slice(0, index).concat(value, selected.slice(index));\n // As inserting values at predefined index positions doesn't work with empty\n // arrays, we need to reorder the updated selection to match the initial order\n return updated.sort((a, b) => Number(all.indexOf(a) > all.indexOf(b)));\n }\n return selected;\n}\n//# sourceMappingURL=enumOptionsSelectValue.js.map","import enumOptionsValueForIndex from \"./enumOptionsValueForIndex.js\";\n/** Resolves a single DOM value string back to its typed enum value in `'realValue'` mode.\n *\n * First attempts a reverse lookup by matching `String(opt.value)` against the input.\n * If no option matches and the input parses as a valid index, falls back to the\n * option at that index — this is how object/array enum values round-trip, since\n * they are encoded as indices by the encoder.\n *\n * @param value - A single string value from a DOM attribute\n * @param enumOptions - The available enum options\n * @param emptyValue - The value to return when the input is empty, options are missing, or no match is found\n * @returns The original typed enum value, or `emptyValue`\n */\nfunction decodeSingle(value, enumOptions, emptyValue) {\n if (value === '' || !Array.isArray(enumOptions)) {\n return emptyValue;\n }\n const match = enumOptions.find((opt) => String(opt.value) === value);\n if (match) {\n return match.value;\n }\n // Fallback: value might be an index (for object/array enum values)\n const index = Number(value);\n if (!Number.isNaN(index) && index >= 0 && index < enumOptions.length) {\n return enumOptions[index].value;\n }\n return emptyValue;\n}\n/** Decodes a string from a DOM value attribute back to a typed enum value.\n *\n * When `format` is `'realValue'`, does a reverse lookup: finds the enum option\n * whose `String(value)` matches the input string and returns the original typed value.\n * For object/array values that were encoded as indices, falls back to index resolution.\n *\n * When `format` is `'indexed'` (the default), uses index-based resolution via\n * `enumOptionsValueForIndex`.\n *\n * @param value - The string value(s) from the DOM\n * @param enumOptions - The available enum options\n * @param [format='indexed'] - How the values were encoded on the DOM\n * @param emptyValue - The value to return for empty/missing selections\n * @returns The original typed enum value(s)\n */\nexport default function enumOptionValueDecoder(value, enumOptions, format = 'indexed', emptyValue) {\n if (format !== 'realValue') {\n return enumOptionsValueForIndex(value, enumOptions, emptyValue);\n }\n if (Array.isArray(value)) {\n return value.map((v) => decodeSingle(v, enumOptions, emptyValue));\n }\n return decodeSingle(value, enumOptions, emptyValue);\n}\n//# sourceMappingURL=enumOptionValueDecoder.js.map","/** Encodes an enum option value into a string for a DOM value attribute.\n *\n * When `format` is `'realValue'`, primitive values are converted via `String()`.\n * Non-primitive values (objects, arrays) fall back to the index since\n * `String()` would produce `\"[object Object]\"`.\n *\n * When `format` is `'indexed'` (the default), returns the index as a string.\n *\n * @param value - The typed enum value\n * @param index - The option's position in the enumOptions array\n * @param [format='indexed'] - How to encode the value for the DOM attribute\n * @returns The string to use as the DOM value attribute\n */\nexport default function enumOptionValueEncoder(value, index, format = 'indexed') {\n if (format !== 'realValue') {\n return String(index);\n }\n if (value == null) {\n return '';\n }\n if (typeof value === 'object') {\n return String(index);\n }\n return String(value);\n}\n//# sourceMappingURL=enumOptionValueEncoder.js.map","import { ERRORS_KEY } from \"./constants.js\";\nimport { getByPath, setByPath, toPath } from \"./pathUtils.js\";\n/** The `ErrorSchemaBuilder` is used to build an `ErrorSchema` since the definition of the `ErrorSchema` type is\n * designed for reading information rather than writing it. Use this class to add, replace or clear errors in an error\n * schema by using either dotted path or an array of path names. Once you are done building the `ErrorSchema`, you can\n * get the result and/or reset all the errors back to an initial set and start again.\n */\nexport default class ErrorSchemaBuilder {\n /** The error schema being built\n *\n * @private\n */\n errorSchema = {};\n /** Construct an `ErrorSchemaBuilder` with an optional initial set of errors in an `ErrorSchema`.\n *\n * @param [initialSchema] - The optional set of initial errors, that will be cloned into the class\n */\n constructor(initialSchema) {\n this.resetAllErrors(initialSchema);\n }\n /** Returns the `ErrorSchema` that has been updated by the methods of the `ErrorSchemaBuilder`\n */\n get ErrorSchema() {\n return this.errorSchema;\n }\n /** Will get an existing `ErrorSchema` at the specified `pathOfError` or create and return one.\n *\n * @param [pathOfError] - The optional path into the `ErrorSchema` at which to add the error(s)\n * @returns - The error block for the given `pathOfError` or the root if not provided\n * @private\n */\n getOrCreateErrorBlock(pathOfError) {\n // A string path is dotted-path notation, so parse it into its segments\n const path = typeof pathOfError === 'string' ? toPath(pathOfError) : (pathOfError ?? []);\n if (path.length === 0) {\n return this.errorSchema;\n }\n // An `ErrorSchema` only ever nests `ErrorSchema` blocks, so create any missing block along the path,\n // always as a plain object since an `ErrorSchema` is never an array\n let errorBlock = getByPath(this.errorSchema, path);\n if (!errorBlock) {\n errorBlock = {};\n setByPath(this.errorSchema, path, errorBlock, true);\n }\n return errorBlock;\n }\n /** Resets all errors in the `ErrorSchemaBuilder` back to the `initialSchema` if provided, otherwise an empty set.\n *\n * @param [initialSchema] - The optional set of initial errors, that will be cloned into the class\n * @returns - The `ErrorSchemaBuilder` object for chaining purposes\n */\n resetAllErrors(initialSchema) {\n this.errorSchema = initialSchema ? structuredClone(initialSchema) : {};\n return this;\n }\n /** Adds the `errorOrList` to the list of errors in the `ErrorSchema` at either the root level or the location within\n * the schema described by the `pathOfError`. The path is either a dotted string (with optional bracketed array\n * indexes, e.g. `'a.b[0]'`) or a list of path segments; keys containing dots require the list form.\n *\n * @param errorOrList - The error or list of errors to add into the `ErrorSchema`\n * @param [pathOfError] - The optional path into the `ErrorSchema` at which to add the error(s)\n * @returns - The `ErrorSchemaBuilder` object for chaining purposes\n */\n addErrors(errorOrList, pathOfError) {\n const errorBlock = this.getOrCreateErrorBlock(pathOfError);\n let errorsList = errorBlock[ERRORS_KEY];\n if (!Array.isArray(errorsList)) {\n errorsList = [];\n errorBlock[ERRORS_KEY] = errorsList;\n }\n if (Array.isArray(errorOrList)) {\n errorBlock[ERRORS_KEY] = [...new Set([...errorsList, ...errorOrList])];\n }\n else {\n errorBlock[ERRORS_KEY] = [...new Set([...errorsList, errorOrList])];\n }\n return this;\n }\n /** Sets/replaces the `errorOrList` as the error(s) in the `ErrorSchema` at either the root level or the location\n * within the schema described by the `pathOfError`. The path is either a dotted string (with optional bracketed array\n * indexes, e.g. `'a.b[0]'`) or a list of path segments; keys containing dots require the list form.\n *\n * @param errorOrList - The error or list of errors to set into the `ErrorSchema`\n * @param [pathOfError] - The optional path into the `ErrorSchema` at which to set the error(s)\n * @returns - The `ErrorSchemaBuilder` object for chaining purposes\n */\n setErrors(errorOrList, pathOfError) {\n const errorBlock = this.getOrCreateErrorBlock(pathOfError);\n // Effectively clone the array being given to prevent accidental outside manipulation of the given list\n const listToAdd = Array.isArray(errorOrList) ? [...new Set([...errorOrList])] : [errorOrList];\n errorBlock[ERRORS_KEY] = listToAdd;\n return this;\n }\n /** Clears the error(s) in the `ErrorSchema` at either the root level or the location within the schema described by\n * the `pathOfError`. The path is either a dotted string (with optional bracketed array\n * indexes, e.g. `'a.b[0]'`) or a list of path segments; keys containing dots require the list form.\n *\n * @param [pathOfError] - The optional path into the `ErrorSchema` at which to clear the error(s)\n * @returns - The `ErrorSchemaBuilder` object for chaining purposes\n */\n clearErrors(pathOfError) {\n const errorBlock = this.getOrCreateErrorBlock(pathOfError);\n errorBlock[ERRORS_KEY] = [];\n return this;\n }\n}\n//# sourceMappingURL=ErrorSchemaBuilder.js.map","import deepEquals from \"./deepEquals.js\";\nimport isPlainObject from \"./isPlainObject.js\";\nimport { getByPath } from \"./pathUtils.js\";\n/** Returns the paths of the changed descendants of `a` relative to `b`, relative to the node itself. An empty list\n * means the difference could not be narrowed any further, so the caller should report its own key instead.\n *\n * @param a - The first value, representing the original data to compare\n * @param b - The second value, representing the updated data to compare\n * @returns - An array of dotted paths, relative to `a`\n */\nfunction getChangedDescendants(a, b) {\n if (isPlainObject(a) && isPlainObject(b)) {\n return getChangedFields(a, b, true);\n }\n // Arrays of a different length shift their items around, so nothing below them can be matched up by index.\n if (Array.isArray(a) && Array.isArray(b) && a.length === b.length) {\n return a.flatMap((value, index) => {\n if (deepEquals(value, b[index])) {\n return [];\n }\n const descendants = getChangedDescendants(value, b[index]);\n return descendants.length ? descendants.map((path) => `${index}.${path}`) : [String(index)];\n });\n }\n return [];\n}\n/**\n * Compares two objects and returns the names of the fields that have changed.\n * This function iterates over each field of object `a`, using `deepEquals` to compare the field value\n * with the corresponding field value in object `b`. If the values are different, the field name will\n * be included in the returned array.\n *\n * @param a - The first object, representing the original data to compare.\n * @param b - The second object, representing the updated data to compare.\n * @param [deep=false] - Optional flag that, when true, descends into nested objects and same-length arrays and returns\n * the dotted path of the deepest field that changed rather than the name of the top-level field holding it.\n * @returns - An array of field names that have changed.\n *\n * @example\n * const a = { name: 'John', age: 30 };\n * const b = { name: 'John', age: 31 };\n * const changedFields = getChangedFields(a, b);\n * console.log(changedFields); // Output: ['age']\n *\n * @example\n * const a = { items: [{ qux: '', corge: '' }] };\n * const b = { items: [{ qux: 'a', corge: '' }] };\n * console.log(getChangedFields(a, b)); // Output: ['items']\n * console.log(getChangedFields(a, b, true)); // Output: ['items.0.qux']\n */\nexport default function getChangedFields(a, b, deep = false) {\n if (a === b) {\n return [];\n }\n // If only one of them is a plainObject all of its fields changed; if neither is, nothing did\n if (!isPlainObject(a)) {\n return isPlainObject(b) ? Object.keys(b) : [];\n }\n if (!isPlainObject(b)) {\n return Object.keys(a);\n }\n const aKeys = Object.keys(a);\n const aKeySet = new Set(aKeys);\n const unequalFields = aKeys\n .filter((key) => !deepEquals(a[key], getByPath(b, key)))\n .flatMap((key) => {\n if (!deep) {\n return [key];\n }\n // A key holding a `.` or a `[` is descended into like any other. The path it produces cannot be told apart from\n // a path through nested keys, but neither can the entry an `ErrorSchema` keeps for it, since `toErrorSchema()`\n // spells such a name out as a path in the same way, so the two agree on where the field lives.\n const descendants = getChangedDescendants(a[key], getByPath(b, key));\n return descendants.length ? descendants.map((path) => `${key}.${path}`) : [key];\n });\n const diffFields = Object.keys(b).filter((key) => !aKeySet.has(key));\n return [...unequalFields, ...diffFields];\n}\n//# sourceMappingURL=getChangedFields.js.map","/** Given date & time information with optional yearRange & format, returns props for DateElement\n *\n * @param date - Object containing date with optional time information\n * @param time - Determines whether to include time or not\n * @param [yearRange=[1900, new Date().getFullYear() + 2]] - Controls the list of years to be displayed\n * @param [format='YMD'] - Controls the order in which day, month and year input element will be displayed\n * @returns Array of props for DateElement\n */\nexport default function getDateElementProps(date, time, yearRange = [1900, new Date().getFullYear() + 2], format = 'YMD') {\n const { day, month, year, hour, minute, second } = date;\n const dayObj = { type: 'day', range: [1, 31], value: day };\n const monthObj = { type: 'month', range: [1, 12], value: month };\n const yearObj = { type: 'year', range: yearRange, value: year };\n const dateElementProp = [];\n switch (format) {\n case 'MDY':\n dateElementProp.push(monthObj, dayObj, yearObj);\n break;\n case 'DMY':\n dateElementProp.push(dayObj, monthObj, yearObj);\n break;\n case 'YMD':\n default:\n dateElementProp.push(yearObj, monthObj, dayObj);\n }\n if (time) {\n dateElementProp.push({ type: 'hour', range: [0, 23], value: hour }, { type: 'minute', range: [0, 59], value: minute }, { type: 'second', range: [0, 59], value: second });\n }\n return dateElementProp;\n}\n//# sourceMappingURL=getDateElementProps.js.map","/** Extracts the range spec information `{ step?: number, min?: number, max?: number }` that can be spread onto an HTML\n * input from the range analog in the schema `{ multipleOf?: number, minimum?: number, maximum?: number }`.\n *\n * @param schema - The schema from which to extract the range spec\n * @returns - A range specification from the schema\n */\nexport default function rangeSpec(schema) {\n const spec = {};\n if (schema.multipleOf) {\n spec.step = schema.multipleOf;\n }\n if (schema.minimum || schema.minimum === 0) {\n spec.min = schema.minimum;\n }\n if (schema.maximum || schema.maximum === 0) {\n spec.max = schema.maximum;\n }\n return spec;\n}\n//# sourceMappingURL=rangeSpec.js.map","import rangeSpec from \"./rangeSpec.js\";\n/** Using the `schema`, `defaultType` and `options`, extract out the props for the element that make sense.\n *\n * @param schema - The schema for the field provided by the widget\n * @param [defaultType] - The default type, if any, for the field provided by the widget\n * @param [options={}] - The UI Options for the field provided by the widget\n * @param [autoDefaultStepAny=true] - Determines whether to auto-default step=any when the type is number and no step\n * @returns - The extracted `InputPropsType` object\n */\nexport default function getInputProps(schema, defaultType, options = {}, autoDefaultStepAny = true) {\n const inputProps = {\n type: defaultType || 'text',\n ...rangeSpec(schema),\n };\n // If options.inputType is set use that as the input type\n if (options.inputType) {\n inputProps.type = options.inputType;\n }\n else if (!defaultType) {\n // If the schema is of type number or integer, set the input type to number\n if (schema.type === 'number') {\n inputProps.type = 'number';\n // Only add step if one isn't already defined and we are auto-defaulting the \"any\" step\n if (autoDefaultStepAny && inputProps.step === undefined) {\n // Setting step to 'any' fixes a bug in Safari where decimals are not\n // allowed in number inputs\n inputProps.step = 'any';\n }\n }\n else if (schema.type === 'integer') {\n inputProps.type = 'number';\n // Only add step if one isn't already defined\n if (inputProps.step === undefined) {\n // Since this is integer, you always want to step up or down in multiples of 1\n inputProps.step = 1;\n }\n }\n }\n // For date/time input types, propagate formatMinimum/formatMaximum to min/max\n if (['date', 'datetime-local', 'time', 'week', 'month'].includes(inputProps.type)) {\n if (schema.formatMinimum !== undefined) {\n inputProps.min = schema.formatMinimum;\n }\n if (schema.formatMaximum !== undefined) {\n inputProps.max = schema.formatMaximum;\n }\n }\n if (options.autocomplete) {\n inputProps.autoComplete = options.autocomplete;\n }\n if (options.autocapitalize) {\n inputProps.autoCapitalize = options.autocapitalize;\n }\n if (options.accept) {\n inputProps.accept = options.accept;\n }\n return inputProps;\n}\n//# sourceMappingURL=getInputProps.js.map","/** Resolves the effective `optionValueFormat` for enum-backed widgets.\n *\n * Provides a single source of truth for the default DOM encoding format\n * (`'indexed'`) used by `SelectWidget`, `RadioWidget`, and `CheckboxesWidget`.\n * Widgets should call this helper once and pass the result to\n * `enumOptionValueEncoder`, `enumOptionValueDecoder`, and `enumOptionSelectedValue`\n * rather than reading `options.optionValueFormat` directly.\n *\n * @param options - The widget options (typically from the `options` prop, already\n * resolved from `ui:options` and `ui:globalOptions`)\n * @returns The resolved `OptionValueFormat`, defaulting to `'indexed'` when not set\n */\nexport default function getOptionValueFormat(options) {\n return options?.optionValueFormat ?? 'indexed';\n}\n//# sourceMappingURL=getOptionValueFormat.js.map","import { SUBMIT_BTN_OPTIONS_KEY } from \"./constants.js\";\nimport getUiOptions from \"./getUiOptions.js\";\n/** The default submit button options, exported for testing purposes\n */\nexport const DEFAULT_OPTIONS = {\n props: {\n disabled: false,\n },\n submitText: 'Submit',\n norender: false,\n};\n/** Extracts any `ui:submitButtonOptions` from the `uiSchema` and merges them onto the `DEFAULT_OPTIONS`\n *\n * @param [uiSchema={}] - the UI Schema from which to extract submit button props\n * @returns - The merging of the `DEFAULT_OPTIONS` with any custom ones\n */\nexport default function getSubmitButtonOptions(uiSchema = {}) {\n const uiOptions = getUiOptions(uiSchema);\n if (uiOptions?.[SUBMIT_BTN_OPTIONS_KEY]) {\n const options = uiOptions[SUBMIT_BTN_OPTIONS_KEY];\n return { ...DEFAULT_OPTIONS, ...options };\n }\n return DEFAULT_OPTIONS;\n}\n//# sourceMappingURL=getSubmitButtonOptions.js.map","/** Returns the template with the given `name` from either the `uiSchema` if it is defined or from the `registry`\n * otherwise. NOTE, since `ButtonTemplates` are not overridden in `uiSchema` only those in the `registry` are returned.\n *\n * @param name - The name of the template to fetch, restricted to the keys of `TemplatesType`\n * @param registry - The `Registry` from which to read the template\n * @param [uiOptions={}] - The `UIOptionsType` from which to read an alternate template\n * @returns - The template from either the `uiSchema` or `registry` for the `name`\n */\nexport default function getTemplate(name, registry, uiOptions = {}) {\n const { templates } = registry;\n if (name === 'ButtonTemplates') {\n return templates[name];\n }\n // Allow templates to be customized per-field by using string keys from the registry\n if (Object.hasOwn(uiOptions, name) &&\n typeof uiOptions[name] === 'string' &&\n Object.hasOwn(templates, uiOptions[name])) {\n const key = uiOptions[name];\n // Evaluating templates[key] results in TS2590: Expression produces a union type that is too complex to represent\n // To avoid that, we cast templates to `any` before accessing the key field\n return templates[key];\n }\n return (\n // Evaluating uiOptions[name] results in TS2590: Expression produces a union type that is too complex to represent\n // To avoid that, we cast uiOptions to `any` before accessing the name field\n uiOptions[name] || templates[name]);\n}\n//# sourceMappingURL=getTemplate.js.map","import { getByPath } from \"./pathUtils.js\";\nlet testIdCounter = 0;\n/** Returns an object of test IDs that can only be used in test mode. If the function is called in a test environment\n * (`NODE_ENV === 'test'`, this is set by vitest) then a Proxy object will be returned. If a key within the returned\n * object is accessed, if the value already exists the object will return that value, otherwise it will create that key\n * with a generated `uuid` value and return the generated ID. If it is called outside of a test environment, the\n * function will return an empty object, therefore returning `undefined` for any property within the object and\n * excluding the prop from the rendered output of the component in which it is used.\n * This implementation was adapted from the following blog post: https://www.matthewsessions.com/blog/react-test-id/\n * To use this helper, you will want to generate a separate object for each component to avoid potential overlapping of\n * ID names. You will also want to export the object for use in tests, because the keys will be generated in the\n * component file, and used in the test file. Within the component file, add:\n * `export const TEST_IDS = getTestIds();`\n * Then pass `TEST_IDS.examplePropertyName` as the value of the test ID attribute of the intended component. This will\n * allow you to use `TEST_IDS.examplePropertyName` within your tests, while keeping the test IDs out of your rendered\n * output.\n */\nexport default function getTestIds() {\n // For some reason, even though process.env contains the value of `test` for NODE_ENV, accessing it directly returns\n // 'development'. Using `getByPath()` does, in fact, return test so sticking with it.\n // Use globalThis to access process without requiring @types/node (TS6 compatibility).\n if (getByPath(globalThis, ['process', 'env', 'NODE_ENV']) !== 'test') {\n return {};\n }\n const ids = new Map();\n return new Proxy({}, {\n get(_obj, prop) {\n if (!ids.has(prop)) {\n testIdCounter += 1;\n ids.set(prop, `test-id-${testIdCounter}`);\n }\n return ids.get(prop);\n },\n });\n}\n//# sourceMappingURL=getTestIds.js.map","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createElement } from 'react';\nimport ReactIs from 'react-is';\nimport getSchemaType from \"./getSchemaType.js\";\n/** The map of schema types to widget type to widget name\n */\nconst widgetMap = {\n boolean: {\n checkbox: 'CheckboxWidget',\n radio: 'RadioWidget',\n select: 'SelectWidget',\n hidden: 'HiddenWidget',\n },\n string: {\n text: 'TextWidget',\n password: 'PasswordWidget',\n email: 'EmailWidget',\n hostname: 'TextWidget',\n ipv4: 'TextWidget',\n ipv6: 'TextWidget',\n uri: 'URLWidget',\n 'data-url': 'FileWidget',\n radio: 'RadioWidget',\n select: 'SelectWidget',\n textarea: 'TextareaWidget',\n hidden: 'HiddenWidget',\n date: 'DateWidget',\n datetime: 'DateTimeWidget',\n 'date-time': 'DateTimeWidget',\n 'alt-date': 'AltDateWidget',\n 'alt-datetime': 'AltDateTimeWidget',\n time: 'TimeWidget',\n color: 'ColorWidget',\n file: 'FileWidget',\n },\n number: {\n text: 'TextWidget',\n select: 'SelectWidget',\n updown: 'UpDownWidget',\n range: 'RangeWidget',\n radio: 'RadioWidget',\n hidden: 'HiddenWidget',\n },\n integer: {\n text: 'TextWidget',\n select: 'SelectWidget',\n updown: 'UpDownWidget',\n range: 'RangeWidget',\n radio: 'RadioWidget',\n hidden: 'HiddenWidget',\n },\n array: {\n select: 'SelectWidget',\n checkboxes: 'CheckboxesWidget',\n files: 'FileWidget',\n hidden: 'HiddenWidget',\n },\n};\n/** Wraps the given widget with stateless functional component that will merge any `defaultProps.options` with the\n * `options` that are provided in the props. It will add the wrapper component as a `MergedWidget` property onto the\n * `Widget` so that future attempts to wrap `AWidget` will return the already existing wrapper.\n *\n * @param AWidget - A widget that will be wrapped or one that is already wrapped\n * @returns - The wrapper widget\n */\nfunction mergeWidgetOptions(AWidget) {\n let { MergedWidget } = AWidget;\n // cache return value as property of widget for proper react reconciliation\n if (!MergedWidget) {\n // oxlint-disable-next-line typescript/no-deprecated\n const defaultOptions = AWidget.defaultProps?.options || {};\n MergedWidget = ({ options, ...props }) => _jsx(AWidget, { options: { ...defaultOptions, ...options }, ...props });\n // The mutation is deliberate: the wrapper is cached on the widget itself for React reconciliation\n // oxlint-disable-next-line no-param-reassign\n AWidget.MergedWidget = MergedWidget;\n }\n return MergedWidget;\n}\n/** Given a schema representing a field to render and either the name or actual `Widget` implementation, returns the\n * React component that is used to render the widget. If the `widget` is already a React component, then it is wrapped\n * with a `MergedWidget`. Otherwise an attempt is made to look up the widget inside of the `registeredWidgets` map based\n * on the schema type and `widget` name. If no widget component can be found an `Error` is thrown.\n *\n * @param schema - The schema for the field\n * @param [widget] - Either the name of the widget OR a `Widget` implementation to use\n * @param [registeredWidgets={}] - A registry of widget name to `Widget` implementation\n * @returns - The `Widget` component to use\n * @throws - An error if there is no `Widget` component that can be returned\n */\nexport default function getWidget(schema, widget, registeredWidgets = {}) {\n const type = getSchemaType(schema);\n if (typeof widget === 'function' ||\n (widget && ReactIs.isForwardRef(createElement(widget))) ||\n ReactIs.isMemo(widget)) {\n return mergeWidgetOptions(widget);\n }\n if (typeof widget !== 'string') {\n throw new Error(`Unsupported widget definition: ${typeof widget} in schema: ${JSON.stringify(schema)}`);\n }\n if (widget in registeredWidgets) {\n const registeredWidget = registeredWidgets[widget];\n return getWidget(schema, registeredWidget, registeredWidgets);\n }\n if (typeof type === 'string') {\n if (!(type in widgetMap)) {\n throw new Error(`No widget for type '${type}' in schema: ${JSON.stringify(schema)}`);\n }\n if (widget in widgetMap[type]) {\n const registeredWidget = registeredWidgets[widgetMap[type][widget]];\n return getWidget(schema, registeredWidget, registeredWidgets);\n }\n }\n throw new Error(`No widget '${widget}' for type '${type}' in schema: ${JSON.stringify(schema)}`);\n}\n//# sourceMappingURL=getWidget.js.map","/** Hashes a string using the algorithm based on Java's hashing function.\n * JS has no built-in hashing function, so rolling our own\n * based on Java's hashing fn:\n * http://www.java2s.com/example/nodejs-utility-method/string-hash/hashcode-4dc2b.html\n *\n * @param string - The string for which to get the hash\n * @returns - The resulting hash of the string in hex format\n */\nexport function hashString(string) {\n let hash = 0;\n for (let i = 0; i < string.length; i++) {\n const chr = string.charCodeAt(i);\n // oxlint-disable-next-line no-bitwise\n hash = (hash << 5) - hash + chr;\n // oxlint-disable-next-line no-bitwise\n hash &= hash; // Convert to 32bit integer\n }\n return hash.toString(16);\n}\n/** Recursively serializes a value to JSON with object keys sorted alphabetically to produce\n * a stable string representation.\n *\n * @param object - The object for which the sorted stringify is desired\n * @returns - The stringified object with keys sorted in a consistent order\n */\nexport function sortedJSONStringify(object) {\n function shouldIncludeValue(value) {\n return value !== undefined && typeof value !== 'function' && typeof value !== 'symbol';\n }\n if (Array.isArray(object)) {\n return `[${object.map((x) => (x === undefined ? 'undefined' : sortedJSONStringify(x))).join(',')}]`;\n }\n if (object === null || typeof object !== 'object') {\n return JSON.stringify(typeof object === 'function' ? null : object); // Normalise functions\n }\n const record = object;\n const sortedValues = Object.keys(record)\n .sort()\n .filter((key) => shouldIncludeValue(record[key]))\n .map((key) => `${JSON.stringify(key)}:${sortedJSONStringify(record[key])}`);\n return `{${sortedValues.join(',')}}`;\n}\n/** Stringifies an `object` and returns the hash of the resulting string. Sorts object fields\n * in consistent order before stringify to prevent different hash ids for the same object.\n *\n * @param object - The object for which the hash is desired\n * @returns - The string obtained from the hash of the stringified object\n */\nexport function hashObject(object) {\n return hashString(sortedJSONStringify(object));\n}\n/** Stringifies the schema and returns the hash of the resulting string. Sorts schema fields\n * in consistent order before stringify to prevent different hash ids for the same schema.\n * Symbol-keyed properties (RJSF_REF_KEY, RJSF_REF_CYCLE_KEY, ADDITIONAL_PROPERTY_FLAG) are\n * automatically excluded by JSON.stringify, so no special filtering is needed.\n *\n * @param schema - The schema for which the hash is desired\n * @returns - The string obtained from the hash of the stringified schema\n */\nexport default function hashForSchema(schema) {\n return hashString(sortedJSONStringify(schema));\n}\n//# sourceMappingURL=hashForSchema.js.map","import getWidget from \"./getWidget.js\";\n/** Detects whether the `widget` exists for the `schema` with the associated `registryWidgets` and returns true if it\n * does, or false if it doesn't.\n *\n * @param schema - The schema for the field\n * @param widget - Either the name of the widget OR a `Widget` implementation to use\n * @param [registeredWidgets={}] - A registry of widget name to `Widget` implementation\n * @returns - True if the widget exists, false otherwise\n */\nexport default function hasWidget(schema, widget, registeredWidgets = {}) {\n try {\n getWidget(schema, widget, registeredWidgets);\n return true;\n }\n catch (e) {\n const err = e;\n if (err.message && (err.message.startsWith('No widget') || err.message.startsWith('Unsupported widget'))) {\n return false;\n }\n throw e;\n }\n}\n//# sourceMappingURL=hasWidget.js.map","import { ID_KEY } from \"./constants.js\";\n/** Generates a consistent `id` pattern for a given `id` and a `suffix`\n *\n * @param id - Either simple string id or an FieldPathId from which to extract it\n * @param suffix - The suffix to append to the id\n */\nfunction idGenerator(id, suffix) {\n const theId = typeof id === 'string' ? id : id[ID_KEY];\n return `${theId}__${suffix}`;\n}\n/** Return a consistent `id` for the field description element\n *\n * @param id - Either simple string id or an FieldPathId from which to extract it\n * @returns - The consistent id for the field description element from the given `id`\n */\nexport function descriptionId(id) {\n return idGenerator(id, 'description');\n}\n/** Return a consistent `id` for the field error element\n *\n * @param id - Either simple string id or an FieldPathId from which to extract it\n * @returns - The consistent id for the field error element from the given `id`\n */\nexport function errorId(id) {\n return idGenerator(id, 'error');\n}\n/** Return a consistent `id` for the field examples element\n *\n * @param id - Either simple string id or an FieldPathId from which to extract it\n * @returns - The consistent id for the field examples element from the given `id`\n */\nexport function examplesId(id) {\n return idGenerator(id, 'examples');\n}\n/** Return a consistent `id` for the field help element\n *\n * @param id - Either simple string id or an FieldPathId from which to extract it\n * @returns - The consistent id for the field help element from the given `id`\n */\nexport function helpId(id) {\n return idGenerator(id, 'help');\n}\n/** Return a consistent `id` for the field title element\n *\n * @param id - Either simple string id or an FieldPathId from which to extract it\n * @returns - The consistent id for the field title element from the given `id`\n */\nexport function titleId(id) {\n return idGenerator(id, 'title');\n}\n/** Return a list of element ids that contain additional information about the field that can be used to as the aria\n * description of the field. This is correctly omitting `titleId` which would be \"labeling\" rather than \"describing\" the\n * element.\n *\n * @param id - Either simple string id or an FieldPathId from which to extract it\n * @param [includeExamples=false] - Optional flag, if true, will add the `examplesId` into the list\n * @returns - The string containing the list of ids for use in an `aria-describedBy` attribute\n */\nexport function ariaDescribedByIds(id, includeExamples = false) {\n const examples = includeExamples ? ` ${examplesId(id)}` : '';\n return `${errorId(id)} ${descriptionId(id)} ${helpId(id)}${examples}`;\n}\n/** Return a consistent `id` for the `optionIndex`s of a `Radio` or `Checkboxes` widget\n *\n * @param id - The id of the parent component for the option\n * @param optionIndex - The index of the option for which the id is desired\n * @returns - An id for the option index based on the parent `id`\n */\nexport function optionId(id, optionIndex) {\n return `${id}-${optionIndex}`;\n}\n/** Return a consistent `id` for the `btn` button element\n *\n * @param id - The id of the parent component for the option\n * @param btn - The button type for which to generate the id\n * @returns - The consistent id for the button from the given `id` and `btn` type\n */\nexport function buttonId(id, btn) {\n return idGenerator(id, btn);\n}\n/** Return a consistent `id` for the optional data controls `element`\n *\n * @param id - The id of the parent component for the option\n * @param element - The element type for which to generate the id\n * @returns - The consistent id for the optional data controls element from the given `id` and `element` type\n */\nexport function optionalControlsId(id, element) {\n return idGenerator(id, `optional${element}`);\n}\n//# sourceMappingURL=idGenerators.js.map","/** Determines whether the given `formData` represents valid form data, such as a primitive type, an array, or a\n * non-empty object.\n *\n * @param formData - The data to check\n * @returns - True if `formData` is not undefined, null, a primitive type or an array or an empty object\n */\nexport default function isFormDataAvailable(formData) {\n if (formData === undefined || formData === null) {\n return false;\n }\n if (typeof formData !== 'object' || Array.isArray(formData)) {\n return true;\n }\n return Object.keys(formData).length > 0;\n}\n//# sourceMappingURL=isFormDataAvailable.js.map","import { REF_KEY } from \"./constants.js\";\nimport deepEquals from \"./deepEquals.js\";\n/** Helper to check whether a JSON schema object is the root schema. The schema is a root schema with root `properties`\n * key or a root `$ref` key. If the `schemaToCompare` has a root `oneOf` property, the function will\n * return false. Else if `schemaToCompare` and `rootSchema` are the same object or equal, the function will return\n * `true`. Else if the `rootSchema` has a $ref, it will be resolved using `schemaUtils.resolveSchema` utility. If the\n * resolved schema matches the `schemaToCompare` the function will return `true`. Otherwise, it will return false.\n *\n * @param registry - The `Registry` used to get the `rootSchema` and `schemaUtils`\n * @param schemaToCompare - The JSON schema object to check. If `schemaToCompare` is an root schema, the\n * function will return true.\n * @returns - Flag indicating whether the `schemaToCompare` is the root schema\n */\nexport default function isRootSchema(registry, schemaToCompare) {\n const { rootSchema, schemaUtils } = registry;\n if (deepEquals(schemaToCompare, rootSchema)) {\n return true;\n }\n if (REF_KEY in rootSchema) {\n const resolvedSchema = schemaUtils.retrieveSchema(rootSchema);\n return deepEquals(schemaToCompare, resolvedSchema);\n }\n return false;\n}\n//# sourceMappingURL=isRootSchema.js.map","export default function labelValue(label, hideLabel, fallback) {\n return hideLabel ? fallback : label;\n}\n//# sourceMappingURL=labelValue.js.map","/** Converts a local Date string into a UTC date string\n *\n * @param dateString - The string representation of a date as accepted by the `Date()` constructor\n * @returns - A UTC date string if `dateString` is truthy, otherwise undefined\n */\nexport default function localToUTC(dateString) {\n return dateString ? new Date(dateString).toJSON() : undefined;\n}\n//# sourceMappingURL=localToUTC.js.map","import enumOptionsIndexForValue from \"./enumOptionsIndexForValue.js\";\n/** Logs a warning when a single-select enum widget has a schema default that is not one of its enum options.\n *\n * @param id - The field id used in the warning message\n * @param schema - The schema whose default value is checked\n * @param enumOptions - The enum options available to the widget\n * @param multiple - Whether the widget allows multiple selections\n */\nexport default function logUnsupportedDefaultForEnum(id, schema, enumOptions, multiple = false) {\n if (!multiple &&\n Array.isArray(enumOptions) &&\n schema.default !== undefined &&\n enumOptionsIndexForValue(schema.default, enumOptions, multiple) === undefined) {\n // oxlint-disable-next-line no-console\n console.error(`The schema default value \"${schema.default}\" is not one of the values in the enum options for \"${id}\"`);\n }\n}\n//# sourceMappingURL=logUnsupportedDefaultForEnum.js.map","import { FORM_CONTEXT_NAME, LOOKUP_MAP_NAME } from \"./constants.js\";\nimport { getByPath, hasByPath } from \"./pathUtils.js\";\n/** Given a React JSON Schema Form registry or formContext object, return the value associated with `toLookup`. This\n * might be contained within the lookup map in the formContext. If no such value exists, return the `fallback`\n * value.\n *\n * @param regOrFc - The @rjsf registry or form context in which the lookup will occur\n * @param toLookup - The name of the field in the lookup map in the form context to get the value for\n * @param [fallback] - The fallback value to use if the form context does not contain a value for `toLookup`\n * @returns - The value associated with `toLookup` in the form context or `fallback`\n */\nexport default function lookupFromFormContext(regOrFc, toLookup, fallback) {\n const lookupPath = [LOOKUP_MAP_NAME];\n if (hasByPath(regOrFc, FORM_CONTEXT_NAME)) {\n lookupPath.unshift(FORM_CONTEXT_NAME);\n }\n return getByPath(regOrFc, [...lookupPath, toLookup], fallback);\n}\n//# sourceMappingURL=lookupFromFormContext.js.map","/** A function that does nothing and returns `undefined`, useful as a placeholder for an optional callback or as the\n * implementation of a mocked function.\n */\nexport default function noop() { }\n//# sourceMappingURL=noop.js.map","/** Given a list of `properties` and an `order` list, returns a list that contains the `properties` ordered correctly.\n * If `order` is not an array, then the untouched `properties` list is returned. Otherwise `properties` is ordered per\n * the `order` list. If `order` contains a '*' then any `properties` that are not mentioned explicity in `order` will be\n * places in the location of the `*`.\n *\n * @param properties - The list of property keys to be ordered\n * @param order - An array of property keys to be ordered first, with an optional '*' property\n * @returns - A list with the `properties` ordered\n * @throws - Error when the properties cannot be ordered correctly\n */\nexport default function orderProperties(properties, order) {\n if (!Array.isArray(order)) {\n return properties;\n }\n const arrayToHash = (arr) => arr.reduce((acc, curr) => {\n acc[curr] = true;\n return acc;\n }, {});\n const errorPropList = (arr) => arr.length > 1 ? `properties '${arr.join(\"', '\")}'` : `property '${arr[0]}'`;\n const propertyHash = arrayToHash(properties);\n const orderFiltered = order.filter((prop) => prop === '*' || propertyHash[prop]);\n const orderHash = arrayToHash(orderFiltered);\n const rest = properties.filter((prop) => !orderHash[prop]);\n const restIndex = orderFiltered.indexOf('*');\n if (restIndex === -1) {\n if (rest.length) {\n throw new Error(`uiSchema order list does not contain ${errorPropList(rest)}`);\n }\n return orderFiltered;\n }\n if (restIndex !== orderFiltered.lastIndexOf('*')) {\n throw new Error('uiSchema order list contains more than one wildcard item');\n }\n const complete = [...orderFiltered];\n complete.splice(restIndex, 1, ...rest);\n return complete;\n}\n//# sourceMappingURL=orderProperties.js.map","/** Parses the `dateString` into a `DateObject`, including the time information when `includeTime` is true\n *\n * @param dateString - The date string to parse into a DateObject\n * @param [includeTime=true] - Optional flag, if false, will not include the time data into the object\n * @returns - The date string converted to a `DateObject`\n * @throws - Error when the date cannot be parsed from the string\n */\nexport default function parseDateString(dateString, includeTime = true) {\n if (!dateString) {\n return {\n year: -1,\n month: -1,\n day: -1,\n hour: includeTime ? -1 : 0,\n minute: includeTime ? -1 : 0,\n second: includeTime ? -1 : 0,\n };\n }\n const date = new Date(dateString);\n if (Number.isNaN(date.getTime())) {\n throw new Error(`Unable to parse date ${dateString}`);\n }\n return {\n year: date.getUTCFullYear(),\n month: date.getUTCMonth() + 1, // oh you, javascript.\n day: date.getUTCDate(),\n hour: includeTime ? date.getUTCHours() : 0,\n minute: includeTime ? date.getUTCMinutes() : 0,\n second: includeTime ? date.getUTCSeconds() : 0,\n };\n}\n//# sourceMappingURL=parseDateString.js.map","import { ANY_OF_KEY, ONE_OF_KEY, REF_KEY, RJSF_REF_KEY } from \"./constants.js\";\nimport findSchemaDefinition from \"./findSchemaDefinition.js\";\nimport mergeObjects from \"./mergeObjects.js\";\n/** Resolves the uiSchema for a given schema, considering `ui:definitions` stored in the registry.\n *\n * Called at runtime for each field. When the schema contains a `$ref`, looks up the corresponding\n * uiSchema definition from `registry.uiSchemaDefinitions` and merges it with local overrides.\n * For schemas with `oneOf`/`anyOf` branches, also populates `uiSchema[keyword][i]` for branches\n * whose `$ref` matches a definition, so `MultiSchemaField` can read dropdown option titles.\n *\n * Resolution order (later sources override earlier):\n * 1. `ui:definitions[$ref]` - base definition from registry\n * 2. `localUiSchema` - local overrides at current path\n *\n * @param schema - The JSON schema (may contain `$ref` or `RJSF_REF_KEY`)\n * @param localUiSchema - The uiSchema at the current path (local overrides)\n * @param registry - The registry containing `uiSchemaDefinitions`\n * @returns - The resolved uiSchema with definitions merged in\n */\nexport default function resolveUiSchema(schema, localUiSchema, registry) {\n const ref = (schema[RJSF_REF_KEY] ?? schema[REF_KEY]);\n const definitions = registry.uiSchemaDefinitions;\n const definitionUiSchema = ref && definitions ? definitions[ref] : undefined;\n let result;\n if (!definitionUiSchema) {\n result = localUiSchema || {};\n }\n else if (!localUiSchema || Object.keys(localUiSchema).length === 0) {\n result = { ...definitionUiSchema };\n }\n else {\n result = mergeObjects(definitionUiSchema, localUiSchema);\n }\n // Walk oneOf/anyOf branches to populate uiSchema[keyword][i] so MultiSchemaField\n // can read dropdown option titles at the parent level.\n if (definitions) {\n let resolvedSchema = schema;\n if (ref && schema[REF_KEY] && !schema[RJSF_REF_KEY]) {\n try {\n resolvedSchema = findSchemaDefinition(ref, registry.rootSchema);\n }\n catch (e) {\n // oxlint-disable-next-line no-console\n console.warn('could not resolve $ref in resolveUiSchema:\\n', e);\n return result;\n }\n }\n for (const keyword of [ONE_OF_KEY, ANY_OF_KEY]) {\n const schemaOptions = resolvedSchema[keyword];\n if (Array.isArray(schemaOptions) && schemaOptions.length > 0) {\n const currentUiSchemaArray = result[keyword];\n const uiSchemaArray = Array.isArray(currentUiSchemaArray) ? [...currentUiSchemaArray] : [];\n let hasExpanded = false;\n for (let i = 0; i < schemaOptions.length; i++) {\n const option = schemaOptions[i];\n const optionRef = (option?.[RJSF_REF_KEY] ?? option?.[REF_KEY]);\n if (optionRef && optionRef in definitions) {\n const optionUiSchema = (uiSchemaArray[i] || {});\n uiSchemaArray[i] = mergeObjects(definitions[optionRef], optionUiSchema);\n hasExpanded = true;\n }\n }\n if (hasExpanded) {\n result[keyword] = uiSchemaArray;\n }\n }\n }\n }\n return result;\n}\n//# sourceMappingURL=resolveUiSchema.js.map","/** Check to see if a `schema` specifies that a value must be true. This happens when:\n * - `schema.const` is truthy\n * - `schema.enum` == `[true]`\n * - `schema.anyOf` or `schema.oneOf` has a single value which recursively returns true\n * - `schema.allOf` has at least one value which recursively returns true\n *\n * @param schema - The schema to check\n * @returns - True if the schema specifies a value that must be true, false otherwise\n */\nexport default function schemaRequiresTrueValue(schema) {\n // Check if const is a truthy value\n if (schema.const) {\n return true;\n }\n // Check if an enum has a single value of true\n if (schema.enum?.length === 1 && schema.enum[0] === true) {\n return true;\n }\n // If anyOf has a single value, evaluate the subschema\n if (schema.anyOf?.length === 1) {\n return schemaRequiresTrueValue(schema.anyOf[0]);\n }\n // If oneOf has a single value, evaluate the subschema\n if (schema.oneOf?.length === 1) {\n return schemaRequiresTrueValue(schema.oneOf[0]);\n }\n // Evaluate each subschema in allOf, to see if one of them requires a true value\n if (schema.allOf) {\n const schemaSome = (subSchema) => schemaRequiresTrueValue(subSchema);\n return schema.allOf.some(schemaSome);\n }\n return false;\n}\n//# sourceMappingURL=schemaRequiresTrueValue.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport enumOptionsIsSelected from \"./enumOptionsIsSelected.js\";\nimport getTemplate from \"./getTemplate.js\";\nimport getUiOptions from \"./getUiOptions.js\";\nimport { descriptionId } from \"./idGenerators.js\";\n/** Renders the description associated with the selected oneOf or anyOf option in a single-select widget. */\nexport default function SelectedOptionDescription({ hideLabel, id, multiple, options, registry, uiSchema, value }) {\n if (multiple || hideLabel) {\n return null;\n }\n const { label = true } = getUiOptions(uiSchema, registry.globalUiOptions);\n if (!label) {\n return null;\n }\n const option = options.enumOptions?.find(({ value: enumValue }) => enumOptionsIsSelected(enumValue, value));\n const description = option?.schema?.description;\n if (!description) {\n return null;\n }\n const DescriptionFieldTemplate = getTemplate('DescriptionFieldTemplate', registry, options);\n return (_jsx(DescriptionFieldTemplate, { id: descriptionId(id), description: description, schema: option.schema, uiSchema: uiSchema, registry: registry }));\n}\n//# sourceMappingURL=SelectedOptionDescription.js.map","/** Implements a shallow equals comparison that uses Object.is() for comparing values.\n * This function compares objects by checking if all keys and their values are equal using Object.is().\n *\n * @param a - The first element to compare\n * @param b - The second element to compare\n * @returns - True if the `a` and `b` are shallow equal, false otherwise\n */\nexport default function shallowEquals(a, b) {\n // If they're the same reference, they're equal\n if (Object.is(a, b)) {\n return true;\n }\n // If either is null or undefined, they're not equal (since we know they're not the same reference)\n if (a == null || b == null) {\n return false;\n }\n // If they're not objects, they're not equal (since Object.is already checked)\n if (typeof a !== 'object' || typeof b !== 'object') {\n return false;\n }\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n // Different number of keys means not equal\n if (keysA.length !== keysB.length) {\n return false;\n }\n // Check if all keys and values are equal\n for (let i = 0; i < keysA.length; i += 1) {\n const key = keysA[i];\n if (!Object.hasOwn(b, key) || !Object.is(a[key], b[key])) {\n return false;\n }\n }\n return true;\n}\n//# sourceMappingURL=shallowEquals.js.map","import deepEquals from \"./deepEquals.js\";\nimport shallowEquals from \"./shallowEquals.js\";\n/** Determines whether the given `component` should be rerendered by comparing its current set of props and state\n * against the next set. The comparison strategy can be controlled via the `updateStrategy` parameter.\n *\n * @param component - A React component being checked\n * @param nextProps - The next set of props against which to check\n * @param nextState - The next set of state against which to check\n * @param updateStrategy - The strategy to use for comparison:\n * - 'customDeep': Uses RJSF's custom deep equality checks (default)\n * - 'shallow': Uses shallow comparison of props and state\n * - 'always': Always returns true (React's default behavior)\n * @returns - True if the component should be re-rendered, false otherwise\n */\nexport default function shouldRender(component, nextProps, nextState, updateStrategy = 'customDeep') {\n if (updateStrategy === 'always') {\n // Use React's default behavior: always update if state or props change (no shouldComponentUpdate optimization)\n return true;\n }\n if (updateStrategy === 'shallow') {\n // Use shallow comparison for props and state\n const { props, state } = component;\n return !shallowEquals(props, nextProps) || !shallowEquals(state, nextState);\n }\n // Use custom deep equality checks (default 'customDeep' strategy)\n const { props, state } = component;\n return !deepEquals(props, nextProps) || !deepEquals(state, nextState);\n}\n//# sourceMappingURL=shouldRender.js.map","import { ANY_OF_KEY, ONE_OF_KEY } from \"./constants.js\";\nimport getSchemaType from \"./getSchemaType.js\";\nimport getUiOptions from \"./getUiOptions.js\";\nimport isObject from \"./isObject.js\";\nimport isRootSchema from \"./isRootSchema.js\";\n/** Returns the unique list of schema types for all of the options in a anyOf/oneOf\n *\n * @param schemas - The list of schemas representing the XxxOf options\n * @returns - All of the unique types contained within the oneOf list\n */\nexport function getSchemaTypesForXxxOf(schemas) {\n const allTypes = [\n ...new Set(schemas\n .map((s) => (isObject(s) ? getSchemaType(s) : undefined))\n .flat()\n .filter((t) => t !== undefined)),\n ];\n return allTypes.length === 1 ? allTypes[0] : allTypes;\n}\n/** Determines whether the field information from the combination of `schema` and `required` along with the\n * `enableOptionalDataFieldForType` settings from the global UI options in the `registry` all indicate that this field\n * should be rendered with the Optional Data Controls UI.\n *\n * @param registry - The `registry` object\n * @param schema - The schema for the field\n * @param required - Flag indicating whether the field is required\n * @param [uiSchema] - The uiSchema for the field\n * @return - True if the field should be rendered with the optional field UI, otherwise false\n */\nexport default function shouldRenderOptionalField(registry, schema, required, uiSchema) {\n const { enableOptionalDataFieldForType = [] } = getUiOptions(uiSchema, registry.globalUiOptions);\n let schemaType;\n if (ANY_OF_KEY in schema && Array.isArray(schema[ANY_OF_KEY])) {\n schemaType = getSchemaTypesForXxxOf(schema[ANY_OF_KEY]);\n }\n else if (ONE_OF_KEY in schema && Array.isArray(schema[ONE_OF_KEY])) {\n schemaType = getSchemaTypesForXxxOf(schema[ONE_OF_KEY]);\n }\n else {\n schemaType = getSchemaType(schema);\n }\n return (!isRootSchema(registry, schema) &&\n !required &&\n !!schemaType &&\n !Array.isArray(schemaType) &&\n !!enableOptionalDataFieldForType.find((val) => val === schemaType));\n}\n//# sourceMappingURL=shouldRenderOptionalField.js.map","/** Returns a UTC date string for the given `dateObject`. If `time` is false, then the time portion of the string is\n * removed.\n *\n * @param dateObject - The `DateObject` to convert to a date string\n * @param [time=true] - Optional flag used to remove the time portion of the date string if false\n * @returns - The UTC date string\n */\nexport default function toDateString(dateObject, time = true) {\n const { year, month, day, hour = 0, minute = 0, second = 0 } = dateObject;\n const utcTime = Date.UTC(year, month - 1, day, hour, minute, second);\n const datetime = new Date(utcTime).toJSON();\n return time ? datetime : datetime.slice(0, 10);\n}\n//# sourceMappingURL=toDateString.js.map","import { ERRORS_KEY } from \"./constants.js\";\nimport isPlainObject from \"./isPlainObject.js\";\n/** Converts an `errorSchema` into a list of `RJSFValidationErrors`\n *\n * @param errorSchema - The `ErrorSchema` instance to convert\n * @param [fieldPath=[]] - The current field path, defaults to [] if not specified\n * @returns - The list of `RJSFValidationErrors` extracted from the `errorSchema`\n */\nexport default function toErrorList(errorSchema, fieldPath = []) {\n return errorSchema ? errorsFrom(errorSchema, fieldPath) : [];\n}\n/** Does the actual conversion, working on the plain-object shape of an `ErrorSchema` so that the recursive call for a\n * nested error schema does not need an assertion back to `ErrorSchema`.\n *\n * @param errorSchema - The error schema, viewed as the plain object it is at runtime\n * @param fieldPath - The current field path\n * @returns - The list of `RJSFValidationErrors` extracted from the `errorSchema`\n */\nfunction errorsFrom(errorSchema, fieldPath) {\n const errors = errorSchema[ERRORS_KEY];\n const property = `.${fieldPath.join('.')}`;\n const errorList = Array.isArray(errors)\n ? errors.map((message) => ({ property, message, stack: `${property} ${message}` }))\n : [];\n return Object.keys(errorSchema).reduce((currentList, key) => {\n const childSchema = errorSchema[key];\n if (key !== ERRORS_KEY && isPlainObject(childSchema)) {\n return currentList.concat(errorsFrom(childSchema, [...fieldPath, key]));\n }\n return currentList;\n }, errorList);\n}\n//# sourceMappingURL=toErrorList.js.map","import ErrorSchemaBuilder from \"./ErrorSchemaBuilder.js\";\nimport { toPath } from \"./pathUtils.js\";\n/** Transforms a rjsf validation errors list:\n * [\n * {property: '.level1.level2[2].level3', message: 'err a'},\n * {property: '.level1.level2[2].level3', message: 'err b'},\n * {property: '.level1.level2[4].level3', message: 'err b'},\n * ]\n * Into an error tree:\n * {\n * level1: {\n * level2: {\n * 2: {level3: {errors: ['err a', 'err b']}},\n * 4: {level3: {errors: ['err b']}},\n * }\n * }\n * };\n *\n * @param errors - The list of RJSFValidationError objects\n * @returns - The `ErrorSchema` built from the list of `RJSFValidationErrors`\n */\nexport default function toErrorSchema(errors) {\n const builder = new ErrorSchemaBuilder();\n if (errors.length) {\n errors.forEach((error) => {\n const { property, message } = error;\n // When the property is missing or the root element ('.'), toPath produces an empty path\n const path = property ? toPath(property) : [];\n if (message) {\n builder.addErrors(message, path);\n }\n });\n }\n return builder.ErrorSchema;\n}\n//# sourceMappingURL=toErrorSchema.js.map","import { ID_KEY } from \"./constants.js\";\n/** Constructs the `FieldPathId` for `fieldPath`. If `parentPathId` is provided, the `fieldPath` is appended to the end\n * of the parent path. Then the `ID_KEY` of the resulting `FieldPathId` is constructed from the `idPrefix` and\n * `idSeparator` contained within the `globalFormOptions`. If `fieldPath` is passed as an empty string, it will simply\n * generate the path from the `parentPath` (if provided) and the `idPrefix` and `idSeparator`. If a `nameGenerator`\n * is provided in `globalFormOptions`, it will also generate the HTML `name` attribute.\n *\n * @param fieldPath - The property name or array index of the current field element\n * @param globalFormOptions - The `GlobalFormOptions` used to get the `idPrefix` and `idSeparator`\n * @param [parentPath] - The optional `FieldPathId` or `FieldPathList` of the parent element for this field element\n * @param [isMultiValue] - Optional flag indicating this field accepts multiple values\n * @returns - The `FieldPathId` for the given `fieldPath` and the optional `parentPathId`\n */\nexport default function toFieldPathId(fieldPath, globalFormOptions, parentPath, isMultiValue) {\n const basePath = Array.isArray(parentPath) ? parentPath : parentPath?.path;\n const childPath = fieldPath === '' ? [] : [fieldPath];\n const path = basePath ? basePath.concat(...childPath) : childPath;\n const id = [globalFormOptions.idPrefix, ...path].join(globalFormOptions.idSeparator);\n // Generate name attribute if nameGenerator is provided\n let name;\n if (globalFormOptions.nameGenerator && path.length > 0) {\n name = globalFormOptions.nameGenerator(path, globalFormOptions.idPrefix, isMultiValue);\n }\n return { path, [ID_KEY]: id, ...(name !== undefined && { name }) };\n}\n//# sourceMappingURL=toFieldPathId.js.map","import isPlainObject from \"./isPlainObject.js\";\n/** Unwraps the `errorHandler` structure into the associated `ErrorSchema`, stripping the `addError()` functions from it\n *\n * @param errorHandler - The `FormValidation` error handling structure\n * @returns - The `ErrorSchema` resulting from the stripping of the `addError()` function\n */\nexport default function unwrapErrorHandler(errorHandler) {\n return unwrapErrors(errorHandler);\n}\n/** Does the actual unwrapping, working on the plain-object shape of a `FormValidation` so that the recursive call for\n * a nested error handler does not need an assertion back to `FormValidation`.\n *\n * @param errors - The error handling structure, viewed as the plain object it is at runtime\n * @returns - The `ErrorSchema` resulting from the stripping of the `addError()` function\n */\nfunction unwrapErrors(errors) {\n return Object.keys(errors).reduce((acc, key) => {\n if (key === 'addError') {\n return acc;\n }\n const childSchema = errors[key];\n if (isPlainObject(childSchema)) {\n return {\n ...acc,\n [key]: unwrapErrors(childSchema),\n };\n }\n return { ...acc, [key]: childSchema };\n }, {});\n}\n//# sourceMappingURL=unwrapErrorHandler.js.map","'use client';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport dateRangeOptions from \"./dateRangeOptions.js\";\nimport getDateElementProps from \"./getDateElementProps.js\";\nimport { ariaDescribedByIds } from \"./idGenerators.js\";\nimport parseDateString from \"./parseDateString.js\";\nimport toDateString from \"./toDateString.js\";\n/** Function that checks to see if a `DateObject` is ready for the onChange callback to be triggered\n *\n * @param state - The current `DateObject`\n * @returns - True if the `state` is ready to trigger an onChange\n */\nfunction readyForChange(state) {\n return Object.values(state).every((value) => value !== -1);\n}\n/** The `DateElement` component renders one of the 6 date element selectors for an `AltDateWidget`, using the `select`\n * widget from the registry.\n *\n * @param props - The `DateElementProps` for the date element\n */\nexport function DateElement(props) {\n const { className = 'form-control', type, range, value, select, rootId, name, disabled, readonly, autofocus, registry, onBlur, onFocus, } = props;\n const id = `${rootId}_${type}`;\n const { SelectWidget } = registry.widgets;\n const onChange = useCallback((newValue) => select(type, newValue), [select, type]);\n return (_jsx(SelectWidget, { schema: { type: 'integer' }, id: id, name: name, className: className, options: { enumOptions: dateRangeOptions(range[0], range[1]) }, placeholder: type, value: value, disabled: disabled, readonly: readonly, autofocus: autofocus, onChange: onChange, onBlur: onBlur, onFocus: onFocus, registry: registry, label: '', \"aria-describedby\": ariaDescribedByIds(rootId) }));\n}\n/** Hook which encapsulates the logic needed to render an `AltDateWidget` with optional `time` elements. It contains\n * the `state` of the current date(/time) selections in the widget. It returns a `UseAltDateWidgetResult` object\n * that contains the `elements: DateElementProp[]` and three callbacks needed to change one of the rendered `elements`,\n * and to handle the clicking of the `clear` and `setNow` buttons.\n *\n * @param props - The `WidgetProps` for the `AltDateWidget`\n */\nexport default function useAltDateWidgetProps(props) {\n const { time = false, disabled = false, readonly = false, options, onChange, value } = props;\n const [state, setState] = useState(parseDateString(value, time));\n useEffect(() => {\n setState(parseDateString(value, time));\n }, [time, value]);\n const handleChange = useCallback((property, newValue) => {\n const nextState = {\n ...state,\n [property]: typeof newValue === 'undefined' ? -1 : newValue,\n };\n if (readyForChange(nextState)) {\n onChange(toDateString(nextState, time));\n }\n else {\n setState(nextState);\n }\n }, [state, onChange, time]);\n const handleClear = useCallback((event) => {\n event.preventDefault();\n if (disabled || readonly) {\n return;\n }\n onChange(undefined);\n }, [disabled, readonly, onChange]);\n const handleSetNow = useCallback((event) => {\n event.preventDefault();\n if (disabled || readonly) {\n return;\n }\n const nextState = parseDateString(new Date().toJSON(), time);\n onChange(toDateString(nextState, time));\n }, [disabled, readonly, time, onChange]);\n const elements = useMemo(() => getDateElementProps(state, time, options.yearsRange, options.format), [state, time, options.yearsRange, options.format]);\n return { elements, handleChange, handleClear, handleSetNow };\n}\n//# sourceMappingURL=useAltDateWidgetProps.js.map","'use client';\nimport { useRef } from 'react';\nimport deepEquals from \"./deepEquals.js\";\n/** Hook that stores and returns a `T` value. If `newValue` is the same as the stored one, then the stored one is\n * returned to avoid having a component rerender due it being a different object. Otherwise, the `newValue` is stored\n * and returned.\n *\n * @param newValue - The potential new `T` value\n * @returns - The latest stored `T` value\n */\nexport default function useDeepCompareMemo(newValue) {\n const valueRef = useRef(newValue);\n if (!deepEquals(newValue, valueRef.current)) {\n valueRef.current = newValue;\n }\n return valueRef.current;\n}\n//# sourceMappingURL=useDeepCompareMemo.js.map","'use client';\nimport { useCallback, useMemo } from 'react';\nimport dataURItoBlob from \"./dataURItoBlob.js\";\n/** Updated the given `dataUrl` to add the `name` to it\n *\n * @param dataURL - The url description string\n * @param name - The name of the file to add to the dataUrl\n * @returns - The `dataUrl` updated to include the name\n */\nfunction addNameToDataURL(dataURL, name) {\n return dataURL.replace(';base64', `;name=${encodeURIComponent(name)};base64`);\n}\n/** Returns a promise that will read the file from the browser and return it as the result of the promise.\n *\n * @param file - The `File` information to read\n * @returns - A promise that resolves to the read file.\n */\nasync function processFile(file) {\n const { name, size, type } = file;\n return new Promise((resolve, reject) => {\n const reader = new window.FileReader();\n reader.onerror = reject;\n reader.onload = (event) => {\n if (typeof event.target?.result === 'string') {\n resolve({\n dataURL: addNameToDataURL(event.target.result, name),\n name,\n size,\n type,\n });\n }\n else {\n resolve({\n dataURL: null,\n name,\n size,\n type,\n });\n }\n };\n reader.readAsDataURL(file);\n });\n}\n/** Reads a list of files from the browser, returning the results of the promises of each individual file read.\n *\n * @param files - The list of files to read\n * @returns - The list of read files\n */\nasync function processFiles(files) {\n return Promise.all(Array.from(files).map(processFile));\n}\n/** Extracts the file information from the data URLs\n *\n * @param dataURLs - The information about the files\n * @returns - The list of `FileInfoType` objects extracted from the data urls\n */\nfunction extractFileInfo(dataURLs) {\n return dataURLs.reduce((acc, dataURL) => {\n if (!dataURL) {\n return acc;\n }\n try {\n const { blob, name } = dataURItoBlob(dataURL);\n return [\n ...acc,\n {\n dataURL,\n name,\n size: blob.size,\n type: blob.type,\n },\n ];\n }\n catch {\n // Invalid dataURI, so just ignore it.\n return acc;\n }\n }, []);\n}\n/** Hook which encapsulates the logic needed to read and convert a `value` of `File` or `File[]` into the\n * `filesInfo: FileInfoType[]` and the two callback implementations needed to change the list or to remove a\n * `File` from the list. To be used by theme specific `FileWidget` implementations.\n *\n * @param value - The current value of the `FileWidget`\n * @param onChange - The onChange handler for the `FileWidget`\n * @param [multiple=false] - Flag indicating whether the control supports multiple selections\n * @returns - The `UseFileWidgetPropsResult` to be used within a `FileWidget` implementation\n */\nexport default function useFileWidgetProps(value, onChange, multiple = false) {\n const values = useMemo(() => {\n if (multiple && value) {\n return Array.isArray(value) ? value : [value];\n }\n return [];\n }, [value, multiple]);\n const filesInfo = useMemo(() => (Array.isArray(value) ? extractFileInfo(value) : extractFileInfo([value || ''])), [value]);\n const handleChange = useCallback(async (files) => {\n const filesInfoEvent = await processFiles(files);\n const newValue = filesInfoEvent.map((fileInfo) => fileInfo.dataURL || null);\n if (multiple) {\n onChange(values.concat(...newValue));\n }\n else {\n onChange(newValue[0]);\n }\n }, [values, multiple, onChange]);\n const handleRemove = useCallback((index) => {\n if (multiple) {\n const newValue = values.filter((_, i) => i !== index);\n onChange(newValue);\n }\n else {\n onChange(undefined);\n }\n }, [values, multiple, onChange]);\n return { filesInfo, handleChange, handleRemove };\n}\n//# sourceMappingURL=useFileWidgetProps.js.map","import pad from \"./pad.js\";\n/** Converts a UTC date string into a local Date format\n *\n * @param jsonDate - A UTC date string\n * @returns - An empty string when `jsonDate` is falsey, otherwise a date string in local format\n */\nexport default function utcToLocal(jsonDate) {\n if (!jsonDate) {\n return '';\n }\n // required format of `'yyyy-MM-ddThh:mm' followed by optional ':ss' or ':ss.SSS'\n // https://html.spec.whatwg.org/multipage/input.html#local-date-and-time-state-(type%3Ddatetime-local)\n // > should be a _valid local date and time string_ (not GMT)\n // Note - date constructor passed local ISO-8601 does not correctly\n // change time to UTC in node pre-8\n const date = new Date(jsonDate);\n const yyyy = pad(date.getFullYear(), 4);\n const MM = pad(date.getMonth() + 1, 2);\n const dd = pad(date.getDate(), 2);\n const hh = pad(date.getHours(), 2);\n const mm = pad(date.getMinutes(), 2);\n const ss = pad(date.getSeconds(), 2);\n const SSS = pad(date.getMilliseconds(), 3);\n return `${yyyy}-${MM}-${dd}T${hh}:${mm}:${ss}.${SSS}`;\n}\n//# sourceMappingURL=utcToLocal.js.map","import mergeObjects from \"./mergeObjects.js\";\nimport toErrorList from \"./toErrorList.js\";\n/** Merges the errors in `additionalErrorSchema` into the existing `validationData` by combining the hierarchies in the\n * two `ErrorSchema`s and then appending the error list from the `additionalErrorSchema` obtained by calling\n * `toErrorList()` on the `errors` in the `validationData`. If no `additionalErrorSchema` is passed, then\n * `validationData` is returned.\n *\n * @param validationData - The current `ValidationData` into which to merge the additional errors\n * @param [additionalErrorSchema] - The optional additional set of errors in an `ErrorSchema`\n * @param [preventDuplicates=false] - Optional flag, if true, will call `mergeObjects()` with `preventDuplicates`\n * @returns - The `validationData` with the additional errors from `additionalErrorSchema` merged into it, if provided.\n */\nexport default function validationDataMerge(validationData, additionalErrorSchema, preventDuplicates = false) {\n if (!additionalErrorSchema) {\n return validationData;\n }\n const { errors: oldErrors, errorSchema: oldErrorSchema } = validationData;\n let errors = toErrorList(additionalErrorSchema);\n let errorSchema = additionalErrorSchema;\n if (oldErrorSchema && Object.keys(oldErrorSchema).length > 0) {\n errorSchema = mergeObjects(oldErrorSchema, additionalErrorSchema, preventDuplicates ? 'preventDuplicates' : true);\n errors = [...oldErrors].concat(errors);\n }\n return { errorSchema, errors };\n}\n//# sourceMappingURL=validationDataMerge.js.map","import { REF_KEY, ROOT_SCHEMA_PREFIX } from \"./constants.js\";\nimport isObject from \"./isObject.js\";\n/** Takes a `node` object and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n */\nfunction withIdRefPrefixObject(node) {\n const realObj = node;\n for (const key in realObj) {\n /* v8 ignore next -- spread in caller guarantees only own properties reach this loop */\n if (Object.hasOwn(realObj, key)) {\n const value = realObj[key];\n if (key === REF_KEY && typeof value === 'string' && value.startsWith('#')) {\n realObj[key] = ROOT_SCHEMA_PREFIX + value;\n }\n else {\n realObj[key] = withIdRefPrefix(value);\n }\n }\n }\n return node;\n}\n/** Takes a `node` object list and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The list of object nodes to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n */\nfunction withIdRefPrefixArray(node) {\n return node.map((item) => withIdRefPrefix(item));\n}\n/** Recursively prefixes all `$ref`s in a schema with the value of the `ROOT_SCHEMA_PREFIX` constant.\n * This is used in isValid to make references to the rootSchema\n *\n * @param schemaNode - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @returns - A copy of the `schemaNode` with updated `$ref`s\n */\nexport default function withIdRefPrefix(schemaNode) {\n if (Array.isArray(schemaNode)) {\n return withIdRefPrefixArray([...schemaNode]);\n }\n if (isObject(schemaNode)) {\n return withIdRefPrefixObject({ ...schemaNode });\n }\n return schemaNode;\n}\n//# sourceMappingURL=withIdRefPrefix.js.map","/** An enumeration of all the translatable strings used by `@rjsf/core` and its themes. The value of each of the\n * enumeration keys is expected to be the actual english string. Some strings contain replaceable parameter values\n * as indicated by `%1`, `%2`, etc. The number after the `%` indicates the order of the parameter. The ordering of\n * parameters is important because some languages may choose to put the second parameter before the first in its\n * translation. Also, some strings are rendered using `markdown-to-jsx` and thus support markdown and inline html.\n */\nexport var TranslatableString;\n(function (TranslatableString) {\n /** Fallback title of an array item, used by ArrayField */\n TranslatableString[\"ArrayItemTitle\"] = \"Item\";\n /** Missing items reason, used by ArrayField */\n TranslatableString[\"MissingItems\"] = \"Missing items definition\";\n /** Empty array message, used by ArrayField */\n TranslatableString[\"EmptyArray\"] = \"No items yet. Use the button below to add some.\";\n /** Yes label, used by BooleanField */\n TranslatableString[\"YesLabel\"] = \"Yes\";\n /** No label, used by BooleanField */\n TranslatableString[\"NoLabel\"] = \"No\";\n /** Close label, used by ErrorList */\n TranslatableString[\"CloseLabel\"] = \"Close\";\n /** Errors label, used by ErrorList */\n TranslatableString[\"ErrorsLabel\"] = \"Errors\";\n /** New additionalProperties string default value, used by ObjectField */\n TranslatableString[\"NewStringDefault\"] = \"New Value\";\n /** Add button title, used by AddButton */\n TranslatableString[\"AddButton\"] = \"Add\";\n /** Add button title, used by AddButton */\n TranslatableString[\"AddItemButton\"] = \"Add Item\";\n /** Copy button title, used by IconButton */\n TranslatableString[\"CopyButton\"] = \"Copy\";\n /** Expand cycle button title */\n TranslatableString[\"ExpandButton\"] = \"Expand Cycle\";\n /** Move down button title, used by IconButton */\n TranslatableString[\"MoveDownButton\"] = \"Move down\";\n /** Move up button title, used by IconButton */\n TranslatableString[\"MoveUpButton\"] = \"Move up\";\n /** Remove button title, used by IconButton */\n TranslatableString[\"RemoveButton\"] = \"Remove\";\n /** Now label, used by AltDateWidget */\n TranslatableString[\"NowLabel\"] = \"Now\";\n /** Clear label, used by AltDateWidget */\n TranslatableString[\"ClearLabel\"] = \"Clear\";\n /** Aria date label, used by DateWidget */\n TranslatableString[\"AriaDateLabel\"] = \"Select a date\";\n /** File preview label, used by FileWidget */\n TranslatableString[\"PreviewLabel\"] = \"Preview\";\n /** Decrement button aria label, used by UpDownWidget */\n TranslatableString[\"DecrementAriaLabel\"] = \"Decrease value by 1\";\n /** Increment button aria label, used by UpDownWidget */\n TranslatableString[\"IncrementAriaLabel\"] = \"Increase value by 1\";\n /** The label for the Add button in for an optional object field */\n TranslatableString[\"OptionalObjectAdd\"] = \"Add data for optional field\";\n /** The label for the Remove button in for an optional object field */\n TranslatableString[\"OptionalObjectRemove\"] = \"Remove data for optional field\";\n /** The label for when displaying a non-editable form with missing optional field data */\n TranslatableString[\"OptionalObjectEmptyMsg\"] = \"No data for optional field\";\n /** Label for the schema type selector, used by FallbackField */\n TranslatableString[\"Type\"] = \"Type\";\n /** Label for the 'value' field, used by FallbackField */\n TranslatableString[\"Value\"] = \"Value\";\n /** Clear button title, used by IconButton */\n TranslatableString[\"ClearButton\"] = \"clear input\";\n // Strings with replaceable parameters\n /** Unknown field type reason, where %1 will be replaced with the type as provided by SchemaField */\n TranslatableString[\"UnknownFieldType\"] = \"Unknown field type %1\";\n /** Option prefix, where %1 will be replaced with the option index as provided by MultiSchemaField */\n TranslatableString[\"OptionPrefix\"] = \"Option %1\";\n /** Option prefix, where %1 and %2 will be replaced by the schema title and option index, respectively as provided by\n * MultiSchemaField\n */\n TranslatableString[\"TitleOptionPrefix\"] = \"%1 option %2\";\n /** Key label, where %1 will be replaced by the label as provided by WrapIfAdditionalTemplate */\n TranslatableString[\"KeyLabel\"] = \"%1 Key\";\n /** Deprecated label, where %1 will be replaced by the label as provided by SchemaField */\n TranslatableString[\"DeprecatedLabel\"] = \"%1 (deprecated)\";\n /** Cyclic schema message */\n TranslatableString[\"CycleDetected\"] = \"Circular reference ($ref cycle) detected for field \\\"%1\\\". You may choose to expand to the next cycle break\";\n // Strings with replaceable parameters AND/OR that support markdown and html\n /** Invalid object field configuration as provided by the ObjectField.\n * NOTE: Use markdown notation rather than html tags.\n */\n TranslatableString[\"InvalidObjectField\"] = \"Invalid \\\"%1\\\" object field configuration: _%2_.\";\n /** Unsupported field schema, used by UnsupportedField */\n TranslatableString[\"UnsupportedField\"] = \"Unsupported field schema.\";\n /** Unsupported field schema, where %1 will be replaced by the FieldPathId.$id as provided by UnsupportedField.\n * NOTE: Use markdown notation rather than html tags.\n */\n TranslatableString[\"UnsupportedFieldWithId\"] = \"Unsupported field schema for field `%1`.\";\n /** Unsupported field schema, where %1 will be replaced by the reason string as provided by UnsupportedField.\n * NOTE: Use markdown notation rather than html tags.\n */\n TranslatableString[\"UnsupportedFieldWithReason\"] = \"Unsupported field schema: _%1_.\";\n /** Unsupported field schema, where %1 and %2 will be replaced by the FieldPathId.$id and reason strings,\n * respectively, as provided by UnsupportedField.\n * NOTE: Use markdown notation rather than html tags.\n */\n TranslatableString[\"UnsupportedFieldWithIdAndReason\"] = \"Unsupported field schema for field `%1`: _%2_.\";\n /** File name, type and size info, where %1, %2 and %3 will be replaced by the file name, file type and file size as\n * provided by FileWidget\n */\n TranslatableString[\"FilesInfo\"] = \"**%1** (%2, %3 bytes)\";\n})(TranslatableString || (TranslatableString = {}));\n//# sourceMappingURL=enums.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { memo, useCallback, useMemo, useRef, useState } from 'react';\nimport { setByPath, allowAdditionalItems, getTemplate, getUiOptions, getWidget, hashObject, isCustomWidget, isFixedItems, isFormDataAvailable, isObject, optionsList, shouldRenderOptionalField, toFieldPathId, useDeepCompareMemo, ITEMS_KEY, ID_KEY, TranslatableString, } from '@rjsf/utils';\n/** Used to generate a unique ID for an element in a row */\nlet rowIdCounter = 0;\nfunction generateRowId() {\n rowIdCounter += 1;\n return `rjsf-array-item-${rowIdCounter}`;\n}\n/** Converts the `formData` into `KeyedFormDataType` data, using the `generateRowId()` function to create the key\n *\n * @param formData - The data for the form\n * @returns - The `formData` converted into a `KeyedFormDataType` element\n */\nfunction generateKeyedFormData(formData) {\n return !Array.isArray(formData)\n ? []\n : formData.map((item) => ({\n key: generateRowId(),\n item,\n }));\n}\n/** Converts `KeyedFormDataType` data into the inner `formData`\n *\n * @param keyedFormData - The `KeyedFormDataType` to be converted\n * @returns - The inner `formData` item(s) in the `keyedFormData`\n */\nfunction keyedToPlainFormData(keyedFormData) {\n if (Array.isArray(keyedFormData)) {\n return keyedFormData.map((keyedItem) => keyedItem.item);\n }\n return [];\n}\n/** Determines whether the item described in the schema is always required, which is determined by whether any item\n * may be null.\n *\n * @param itemSchema - The schema for the item\n * @return - True if the item schema type does not contain the \"null\" type\n */\nfunction isItemRequired(itemSchema) {\n if (Array.isArray(itemSchema.type)) {\n // While we don't yet support composite/nullable jsonschema types, it's\n // future-proof to check for requirement against these.\n return !itemSchema.type.includes('null');\n }\n // All non-null array item types are inherently required by design\n return itemSchema.type !== 'null';\n}\n/** Determines whether more items can be added to the array. If the uiSchema indicates the array doesn't allow adding\n * then false is returned. Otherwise, if the schema indicates that there are a maximum number of items and the\n * `formData` matches that value, then false is returned, otherwise true is returned.\n *\n * @param registry - The registry\n * @param schema - The schema for the field\n * @param formItems - The list of items in the form\n * @param [uiSchema] - The UiSchema for the field\n * @returns - True if the item is addable otherwise false\n */\nfunction canAddItem(registry, schema, formItems, uiSchema) {\n let { addable } = getUiOptions(uiSchema, registry.globalUiOptions);\n if (addable !== false) {\n // if ui:options.addable was not explicitly set to false, we can add\n // another item if we have not exceeded maxItems yet\n if (schema.maxItems !== undefined) {\n addable = formItems.length < schema.maxItems;\n }\n else {\n addable = true;\n }\n }\n return addable;\n}\n/** Helper method to compute item UI schema for both normal and fixed arrays\n * Handles both static object and dynamic function cases\n *\n * @param uiSchema - The parent UI schema containing items definition\n * @param item - The item data\n * @param index - The index of the item\n * @param formContext - The form context\n * @returns The computed UI schema for the item\n */\nfunction computeItemUiSchema(uiSchema, item, index, formContext) {\n if (typeof uiSchema.items === 'function') {\n try {\n // Call the function with item data, index, and form context\n // TypeScript now correctly infers the types thanks to the ArrayElement type in UiSchema\n const result = uiSchema.items(item, index, formContext);\n // Only use the result if it's truthy\n return result;\n }\n catch (e) {\n // oxlint-disable-next-line no-console\n console.error(`Error executing dynamic uiSchema.items function for item at index ${index}:`, e);\n // Fall back to undefined to allow the field to still render\n return undefined;\n }\n }\n else {\n // Static object case - preserve undefined to maintain backward compatibility\n return uiSchema.items;\n }\n}\n/** Returns the default form information for an item based on the schema for that item. Deals with the possibility\n * that the schema is fixed and allows additional items.\n */\nfunction getNewFormDataRow(registry, schema) {\n const { schemaUtils, globalFormOptions } = registry;\n let itemSchema = schema.items;\n if (globalFormOptions.useFallbackUiForUnsupportedType && !itemSchema) {\n // If we don't have itemSchema and useFallbackUiForUnsupportedType is on, use an empty schema\n itemSchema = {};\n }\n else if (isFixedItems(schema) && allowAdditionalItems(schema)) {\n itemSchema = schema.additionalItems;\n }\n // Cast this as a T to work around schema utils being for T[] caused by the FieldProps call on the class\n return schemaUtils.getDefaultFormState(itemSchema);\n}\n/** Renders an array as a set of checkboxes using the 'select' widget\n */\nfunction ArrayAsMultiSelect(props) {\n const { schema, fieldPathId, uiSchema, formData: items = [], disabled = false, readonly = false, autofocus = false, required = false, placeholder, onBlur, onFocus, registry, rawErrors, name, onSelectChange, } = props;\n const { widgets, schemaUtils, globalFormOptions, globalUiOptions } = registry;\n const itemsSchema = schemaUtils.retrieveSchema(schema.items, items);\n // For computing `enumOptions`, fallback to the array property's uiSchema if there is no `items` schema\n // Avoids a breaking change reported in https://github.com/rjsf-team/react-jsonschema-form/issues/4985\n const itemsUiSchema = (uiSchema?.items ?? uiSchema);\n const enumOptions = optionsList(itemsSchema, itemsUiSchema);\n const { widget = 'select', title: uiTitle, ...options } = getUiOptions(uiSchema, globalUiOptions);\n const Widget = getWidget(schema, widget, widgets);\n const label = uiTitle ?? schema.title ?? name;\n const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);\n // For custom widgets with multiple=true, generate a fieldPathId with isMultiValue flag\n const multiValueFieldPathId = useDeepCompareMemo(toFieldPathId('', globalFormOptions, fieldPathId, true));\n return (_jsx(Widget, { id: multiValueFieldPathId[ID_KEY], name: name, multiple: true, onChange: onSelectChange, onBlur: onBlur, onFocus: onFocus, options: { ...options, enumOptions }, schema: schema, uiSchema: uiSchema, registry: registry, value: items, disabled: disabled, readonly: readonly, required: required, label: label, hideLabel: !displayLabel, placeholder: placeholder, autofocus: autofocus, rawErrors: rawErrors, htmlName: multiValueFieldPathId.name }));\n}\n/** Renders an array using the custom widget provided by the user in the `uiSchema`\n */\nfunction ArrayAsCustomWidget(props) {\n const { schema, fieldPathId, uiSchema, disabled = false, readonly = false, autofocus = false, required = false, hideError, placeholder, onBlur, onFocus, formData: items = [], registry, rawErrors, name, onSelectChange, } = props;\n const { widgets, schemaUtils, globalFormOptions, globalUiOptions } = registry;\n const { widget, title: uiTitle, ...options } = getUiOptions(uiSchema, globalUiOptions);\n const Widget = getWidget(schema, widget, widgets);\n const label = uiTitle ?? schema.title ?? name;\n const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);\n // For custom widgets with multiple=true, generate a fieldPathId with isMultiValue flag\n const multiValueFieldPathId = useDeepCompareMemo(toFieldPathId('', globalFormOptions, fieldPathId, true));\n return (_jsx(Widget, { id: multiValueFieldPathId[ID_KEY], name: name, multiple: true, onChange: onSelectChange, onBlur: onBlur, onFocus: onFocus, options: options, schema: schema, uiSchema: uiSchema, registry: registry, value: items, disabled: disabled, readonly: readonly, hideError: hideError, required: required, label: label, hideLabel: !displayLabel, placeholder: placeholder, autofocus: autofocus, rawErrors: rawErrors, htmlName: multiValueFieldPathId.name }));\n}\n/** Renders an array of files using the `FileWidget`\n */\nfunction ArrayAsFiles(props) {\n const { schema, uiSchema, fieldPathId, name, disabled = false, readonly = false, autofocus = false, required = false, onBlur, onFocus, registry, formData: items = [], rawErrors, onSelectChange, } = props;\n const { widgets, schemaUtils, globalFormOptions, globalUiOptions } = registry;\n const { widget = 'files', title: uiTitle, ...options } = getUiOptions(uiSchema, globalUiOptions);\n const Widget = getWidget(schema, widget, widgets);\n const label = uiTitle ?? schema.title ?? name;\n const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);\n // For custom widgets with multiple=true, generate a fieldPathId with isMultiValue flag\n const multiValueFieldPathId = useDeepCompareMemo(toFieldPathId('', globalFormOptions, fieldPathId, true));\n return (_jsx(Widget, { options: options, id: multiValueFieldPathId[ID_KEY], name: name, multiple: true, onChange: onSelectChange, onBlur: onBlur, onFocus: onFocus, schema: schema, uiSchema: uiSchema, value: items, disabled: disabled, readonly: readonly, required: required, registry: registry, autofocus: autofocus, rawErrors: rawErrors, label: label, hideLabel: !displayLabel, htmlName: multiValueFieldPathId.name }));\n}\n/** Renders the individual array item using a `SchemaField` along with the additional properties that are needed to\n * render the whole of the `ArrayFieldItemTemplate`.\n */\nfunction ArrayFieldItemInner(props) {\n const { itemKey, index, name, disabled, hideError, readonly, registry, uiOptions, parentUiSchema, canAdd, canRemove = true, canMoveUp, canMoveDown, rawItemSchema, itemData, itemUiSchema, parentFieldPathId, itemErrorSchema, autofocus, onBlur, onFocus, onChange, rawErrors, totalItems, title, handleAddItem, handleCopyItem, handleRemoveItem, handleReorderItems, } = props;\n const { schemaUtils, fields: { ArraySchemaField, SchemaField }, globalUiOptions, globalFormOptions, } = registry;\n const itemSchema = useMemo(() => schemaUtils.retrieveSchema(rawItemSchema, itemData), [schemaUtils, rawItemSchema, itemData]);\n // parentFieldPathId is the same stable reference for all items; index is a stable number.\n // useMemo avoids creating a new FieldPathId object on every render, letting React.memo bail out.\n const fieldPathId = useMemo(() => toFieldPathId(index, globalFormOptions, parentFieldPathId), [index, globalFormOptions, parentFieldPathId]);\n const ItemSchemaField = ArraySchemaField || SchemaField;\n const ArrayFieldItemTemplate = getTemplate('ArrayFieldItemTemplate', registry, uiOptions);\n const displayLabel = schemaUtils.getDisplayLabel(itemSchema, itemUiSchema, globalUiOptions);\n const { description } = getUiOptions(itemUiSchema);\n const hasDescription = !!description || !!itemSchema.description;\n const { orderable = true, removable = true, copyable = false } = uiOptions;\n const has = {\n moveUp: orderable && canMoveUp,\n moveDown: orderable && canMoveDown,\n copy: copyable && canAdd,\n remove: removable && canRemove,\n toolbar: false,\n };\n has.toolbar = Object.keys(has).some((key) => has[key]);\n const onAddItem = useCallback((event) => {\n handleAddItem(event, index + 1);\n }, [handleAddItem, index]);\n const onCopyItem = useCallback((event) => {\n handleCopyItem(event, index);\n }, [handleCopyItem, index]);\n const onRemoveItem = useCallback((event) => {\n handleRemoveItem(event, index);\n }, [handleRemoveItem, index]);\n const onMoveUpItem = useCallback((event) => {\n handleReorderItems(event, index, index - 1);\n }, [handleReorderItems, index]);\n const onMoveDownItem = useCallback((event) => {\n handleReorderItems(event, index, index + 1);\n }, [handleReorderItems, index]);\n const templateProps = {\n children: (_jsx(ItemSchemaField, { name: name, title: title, index: index, schema: itemSchema, uiSchema: itemUiSchema, formData: itemData, errorSchema: itemErrorSchema, fieldPathId: fieldPathId, required: isItemRequired(itemSchema), onChange: onChange, onBlur: onBlur, onFocus: onFocus, registry: registry, disabled: disabled, readonly: readonly, hideError: hideError, autofocus: autofocus, rawErrors: rawErrors })),\n buttonsProps: {\n fieldPathId,\n disabled,\n readonly,\n canAdd,\n hasCopy: has.copy,\n hasMoveUp: has.moveUp,\n hasMoveDown: has.moveDown,\n hasRemove: has.remove,\n index,\n totalItems,\n onAddItem,\n onCopyItem,\n onRemoveItem,\n onMoveUpItem,\n onMoveDownItem,\n registry,\n schema: itemSchema,\n uiSchema: itemUiSchema,\n },\n itemKey,\n className: 'rjsf-array-item',\n disabled,\n hasToolbar: has.toolbar,\n index,\n totalItems,\n readonly,\n registry,\n schema: itemSchema,\n uiSchema: itemUiSchema,\n parentUiSchema,\n displayLabel,\n hasDescription,\n };\n return _jsx(ArrayFieldItemTemplate, { ...templateProps });\n}\nconst ArrayFieldItem = memo(ArrayFieldItemInner);\n/** Renders a normal array without any limitations of length\n */\nfunction NormalArray(props) {\n const { schema, uiSchema = {}, errorSchema, fieldPathId, formData: formDataFromProps, name, title, disabled = false, readonly = false, autofocus = false, required = false, hideError = false, registry, onBlur, onFocus, rawErrors, onChange, keyedFormData, handleAddItem, handleCopyItem, handleRemoveItem, handleReorderItems, } = props;\n const fieldTitle = schema.title || title || name;\n const { schemaUtils, fields, formContext, globalUiOptions } = registry;\n const { OptionalDataControlsField } = fields;\n const uiOptions = useMemo(() => getUiOptions(uiSchema, globalUiOptions), [uiSchema, globalUiOptions]);\n // Memoize schemaItems to avoid a new `{}` object identity on every render (which would bust retrieveSchema cache)\n const schemaItems = useMemo(() => (isObject(schema.items) ? schema.items : {}), [schema.items]);\n const itemsSchema = useMemo(() => schemaUtils.retrieveSchema(schemaItems), [schemaUtils, schemaItems]);\n const formData = useMemo(() => keyedToPlainFormData(keyedFormData), [keyedFormData]);\n const renderOptionalField = shouldRenderOptionalField(registry, schema, required, uiSchema);\n const hasFormData = isFormDataAvailable(formDataFromProps);\n const canAdd = useMemo(() => canAddItem(registry, schema, formData, uiSchema) && (!renderOptionalField || hasFormData), [registry, schema, formData, uiSchema, renderOptionalField, hasFormData]);\n const actualFormData = hasFormData ? keyedFormData : [];\n const extraClass = renderOptionalField ? ' rjsf-optional-array-field' : '';\n // All the children will use childFieldPathId if present in the props, falling back to the fieldPathId\n const childFieldPathId = props.childFieldPathId ?? fieldPathId;\n const optionalDataControl = renderOptionalField ? (_jsx(OptionalDataControlsField, { ...props, fieldPathId: childFieldPathId })) : undefined;\n const arrayProps = {\n canAdd,\n items: actualFormData.map((keyedItem, index) => {\n const { key, item } = keyedItem;\n // While we are actually dealing with a single item of type T, the types require a T[], so cast\n const itemCast = item;\n const itemErrorSchema = errorSchema ? errorSchema[index] : undefined;\n // Compute the item UI schema using the helper method\n const itemUiSchema = computeItemUiSchema(uiSchema, item, index, formContext);\n const itemProps = {\n itemKey: key,\n index,\n name: name && `${name}-${index}`,\n registry,\n uiOptions,\n parentUiSchema: uiSchema,\n hideError,\n readonly,\n disabled,\n required,\n title: fieldTitle ? `${fieldTitle}-${index + 1}` : undefined,\n canAdd,\n canMoveUp: index > 0,\n canMoveDown: index < formData.length - 1,\n rawItemSchema: schemaItems,\n parentFieldPathId: childFieldPathId,\n itemErrorSchema,\n itemData: itemCast,\n itemUiSchema,\n autofocus: autofocus && index === 0,\n onBlur,\n onFocus,\n rawErrors,\n totalItems: keyedFormData.length,\n handleAddItem,\n handleCopyItem,\n handleRemoveItem,\n handleReorderItems,\n onChange,\n };\n return _jsx(ArrayFieldItem, { ...itemProps }, key);\n }),\n className: `rjsf-field rjsf-field-array rjsf-field-array-of-${itemsSchema.type}${extraClass}`,\n disabled,\n fieldPathId,\n uiSchema,\n onAddClick: handleAddItem,\n readonly,\n required,\n schema,\n title: fieldTitle,\n formData,\n rawErrors,\n registry,\n optionalDataControl,\n };\n const Template = getTemplate('ArrayFieldTemplate', registry, uiOptions);\n return _jsx(Template, { ...arrayProps });\n}\n/** Renders an array that has a maximum limit of items\n */\nfunction FixedArray(props) {\n const { schema, uiSchema = {}, formData, errorSchema, fieldPathId, name, title, disabled = false, readonly = false, autofocus = false, required = false, hideError = false, registry, onBlur, onFocus, rawErrors, keyedFormData, onChange, handleAddItem, handleCopyItem, handleRemoveItem, handleReorderItems, } = props;\n let { formData: items = [] } = props;\n const fieldTitle = schema.title || title || name;\n const { fields, formContext, globalUiOptions } = registry;\n const uiOptions = useMemo(() => getUiOptions(uiSchema, globalUiOptions), [uiSchema, globalUiOptions]);\n const { OptionalDataControlsField } = fields;\n const renderOptionalField = shouldRenderOptionalField(registry, schema, required, uiSchema);\n const hasFormData = isFormDataAvailable(formData);\n const schemaItems = useMemo(() => (Array.isArray(schema.items) ? schema.items : []), [schema.items]);\n const hasAdditionalItems = isObject(schema.additionalItems);\n // All the children will use childFieldPathId if present in the props, falling back to the fieldPathId\n const childFieldPathId = props.childFieldPathId ?? fieldPathId;\n if (items.length < schemaItems.length) {\n // to make sure at least all fixed items are generated\n items = items.concat(new Array(schemaItems.length - items.length));\n }\n const actualFormData = hasFormData ? keyedFormData : [];\n const extraClass = renderOptionalField ? ' rjsf-optional-array-field' : '';\n const optionalDataControl = renderOptionalField ? (_jsx(OptionalDataControlsField, { ...props, fieldPathId: childFieldPathId })) : undefined;\n // These are the props passed into the render function\n const canAdd = canAddItem(registry, schema, items, uiSchema) &&\n hasAdditionalItems &&\n (!renderOptionalField || hasFormData);\n const arrayProps = {\n canAdd,\n className: `rjsf-field rjsf-field-array rjsf-field-array-fixed-items${extraClass}`,\n disabled,\n fieldPathId,\n formData,\n items: actualFormData.map((keyedItem, index) => {\n const { key, item } = keyedItem;\n // While we are actually dealing with a single item of type T, the types require a T[], so cast\n const itemCast = item;\n const additional = index >= schemaItems.length;\n const rawItemSchema = (additional && isObject(schema.additionalItems) ? schema.additionalItems : schemaItems[index]) ||\n {};\n // Compute the item UI schema - handle both static and dynamic cases\n let itemUiSchema;\n if (additional) {\n // For additional items, use additionalItems uiSchema\n itemUiSchema = uiSchema.additionalItems;\n }\n else if (Array.isArray(uiSchema.items)) {\n // For fixed items, uiSchema.items can be an array, a function, or a single object\n itemUiSchema = uiSchema.items[index];\n }\n else {\n // Use the helper method for function or static object cases\n itemUiSchema = computeItemUiSchema(uiSchema, item, index, formContext);\n }\n const itemErrorSchema = errorSchema ? errorSchema[index] : undefined;\n const itemProps = {\n index,\n itemKey: key,\n name: name && `${name}-${index}`,\n registry,\n uiOptions,\n parentUiSchema: uiSchema,\n hideError,\n readonly,\n disabled,\n required,\n title: fieldTitle ? `${fieldTitle}-${index + 1}` : undefined,\n canAdd,\n canRemove: additional,\n canMoveUp: index >= schemaItems.length + 1,\n canMoveDown: additional && index < items.length - 1,\n rawItemSchema,\n itemData: itemCast,\n itemUiSchema,\n parentFieldPathId: childFieldPathId,\n itemErrorSchema,\n autofocus: autofocus && index === 0,\n onBlur,\n onFocus,\n rawErrors,\n totalItems: keyedFormData.length,\n onChange,\n handleAddItem,\n handleCopyItem,\n handleRemoveItem,\n handleReorderItems,\n };\n return _jsx(ArrayFieldItem, { ...itemProps }, key);\n }),\n onAddClick: handleAddItem,\n readonly,\n required,\n registry,\n schema,\n uiSchema,\n title: fieldTitle,\n errorSchema,\n rawErrors,\n optionalDataControl,\n };\n const Template = getTemplate('ArrayFieldTemplate', registry, uiOptions);\n return _jsx(Template, { ...arrayProps });\n}\n/** A custom hook that handles the updating of the keyedFormData from an external `formData` change as well as\n * internally by the `ArrayField`. If there was an external `formData` change, then the `keyedFormData` is recomputed\n * in order to preserve the unique keys from the old `keyedFormData` to the new `formData`. Along with the\n * `keyedFormData` this hook also returns an `updateKeyedFormData()` function for use by the `ArrayField`. The detection\n * of external `formData` are handled by storing the hash of that `formData` along with the `keyedFormData` associated\n * with it. The `updateKeyedFormData()` will update that hash whenever the `keyedFormData` is modified and as well as\n * returning the plain `formData` from the `keyedFormData`.\n */\nfunction useKeyedFormData(formData = []) {\n const newHash = useMemo(() => hashObject(formData), [formData]);\n const [state, setState] = useState(() => ({\n formDataHash: newHash,\n keyedFormData: generateKeyedFormData(formData),\n }));\n let { keyedFormData, formDataHash } = state;\n if (newHash !== formDataHash) {\n const nextFormData = Array.isArray(formData) ? formData : [];\n const previousKeyedFormData = keyedFormData || [];\n keyedFormData =\n nextFormData.length === previousKeyedFormData.length\n ? previousKeyedFormData.map((previousKeyedFormDatum, index) => ({\n key: previousKeyedFormDatum.key,\n item: nextFormData[index],\n }))\n : generateKeyedFormData(nextFormData);\n formDataHash = newHash;\n setState({ formDataHash, keyedFormData });\n }\n const updateKeyedFormData = useCallback((newData) => {\n const plainFormData = keyedToPlainFormData(newData);\n const updatedHash = hashObject(plainFormData);\n setState({ formDataHash: updatedHash, keyedFormData: newData });\n return plainFormData;\n }, []);\n return { keyedFormData, updateKeyedFormData };\n}\n/** The `ArrayField` component is used to render a field in the schema that is of type `array`. It supports both normal\n * and fixed array, allowing user to add and remove elements from the array data.\n */\nexport default function ArrayField(props) {\n const { schema, uiSchema, errorSchema, fieldPathId, registry, formData, onChange } = props;\n const { globalFormOptions, schemaUtils, translateString } = registry;\n const { keyedFormData, updateKeyedFormData } = useKeyedFormData(formData);\n // Refs keep the latest values accessible inside stable useCallback closures without being in the dep array,\n // so the four mutation handlers don't get new references on every keyedFormData / errorSchema change.\n const keyedFormDataRef = useRef(keyedFormData);\n keyedFormDataRef.current = keyedFormData;\n const errorSchemaRef = useRef(errorSchema);\n errorSchemaRef.current = errorSchema;\n // All the children will use childFieldPathId if present in the props, falling back to the fieldPathId\n const childFieldPathId = props.childFieldPathId ?? fieldPathId;\n /** Callback handler for when the user clicks on the add or add at index buttons. Creates a new row of keyed form data\n * either at the end of the list (when index is not specified) or inserted at the `index` when it is, adding it into\n * the state, and then returning `onChange()` with the plain form data converted from the keyed data\n *\n * @param event - The event for the click\n * @param [index] - The optional index at which to add the new data\n */\n const handleAddItem = useCallback((event, index) => {\n if (event) {\n event.preventDefault();\n }\n let newErrorSchema;\n if (errorSchemaRef.current) {\n newErrorSchema = {};\n for (const idx of Object.keys(errorSchemaRef.current)) {\n const i = parseInt(idx, 10);\n if (index === undefined || i < index) {\n setByPath(newErrorSchema, i, errorSchemaRef.current[i]);\n }\n else if (i >= index) {\n setByPath(newErrorSchema, i + 1, errorSchemaRef.current[i]);\n }\n }\n }\n const newKeyedFormDataRow = {\n key: generateRowId(),\n item: getNewFormDataRow(registry, schema),\n };\n const newKeyedFormData = [...keyedFormDataRef.current];\n if (index !== undefined) {\n newKeyedFormData.splice(index, 0, newKeyedFormDataRow);\n }\n else {\n newKeyedFormData.push(newKeyedFormDataRow);\n }\n onChange(updateKeyedFormData(newKeyedFormData), childFieldPathId.path, newErrorSchema);\n }, [registry, schema, onChange, updateKeyedFormData, childFieldPathId]);\n /** Callback handler for when the user clicks on the copy button on an existing array element. Clones the row of\n * keyed form data at the `index` into the next position in the state, and then returning `onChange()` with the plain\n * form data converted from the keyed data\n *\n * @param index - The index at which the copy button is clicked\n */\n const handleCopyItem = useCallback((event, index) => {\n if (event) {\n event.preventDefault();\n }\n let newErrorSchema;\n if (errorSchemaRef.current) {\n newErrorSchema = {};\n for (const idx of Object.keys(errorSchemaRef.current)) {\n const i = parseInt(idx, 10);\n if (i <= index) {\n setByPath(newErrorSchema, i, errorSchemaRef.current[i]);\n }\n else if (i > index) {\n setByPath(newErrorSchema, i + 1, errorSchemaRef.current[i]);\n }\n }\n }\n const newKeyedFormDataRow = {\n key: generateRowId(),\n item: structuredClone(keyedFormDataRef.current[index].item),\n };\n const newKeyedFormData = [...keyedFormDataRef.current];\n if (index !== undefined) {\n newKeyedFormData.splice(index + 1, 0, newKeyedFormDataRow);\n }\n else {\n newKeyedFormData.push(newKeyedFormDataRow);\n }\n onChange(updateKeyedFormData(newKeyedFormData), childFieldPathId.path, newErrorSchema);\n }, [onChange, updateKeyedFormData, childFieldPathId]);\n /** Callback handler for when the user clicks on the remove button on an existing array element. Removes the row of\n * keyed form data at the `index` in the state, and then returning `onChange()` with the plain form data converted\n * from the keyed data\n *\n * @param index - The index at which the remove button is clicked\n */\n const handleRemoveItem = useCallback((event, index) => {\n if (event) {\n event.preventDefault();\n }\n // refs #195: revalidate to ensure properly reindexing errors\n let newErrorSchema;\n if (errorSchemaRef.current) {\n newErrorSchema = {};\n for (const idx of Object.keys(errorSchemaRef.current)) {\n const i = parseInt(idx, 10);\n if (i < index) {\n setByPath(newErrorSchema, i, errorSchemaRef.current[i]);\n }\n else if (i > index) {\n setByPath(newErrorSchema, i - 1, errorSchemaRef.current[i]);\n }\n }\n }\n const newKeyedFormData = keyedFormDataRef.current.filter((_, i) => i !== index);\n onChange(updateKeyedFormData(newKeyedFormData), childFieldPathId.path, newErrorSchema);\n }, [onChange, updateKeyedFormData, childFieldPathId]);\n /** Callback handler for when the user clicks on one of the move item buttons on an existing array element. Moves the\n * row of keyed form data at the `index` to the `newIndex` in the state, and then returning `onChange()` with the\n * plain form data converted from the keyed data\n *\n * @param index - The index of the item to move\n * @param newIndex - The index to where the item is to be moved\n */\n const handleReorderItems = useCallback((event, index, newIndex) => {\n if (event) {\n event.preventDefault();\n event.currentTarget.blur();\n }\n let newErrorSchema;\n if (errorSchemaRef.current) {\n newErrorSchema = {};\n for (const idx of Object.keys(errorSchemaRef.current)) {\n const i = parseInt(idx, 10);\n if (i === index) {\n setByPath(newErrorSchema, newIndex, errorSchemaRef.current[index]);\n }\n else if (i === newIndex) {\n setByPath(newErrorSchema, index, errorSchemaRef.current[newIndex]);\n }\n else {\n setByPath(newErrorSchema, idx, errorSchemaRef.current[i]);\n }\n }\n }\n function reOrderArray() {\n const newKeyedFormData = keyedFormDataRef.current.slice();\n newKeyedFormData.splice(index, 1);\n newKeyedFormData.splice(newIndex, 0, keyedFormDataRef.current[index]);\n return newKeyedFormData;\n }\n const newKeyedFormData = reOrderArray();\n onChange(updateKeyedFormData(newKeyedFormData), childFieldPathId.path, newErrorSchema);\n }, [onChange, updateKeyedFormData, childFieldPathId]);\n /** Callback handler used to deal with changing the value of the data in the array at the `index`. Calls the\n * `onChange` callback with the updated form data\n *\n * @param index - The index of the item being changed\n */\n const handleChange = useCallback((value, path, newErrorSchema, id) => {\n const lastPathIsItemIndex = typeof path.at(-1) === 'number';\n onChange(\n // We need to treat undefined items as nulls to have validation.\n // See https://github.com/tdegrunt/jsonschema/issues/206\n // Only set to null for array items, and not for object properties within array items\n lastPathIsItemIndex && value === undefined ? null : value, path, newErrorSchema, id);\n }, [onChange]);\n /** Callback handler used to change the value for a checkbox */\n const onSelectChange = useCallback((value) => {\n onChange(value, childFieldPathId.path, undefined, childFieldPathId?.[ID_KEY]);\n }, [onChange, childFieldPathId]);\n const arrayAsMultiProps = {\n ...props,\n formData,\n fieldPathId: childFieldPathId,\n onSelectChange,\n };\n const arrayProps = {\n ...props,\n handleAddItem,\n handleCopyItem,\n handleRemoveItem,\n handleReorderItems,\n keyedFormData,\n onChange: handleChange,\n };\n if (!(ITEMS_KEY in schema)) {\n if (!globalFormOptions.useFallbackUiForUnsupportedType) {\n const uiOptions = getUiOptions(uiSchema);\n const UnsupportedFieldTemplate = getTemplate('UnsupportedFieldTemplate', registry, uiOptions);\n return (_jsx(UnsupportedFieldTemplate, { schema: schema, fieldPathId: fieldPathId, reason: translateString(TranslatableString.MissingItems), registry: registry }));\n }\n // Add an items schema with type as undefined so it triggers FallbackField later on\n const fallbackSchema = { ...schema, [ITEMS_KEY]: { type: undefined } };\n arrayAsMultiProps.schema = fallbackSchema;\n arrayProps.schema = fallbackSchema;\n }\n if (schemaUtils.isMultiSelect(arrayAsMultiProps.schema)) {\n // If array has enum or uniqueItems set to true, call renderMultiSelect() to render the default multiselect widget or a custom widget, if specified.\n return _jsx(ArrayAsMultiSelect, { ...arrayAsMultiProps });\n }\n if (isCustomWidget(uiSchema)) {\n return _jsx(ArrayAsCustomWidget, { ...arrayAsMultiProps });\n }\n if (isFixedItems(arrayAsMultiProps.schema)) {\n return _jsx(FixedArray, { ...arrayProps });\n }\n if (schemaUtils.isFilesArray(arrayAsMultiProps.schema, uiSchema)) {\n return _jsx(ArrayAsFiles, { ...arrayAsMultiProps });\n }\n return _jsx(NormalArray, { ...arrayProps });\n}\n//# sourceMappingURL=ArrayField.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { getWidget, getUiOptions, isObject, optionsList, TranslatableString } from '@rjsf/utils';\n/** The `BooleanField` component is used to render a field in the schema is boolean. It constructs `enumOptions` for the\n * two boolean values based on the various alternatives in the schema.\n *\n * @param props - The `FieldProps` for this template\n */\nfunction BooleanField(props) {\n const { schema, name, uiSchema, fieldPathId, formData, registry, required, disabled, readonly, hideError, autofocus, title, onChange, onFocus, onBlur, rawErrors, } = props;\n const { title: schemaTitle } = schema;\n const { widgets, translateString, globalUiOptions } = registry;\n const { widget = 'checkbox', title: uiTitle, \n // Unlike the other fields, don't use `getDisplayLabel()` since it always returns false for the boolean type\n label: displayLabel = true, enumNames, ...options } = getUiOptions(uiSchema, globalUiOptions);\n const Widget = getWidget(schema, widget, widgets);\n const yes = translateString(TranslatableString.YesLabel);\n const no = translateString(TranslatableString.NoLabel);\n let enumOptions;\n const label = uiTitle ?? schemaTitle ?? title ?? name;\n if (Array.isArray(schema.oneOf)) {\n enumOptions = optionsList({\n oneOf: schema.oneOf\n .map((option) => {\n if (isObject(option)) {\n return {\n ...option,\n title: option.title || (option.const === true ? yes : no),\n };\n }\n return undefined;\n })\n .filter((o) => o), // cast away the error that typescript can't grok is fixed\n }, uiSchema);\n }\n else {\n const enums = schema.enum ?? [true, false];\n if (!enumNames && enums.length === 2 && enums.every((v) => typeof v === 'boolean')) {\n enumOptions = [\n {\n value: enums[0],\n label: enums[0] ? yes : no,\n },\n {\n value: enums[1],\n label: enums[1] ? yes : no,\n },\n ];\n }\n else {\n enumOptions = optionsList({ enum: enums }, uiSchema);\n }\n }\n const onWidgetChange = useCallback((value, errorSchema, id) => onChange(value, fieldPathId.path, errorSchema, id), [onChange, fieldPathId]);\n return (_jsx(Widget, { options: { ...options, enumOptions }, schema: schema, uiSchema: uiSchema, id: fieldPathId.$id, name: name, onChange: onWidgetChange, onFocus: onFocus, onBlur: onBlur, label: label, hideLabel: !displayLabel, value: formData, required: required, disabled: disabled, readonly: readonly, hideError: hideError, registry: registry, autofocus: autofocus, rawErrors: rawErrors, htmlName: fieldPathId.name }));\n}\nexport default BooleanField;\n//# sourceMappingURL=BooleanField.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useState } from 'react';\nimport { getTemplate, getUiOptions, RJSF_REF_CYCLE_KEY } from '@rjsf/utils';\n/** The `CyclicSchemaField` component is used to render a field in the schema that is marked with RJSF_REF_CYCLE_KEY ===\n * true\n *\n * @param props - The `FieldProps` for this template\n */\nexport default function CyclicSchemaField(props) {\n const [expanded, setExpanded] = useState(false);\n const { name, registry, schema, uiSchema, fieldPathId } = props;\n const { globalUiOptions } = registry;\n const uiOptions = getUiOptions(uiSchema, globalUiOptions);\n const CyclicSchemaExpandTemplate = getTemplate('CyclicSchemaExpandTemplate', registry, uiOptions);\n if (!expanded) {\n return (_jsx(CyclicSchemaExpandTemplate, { registry: registry, schema: schema, uiSchema: uiSchema, name: name, fieldPathId: fieldPathId, onExpand: () => setExpanded(true) }));\n }\n const { fields } = registry;\n const { SchemaField } = fields;\n return _jsx(SchemaField, { ...props, schema: { ...schema, [RJSF_REF_CYCLE_KEY]: false } });\n}\n//# sourceMappingURL=CyclicSchemaField.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useMemo, useState } from 'react';\nimport { getTemplate, getUiOptions, hashObject, toFieldPathId, TranslatableString, useDeepCompareMemo, } from '@rjsf/utils';\n/**\n * Get the schema for the type selection component.\n * @param title - The translated title for the type selection schema.\n */\nfunction getFallbackTypeSelectionSchema(title) {\n return {\n type: 'string',\n enum: ['string', 'number', 'boolean', 'object', 'array'],\n default: 'string',\n title,\n };\n}\n/**\n * Determines the JSON Schema type of the given formData.\n * @param formData - The form data whose type is to be determined.\n */\nfunction getTypeOfFormData(formData) {\n const dataType = typeof formData;\n if (dataType === 'string' || dataType === 'number' || dataType === 'boolean') {\n return dataType;\n }\n if (dataType === 'object') {\n return Array.isArray(formData) ? 'array' : 'object';\n }\n // Treat everything else as a string\n return 'string';\n}\n/**\n * Casts the given formData to the specified type.\n * @param formData - The form data to be casted.\n * @param newType - The target type to which the form data should be casted.\n */\nfunction castToNewType(formData, newType) {\n switch (newType) {\n case 'string':\n return String(formData);\n case 'number': {\n const castedNumber = Number(formData);\n return (Number.isNaN(castedNumber) ? 0 : castedNumber);\n }\n case 'boolean':\n return Boolean(formData);\n default:\n return formData;\n }\n}\n/**\n * The `FallbackField` component is used to render a field for unsupported or unknown schema types. If\n * `useFallbackUiForUnsupportedType` is enabled in the `globalUiOptions`, it provides a type selector\n */\nexport default function FallbackField(props) {\n const { id, formData, displayLabel = true, schema, name, uiSchema, required, disabled = false, readonly = false, onBlur, onFocus, registry, fieldPathId, onChange, errorSchema, } = props;\n const { translateString, fields, globalFormOptions } = registry;\n const [type, setType] = useState(getTypeOfFormData(formData));\n const uiOptions = getUiOptions(uiSchema);\n const typeSelectorInnerFieldPathId = useDeepCompareMemo(toFieldPathId('__internal_type_selector', globalFormOptions, fieldPathId));\n const schemaTitle = translateString(TranslatableString.Type);\n const typesOptionSchema = useMemo(() => getFallbackTypeSelectionSchema(schemaTitle), [schemaTitle]);\n const onTypeChange = (newType) => {\n if (newType != null) {\n setType(newType);\n onChange(castToNewType(formData, newType), fieldPathId.path, errorSchema, id);\n }\n };\n if (!globalFormOptions.useFallbackUiForUnsupportedType) {\n const { reason = translateString(TranslatableString.UnknownFieldType, [String(schema.type)]) } = props;\n const UnsupportedFieldTemplate = getTemplate('UnsupportedFieldTemplate', registry, uiOptions);\n return _jsx(UnsupportedFieldTemplate, { schema: schema, fieldPathId: fieldPathId, reason: reason, registry: registry });\n }\n const FallbackFieldTemplate = getTemplate('FallbackFieldTemplate', registry, uiOptions);\n const { SchemaField } = fields;\n return (_jsx(FallbackFieldTemplate, { schema: schema, registry: registry, typeSelector: _jsx(SchemaField, { fieldPathId: typeSelectorInnerFieldPathId, name: `${name}__fallback_type`, schema: typesOptionSchema, formData: type, onChange: onTypeChange, onBlur: onBlur, onFocus: onFocus, registry: registry, hideLabel: !displayLabel, disabled: disabled, readonly: readonly, required: required }, formData ? hashObject(formData) : '__empty__'), schemaField: _jsx(SchemaField, { ...props, schema: {\n type,\n title: translateString(TranslatableString.Value),\n ...(type === 'object' && { additionalProperties: true }),\n } }) }));\n}\n//# sourceMappingURL=FallbackField.js.map","import { createElement as _createElement } from \"react\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getByPath, toPath, ANY_OF_KEY, deepEquals, getDiscriminatorFieldFromSchema, getTemplate, getTestIds, getPropertySchema, getUiOptions, hashObject, ID_KEY, isObject, isPlainObject, lookupFromFormContext, ONE_OF_KEY, PROPERTIES_KEY, READONLY_KEY, toFieldPathId, UI_OPTIONS_KEY, UI_GLOBAL_OPTIONS_KEY, ITEMS_KEY, useDeepCompareMemo, } from '@rjsf/utils';\n/** The enumeration of the three different Layout GridTemplate type values\n */\nexport var GridType;\n(function (GridType) {\n GridType[\"ROW\"] = \"ui:row\";\n GridType[\"COLUMN\"] = \"ui:col\";\n GridType[\"COLUMNS\"] = \"ui:columns\";\n GridType[\"CONDITION\"] = \"ui:condition\";\n})(GridType || (GridType = {}));\n/** The enumeration of the different operators within a condition\n */\nexport var Operators;\n(function (Operators) {\n Operators[\"ALL\"] = \"all\";\n Operators[\"SOME\"] = \"some\";\n Operators[\"NONE\"] = \"none\";\n})(Operators || (Operators = {}));\n/** The regular expression that is used to detect whether a string contains a lookup key\n */\nexport const LOOKUP_REGEX = /^\\$lookup=(.+)/;\n/** The constant representing the main layout grid schema option name in the `uiSchema`\n */\nexport const LAYOUT_GRID_UI_OPTION = 'layoutGrid';\n/** The constant representing the main layout grid schema option name in the `uiSchema`\n */\nexport const LAYOUT_GRID_OPTION = `ui:${LAYOUT_GRID_UI_OPTION}`;\n/** Returns either the `value` if it is non-nullish or the fallback\n *\n * @param [value] - The potential value to return if it is non-nullish\n * @param [fallback] - The fallback value to return if `value` is nullish\n * @returns - `value` if it is non-nullish otherwise `fallback`\n */\nfunction getNonNullishValue(value, fallback) {\n return value ?? fallback;\n}\n/** Detects if a `str` is made up entirely of numeric characters\n *\n * @param str - The string to check to see if it is a numeric index\n * @return - True if the string consists entirely of numeric characters\n */\nfunction isNumericIndex(str) {\n return /^\\d+?$/.test(str); // Matches positive integers\n}\nconst LAYOUT_GRID_FIELD_TEST_IDS = getTestIds();\n/** Computes the uiSchema for the field with `name` from the `uiProps` and `uiSchema` provided. The field UI Schema\n * will always contain a copy of the global options from the `uiSchema` (so they can be passed down) as well as\n * copying them into the local ui options. When the `forceReadonly` flag is true, then the field UI Schema is\n * updated to make \"readonly\" be true. When the `schemaReadonly` flag is true AND the field UI Schema does NOT have\n * the flag already provided, then we also make \"readonly\" true. We always make sure to return the final value of the\n * field UI Schema's \"readonly\" flag as `uiReadonly` along with the `fieldUiSchema` in the return value.\n *\n * @param field - The name of the field to pull the existing UI Schema for\n * @param uiProps - Any props that should be put into the field's uiSchema\n * @param [uiSchema] - The optional UI Schema from which to get the UI schema for the field\n * @param [schemaReadonly] - Optional flag indicating whether the schema indicates the field is readonly\n * @param [forceReadonly] - Optional flag indicating whether the Form itself is in readonly mode\n */\nexport function computeFieldUiSchema(field, uiProps, uiSchema, schemaReadonly, forceReadonly) {\n const globalUiOptions = uiSchema?.[UI_GLOBAL_OPTIONS_KEY] ?? {};\n const localUiSchema = getByPath(uiSchema, toPath(field));\n const localUiOptions = { ...(localUiSchema?.[UI_OPTIONS_KEY] ?? {}), ...uiProps, ...globalUiOptions };\n const fieldUiSchema = { ...localUiSchema };\n if (Object.keys(localUiOptions).length > 0) {\n fieldUiSchema[UI_OPTIONS_KEY] = localUiOptions;\n }\n if (Object.keys(globalUiOptions).length > 0) {\n // pass the global uiOptions down to the field uiSchema so that they can be applied to all nested fields\n fieldUiSchema[UI_GLOBAL_OPTIONS_KEY] = globalUiOptions;\n }\n let { readonly: uiReadonly } = getUiOptions(fieldUiSchema);\n if (forceReadonly === true || (uiReadonly === undefined && schemaReadonly === true)) {\n // If we are forcing all widgets to be readonly, OR the schema indicates it is readonly AND the uiSchema does not\n // have an overriding value, then update the uiSchema to set readonly to true. Doing this will\n uiReadonly = true;\n const fieldUiOptions = fieldUiSchema[UI_OPTIONS_KEY];\n if (fieldUiOptions && READONLY_KEY in fieldUiOptions) {\n // If the local options has the key value provided in it, then set that one to true\n fieldUiOptions[READONLY_KEY] = true;\n }\n else {\n // otherwise set the `ui:` version\n fieldUiSchema[`ui:${READONLY_KEY}`] = true;\n }\n }\n return { fieldUiSchema, uiReadonly };\n}\n/** Given an `operator`, `datum` and `value` determines whether this condition is considered matching. Matching\n * depends on the `operator`. The `datum` and `value` are converted into arrays if they aren't already and then the\n * contents of the two arrays are compared using the `operator`. When `operator` is All, then the two arrays must be\n * equal to match. When `operator` is SOME then the intersection of the two arrays must have at least one value in\n * common to match. When `operator` is NONE then the intersection of the two arrays must not have any values in common\n * to match.\n *\n * @param [operator] - The optional operator for the condition\n * @param [datum] - The optional datum for the condition, this can be an item or a list of items of type unknown\n * @param [value='$0m3tH1nG Un3xP3cT3d'] The optional value for the condition, defaulting to a highly unlikely value\n * to avoid comparing two undefined elements when `value` was forgotten in the condition definition.\n * This can be an item or a list of items of type unknown\n * @returns - True if the condition matches, false otherwise\n */\nexport function conditionMatches(operator, datum, value = '$0m3tH1nG Un3xP3cT3d') {\n const data = [datum].flat().sort();\n const values = [value].flat().sort();\n switch (operator) {\n case Operators.ALL:\n return deepEquals(data, values);\n case Operators.SOME:\n return data.some((entry) => values.includes(entry));\n case Operators.NONE:\n return !data.some((entry) => values.includes(entry));\n default:\n return false;\n }\n}\n/** From within the `layoutGridSchema` finds the `children` and any extra `gridProps` from the object keyed by\n * `schemaKey`. If the `children` contains extra `gridProps` and those props contain a `className` string, try to\n * lookup whether that `className` has a replacement value in the `registry` using the `FORM_CONTEXT_LOOKUP_BASE`.\n * When the `className` value contains multiple classNames separated by a space, the lookup will look for a\n * replacement value for each `className` and combine them into one.\n *\n * @param layoutGridSchema - The GridSchemaType instance from which to obtain the `schemaKey` children and extra props\n * @param schemaKey - A `GridType` value, used to get the children and extra props from within the `layoutGridSchema`\n * @param registry - The `@rjsf` Registry from which to look up `classNames` if they are present in the extra props\n * @returns - An object containing the list of `LayoutGridSchemaType` `children` and any extra `gridProps`\n * @throws - A `TypeError` when the `children` is not an array\n */\nexport function findChildrenAndProps(layoutGridSchema, schemaKey, registry) {\n let gridProps = {};\n let children = layoutGridSchema[schemaKey];\n if (isPlainObject(children)) {\n const { children: elements, className: toMapClassNames, ...otherProps } = children;\n children = elements;\n if (toMapClassNames) {\n const classes = toMapClassNames.split(' ');\n const className = classes.map((ele) => lookupFromFormContext(registry, ele, ele)).join(' ');\n gridProps = { ...otherProps, className };\n }\n else {\n gridProps = otherProps;\n }\n }\n if (!Array.isArray(children)) {\n throw new TypeError(`Expected array for \"${schemaKey}\" in ${JSON.stringify(layoutGridSchema)}`);\n }\n return { children: children, gridProps };\n}\n/** Computes the `rawSchema` and `fieldPathId` for a `schema` and a `potentialIndex`. If the `schema` is of type array,\n * has an `ITEMS_KEY` element and `potentialIndex` represents a numeric value, the element at `ITEMS_KEY` is checked\n * to see if it is an array. If it is AND the `potentialIndex`th element is available, it is used as the `rawSchema`,\n * otherwise the last value of the element is used. If it is not, then the element is used as the `rawSchema`. In\n * either case, an `fieldPathId` is computed for the array index. If the `schema` does not represent an array or the\n * `potentialIndex` is not a numeric value, then `rawSchema` is returned as undefined and given `fieldPathId` is returned\n * as is.\n *\n * @param schema - The schema to generate the fieldPathId for\n * @param fieldPathId - The FieldPathId for the schema\n * @param potentialIndex - A string containing a potential index\n * @returns - An object containing the `rawSchema` and `fieldPathId` of an array item, otherwise an undefined `rawSchema`\n */\nexport function computeArraySchemasIfPresent(schema, fieldPathId, potentialIndex) {\n let rawSchema;\n let resultPathId = fieldPathId;\n if (isNumericIndex(potentialIndex) && schema && schema?.type === 'array' && ITEMS_KEY in schema) {\n const index = Number(potentialIndex);\n const items = schema[ITEMS_KEY];\n if (Array.isArray(items)) {\n if (index > items.length) {\n rawSchema = items.at(-1);\n }\n else {\n rawSchema = items[index];\n }\n }\n else {\n rawSchema = items;\n }\n resultPathId = {\n [ID_KEY]: fieldPathId[ID_KEY],\n path: [...fieldPathId.path.slice(0, fieldPathId.path.length - 1), index],\n };\n }\n return { rawSchema, fieldPathId: resultPathId };\n}\n/** Given a `dottedPath` to a field in the `initialSchema`, iterate through each individual path in the schema until\n * the leaf path is found and returned (along with whether that leaf path `isRequired`) OR no schema exists for an\n * element in the path. If the leaf schema element happens to be a oneOf/anyOf then also return the oneOf/anyOf as\n * `options`.\n *\n * @param registry - The registry\n * @param dottedPath - The dotted-path to the field for which to get the schema\n * @param initialSchema - The initial schema to start the search from\n * @param formData - The formData, useful for resolving a oneOf/anyOf selection in the path hierarchy\n * @param initialFieldIdPath - The initial fieldPathId to start the search from\n * @returns - An object containing the destination schema, isRequired and isReadonly flags for the field and options\n * info if a oneOf/anyOf\n */\nexport function getSchemaDetailsForField(registry, dottedPath, initialSchema, formData, initialFieldIdPath) {\n const { schemaUtils, globalFormOptions } = registry;\n let rawSchema = initialSchema;\n let fieldPathId = initialFieldIdPath;\n const parts = dottedPath.split('.');\n const leafPath = parts.pop(); // pop off the last element in the list as the leaf\n let schema = schemaUtils.retrieveSchema(rawSchema, formData); // always returns an object\n let innerData = formData;\n let isReadonly = schema.readOnly;\n // For all the remaining path parts\n parts.forEach((part) => {\n // dive into the properties of the current schema (when it exists) and get the schema for the next part\n fieldPathId = toFieldPathId(part, globalFormOptions, fieldPathId);\n const schemaProperties = schema?.[PROPERTIES_KEY];\n if (schemaProperties) {\n rawSchema = (schemaProperties[part] ?? {});\n }\n else if (schema && (ONE_OF_KEY in schema || ANY_OF_KEY in schema)) {\n const xxx = ONE_OF_KEY in schema ? ONE_OF_KEY : ANY_OF_KEY;\n // When the schema represents a oneOf/anyOf, find the selected schema for it and grab the inner part\n const selectedSchema = schemaUtils.findSelectedOptionInXxxOf(schema, part, xxx, innerData);\n rawSchema = getPropertySchema(selectedSchema, part);\n }\n else {\n const result = computeArraySchemasIfPresent(schema, fieldPathId, part);\n rawSchema = result.rawSchema ?? {};\n fieldPathId = result.fieldPathId;\n }\n // Now drill into the innerData for the part, returning an empty object by default if it doesn't exist\n innerData = getByPath(innerData, part, {});\n // Resolve any `$ref`s for the current rawSchema\n schema = schemaUtils.retrieveSchema(rawSchema, innerData);\n isReadonly = getNonNullishValue(schema.readOnly, isReadonly);\n });\n let optionsInfo;\n let isRequired = false;\n // retrieveSchema will return an empty schema in the worst case scenario, convert it to undefined\n if (!schema || Object.keys(schema).length === 0) {\n schema = undefined;\n }\n if (schema && leafPath) {\n // When we have both a schema and a leafPath...\n if (schema && (ONE_OF_KEY in schema || ANY_OF_KEY in schema)) {\n const xxx = ONE_OF_KEY in schema ? ONE_OF_KEY : ANY_OF_KEY;\n // Grab the selected schema for the oneOf/anyOf value for the leafPath using the innerData\n schema = schemaUtils.findSelectedOptionInXxxOf(schema, leafPath, xxx, innerData);\n }\n fieldPathId = toFieldPathId(leafPath, globalFormOptions, fieldPathId);\n isRequired = schema !== undefined && Array.isArray(schema.required) && schema.required.includes(leafPath);\n const result = computeArraySchemasIfPresent(schema, fieldPathId, leafPath);\n if (result.rawSchema) {\n schema = result.rawSchema;\n fieldPathId = result.fieldPathId;\n }\n else {\n // Now grab the schema from the leafPath of the current schema properties\n schema = schema?.[PROPERTIES_KEY]?.[leafPath];\n // Resolve any `$ref`s for the current schema\n schema = schema ? schemaUtils.retrieveSchema(schema) : schema;\n }\n isReadonly = getNonNullishValue(schema?.readOnly, isReadonly);\n if (schema && (ONE_OF_KEY in schema || ANY_OF_KEY in schema)) {\n const xxx = ONE_OF_KEY in schema ? ONE_OF_KEY : ANY_OF_KEY;\n // Set the options if we have a schema with a oneOf/anyOf\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n optionsInfo = { options: schema[xxx], hasDiscriminator: !!discriminator };\n }\n }\n return { schema, isRequired, isReadonly, optionsInfo, fieldPathId };\n}\n/** Gets the custom render component from the `render`, by either determining that it is either already a function or\n * it is a non-function value that can be used to look up the function in the registry. If no function can be found,\n * null is returned.\n *\n * @param render - The potential render function or lookup name to one\n * @param registry - The `@rjsf` Registry from which to look up `classNames` if they are present in the extra props\n * @returns - Either a render function if available, or null if not\n */\nexport function getCustomRenderComponent(render, registry) {\n let customRenderer = render;\n if (typeof customRenderer === 'string') {\n customRenderer = lookupFromFormContext(registry, customRenderer);\n }\n if (typeof customRenderer === 'function') {\n return customRenderer;\n }\n return null;\n}\n/** Extract the `name`, and optional `render` and all other props from the `gridSchema`. We look up the `render` to\n * see if can be resolved to a UIComponent. If `name` does not exist and there is an optional `render` UIComponent, we\n * set the `rendered` component with only specified props for that component in the object.\n *\n * @param registry - The `@rjsf` Registry from which to look up `classNames` if they are present in the extra props\n * @param gridSchema - The string or object that represents the configuration for the grid field\n * @returns - The UIComponentPropsType computed from the gridSchema\n */\nexport function computeUIComponentPropsFromGridSchema(registry, gridSchema) {\n let name;\n let UIComponent = null;\n let uiProps = {};\n let rendered;\n if (typeof gridSchema === 'string' || gridSchema === undefined) {\n name = gridSchema ?? '';\n }\n else {\n const { name: innerName = '', render, ...innerProps } = gridSchema;\n name = innerName;\n uiProps = innerProps;\n // Transform any `$lookup=` in the uiProps props with the appropriate value\n Object.entries(uiProps).forEach(([key, prop]) => {\n if (typeof prop === 'string') {\n const match = LOOKUP_REGEX.exec(prop);\n if (Array.isArray(match) && match.length > 1) {\n const lookupName = match[1];\n uiProps[key] = lookupFromFormContext(registry, lookupName, lookupName);\n }\n }\n });\n UIComponent = getCustomRenderComponent(render, registry);\n if (!innerName && UIComponent) {\n rendered = _jsx(UIComponent, { ...innerProps, \"data-testid\": LAYOUT_GRID_FIELD_TEST_IDS.uiComponent });\n }\n }\n return { name, UIComponent, uiProps, rendered };\n}\n/** Iterates through all the `childrenLayoutGridSchemaId`, rendering a nested `LayoutGridField` for each item in the\n * list, passing all the props for the current `LayoutGridField` along, updating the `schema` by calling\n * `retrieveSchema()` on it to resolve any `$ref`s. In addition to the updated `schema`, each item in\n * `childrenLayoutGridSchemaId` is passed as `layoutGridSchema`.\n *\n * @returns - The nested `LayoutGridField`s\n */\nfunction LayoutGridFieldChildren(props) {\n const { childrenLayoutGridSchemaId, ...layoutGridFieldProps } = props;\n const { registry, schema: rawSchema, formData } = layoutGridFieldProps;\n const { schemaUtils } = registry;\n const schema = schemaUtils.retrieveSchema(rawSchema, formData);\n return childrenLayoutGridSchemaId.map((layoutGridSchema) => (_createElement(LayoutGridField, { ...layoutGridFieldProps, key: `layoutGrid-${hashObject(layoutGridSchema)}`, schema: schema, layoutGridSchema: layoutGridSchema })));\n}\n/** Renders the `children` of the `GridType.CONDITION` if it passes. The `layoutGridSchema` for the\n * `GridType.CONDITION` is separated into the `children` and other `gridProps`. The `gridProps` are used to extract\n * the `operator`, `field` and `value` of the condition. If the condition matches, then all of the `children` are\n * rendered, otherwise null is returned.\n *\n * @returns - The rendered the children for the `GridType.CONDITION` or null\n */\nfunction LayoutGridCondition(props) {\n const { layoutGridSchema, ...layoutGridFieldProps } = props;\n const { formData, registry } = layoutGridFieldProps;\n const { children, gridProps } = findChildrenAndProps(layoutGridSchema, GridType.CONDITION, registry);\n const { operator, field = '', value } = gridProps;\n const fieldData = getByPath(formData, toPath(field), null);\n if (conditionMatches(operator, fieldData, value)) {\n return _jsx(LayoutGridFieldChildren, { ...layoutGridFieldProps, childrenLayoutGridSchemaId: children });\n }\n return null;\n}\n/** Renders a `GridTemplate` as an item. The `layoutGridSchema` for the `GridType.COLUMN` is separated into the\n * `children` and other `gridProps`. The `gridProps` will be spread onto the outer `GridTemplate`. Inside the\n * `GridTemplate` all the `children` are rendered.\n *\n * @returns - The rendered `GridTemplate` containing the children for the `GridType.COLUMN`\n */\nfunction LayoutGridCol(props) {\n const { layoutGridSchema, ...layoutGridFieldProps } = props;\n const { registry, uiSchema } = layoutGridFieldProps;\n const { children, gridProps } = findChildrenAndProps(layoutGridSchema, GridType.COLUMN, registry);\n const uiOptions = getUiOptions(uiSchema);\n const GridTemplate = getTemplate('GridTemplate', registry, uiOptions);\n return (_jsx(GridTemplate, { column: true, \"data-testid\": LAYOUT_GRID_FIELD_TEST_IDS.col, ...gridProps, children: _jsx(LayoutGridFieldChildren, { ...layoutGridFieldProps, childrenLayoutGridSchemaId: children }) }));\n}\n/** Renders a `GridTemplate` as an item. The `layoutGridSchema` for the `GridType.COLUMNS` is separated into the\n * `children` and other `gridProps`. The `children` is iterated on and `gridProps` will be spread onto the outer\n * `GridTemplate`. Each child will have their own rendered `GridTemplate`.\n *\n * @returns - The rendered `GridTemplate` containing the children for the `GridType.COLUMNS`\n */\nfunction LayoutGridColumns(props) {\n const { layoutGridSchema, ...layoutGridFieldProps } = props;\n const { registry, uiSchema } = layoutGridFieldProps;\n const { children, gridProps } = findChildrenAndProps(layoutGridSchema, GridType.COLUMNS, registry);\n const uiOptions = getUiOptions(uiSchema);\n const GridTemplate = getTemplate('GridTemplate', registry, uiOptions);\n return children.map((child) => (_jsx(GridTemplate, { column: true, \"data-testid\": LAYOUT_GRID_FIELD_TEST_IDS.col, ...gridProps, children: _jsx(LayoutGridFieldChildren, { ...layoutGridFieldProps, childrenLayoutGridSchemaId: [child] }) }, `column-${hashObject(child)}`)));\n}\n/** Renders a `GridTemplate` as a container. The `layoutGridSchema` for the `GridType.ROW` is separated into the\n * `children` and other `gridProps`. The `gridProps` will be spread onto the outer `GridTemplate`. Inside of the\n * `GridTemplate` all of the `children` are rendered.\n *\n * @returns - The rendered `GridTemplate` containing the children for the `GridType.ROW`\n */\nfunction LayoutGridRow(props) {\n const { layoutGridSchema, ...layoutGridFieldProps } = props;\n const { registry, uiSchema } = layoutGridFieldProps;\n const { children, gridProps } = findChildrenAndProps(layoutGridSchema, GridType.ROW, registry);\n const uiOptions = getUiOptions(uiSchema);\n const GridTemplate = getTemplate('GridTemplate', registry, uiOptions);\n return (_jsx(GridTemplate, { ...gridProps, \"data-testid\": LAYOUT_GRID_FIELD_TEST_IDS.row, children: _jsx(LayoutGridFieldChildren, { ...layoutGridFieldProps, childrenLayoutGridSchemaId: children }) }));\n}\n/** Renders the field described by `gridSchema`. If `gridSchema` is not an object, then is will be assumed\n * to be the dotted-path to the field in the schema. Otherwise, we extract the `name`, and optional `render` and all\n * other props. If `name` does not exist and there is an optional `render`, we return the `render` component with only\n * specified props for that component. If `name` exists, we take the name, the initial & root schemas and the formData\n * and get the destination schema, is required state and optional oneOf/anyOf options for it. If the destination\n * schema was located along with oneOf/anyOf options then a `LayoutMultiSchemaField` will be rendered with the\n * `uiSchema`, `errorSchema`, `fieldPathId` and `formData` drilled down to the dotted-path field, spreading any other\n * props from `gridSchema` into the `ui:options`. If the destination schema located without any oneOf/anyOf options,\n * then a `SchemaField` will be rendered with the same props as mentioned in the previous sentence. If no destination\n * schema was located, but a custom render component was found, then it will be rendered with many of the non-event\n * handling props. If none of the previous render paths are valid, then a null is returned.\n *\n * @returns - One of `LayoutMultiSchemaField`, `SchemaField`, a custom render component or null, depending\n */\nfunction LayoutGridFieldComponent(props) {\n const { gridSchema, schema: initialSchema, uiSchema, errorSchema, fieldPathId, onBlur, onFocus, formData, readonly, registry, layoutGridSchema, // Used to pull this out of otherProps since we don't want to pass it through\n ...otherProps } = props;\n const { onChange } = otherProps;\n const { fields } = registry;\n const { SchemaField, LayoutMultiSchemaField } = fields;\n const uiComponentProps = computeUIComponentPropsFromGridSchema(registry, gridSchema);\n const { name, UIComponent, uiProps } = uiComponentProps;\n const { schema, isRequired, isReadonly, optionsInfo, fieldPathId: fieldIdSchema, } = getSchemaDetailsForField(registry, name, initialSchema, formData, fieldPathId);\n const memoFieldPathId = useDeepCompareMemo(fieldIdSchema);\n if (uiComponentProps.rendered) {\n return uiComponentProps.rendered;\n }\n if (schema) {\n const Field = optionsInfo?.hasDiscriminator ? LayoutMultiSchemaField : SchemaField;\n // Call this function to get the appropriate UISchema, which will always have its `readonly` state matching the\n // `uiReadonly` flag that it returns. This is done since the `SchemaField` will always defer to the `readonly`\n // state in the uiSchema over anything in the props or schema. Because we are implementing the \"readonly\" state of\n // the `Form` via the prop passed to `LayoutGridField` we need to make sure the uiSchema always has a true value\n // when it is needed\n const { fieldUiSchema, uiReadonly } = computeFieldUiSchema(name, uiProps, uiSchema, isReadonly, readonly);\n const namePath = toPath(name);\n return (_jsx(Field, { \"data-testid\": optionsInfo?.hasDiscriminator\n ? LAYOUT_GRID_FIELD_TEST_IDS.layoutMultiSchemaField\n : LAYOUT_GRID_FIELD_TEST_IDS.field, ...otherProps, name: name, required: isRequired, readonly: uiReadonly, schema: schema, uiSchema: fieldUiSchema, errorSchema: getByPath(errorSchema, namePath), fieldPathId: memoFieldPathId, formData: getByPath(formData, namePath), onChange: onChange, onBlur: onBlur, onFocus: onFocus, options: optionsInfo?.options, registry: registry }));\n }\n if (UIComponent) {\n return (_jsx(UIComponent, { \"data-testid\": LAYOUT_GRID_FIELD_TEST_IDS.uiComponent, ...otherProps, name: name, required: isRequired, formData: formData, readOnly: !!isReadonly || readonly, errorSchema: errorSchema, uiSchema: uiSchema, schema: initialSchema, fieldPathId: fieldPathId, onBlur: onBlur, onFocus: onFocus, registry: registry, ...uiProps }));\n }\n return null;\n}\n/** The `LayoutGridField` will render a schema, uiSchema and formData combination out into a GridTemplate in the shape\n * described in the uiSchema. To define the grid to use to render the elements within a field in the schema, provide in\n * the uiSchema for that field the object contained under a `ui:layoutGrid` element. E.g. (as a JSON object):\n *\n * ```\n * {\n * \"field1\" : {\n * \"ui:field\": \"LayoutGridField\",\n * \"ui:layoutGrid\": {\n * \"ui:row\": { ... }\n * }\n * }\n * }\n * ```\n *\n * The outermost level of a `LayoutGridField` is the `ui:row` that defines the nested rows, columns, and/or condition\n * elements (i.e. \"grid elements\") in the grid. This definition is either a simple \"grid elements\" OR an object with\n * native `GridTemplate` implementation specific props and a `children` array of \"grid elements\". E.g. (as JSON objects):\n *\n * Simple `ui:row` definition, without additional `GridTemplate` props:\n * ```\n * \"ui:row\": [\n * { \"ui:row\"|\"ui:col\"|\"ui:columns\"|\"ui:condition\": ... },\n * ...\n * ]\n * ```\n *\n * Complex `ui:row` definition, with additional `GridTemplate` (this example uses @mui/material/Grid2 native props):\n * ```\n * \"ui:row\": {\n * \"spacing\": 2,\n * \"size\": { md\": 4 },\n * \"alignContent\": \"flex-start\",\n * \"className\": \"GridRow\",\n * \"children\": [\n * { \"ui:row\"|\"ui:col\"|\"ui:columns\"|\"ui:condition\": ... },\n * ...\n * ]\n * }\n * ```\n *\n * NOTE: Special note about the native `className` prop values. All className values will automatically be looked up in\n * the `formContext.lookupMap` in case they have been defined using a CSS-in-JS approach. In other words, from the\n * example above, if the `Form` was constructed with a `lookupMap` set to `{ GridRow: cssInJs.GridRowClass }`\n * then when rendered, the native `GridTemplate` will get the `className` with the value from\n * `cssInJs.GridRowClass`. This automatic lookup will happen for any of the \"grid elements\" when rendering with\n * `GridTemplate` props. If multiple className values are present, for example:\n * `{ className: 'GridRow GridColumn' }`, the classNames are split apart, looked up individually, and joined\n * together to form one className with the values from `cssInJs.GridRowClass` and `cssInJs.GridColumnClass`.\n *\n * The `ui:col` grid element is used to specify the list of columns within a grid row. A `ui:col` element can take on\n * several forms: 1) a simple list of dotted-path field names within the root field; 2) a list of objects containing the\n * dotted-path field `name` any other props that are gathered into `ui:options` for the field; 3) a list with a one-off\n * `render` functional component with or without a non-field `name` identifier and any other to-be-spread props; and\n * 4) an object with native `GridTemplate` implementation specific props and a `children` array with 1) or 2) or even a\n * nested `ui:row` or a `ui:condition` containing a `ui:row` (although this should be used carefully). E.g.\n * (as JSON objects):\n *\n * Simple `ui:col` definition, without additional `GridTemplate` props and form 1 only children:\n * ```\n * \"ui:col\": [\"innerField\", \"inner.grandChild\", ...]\n * ```\n *\n * Complicated `ui:col` definition, without additional `GridTemplate` props and form 2 only children:\n * ```\n * \"ui:col\": [\n * { \"name\": \"innerField\", \"fullWidth\": true },\n * { \"name\": \"inner.grandChild\", \"convertOther\": true },\n * ...\n * ]\n * ```\n *\n * More complicated `ui:col` definition, without additional `GridTemplate` props and form 2 children, one being a\n * one-off `render` functional component without a non-field `name` identifier\n * ```\n * \"ui:col\": [\n * \"innerField\",\n * {\n * \"render\": \"WizardNavButton\",\n * \"isNext\": true,\n * \"size\": \"large\"\n * }\n * ]\n * ```\n *\n * Most complicated `ui:col` definition, additional `GridTemplate` props and form 1, 2 and 3 children (this example\n * uses @mui/material/Grid2 native props):\n * ```\n * \"ui:col\": {\n * \"size\": { \"md\": 4 },\n * \"className\": \"GridColumn\",\n * \"children\": [\n * \"innerField\",\n * { \"name\": \"inner.grandChild\", \"convertOther\": true },\n * { \"name\": \"customRender\", \"render\": \"CustomRender\", toSpread: \"prop-value\" }\n * { \"ui:row|ui:condition\": ... }\n * ...\n * ]\n * }\n * ```\n *\n * NOTE: If a `name` prop does not exist or its value does not match any field in a schema, then it is assumed to be a\n * custom `render` component. If the `render` prop does not exist, a null render will occur. If `render` is a\n * string, its value will be looked up in the `formContext.lookupMap` first before defaulting to a null render.\n *\n * The `ui:columns` grid element is syntactic sugar to specify a set of `ui:col` columns that all share the same set of\n * native `GridTemplate` props. In other words rather than writing the following configuration that renders a\n * `` element with 3 `` nodes and 2\n * `` nodes within it (one for each of the fields contained in the `children`\n * list):\n *\n * ```\n * \"ui:row\": {\n * \"children\": [\n * {\n * \"ui:col\": {\n * \"className\": \"GridColumn col-md-4\",\n * \"children\": [\"innerField\"],\n * }\n * },\n * {\n * \"ui:col\": {\n * \"className\": \"GridColumn col-md-4\",\n * \"children\": [\"inner.grandChild\"],\n * }\n * },\n * {\n * \"ui:col\": {\n * \"className\": \"GridColumn col-md-4\",\n * \"children\": [{ \"name\": \"inner.grandChild2\" }],\n * }\n * },\n * {\n * \"ui:col\": {\n * \"className\": \"col-md-6\",\n * \"children\": [\"innerField2\"],\n * }\n * },\n * {\n * \"ui:col\": {\n * \"className\": \"col-md-6\",\n * \"children\": [\"inner.grandChild3\"],\n * }\n * },\n\n * ]\n * }\n * ```\n *\n * One can write this instead:\n * ```\n * \"ui:row\": {\n * \"children\": [\n * {\n * \"ui:columns\": {\n * \"className\": \"GridColumn col-md-4\",\n * \"children\": [\"innerField\", \"inner.grandChild\", { \"name\": \"inner.grandChild2\", \"convertOther\": true }],\n * }\n * },\n * {\n * \"ui:columns\": {\n * \"className\": \"col-md-6\",\n * \"children\": [\"innerField2\", \"inner.grandChild3\"],\n * }\n * }\n * ]\n * }\n * ```\n *\n * NOTE: This syntax differs from\n * `\"ui:col\": { \"className\": \"col-md-6\", \"children\": [\"innerField2\", \"inner.grandChild3\"] }` in that\n * the `ui:col` will render the two children fields inside a single ``\n * element.\n *\n * The final grid element, `ui:condition`, allows for conditionally displaying \"grid elements\" within a row based on the\n * current value of a field as it relates to a (list of) hard-coded value(s). There are four elements that make up a\n * `ui:condition`: 1) the dotted-path `field` name within the root field that makes up the left-side of the condition;\n * 2) the hard-coded `value` (single or list) that makes up the right-side of the condition; 3) the `operator` that\n * controls how the left and right sides of the condition are compared; and 4) the `children` array that defines the\n * \"grid elements\" to display if the condition passes.\n *\n * A `ui:condition` uses one of three `operators` when deciding if a condition passes: 1) The `all` operator will pass\n * when the right-side and left-side contains all the same value(s); 2) the `some` operator will pass when the\n * right-side and left-side contain as least one value in common; 3) the `none` operator will pass when the right-side\n * and left-side do not contain any values in common. E.g. (as JSON objects):\n *\n * Here is how to render an if-then-else for `field2` which is an enum that has 3 known values and supports allowing\n * any other value:\n * ```\n * \"ui:row\": [\n * {\n * \"ui:condition\": {\n * \"field\": \"field2\",\n * \"operator\": \"all\",\n * \"value\": \"value1\",\n * \"children\": [\n * { \"ui:row\": [...] },\n * ],\n * }\n * },\n * {\n * \"ui:condition\": {\n * \"field\": \"field2\",\n * \"operator\": \"some\",\n * \"value\": [\"value2\", \"value3\"],\n * \"children\": [\n * { \"ui:row\": [...] },\n * ],\n * }\n * },\n * {\n * \"ui:condition\": {\n * \"field\": \"field2\",\n * \"operator\": \"none\",\n * \"value\": [\"value1\", \"value2\", \"value3\"],\n * \"children\": [\n * { \"ui:row\": [...] },\n * ],\n * }\n * }\n * ]\n * ```\n */\nexport default function LayoutGridField(props) {\n /** Render the `LayoutGridField`. If there isn't a `layoutGridSchema` prop defined, then try pulling it out of the\n * `uiSchema` via `ui:LayoutGridField`. If `layoutGridSchema` is an object, then check to see if any of the properties\n * match one of the `GridType`s. If so, call the appropriate render function for the type. Otherwise, just call the\n * generic `renderField()` function with the `layoutGridSchema`.\n */\n const { uiSchema } = props;\n let { layoutGridSchema } = props;\n const uiOptions = getUiOptions(uiSchema);\n if (!layoutGridSchema && LAYOUT_GRID_UI_OPTION in uiOptions && isObject(uiOptions[LAYOUT_GRID_UI_OPTION])) {\n layoutGridSchema = uiOptions[LAYOUT_GRID_UI_OPTION];\n }\n if (isObject(layoutGridSchema)) {\n if (GridType.ROW in layoutGridSchema) {\n return _jsx(LayoutGridRow, { ...props, layoutGridSchema: layoutGridSchema });\n }\n if (GridType.COLUMN in layoutGridSchema) {\n return _jsx(LayoutGridCol, { ...props, layoutGridSchema: layoutGridSchema });\n }\n if (GridType.COLUMNS in layoutGridSchema) {\n return _jsx(LayoutGridColumns, { ...props, layoutGridSchema: layoutGridSchema });\n }\n if (GridType.CONDITION in layoutGridSchema) {\n return _jsx(LayoutGridCondition, { ...props, layoutGridSchema: layoutGridSchema });\n }\n }\n return _jsx(LayoutGridFieldComponent, { ...props, gridSchema: layoutGridSchema });\n}\nLayoutGridField.TEST_IDS = LAYOUT_GRID_FIELD_TEST_IDS;\n//# sourceMappingURL=LayoutGridField.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate, getUiOptions, titleId } from '@rjsf/utils';\n/** The `LayoutHeaderField` component renders a `TitleFieldTemplate` with an `id` derived from the `fieldPathId`\n * and whether it is `required` from the props. The `title` is derived from the props as follows:\n * - If there is a title in the `uiSchema`, it is displayed\n * - Else, if there is an explicit `title` passed in the props, it is displayed\n * - Otherwise, if there is a title in the `schema`, it is displayed\n * - Finally, the `name` prop is displayed as the title\n *\n * @param props - The `LayoutHeaderField` for the component\n */\nexport default function LayoutHeaderField(props) {\n const { fieldPathId, title, schema, uiSchema, required, registry, name } = props;\n const options = getUiOptions(uiSchema, registry.globalUiOptions);\n const { title: uiTitle } = options;\n const { title: schemaTitle } = schema;\n const fieldTitle = uiTitle || title || schemaTitle || name;\n if (!fieldTitle) {\n return null;\n }\n const TitleFieldTemplate = getTemplate('TitleFieldTemplate', registry, options);\n return (_jsx(TitleFieldTemplate, { id: titleId(fieldPathId), title: fieldTitle, required: required, schema: schema, uiSchema: uiSchema, registry: registry }));\n}\n//# sourceMappingURL=LayoutHeaderField.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useState, useEffect } from 'react';\nimport { getByPath, setByPath, ANY_OF_KEY, CONST_KEY, DEFAULT_KEY, ERRORS_KEY, getDiscriminatorFieldFromSchema, hashObject, ID_KEY, ONE_OF_KEY, optionsList, PROPERTIES_KEY, getTemplate, getPropertySchema, getUiOptions, getWidget, noop, } from '@rjsf/utils';\n/** Gets the selected option from the list of `options`, using the `selectorField` to search inside each `option` for\n * the `properties[selectorField].default(or const)` that matches the given `value`.\n *\n * @param options - The list of schemas each representing a choice in the `oneOf`\n * @param selectorField - The name of the field that is common in all of the schemas that represents the selector field\n * @param value - The current value of the selector field from the data\n */\nexport function getSelectedOption(options, selectorField, value) {\n const defaultValue = '!@#!@$@#$!@$#';\n const schemaOptions = options.map(({ schema }) => schema);\n return schemaOptions.find((option) => {\n const selector = option[PROPERTIES_KEY]?.[selectorField];\n const result = getByPath(selector, DEFAULT_KEY, getByPath(selector, CONST_KEY, defaultValue));\n return result === value;\n });\n}\n/** Computes the `enumOptions` array from the schema and options.\n *\n * @param schema - The schema that contains the `options`\n * @param options - The options from the `schema`\n * @param schemaUtils - The SchemaUtilsType object used to call retrieveSchema,\n * @param [uiSchema] - The optional uiSchema for the schema\n * @param [formData] - The optional formData associated with the schema\n * @returns - The list of enumOptions for the `schema` and `options`\n * @throws - Error when no enum options were computed\n */\nexport function computeEnumOptions(schema, options, schemaUtils, uiSchema, formData) {\n const realOptions = options.map((opt) => schemaUtils.retrieveSchema(opt, formData));\n let tempSchema = schema;\n if (ONE_OF_KEY in schema) {\n tempSchema = { ...schema, [ONE_OF_KEY]: realOptions };\n }\n else if (ANY_OF_KEY in schema) {\n tempSchema = { ...schema, [ANY_OF_KEY]: realOptions };\n }\n const enumOptions = optionsList(tempSchema, uiSchema);\n if (!enumOptions) {\n throw new Error(`No enumOptions were computed from the schema ${JSON.stringify(tempSchema)}`);\n }\n return enumOptions;\n}\n/** The `LayoutMultiSchemaField` is an adaptation of the `MultiSchemaField` but changed considerably to only\n * support `anyOf`/`oneOf` fields that are being displayed in a `LayoutGridField` where the field selection is shown as\n * a radio group by default. It expects that a `selectorField` is provided (either directly via the `discriminator`\n * field or indirectly via `ui:optionsSchemaSelector` in the `uiSchema`) to help determine which `anyOf`/`oneOf` schema\n * is active. If no `selectorField` is specified, then an error is thrown.\n */\nexport default function LayoutMultiSchemaField(props) {\n const { name, baseType, disabled = false, formData, fieldPathId, onBlur, onChange, options, onFocus, registry, uiSchema, schema, autofocus, readonly, required, errorSchema, hideError = false, } = props;\n const { widgets, schemaUtils, globalUiOptions } = registry;\n const [enumOptions, setEnumOptions] = useState(computeEnumOptions(schema, options, schemaUtils, uiSchema, formData));\n const id = fieldPathId[ID_KEY];\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n const FieldErrorTemplate = getTemplate('FieldErrorTemplate', registry, options);\n const FieldTemplate = getTemplate('FieldTemplate', registry, options);\n const schemaHash = hashObject(schema);\n const optionsHash = hashObject(options);\n const uiSchemaHash = uiSchema ? hashObject(uiSchema) : '';\n const formDataHash = formData ? hashObject(formData) : '';\n useEffect(() => {\n setEnumOptions(computeEnumOptions(schema, options, schemaUtils, uiSchema, formData));\n // We are using hashes in place of the dependencies\n // oxlint-disable-next-line react-hooks/exhaustive-deps\n }, [schemaHash, optionsHash, schemaUtils, uiSchemaHash, formDataHash]);\n const { widget = discriminator ? 'radio' : 'select', title = '', placeholder = '', optionsSchemaSelector: selectorField = discriminator, hideError: uiSchemaHideError, ...uiOptions } = getUiOptions(uiSchema);\n if (!selectorField) {\n throw new Error('No selector field provided for the LayoutMultiSchemaField');\n }\n const selectedOption = getByPath(formData, selectorField);\n let optionSchema = getPropertySchema(enumOptions[0]?.schema, selectorField);\n const option = getSelectedOption(enumOptions, selectorField, selectedOption);\n // If the subschema doesn't declare a type, infer the type from the parent schema\n optionSchema = optionSchema?.type ? optionSchema : { ...optionSchema, type: option?.type || baseType };\n const Widget = getWidget(optionSchema, widget, widgets);\n // The following code was copied from `@rjsf`'s `SchemaField`\n // Set hideError to the value provided in the uiSchema, otherwise stick with the prop to propagate to children\n const hideFieldError = uiSchemaHideError === undefined ? hideError : Boolean(uiSchemaHideError);\n const rawErrors = errorSchema?.[ERRORS_KEY] ?? [];\n const fieldErrorSchema = { ...errorSchema };\n delete fieldErrorSchema[ERRORS_KEY];\n const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);\n /** Callback function that updates the selected option and adjusts the form data based on the structure of the new\n * option, calling the `onChange` callback with the adjusted formData.\n *\n * @param opt - If the option is undefined, we are going to clear the selection otherwise we\n * will use it as the index of the new option to select\n */\n const onOptionChange = (opt) => {\n if (disabled || readonly) {\n return;\n }\n const newOption = getSelectedOption(enumOptions, selectorField, opt);\n const oldOption = getSelectedOption(enumOptions, selectorField, selectedOption);\n let newFormData = schemaUtils.sanitizeDataForNewSchema(newOption, oldOption, formData);\n if (newFormData && newOption) {\n // Call getDefaultFormState to make sure defaults are populated on change.\n newFormData = schemaUtils.getDefaultFormState(newOption, newFormData, 'excludeObjectChildren');\n }\n if (newFormData) {\n setByPath(newFormData, selectorField, opt);\n }\n // Pass the component name in the path\n onChange(newFormData, fieldPathId.path, undefined, id);\n };\n // filtering the options based on the type of widget because `selectField` does not recognize the `convertOther` prop\n const widgetOptions = { enumOptions, ...uiOptions };\n const errors = !hideFieldError && rawErrors.length > 0 ? (_jsx(FieldErrorTemplate, { fieldPathId: fieldPathId, schema: schema, errors: rawErrors, registry: registry })) : undefined;\n return (_jsx(FieldTemplate, { fieldPathId: fieldPathId, id: id, schema: schema, label: (title || schema.title) ?? '', disabled: disabled || (Array.isArray(enumOptions) && enumOptions.length === 0), uiSchema: uiSchema, required: required, readonly: !!readonly, registry: registry, displayLabel: displayLabel, errors: errors, onChange: onChange, onKeyRename: noop, onKeyRenameBlur: noop, onRemoveProperty: noop, children: _jsx(Widget, { id: id, name: name, schema: schema, label: (title || schema.title) ?? '', disabled: disabled || (Array.isArray(enumOptions) && enumOptions.length === 0), uiSchema: uiSchema, autofocus: autofocus, readonly: readonly, required: required, registry: registry, multiple: false, rawErrors: rawErrors, hideError: hideFieldError, hideLabel: !displayLabel, errorSchema: fieldErrorSchema, placeholder: placeholder, onChange: onOptionChange, onBlur: onBlur, onFocus: onFocus, value: selectedOption, options: widgetOptions, htmlName: fieldPathId.name }) }));\n}\n//# sourceMappingURL=LayoutMultiSchemaField.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { ANY_OF_KEY, deepEquals, ERRORS_KEY, getDiscriminatorFieldFromSchema, getTemplate, getUiOptions, getWidget, hashObject, isFormDataAvailable, mergeSchemas, ONE_OF_KEY, shouldRenderOptionalField, TranslatableString, } from '@rjsf/utils';\n/** The `AnyOfField` component is used to render a field in the schema that is an `anyOf`, `allOf` or `oneOf`. It tracks\n * the currently selected option and cleans up any irrelevant data in `formData`.\n *\n * @param props - The `FieldProps` for this template\n */\nfunction AnyOfField(props) {\n const { name, disabled = false, errorSchema, formData, fieldPathId, onBlur, onChange, onFocus, options, readonly, registry, required = false, schema, uiSchema, } = props;\n const { schemaUtils } = registry;\n // Hash formData by value so the memo only invalidates when data actually changes, not on every\n // new object reference. hashObject(undefined) throws, so null is used as the fallback.\n const formDataHash = hashObject(formData ?? null);\n // retrievedOptions is purely derived from options — useMemo handles re-derivation automatically\n // when options, schemaUtils, or formData's value changes, with no render-phase dispatch needed.\n const retrievedOptions = useMemo(() => options.map((opt) => schemaUtils.retrieveSchema(opt, formData)), \n // oxlint-disable-next-line react-hooks/exhaustive-deps -- formDataHash is the value-stable proxy for formData\n [options, schemaUtils, formDataHash]);\n const [selectedOption, setSelectedOption] = useState(() => {\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n return schemaUtils.getClosestMatchingOption(formData, retrievedOptions, 0, discriminator);\n });\n /** Flag to skip the formData-change-driven option recalculation when the user just selected an option.\n * Set to true in onOptionChange (before onChange is called), consumed and reset in the update effect.\n * This prevents the matching-option recalculation from overriding a user's explicit choice when\n * getDefaultFormState populates undefined properties that make deepEquals see a false formData change.\n */\n const skipNextOptionRecalculation = useRef(false);\n const prevFormDataRef = useRef(formData);\n const prevFieldIdRef = useRef(fieldPathId.$id);\n // Mirrors componentDidUpdate: re-match selectedOption when formData changes on the same field.\n // Runs after every render (no deps array) to compare against prev values stored in refs.\n // oxlint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n const prevFormData = prevFormDataRef.current;\n const prevFieldId = prevFieldIdRef.current;\n prevFormDataRef.current = formData;\n prevFieldIdRef.current = fieldPathId.$id;\n if (!deepEquals(formData, prevFormData) && fieldPathId.$id === prevFieldId) {\n if (skipNextOptionRecalculation.current) {\n skipNextOptionRecalculation.current = false;\n return;\n }\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n const matchingOption = schemaUtils.getClosestMatchingOption(formData, retrievedOptions, selectedOption, discriminator);\n if (matchingOption !== selectedOption) {\n setSelectedOption(matchingOption);\n }\n }\n });\n const fieldId = `${fieldPathId.$id}${schema.oneOf ? '__oneof_select' : '__anyof_select'}`;\n /** Callback handler to remember what the currently selected option is. In addition to that the `formData` is updated\n * to remove properties that are not part of the newly selected option schema, and then the updated data is passed to\n * the `onChange` handler.\n *\n * @param option - The new option value being selected\n */\n const onOptionChange = useCallback((option) => {\n if (disabled || readonly) {\n return;\n }\n const intOption = option !== undefined ? parseInt(option, 10) : -1;\n if (intOption === selectedOption) {\n return;\n }\n const newOption = intOption >= 0 ? retrievedOptions[intOption] : undefined;\n const oldOption = selectedOption >= 0 ? retrievedOptions[selectedOption] : undefined;\n let newFormData = schemaUtils.sanitizeDataForNewSchema(newOption, oldOption, formData);\n if (newOption) {\n // Call getDefaultFormState to make sure defaults are populated on change. Pass \"excludeObjectChildren\"\n // so that only the root objects themselves are created without adding undefined children properties\n newFormData = schemaUtils.getDefaultFormState(newOption, newFormData, 'excludeObjectChildren');\n }\n setSelectedOption(intOption);\n skipNextOptionRecalculation.current = true;\n onChange(newFormData, fieldPathId.path, undefined, fieldId);\n }, \n // setSelectedOption is stable (guaranteed by useState); skipNextOptionRecalculation is a ref\n [selectedOption, retrievedOptions, disabled, readonly, schemaUtils, formData, fieldPathId, onChange, fieldId]);\n const { widgets, fields, translateString, globalUiOptions } = registry;\n const { SchemaField: SchemaFieldComponent } = fields;\n const MultiSchemaFieldTemplate = getTemplate('MultiSchemaFieldTemplate', registry, globalUiOptions);\n const isOptionalRender = shouldRenderOptionalField(registry, schema, required, uiSchema);\n const hasFormData = isFormDataAvailable(formData);\n const { widget = 'select', placeholder, autofocus, autocomplete, title = schema.title, ...uiOptions } = getUiOptions(uiSchema, globalUiOptions);\n const Widget = getWidget({ type: 'number' }, widget, widgets);\n const rawErrors = errorSchema?.[ERRORS_KEY] ?? [];\n const fieldErrorSchema = { ...errorSchema };\n delete fieldErrorSchema[ERRORS_KEY];\n const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);\n const option = selectedOption >= 0 ? retrievedOptions[selectedOption] || null : null;\n let optionSchema;\n if (option) {\n const { required: schemaRequired, type: schemaType } = schema;\n const parentProps = {};\n if (schemaRequired) {\n parentProps.required = schemaRequired;\n }\n // Propagate the parent schema type to options that don't define their own.\n // This is necessary when the parent constrains the type (e.g. { type: 'string',\n // oneOf: [{ pattern: '...' }, { pattern: '...' }] }) but the option sub-schemas\n // omit the type — without it, getSchemaType returns undefined and the option\n // renders as FallbackField instead of the correct widget (e.g. StringField).\n if (schemaType !== undefined && !('type' in option)) {\n parentProps.type = schemaType;\n }\n // Merge in all the non-oneOf/anyOf properties and also skip the special ADDITIONAL_PROPERTY_FLAG property\n optionSchema = Object.keys(parentProps).length > 0 ? mergeSchemas(parentProps, option) : option;\n }\n // First we will check to see if there is an anyOf/oneOf override for the UI schema\n let optionsUiSchema = [];\n if (ONE_OF_KEY in schema && uiSchema && ONE_OF_KEY in uiSchema) {\n if (Array.isArray(uiSchema[ONE_OF_KEY])) {\n optionsUiSchema = uiSchema[ONE_OF_KEY];\n }\n else {\n // oxlint-disable-next-line no-console\n console.warn(`uiSchema.oneOf is not an array for \"${title || name}\"`);\n }\n }\n else if (ANY_OF_KEY in schema && uiSchema && ANY_OF_KEY in uiSchema) {\n if (Array.isArray(uiSchema[ANY_OF_KEY])) {\n optionsUiSchema = uiSchema[ANY_OF_KEY];\n }\n else {\n // oxlint-disable-next-line no-console\n console.warn(`uiSchema.anyOf is not an array for \"${title || name}\"`);\n }\n }\n // Then we pick the one that matches the selected option index, if one exists otherwise default to the main uiSchema\n let optionUiSchema = uiSchema;\n if (selectedOption >= 0 && optionsUiSchema.length > selectedOption) {\n optionUiSchema = optionsUiSchema[selectedOption];\n }\n const translateEnum = title\n ? TranslatableString.TitleOptionPrefix\n : TranslatableString.OptionPrefix;\n const translateParams = title ? [title] : [];\n const enumOptions = retrievedOptions.map((opt, index) => {\n const { title: uiTitle = opt.title } = getUiOptions(optionsUiSchema[index]);\n return {\n label: uiTitle || translateString(translateEnum, translateParams.concat(String(index + 1))),\n value: index,\n };\n });\n const selector = !isOptionalRender || hasFormData ? (_jsx(Widget, { id: fieldId, name: `${name}${schema.oneOf ? '__oneof_select' : '__anyof_select'}`, schema: { type: 'number', default: 0 }, onChange: onOptionChange, onBlur: onBlur, onFocus: onFocus, disabled: disabled || enumOptions.length === 0, multiple: false, rawErrors: rawErrors, errorSchema: fieldErrorSchema, value: selectedOption >= 0 ? selectedOption : undefined, options: { enumOptions, ...uiOptions }, registry: registry, placeholder: placeholder, autocomplete: autocomplete, autofocus: autofocus, label: title ?? name, hideLabel: !displayLabel, readonly: readonly })) : undefined;\n const optionsSchemaField = (optionSchema && optionSchema.type !== 'null' && (_jsx(SchemaFieldComponent, { ...props, schema: optionSchema, uiSchema: optionUiSchema }))) ||\n null;\n return (_jsx(MultiSchemaFieldTemplate, { schema: schema, registry: registry, uiSchema: uiSchema, selector: selector, optionSchemaField: optionsSchemaField }));\n}\nexport default AnyOfField;\n//# sourceMappingURL=MultiSchemaField.js.map","import { useEffect } from 'react';\n/** The `NullField` component is used to render a field in the schema is null. It also ensures that the `formData` is\n * also set to null if it has no value.\n *\n * @param props - The `FieldProps` for this template\n */\nfunction NullField(props) {\n const { formData, onChange, fieldPathId } = props;\n useEffect(() => {\n if (formData === undefined) {\n onChange(null, fieldPathId.path);\n }\n }, [fieldPathId, formData, onChange]);\n return null;\n}\nexport default NullField;\n//# sourceMappingURL=NullField.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useState, useCallback } from 'react';\nimport { asNumber, getDecimalSeparator, getUiOptions, optionsList } from '@rjsf/utils';\n// Static matchers for standard '.' separator used during normalization inside handleChange\nconst trailingCharMatcherWithPrefix = /\\.([0-9]*0)*$/;\nconst trailingCharMatcher = /[0.]0*$/;\n/**\n * The NumberField class has some special handling for dealing with trailing\n * decimal points and/or zeroes. This logic is designed to allow trailing values\n * to be visible in the input element, but not be represented in the\n * corresponding form data.\n *\n * The algorithm is as follows:\n *\n * 1. When the input value changes the value is cached in the component state\n *\n * 2. The value is then normalized, removing trailing decimal points and zeros,\n * then passed to the \"onChange\" callback\n *\n * 3. When the component is rendered, the formData value is checked against the\n * value cached in the state. If it matches the cached value, the cached\n * value is passed to the input instead of the formData value\n */\nfunction NumberField(props) {\n const { registry, onChange, formData, value: initialValue } = props;\n const [lastValue, setLastValue] = useState(initialValue);\n const { StringField } = registry.fields;\n const separator = getDecimalSeparator();\n const escapedSeparator = separator === '.' ? '\\\\.' : separator;\n let value = formData;\n /** Handle the change from the `StringField` to properly convert to a number\n *\n * @param value - The current value for the change occurring\n */\n const handleChange = useCallback((newValue, path, errorSchema, id) => {\n // Cache the original value in component state\n setLastValue(newValue);\n // Convert locale separator to standard '.' first\n const standardValue = typeof newValue === 'string' ? newValue.replace(separator, '.') : newValue;\n // Normalize decimals that don't start with a zero character in advance so\n // that the rest of the normalization logic is simpler\n const normalizedValue = `${standardValue}`.startsWith('.') ? `0${standardValue}` : standardValue;\n // Check that the value is a string (this can happen if the widget used is a\n // ` component for the `core` theme.\n * It is used as the template for rendering many of the based widgets that differ by `type` and callbacks only.\n * It can be customized/overridden for other themes or individual implementations as needed.\n *\n * @param props - The `WidgetProps` for this template\n */\nexport default function BaseInputTemplate(props) {\n const { id, name, // remove this from ...rest\n htmlName, value, readonly, disabled, autofocus, onBlur, onFocus, onChange, onChangeOverride, options, schema, uiSchema, registry, rawErrors, type, hideLabel, // remove this from ...rest\n hideError, // remove this from ...rest\n ...rest } = props;\n const { ClearButton } = registry.templates.ButtonTemplates;\n // Note: since React 15.2.0 we can't forward unknown element attributes, so we\n // exclude the \"options\" and \"schema\" ones here.\n if (!id) {\n // oxlint-disable-next-line no-console\n console.log('No id for', props);\n throw new Error(`no id for props ${JSON.stringify(props)}`);\n }\n const inputProps = {\n ...rest,\n ...getInputProps(schema, type, options),\n };\n let inputValue;\n if (inputProps.type === 'number' || inputProps.type === 'integer') {\n inputValue = value || value === 0 ? value : '';\n }\n else {\n inputValue = value == null ? '' : value;\n }\n const handleChange = useCallback(({ target: { value: newValue } }) => onChange(newValue === '' ? options.emptyValue : newValue), [onChange, options]);\n const handleBlur = useCallback(({ target }) => onBlur(id, target?.value), [onBlur, id]);\n const handleFocus = useCallback(({ target }) => onFocus(id, target?.value), [onFocus, id]);\n const handleClear = useCallback((e) => {\n e.preventDefault();\n e.stopPropagation();\n onChange(options.emptyValue);\n }, [onChange, options.emptyValue]);\n return (_jsxs(_Fragment, { children: [_jsx(\"input\", { id: id, name: htmlName || id, className: 'form-control', readOnly: readonly, disabled: disabled, autoFocus: autofocus, value: inputValue, ...inputProps, list: schema.examples ? examplesId(id) : undefined, onChange: onChangeOverride || handleChange, onBlur: handleBlur, onFocus: handleFocus, \"aria-describedby\": ariaDescribedByIds(id, !!schema.examples) }), options.allowClearTextInputs && !readonly && !disabled && inputValue && (_jsx(ClearButton, { registry: registry, onClick: handleClear })), _jsx(SchemaExamples, { id: id, schema: schema })] }));\n}\n//# sourceMappingURL=BaseInputTemplate.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { memo } from 'react';\nimport { TranslatableString } from '@rjsf/utils';\nfunction IconButtonFn(props) {\n const { iconType = 'default', icon, className, uiSchema, registry, ...otherProps } = props;\n return (_jsx(\"button\", { type: 'button', className: `btn btn-${iconType} ${className}`, ...otherProps, children: _jsx(\"i\", { className: `glyphicon glyphicon-${icon}` }) }));\n}\nconst IconButton = memo(IconButtonFn);\nexport default IconButton;\nfunction CopyButtonFn(props) {\n const { registry: { translateString }, } = props;\n return _jsx(IconButton, { title: translateString(TranslatableString.CopyButton), ...props, icon: 'copy' });\n}\nexport const CopyButton = memo(CopyButtonFn);\nfunction MoveDownButtonFn(props) {\n const { registry: { translateString }, } = props;\n return _jsx(IconButton, { title: translateString(TranslatableString.MoveDownButton), ...props, icon: 'arrow-down' });\n}\nexport const MoveDownButton = memo(MoveDownButtonFn);\nfunction MoveUpButtonFn(props) {\n const { registry: { translateString }, } = props;\n return _jsx(IconButton, { title: translateString(TranslatableString.MoveUpButton), ...props, icon: 'arrow-up' });\n}\nexport const MoveUpButton = memo(MoveUpButtonFn);\nfunction RemoveButtonFn(props) {\n const { registry: { translateString }, } = props;\n return (_jsx(IconButton, { title: translateString(TranslatableString.RemoveButton), ...props, iconType: 'danger', icon: 'remove' }));\n}\nexport const RemoveButton = memo(RemoveButtonFn);\nfunction ClearButtonFn({ id, className, onClick, disabled, registry, ...props }) {\n const { translateString } = registry;\n return (_jsx(IconButton, { id: id, iconType: 'default', icon: 'remove', className: 'btn-clear col-xs-12', title: translateString(TranslatableString.ClearButton), onClick: onClick, disabled: disabled, registry: registry, ...props }));\n}\nexport const ClearButton = memo(ClearButtonFn);\n//# sourceMappingURL=IconButton.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { TranslatableString } from '@rjsf/utils';\nimport IconButton from \"./IconButton.js\";\n/** The `AddButton` renders a button that represent the `Add` action on a form\n */\nexport default function AddButton({ id, className, onClick, disabled, registry, }) {\n const { translateString } = registry;\n return (_jsx(\"div\", { className: 'row', children: _jsx(\"p\", { className: `col-xs-4 col-sm-2 col-lg-1 col-xs-offset-8 col-sm-offset-10 col-lg-offset-11 text-right ${className}`, children: _jsx(IconButton, { id: id, iconType: 'info', icon: 'plus', className: 'btn-add col-xs-12', title: translateString(TranslatableString.AddButton), onClick: onClick, disabled: disabled, registry: registry }) }) }));\n}\n//# sourceMappingURL=AddButton.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getSubmitButtonOptions } from '@rjsf/utils';\n/** The `SubmitButton` renders a button that represent the `Submit` action on a form\n */\nexport default function SubmitButton({ uiSchema }) {\n const { submitText, norender, props: submitButtonProps = {} } = getSubmitButtonOptions(uiSchema);\n if (norender) {\n return null;\n }\n return (_jsx(\"div\", { children: _jsx(\"button\", { type: 'submit', ...submitButtonProps, className: `btn btn-info ${submitButtonProps.className || ''}`, children: submitText }) }));\n}\n//# sourceMappingURL=SubmitButton.js.map","import AddButton from \"./AddButton.js\";\nimport { CopyButton, MoveDownButton, MoveUpButton, RemoveButton, ClearButton } from \"./IconButton.js\";\nimport SubmitButton from \"./SubmitButton.js\";\nfunction buttonTemplates() {\n return {\n SubmitButton,\n AddButton,\n CopyButton,\n MoveDownButton,\n MoveUpButton,\n RemoveButton,\n ClearButton,\n };\n}\nexport default buttonTemplates;\n//# sourceMappingURL=index.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { ID_KEY, TranslatableString } from '@rjsf/utils';\n/** The `CyclicSchemaExpandTemplate` is the template to use to render the cyclic schema expand message and controls\n *\n * @param props - The `DescriptionFieldProps` for this component\n */\nexport default function CyclicSchemaExpandTemplate(props) {\n const { name, fieldPathId, registry, onExpand } = props;\n const { translateString } = registry;\n const buttonId = `${fieldPathId[ID_KEY]}-button`;\n return (_jsxs(\"div\", { style: { marginTop: '1rem' }, children: [_jsx(\"div\", { className: 'text-danger', children: translateString(TranslatableString.CycleDetected, [name]) }), _jsxs(\"div\", { children: [_jsx(\"button\", { id: buttonId, type: 'button', className: 'btn btn-sm btn-warning', onClick: () => onExpand(fieldPathId[ID_KEY]), children: translateString(TranslatableString.ExpandButton) }), ' '] })] }));\n}\n//# sourceMappingURL=CyclicSchemaExpandTemplate.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTestIds, getUiOptions } from '@rjsf/utils';\nimport { Markdown } from 'markdown-to-jsx/react';\nconst TEST_IDS = getTestIds();\n/** Renders the given `description` in the props as\n *\n * @param props - The `RichDescriptionProps` for this component\n */\nexport default function RichDescription({ description, registry, uiSchema = {} }) {\n const { globalUiOptions } = registry;\n const uiOptions = getUiOptions(uiSchema, globalUiOptions);\n if (uiOptions.enableMarkdownInDescription && typeof description === 'string') {\n return (_jsx(Markdown, { options: { disableParsingRawHTML: true }, \"data-testid\": TEST_IDS.markdown, children: description }));\n }\n return description;\n}\nRichDescription.TEST_IDS = TEST_IDS;\n//# sourceMappingURL=RichDescription.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport RichDescription from \"../RichDescription.js\";\n/** The `DescriptionField` is the template to use to render the description of a field\n *\n * @param props - The `DescriptionFieldProps` for this component\n */\nexport default function DescriptionField(props) {\n const { id, description, registry, uiSchema } = props;\n if (!description) {\n return null;\n }\n return (_jsx(\"div\", { id: id, className: 'field-description', children: _jsx(RichDescription, { description: description, registry: registry, uiSchema: uiSchema }) }));\n}\n//# sourceMappingURL=DescriptionField.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { TranslatableString } from '@rjsf/utils';\n/** The `ErrorList` component is the template that renders the all the errors associated with the fields in the `Form`\n *\n * @param props - The `ErrorListProps` for this component\n */\nexport default function ErrorList({ errors, registry, }) {\n const { translateString } = registry;\n return (_jsxs(\"div\", { className: 'panel panel-danger errors', children: [_jsx(\"div\", { className: 'panel-heading', children: _jsx(\"h3\", { className: 'panel-title', children: translateString(TranslatableString.ErrorsLabel) }) }), _jsx(\"ul\", { className: 'list-group', children: errors.map((error, i) => (_jsx(\"li\", { className: 'list-group-item text-danger', children: error.stack }, i))) })] }));\n}\n//# sourceMappingURL=ErrorList.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate } from '@rjsf/utils';\n/**\n * The `FallbackFieldTemplate` is used to render a field when no field matches. The field renders a type selector and\n * the schema field for the form data.\n */\nexport default function FallbackFieldTemplate(props) {\n const { schema, registry, typeSelector, schemaField } = props;\n // By default, use the MultiSchemaFieldTemplate, which handles the same basic requirements.\n const MultiSchemaFieldTemplate = getTemplate('MultiSchemaFieldTemplate', registry);\n return (_jsx(MultiSchemaFieldTemplate, { selector: typeSelector, optionSchemaField: schemaField, schema: schema, registry: registry }));\n}\n//# sourceMappingURL=FallbackFieldTemplate.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { errorId } from '@rjsf/utils';\n/** The `FieldErrorTemplate` component renders the errors local to the particular field\n *\n * @param props - The `FieldErrorProps` for the errors being rendered\n */\nexport default function FieldErrorTemplate(props) {\n const { errors = [], fieldPathId } = props;\n if (errors.length === 0) {\n return null;\n }\n const id = errorId(fieldPathId);\n return (_jsx(\"div\", { children: _jsx(\"ul\", { id: id, className: 'error-detail bs-callout bs-callout-info', children: errors\n .filter((elem) => !!elem)\n .map((error, index) => (_jsx(\"li\", { className: 'text-danger', children: error }, index))) }) }));\n}\n//# sourceMappingURL=FieldErrorTemplate.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTestIds, getUiOptions } from '@rjsf/utils';\nimport { Markdown } from 'markdown-to-jsx/react';\nconst TEST_IDS = getTestIds();\n/** Renders the given `description` in the props as\n *\n * @param props - The `RichHelpProps` for this component\n */\nexport default function RichHelp({ help, registry, uiSchema = {}, }) {\n const { globalUiOptions } = registry;\n const uiOptions = getUiOptions(uiSchema, globalUiOptions);\n if (uiOptions.enableMarkdownInHelp && typeof help === 'string') {\n return (_jsx(Markdown, { options: { disableParsingRawHTML: true }, \"data-testid\": TEST_IDS.markdown, children: help }));\n }\n return help;\n}\nRichHelp.TEST_IDS = TEST_IDS;\n//# sourceMappingURL=RichHelp.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { helpId } from '@rjsf/utils';\nimport RichHelp from \"../RichHelp.js\";\n/** The `FieldHelpTemplate` component renders any help desired for a field\n *\n * @param props - The `FieldHelpProps` to be rendered\n */\nexport default function FieldHelpTemplate(props) {\n const { fieldPathId, help, uiSchema, registry } = props;\n if (!help) {\n return null;\n }\n return (_jsx(\"div\", { id: helpId(fieldPathId), className: 'help-block', children: _jsx(RichHelp, { help: help, registry: registry, uiSchema: uiSchema }) }));\n}\n//# sourceMappingURL=FieldHelpTemplate.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst REQUIRED_FIELD_SYMBOL = '*';\n/** Renders a label for a field\n *\n * @param props - The `LabelProps` for this component\n */\nexport default function Label(props) {\n const { label, required, id } = props;\n if (!label) {\n return null;\n }\n return (_jsxs(\"label\", { className: 'control-label', htmlFor: id, children: [label, required && _jsx(\"span\", { className: 'required', children: REQUIRED_FIELD_SYMBOL })] }));\n}\n//# sourceMappingURL=Label.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { getTemplate, getUiOptions } from '@rjsf/utils';\nimport Label from \"./Label.js\";\n/** The `FieldTemplate` component is the template used by `SchemaField` to render any field. It renders the field\n * content, (label, description, children, errors and help) inside of a `WrapIfAdditional` component.\n *\n * @param props - The `FieldTemplateProps` for this component\n */\nexport default function FieldTemplate(props) {\n const { id, label, children, errors, help, description, hidden, required, displayLabel, registry, uiSchema } = props;\n const uiOptions = getUiOptions(uiSchema);\n const WrapIfAdditionalTemplate = getTemplate('WrapIfAdditionalTemplate', registry, uiOptions);\n if (hidden) {\n return _jsx(\"div\", { className: 'hidden', children: children });\n }\n const isCheckbox = uiOptions.widget === 'checkbox';\n return (_jsxs(WrapIfAdditionalTemplate, { ...props, children: [displayLabel && !isCheckbox && _jsx(Label, { label: label, required: required, id: id }), displayLabel && description ? description : null, children, errors, help] }));\n}\n//# sourceMappingURL=FieldTemplate.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/** Renders a `GridTemplate` for bootstrap 3, which is expecting the column information coming in via the `className`\n * prop. Also spreads all the other props provided by the user directly on the div.\n *\n * @param props - The GridTemplateProps, including the expected className for the bootstrap 3 grid behavior\n */\nexport default function GridTemplate(props) {\n const { children, column, className, ...rest } = props;\n return (_jsx(\"div\", { className: className, ...rest, children: children }));\n}\n//# sourceMappingURL=GridTemplate.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/** The `MultiSchemaFieldTemplate` component renders the layout for the MultiSchemaField, which supports choosing\n * a schema from a list of schemas defined using `anyOf` or `oneOf`.\n *\n * @param props - The `MultiSchemaFieldTemplate` to be rendered\n */\nexport default function MultiSchemaFieldTemplate(props) {\n const { selector, optionSchemaField } = props;\n return (_jsxs(\"div\", { className: 'panel panel-default panel-body', children: [_jsx(\"div\", { className: 'form-group', children: selector }), optionSchemaField] }));\n}\n//# sourceMappingURL=MultiSchemaFieldTemplate.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { canExpand, descriptionId, getTemplate, getUiOptions, titleId, buttonId } from '@rjsf/utils';\n/** The `ObjectFieldTemplate` is the template to use to render all the inner properties of an object along with the\n * title and description if available. If the object is expandable, then an `AddButton` is also rendered after all\n * the properties.\n *\n * @param props - The `ObjectFieldTemplateProps` for this component\n */\nexport default function ObjectFieldTemplate(props) {\n const { className, description, disabled, formData, fieldPathId, onAddProperty, optionalDataControl, properties, readonly, registry, required, schema, title, uiSchema, } = props;\n const options = getUiOptions(uiSchema);\n const TitleFieldTemplate = getTemplate('TitleFieldTemplate', registry, options);\n const DescriptionFieldTemplate = getTemplate('DescriptionFieldTemplate', registry, options);\n // For \"pure union\" schemas (oneOf/anyOf without properties), skip rendering the empty fieldset wrapper.\n // The AnyOfField/OneOfField will handle rendering the union selector and selected variant's content directly.\n const isPureUnionSchema = (schema.oneOf || schema.anyOf) && !schema.properties && properties.length === 0;\n if (isPureUnionSchema) {\n return null;\n }\n const showOptionalDataControlInTitle = !readonly && !disabled;\n // Button templates are not overridden in the uiSchema\n const { ButtonTemplates: { AddButton }, } = registry.templates;\n return (_jsxs(\"fieldset\", { className: className, id: fieldPathId.$id, children: [title && (_jsx(TitleFieldTemplate, { id: titleId(fieldPathId), title: title, required: required, schema: schema, uiSchema: uiSchema, registry: registry, optionalDataControl: showOptionalDataControlInTitle ? optionalDataControl : undefined })), description && (_jsx(DescriptionFieldTemplate, { id: descriptionId(fieldPathId), description: description, schema: schema, uiSchema: uiSchema, registry: registry })), !showOptionalDataControlInTitle ? optionalDataControl : undefined, properties.map((prop) => prop.content), canExpand(schema, uiSchema, formData) && (_jsx(AddButton, { id: buttonId(fieldPathId, 'add'), className: 'rjsf-object-property-expand', onClick: onAddProperty, disabled: disabled || readonly, uiSchema: uiSchema, registry: registry }))] }));\n}\n//# sourceMappingURL=ObjectFieldTemplate.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport IconButton from \"./ButtonTemplates/IconButton.js\";\n/** The OptionalDataControlsTemplate renders one of three different states. If\n * there is an `onAddClick()` function, it renders the \"Add\" button. If there is\n * an `onRemoveClick()` function, it renders the \"Remove\" button. Otherwise it\n * renders the \"No data found\" section. All of them use the `label` as either\n * the `title` of buttons or simply outputting it.\n *\n * @param props - The `OptionalDataControlsTemplateProps` for the template\n */\nexport default function OptionalDataControlsTemplate(props) {\n const { id, registry, label, onAddClick, onRemoveClick } = props;\n if (onAddClick) {\n return (_jsx(IconButton, { id: id, registry: registry, icon: 'plus', className: 'rjsf-add-optional-data btn-sm', onClick: onAddClick, title: label }));\n }\n if (onRemoveClick) {\n return (_jsx(IconButton, { id: id, registry: registry, icon: 'remove', className: 'rjsf-remove-optional-data btn-sm', onClick: onRemoveClick, title: label }));\n }\n return _jsx(\"em\", { id: id, children: label });\n}\n//# sourceMappingURL=OptionalDataControlsTemplate.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst REQUIRED_FIELD_SYMBOL = '*';\n/** The `TitleField` is the template to use to render the title of a field\n *\n * @param props - The `TitleFieldProps` for this component\n */\nexport default function TitleField(props) {\n const { id, title, required, optionalDataControl } = props;\n return (_jsxs(\"legend\", { id: id, children: [title, required && _jsx(\"span\", { className: 'required', children: REQUIRED_FIELD_SYMBOL }), optionalDataControl && (_jsx(\"span\", { className: 'pull-right', style: { marginBottom: '2px' }, children: optionalDataControl }))] }));\n}\n//# sourceMappingURL=TitleField.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { TranslatableString } from '@rjsf/utils';\nimport { Markdown } from 'markdown-to-jsx/react';\n/** The `UnsupportedField` component is used to render a field in the schema is one that is not supported by\n * react-jsonschema-form.\n *\n * @param props - The `FieldProps` for this template\n */\nfunction UnsupportedField(props) {\n const { schema, fieldPathId, reason, registry } = props;\n const { translateString } = registry;\n let translateEnum = TranslatableString.UnsupportedField;\n const translateParams = [];\n if (fieldPathId?.$id) {\n translateEnum = TranslatableString.UnsupportedFieldWithId;\n translateParams.push(fieldPathId.$id);\n }\n if (reason) {\n translateEnum =\n translateEnum === TranslatableString.UnsupportedField\n ? TranslatableString.UnsupportedFieldWithReason\n : TranslatableString.UnsupportedFieldWithIdAndReason;\n translateParams.push(reason);\n }\n return (_jsxs(\"div\", { className: 'unsupported-field', children: [_jsx(\"p\", { children: _jsx(Markdown, { options: { disableParsingRawHTML: true }, children: translateString(translateEnum, translateParams) }) }), schema && _jsx(\"pre\", { children: JSON.stringify(schema, null, 2) })] }));\n}\nexport default UnsupportedField;\n//# sourceMappingURL=UnsupportedField.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { ADDITIONAL_PROPERTY_FLAG, buttonId, TranslatableString } from '@rjsf/utils';\nimport Label from \"./FieldTemplate/Label.js\";\n/** The `WrapIfAdditional` component is used by the `FieldTemplate` to rename, or remove properties that are\n * part of an `additionalProperties` part of a schema.\n *\n * @param props - The `WrapIfAdditionalProps` for this component\n */\nexport default function WrapIfAdditionalTemplate(props) {\n const { id, classNames, style, disabled, displayLabel, label, onKeyRenameBlur, onRemoveProperty, rawDescription, readonly, required, schema, hideError, rawErrors, children, uiSchema, registry, } = props;\n const { templates, translateString } = registry;\n // Button templates are not overridden in the uiSchema\n const { RemoveButton } = templates.ButtonTemplates;\n const keyLabel = translateString(TranslatableString.KeyLabel, [label]);\n const additional = ADDITIONAL_PROPERTY_FLAG in schema;\n const hasDescription = !!rawDescription;\n const classNamesList = ['form-group', classNames];\n if (!hideError && rawErrors && rawErrors.length > 0) {\n classNamesList.push('has-error has-danger');\n }\n const uiClassNames = classNamesList.join(' ').trim();\n if (!additional) {\n return (_jsx(\"div\", { className: uiClassNames, style: style, children: children }));\n }\n const margin = hasDescription ? 46 : 26;\n return (_jsx(\"div\", { className: uiClassNames, style: style, children: _jsxs(\"div\", { className: 'row', children: [_jsx(\"div\", { className: 'col-xs-5 form-additional', children: _jsxs(\"div\", { className: 'form-group', children: [displayLabel && _jsx(Label, { label: keyLabel, required: required, id: `${id}-key` }), displayLabel && rawDescription && _jsx(\"div\", { children: \"\\u00A0\" }), _jsx(\"input\", { className: 'form-control', type: 'text', id: `${id}-key`, onBlur: onKeyRenameBlur, defaultValue: label }, label)] }) }), _jsx(\"div\", { className: 'form-additional form-group col-xs-5', children: children }), _jsx(\"div\", { className: 'col-xs-2', style: { marginTop: displayLabel ? `${margin}px` : undefined }, children: _jsx(RemoveButton, { id: buttonId(id, 'remove'), className: 'rjsf-object-property-remove btn-block', style: { border: '0' }, disabled: disabled || readonly, onClick: onRemoveProperty, uiSchema: uiSchema, registry: registry }) })] }) }));\n}\n//# sourceMappingURL=WrapIfAdditionalTemplate.js.map","import ArrayFieldDescriptionTemplate from \"./ArrayFieldDescriptionTemplate.js\";\nimport ArrayFieldItemButtonsTemplate from \"./ArrayFieldItemButtonsTemplate.js\";\nimport ArrayFieldItemTemplate from \"./ArrayFieldItemTemplate.js\";\nimport ArrayFieldTemplate from \"./ArrayFieldTemplate.js\";\nimport ArrayFieldTitleTemplate from \"./ArrayFieldTitleTemplate.js\";\nimport BaseInputTemplate from \"./BaseInputTemplate.js\";\nimport ButtonTemplates from \"./ButtonTemplates/index.js\";\nimport CyclicSchemaExpandTemplate from \"./CyclicSchemaExpandTemplate.js\";\nimport DescriptionField from \"./DescriptionField.js\";\nimport ErrorList from \"./ErrorList.js\";\nimport FallbackFieldTemplate from \"./FallbackFieldTemplate.js\";\nimport FieldErrorTemplate from \"./FieldErrorTemplate.js\";\nimport FieldHelpTemplate from \"./FieldHelpTemplate.js\";\nimport FieldTemplate from \"./FieldTemplate/index.js\";\nimport GridTemplate from \"./GridTemplate.js\";\nimport MultiSchemaFieldTemplate from \"./MultiSchemaFieldTemplate.js\";\nimport ObjectFieldTemplate from \"./ObjectFieldTemplate.js\";\nimport OptionalDataControlsTemplate from \"./OptionalDataControlsTemplate.js\";\nimport TitleField from \"./TitleField.js\";\nimport UnsupportedField from \"./UnsupportedField.js\";\nimport WrapIfAdditionalTemplate from \"./WrapIfAdditionalTemplate.js\";\nfunction templates() {\n return {\n ArrayFieldDescriptionTemplate,\n ArrayFieldItemTemplate,\n ArrayFieldItemButtonsTemplate,\n ArrayFieldTemplate,\n ArrayFieldTitleTemplate,\n ButtonTemplates: ButtonTemplates(),\n BaseInputTemplate,\n CyclicSchemaExpandTemplate,\n DescriptionFieldTemplate: DescriptionField,\n ErrorListTemplate: ErrorList,\n FallbackFieldTemplate,\n FieldTemplate,\n FieldErrorTemplate,\n FieldHelpTemplate,\n GridTemplate,\n MultiSchemaFieldTemplate,\n ObjectFieldTemplate,\n OptionalDataControlsTemplate,\n TitleFieldTemplate: TitleField,\n UnsupportedFieldTemplate: UnsupportedField,\n WrapIfAdditionalTemplate,\n };\n}\nexport default templates;\n//# sourceMappingURL=index.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/** The `AltDateTimeWidget` is an alternative widget for rendering datetime properties.\n * It uses the AltDateWidget for rendering, with the `time` prop set to true by default.\n *\n * @param props - The `WidgetProps` for this component\n */\nfunction AltDateTimeWidget({ time = true, ...props }) {\n const { AltDateWidget } = props.registry.widgets;\n return _jsx(AltDateWidget, { time: time, ...props });\n}\nexport default AltDateTimeWidget;\n//# sourceMappingURL=AltDateTimeWidget.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { DateElement, TranslatableString, useAltDateWidgetProps } from '@rjsf/utils';\n/** The `AltDateWidget` is an alternative widget for rendering date properties.\n * @param props - The `WidgetProps` for this component\n */\nfunction AltDateWidget(props) {\n const { disabled = false, readonly = false, autofocus = false, options, id, name, registry, onBlur, onFocus } = props;\n const { translateString } = registry;\n const { elements, handleChange, handleClear, handleSetNow } = useAltDateWidgetProps(props);\n return (_jsxs(\"ul\", { className: 'list-inline', children: [elements.map((elemProps, i) => (_jsx(\"li\", { className: 'list-inline-item', children: _jsx(DateElement, { rootId: id, name: name, select: handleChange, ...elemProps, disabled: disabled, readonly: readonly, registry: registry, onBlur: onBlur, onFocus: onFocus, autofocus: autofocus && i === 0 }) }, i))), (options.hideNowButton !== 'undefined' ? !options.hideNowButton : true) && (_jsx(\"li\", { className: 'list-inline-item', children: _jsx(\"button\", { type: 'button', className: 'btn btn-info btn-now', onClick: handleSetNow, children: translateString(TranslatableString.NowLabel) }) })), (options.hideClearButton !== 'undefined' ? !options.hideClearButton : true) && (_jsx(\"li\", { className: 'list-inline-item', children: _jsx(\"button\", { type: 'button', className: 'btn btn-warning btn-clear', onClick: handleClear, children: translateString(TranslatableString.ClearLabel) }) }))] }));\n}\nexport default AltDateWidget;\n//# sourceMappingURL=AltDateWidget.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { ariaDescribedByIds, enumOptionValueDecoder, enumOptionValueEncoder, enumOptionsDeselectValue, enumOptionsIsSelected, enumOptionsSelectValue, getOptionValueFormat, optionId, } from '@rjsf/utils';\n/** The `CheckboxesWidget` is a widget for rendering checkbox groups.\n * It is typically used to represent an array of enums.\n *\n * @param props - The `WidgetProps` for this component\n */\nfunction CheckboxesWidget({ id, disabled, options, value, autofocus = false, readonly, onChange, onBlur, onFocus, htmlName, }) {\n const { inline = false, enumOptions, enumDisabled, emptyValue } = options;\n const optionValueFormat = getOptionValueFormat(options);\n const checkboxesValues = Array.isArray(value) ? value : [value];\n const handleBlur = useCallback(({ target }) => onBlur(id, enumOptionValueDecoder(target?.value, enumOptions, optionValueFormat, emptyValue)), [onBlur, id, enumOptions, emptyValue, optionValueFormat]);\n const handleFocus = useCallback(({ target }) => onFocus(id, enumOptionValueDecoder(target?.value, enumOptions, optionValueFormat, emptyValue)), [onFocus, id, enumOptions, emptyValue, optionValueFormat]);\n return (_jsx(\"div\", { className: 'checkboxes', id: id, children: Array.isArray(enumOptions) &&\n enumOptions.map((option, index) => {\n const checked = enumOptionsIsSelected(option.value, checkboxesValues);\n const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.includes(option.value);\n const disabledCls = disabled || itemDisabled || readonly ? 'disabled' : '';\n const handleChange = (event) => {\n if (event.target.checked) {\n onChange(enumOptionsSelectValue(index, checkboxesValues, enumOptions));\n }\n else {\n onChange(enumOptionsDeselectValue(index, checkboxesValues, enumOptions));\n }\n };\n const checkbox = (_jsxs(\"span\", { children: [_jsx(\"input\", { type: 'checkbox', id: optionId(id, index), name: htmlName || id, checked: checked, value: enumOptionValueEncoder(option.value, index, optionValueFormat), disabled: disabled || itemDisabled || readonly, autoFocus: autofocus && index === 0, onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, \"aria-describedby\": ariaDescribedByIds(id) }), _jsx(\"span\", { children: option.label })] }));\n return inline ? (_jsx(\"label\", { className: `checkbox-inline ${disabledCls}`, children: checkbox }, String(option.value))) : (_jsx(\"div\", { className: `checkbox ${disabledCls}`, children: _jsx(\"label\", { children: checkbox }) }, String(option.value)));\n }) }));\n}\nexport default CheckboxesWidget;\n//# sourceMappingURL=CheckboxesWidget.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { ariaDescribedByIds, descriptionId, getTemplate, labelValue, schemaRequiresTrueValue, getUiOptions, } from '@rjsf/utils';\n/** The `CheckBoxWidget` is a widget for rendering boolean properties.\n * It is typically used to represent a boolean.\n *\n * @param props - The `WidgetProps` for this component\n */\nfunction CheckboxWidget({ schema, uiSchema, options, id, value, disabled, readonly, label, hideLabel, autofocus = false, onBlur, onFocus, onChange, registry, htmlName, required, }) {\n const DescriptionFieldTemplate = getTemplate('DescriptionFieldTemplate', registry, options);\n // Because an unchecked checkbox will cause html5 validation to fail, only add\n // the \"required\" attribute if the field value must be \"true\", due to the\n // \"const\" or \"enum\" keywords\n const trueValueRequired = schemaRequiresTrueValue(schema) && required;\n const handleChange = useCallback((event) => onChange(event.target.checked), [onChange]);\n const handleBlur = useCallback((event) => onBlur(id, event.target.checked), [onBlur, id]);\n const handleFocus = useCallback((event) => onFocus(id, event.target.checked), [onFocus, id]);\n const uiOptions = getUiOptions(uiSchema);\n const isCheckboxWidget = uiOptions.widget === 'checkbox';\n const description = isCheckboxWidget ? undefined : (options.description ?? schema.description);\n return (_jsxs(\"div\", { className: `checkbox ${disabled || readonly ? 'disabled' : ''}`, children: [!hideLabel && description && (_jsx(DescriptionFieldTemplate, { id: descriptionId(id), description: description, schema: schema, uiSchema: uiSchema, registry: registry })), _jsxs(\"label\", { children: [_jsx(\"input\", { type: 'checkbox', id: id, name: htmlName || id, checked: typeof value === 'undefined' ? false : value, required: required, disabled: disabled || readonly, autoFocus: autofocus, onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, \"aria-describedby\": ariaDescribedByIds(id) }), labelValue(_jsxs(\"span\", { children: [label, trueValueRequired && _jsx(\"span\", { className: 'required', children: \"*\" })] }), hideLabel)] })] }));\n}\nexport default CheckboxWidget;\n//# sourceMappingURL=CheckboxWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate } from '@rjsf/utils';\n/** The `ColorWidget` component uses the `BaseInputTemplate` changing the type to `color` and disables it when it is\n * either disabled or readonly.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function ColorWidget(props) {\n const { disabled, readonly, options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n return _jsx(BaseInputTemplate, { type: 'color', ...props, disabled: disabled || readonly });\n}\n//# sourceMappingURL=ColorWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate, localToUTC, utcToLocal } from '@rjsf/utils';\n/** The `DateTimeWidget` component uses the `BaseInputTemplate` changing the type to `datetime-local` and transforms\n * the value to/from utc using the appropriate utility functions.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function DateTimeWidget(props) {\n const { onChange, value, options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n return (_jsx(BaseInputTemplate, { type: 'datetime-local', ...props, value: utcToLocal(value), onChange: (newValue) => onChange(localToUTC(newValue)) }));\n}\n//# sourceMappingURL=DateTimeWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { getTemplate } from '@rjsf/utils';\n/** The `DateWidget` component uses the `BaseInputTemplate` changing the type to `date` and transforms\n * the value to undefined when it is falsy during the `onChange` handling.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function DateWidget(props) {\n const { onChange, options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n const handleChange = useCallback((value) => onChange(value || undefined), [onChange]);\n return _jsx(BaseInputTemplate, { type: 'date', ...props, onChange: handleChange });\n}\n//# sourceMappingURL=DateWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate } from '@rjsf/utils';\n/** The `EmailWidget` component uses the `BaseInputTemplate` changing the type to `email`.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function EmailWidget(props) {\n const { options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n return _jsx(BaseInputTemplate, { type: 'email', ...props });\n}\n//# sourceMappingURL=EmailWidget.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { getTemplate, TranslatableString, useFileWidgetProps } from '@rjsf/utils';\nimport { Markdown } from 'markdown-to-jsx/react';\nfunction FileInfoPreview({ fileInfo, registry, }) {\n const { translateString } = registry;\n const { dataURL, type, name } = fileInfo;\n if (!dataURL) {\n return null;\n }\n const previewLabel = translateString(TranslatableString.PreviewLabel);\n // If type is JPEG or PNG then show image preview.\n // Originally, any type of image was supported, but this was changed into a whitelist\n // since SVGs and animated GIFs are also images, which are generally considered a security risk.\n if (['image/jpeg', 'image/png'].includes(type)) {\n return _jsx(\"img\", { src: dataURL, alt: previewLabel, style: { maxWidth: '100%' }, className: 'file-preview' });\n }\n // otherwise, let users download file\n return (_jsxs(_Fragment, { children: [' ', _jsx(\"a\", { download: `preview-${name}`, href: dataURL, className: 'file-download', children: previewLabel })] }));\n}\nfunction FilesInfo({ filesInfo, registry, preview, onRemove, options, }) {\n if (filesInfo.length === 0) {\n return null;\n }\n const { translateString } = registry;\n const { RemoveButton } = getTemplate('ButtonTemplates', registry, options);\n return (_jsx(\"ul\", { className: 'file-info', children: filesInfo.map((fileInfo, key) => {\n const { name, size, type } = fileInfo;\n const handleRemove = () => onRemove(key);\n return (_jsxs(\"li\", { children: [_jsx(Markdown, { children: translateString(TranslatableString.FilesInfo, [name, type, String(size)]) }), preview && _jsx(FileInfoPreview, { fileInfo: fileInfo, registry: registry }), _jsx(RemoveButton, { onClick: handleRemove, registry: registry })] }, key));\n }) }));\n}\n/**\n * The `FileWidget` is a widget for rendering file upload fields.\n * It is typically used with a string property with data-url format.\n */\nfunction FileWidget(props) {\n const { disabled, readonly, required, multiple, onChange, value, options, registry } = props;\n const { filesInfo, handleChange, handleRemove } = useFileWidgetProps(value, onChange, multiple);\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n const handleOnChangeEvent = (event) => {\n if (event.target.files) {\n // handleChange is async; DOM event handlers are void-returning, so we intentionally don't await\n // oxlint-disable-next-line no-floating-promises, no-void\n void handleChange(event.target.files);\n }\n };\n return (_jsxs(\"div\", { children: [_jsx(BaseInputTemplate, { ...props, disabled: disabled || readonly, type: 'file', required: value ? false : required, onChangeOverride: handleOnChangeEvent, value: '', accept: options.accept ? String(options.accept) : undefined }), _jsx(FilesInfo, { filesInfo: filesInfo, onRemove: handleRemove, registry: registry, preview: options.filePreview, options: options })] }));\n}\nexport default FileWidget;\n//# sourceMappingURL=FileWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/** The `HiddenWidget` is a widget for rendering a hidden input field.\n * It is typically used by setting type to \"hidden\".\n *\n * @param props - The `WidgetProps` for this component\n */\nfunction HiddenWidget({ id, value, htmlName, }) {\n return _jsx(\"input\", { type: 'hidden', id: id, name: htmlName || id, value: typeof value === 'undefined' ? '' : value });\n}\nexport default HiddenWidget;\n//# sourceMappingURL=HiddenWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate } from '@rjsf/utils';\n/** The `PasswordWidget` component uses the `BaseInputTemplate` changing the type to `password`.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function PasswordWidget(props) {\n const { options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n return _jsx(BaseInputTemplate, { type: 'password', ...props });\n}\n//# sourceMappingURL=PasswordWidget.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { ariaDescribedByIds, enumOptionValueDecoder, enumOptionValueEncoder, enumOptionsIsSelected, getOptionValueFormat, optionId, } from '@rjsf/utils';\n/** The `RadioWidget` is a widget for rendering a radio group.\n * It is typically used with a string property constrained with enum options.\n *\n * @param props - The `WidgetProps` for this component\n */\nfunction RadioWidget({ options, value, required, disabled, readonly, autofocus = false, onBlur, onFocus, onChange, id, htmlName, }) {\n const { enumOptions, enumDisabled, inline, emptyValue } = options;\n const optionValueFormat = getOptionValueFormat(options);\n const handleBlur = useCallback(({ target }) => onBlur(id, enumOptionValueDecoder(target?.value, enumOptions, optionValueFormat, emptyValue)), [onBlur, enumOptions, emptyValue, id, optionValueFormat]);\n const handleFocus = useCallback(({ target }) => onFocus(id, enumOptionValueDecoder(target?.value, enumOptions, optionValueFormat, emptyValue)), [onFocus, enumOptions, emptyValue, id, optionValueFormat]);\n return (_jsx(\"div\", { className: 'field-radio-group', id: id, role: 'radiogroup', children: Array.isArray(enumOptions) &&\n enumOptions.map((option, i) => {\n const checked = enumOptionsIsSelected(option.value, value);\n const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.includes(option.value);\n const disabledCls = disabled || itemDisabled || readonly ? 'disabled' : '';\n const handleChange = () => onChange(option.value);\n const radio = (_jsxs(\"span\", { children: [_jsx(\"input\", { type: 'radio', id: optionId(id, i), checked: checked, name: htmlName || id, required: required, value: enumOptionValueEncoder(option.value, i, optionValueFormat), disabled: disabled || itemDisabled || readonly, autoFocus: autofocus && i === 0, onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, \"aria-describedby\": ariaDescribedByIds(id) }), _jsx(\"span\", { children: option.label })] }));\n return inline ? (_jsx(\"label\", { className: `radio-inline ${disabledCls}`, children: radio }, String(option.value))) : (_jsx(\"div\", { className: `radio ${disabledCls}`, children: _jsx(\"label\", { children: radio }) }, String(option.value)));\n }) }));\n}\nexport default RadioWidget;\n//# sourceMappingURL=RadioWidget.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/** The `RangeWidget` component uses the `BaseInputTemplate` changing the type to `range` and wrapping the result\n * in a div, with the value along side it.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function RangeWidget(props) {\n const { value, registry: { templates: { BaseInputTemplate }, }, } = props;\n return (_jsxs(\"div\", { className: 'field-range-wrapper', children: [_jsx(BaseInputTemplate, { type: 'range', ...props }), _jsx(\"span\", { className: 'range-view', children: value })] }));\n}\n//# sourceMappingURL=RangeWidget.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\n/** The `RatingWidget` component renders a star or heart rating input\n *\n * Features:\n * - Configurable number of stars/hearts (1-5) with default of 5\n * - Supports different shapes (star, heart)\n * - Supports minimum and maximum values from schema\n * - Handles required, disabled, and readonly states\n * - Provides focus and blur event handling for accessibility\n * - Uses Unicode characters for better visual representation\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function RatingWidget({ id, value, required, disabled, readonly, onChange, onFocus, onBlur, schema, options, htmlName, }) {\n const { stars = 5, shape = 'star' } = options;\n // Use schema.maximum if provided, otherwise use stars option (limited to 1-5)\n const numStars = schema.maximum ? Math.min(schema.maximum, 5) : Math.min(Math.max(stars, 1), 5);\n const min = schema.minimum || 0;\n /** Handles clicking on a star to set the rating */\n const handleStarClick = useCallback((starValue) => {\n if (!disabled && !readonly) {\n onChange(starValue);\n }\n }, [onChange, disabled, readonly]);\n /** Handles focus events for accessibility */\n const handleFocus = useCallback((event) => {\n if (onFocus) {\n // Get the star value from the data attribute\n const starValue = Number(event.target.dataset.value);\n onFocus(id, starValue);\n }\n }, [onFocus, id]);\n /** Handles blur events for accessibility */\n const handleBlur = useCallback((event) => {\n if (onBlur) {\n // Get the star value from the data attribute\n const starValue = Number(event.target.dataset.value);\n onBlur(id, starValue);\n }\n }, [onBlur, id]);\n // Get the appropriate Unicode character based on shape option\n const getSymbol = (isFilled) => {\n if (shape === 'heart') {\n return isFilled ? '♥' : '♡';\n }\n return isFilled ? '★' : '☆';\n };\n return (_jsxs(\"div\", { className: 'rating-widget', style: {\n display: 'inline-flex',\n fontSize: '1.5rem',\n cursor: disabled || readonly ? 'default' : 'pointer',\n }, children: [[...Array(numStars)].map((_, index) => {\n const starValue = min + index;\n const isFilled = starValue <= value;\n return (_jsx(\"span\", { onClick: () => handleStarClick(starValue), onKeyDown: (e) => (e.key === 'Enter' || e.key === ' ') && handleStarClick(starValue), onFocus: handleFocus, onBlur: handleBlur, \"data-value\": starValue, tabIndex: disabled || readonly ? -1 : 0, role: 'radio', \"aria-checked\": starValue === value, \"aria-label\": `${starValue} ${shape === 'heart' ? 'heart' : 'star'}${starValue === 1 ? '' : 's'}`, style: {\n color: isFilled ? '#FFD700' : '#ccc',\n padding: '0 0.2rem',\n transition: 'color 0.2s',\n userSelect: 'none',\n }, children: getSymbol(isFilled) }, index));\n }), _jsx(\"input\", { type: 'hidden', id: id, name: htmlName || id, value: value || '', required: required, disabled: disabled || readonly, \"aria-hidden\": 'true' })] }));\n}\n//# sourceMappingURL=RatingWidget.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { ariaDescribedByIds, enumOptionSelectedValue, enumOptionValueDecoder, enumOptionValueEncoder, getOptionValueFormat, logUnsupportedDefaultForEnum, SelectedOptionDescription, } from '@rjsf/utils';\nfunction getValue(event, multiple) {\n if (multiple) {\n return Array.from(event.target.options)\n .slice()\n .filter((o) => o.selected)\n .map((o) => o.value);\n }\n return event.target.value;\n}\n/** The `SelectWidget` is a widget for rendering dropdowns.\n * It is typically used with string properties constrained with enum options.\n *\n * @param props - The `WidgetProps` for this component\n */\nfunction SelectWidget({ schema, id, options, value, required, disabled, readonly, multiple = false, autofocus = false, onChange, onBlur, onFocus, placeholder, htmlName, registry, uiSchema, }) {\n const { enumOptions, enumDisabled, emptyValue: optEmptyVal } = options;\n const emptyValue = multiple ? [] : '';\n const optionValueFormat = getOptionValueFormat(options);\n const handleFocus = useCallback((event) => {\n const newValue = getValue(event, multiple);\n return onFocus(id, enumOptionValueDecoder(newValue, enumOptions, optionValueFormat, optEmptyVal));\n }, [onFocus, id, multiple, enumOptions, optEmptyVal, optionValueFormat]);\n const handleBlur = useCallback((event) => {\n const newValue = getValue(event, multiple);\n return onBlur(id, enumOptionValueDecoder(newValue, enumOptions, optionValueFormat, optEmptyVal));\n }, [onBlur, id, multiple, enumOptions, optEmptyVal, optionValueFormat]);\n const handleChange = useCallback((event) => {\n const newValue = getValue(event, multiple);\n return onChange(enumOptionValueDecoder(newValue, enumOptions, optionValueFormat, optEmptyVal));\n }, [onChange, multiple, enumOptions, optEmptyVal, optionValueFormat]);\n const selectValue = enumOptionSelectedValue(value, enumOptions, multiple, optionValueFormat, emptyValue);\n const showPlaceholderOption = !multiple && schema.default === undefined;\n logUnsupportedDefaultForEnum(id, schema, enumOptions, multiple);\n return (_jsxs(_Fragment, { children: [_jsx(SelectedOptionDescription, { id: id, multiple: multiple, options: options, registry: registry, uiSchema: uiSchema, value: value }), _jsxs(\"select\", { id: id, name: htmlName || id, multiple: multiple, className: 'form-control', value: selectValue, required: required, disabled: disabled || readonly, autoFocus: autofocus, onBlur: handleBlur, onFocus: handleFocus, onChange: handleChange, \"aria-describedby\": ariaDescribedByIds(id), children: [showPlaceholderOption && _jsx(\"option\", { value: '', children: placeholder }), Array.isArray(enumOptions) &&\n enumOptions.map(({ value: enumValue, label: enumLabel }, i) => {\n const isDisabled = enumDisabled && enumDisabled.includes(enumValue);\n return (_jsx(\"option\", { value: enumOptionValueEncoder(enumValue, i, optionValueFormat), disabled: isDisabled, children: enumLabel }, String(enumValue)));\n })] })] }));\n}\nexport default SelectWidget;\n//# sourceMappingURL=SelectWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { ariaDescribedByIds } from '@rjsf/utils';\n/** The `TextareaWidget` is a widget for rendering input fields as textarea.\n *\n * @param props - The `WidgetProps` for this component\n */\nfunction TextareaWidget({ id, options, placeholder, value, required, disabled, readonly, autofocus = false, onChange, onBlur, onFocus, htmlName, }) {\n const handleChange = useCallback(({ target: { value: newValue } }) => onChange(newValue === '' ? options.emptyValue : newValue), [onChange, options.emptyValue]);\n const handleBlur = useCallback(({ target }) => onBlur(id, target?.value), [onBlur, id]);\n const handleFocus = useCallback(({ target }) => onFocus(id, target?.value), [id, onFocus]);\n return (_jsx(\"textarea\", { id: id, name: htmlName || id, className: 'form-control', value: value || '', placeholder: placeholder, required: required, disabled: disabled, readOnly: readonly, autoFocus: autofocus, rows: options.rows, onBlur: handleBlur, onFocus: handleFocus, onChange: handleChange, \"aria-describedby\": ariaDescribedByIds(id) }));\n}\nexport default TextareaWidget;\n//# sourceMappingURL=TextareaWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate } from '@rjsf/utils';\n/** The `TextWidget` component uses the `BaseInputTemplate`.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function TextWidget(props) {\n const { options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n return _jsx(BaseInputTemplate, { ...props });\n}\n//# sourceMappingURL=TextWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { getTemplate } from '@rjsf/utils';\n/** The `TimeWidget` component uses the `BaseInputTemplate` changing the type to `time` and transforms\n * the value to undefined when it is falsy during the `onChange` handling.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function TimeWidget(props) {\n const { onChange, options, registry, schema, value } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n const hasSecondPrecision = typeof schema.multipleOf === 'number' && Number.isFinite(schema.multipleOf) && schema.multipleOf < 60;\n const handleChange = useCallback((newValue) => {\n if (!newValue) {\n onChange(undefined);\n }\n else if (hasSecondPrecision) {\n onChange(newValue);\n }\n else {\n onChange(`${newValue}:00`);\n }\n }, [hasSecondPrecision, onChange]);\n const displayValue = typeof value === 'string' && !hasSecondPrecision && /^\\d{2}:\\d{2}:00$/.test(value) ? value.slice(0, -3) : value;\n return _jsx(BaseInputTemplate, { type: 'time', ...props, value: displayValue, onChange: handleChange });\n}\n//# sourceMappingURL=TimeWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate } from '@rjsf/utils';\n/** The `UpDownWidget` component uses the `BaseInputTemplate` changing the type to `number`.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function UpDownWidget(props) {\n const { options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n return _jsx(BaseInputTemplate, { type: 'number', ...props });\n}\n//# sourceMappingURL=UpDownWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate } from '@rjsf/utils';\n/** The `URLWidget` component uses the `BaseInputTemplate` changing the type to `url`.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function URLWidget(props) {\n const { options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n return _jsx(BaseInputTemplate, { type: 'url', ...props });\n}\n//# sourceMappingURL=URLWidget.js.map","import AltDateTimeWidget from \"./AltDateTimeWidget.js\";\nimport AltDateWidget from \"./AltDateWidget.js\";\nimport CheckboxesWidget from \"./CheckboxesWidget.js\";\nimport CheckboxWidget from \"./CheckboxWidget.js\";\nimport ColorWidget from \"./ColorWidget.js\";\nimport DateTimeWidget from \"./DateTimeWidget.js\";\nimport DateWidget from \"./DateWidget.js\";\nimport EmailWidget from \"./EmailWidget.js\";\nimport FileWidget from \"./FileWidget.js\";\nimport HiddenWidget from \"./HiddenWidget.js\";\nimport PasswordWidget from \"./PasswordWidget.js\";\nimport RadioWidget from \"./RadioWidget.js\";\nimport RangeWidget from \"./RangeWidget.js\";\nimport RatingWidget from \"./RatingWidget.js\";\nimport SelectWidget from \"./SelectWidget.js\";\nimport TextareaWidget from \"./TextareaWidget.js\";\nimport TextWidget from \"./TextWidget.js\";\nimport TimeWidget from \"./TimeWidget.js\";\nimport UpDownWidget from \"./UpDownWidget.js\";\nimport URLWidget from \"./URLWidget.js\";\nfunction widgets() {\n return {\n AltDateWidget,\n AltDateTimeWidget,\n CheckboxWidget,\n CheckboxesWidget,\n ColorWidget,\n DateWidget,\n DateTimeWidget,\n EmailWidget,\n FileWidget,\n HiddenWidget,\n PasswordWidget,\n RadioWidget,\n RangeWidget,\n RatingWidget,\n SelectWidget,\n TextWidget,\n TextareaWidget,\n TimeWidget,\n UpDownWidget,\n URLWidget,\n };\n}\nexport default widgets;\n//# sourceMappingURL=index.js.map","import { DEFAULT_ID_PREFIX, DEFAULT_ID_SEPARATOR, englishStringTranslator } from '@rjsf/utils';\nimport fields from \"./components/fields/index.js\";\nimport templates from \"./components/templates/index.js\";\nimport widgets from \"./components/widgets/index.js\";\n/** The default registry consists of all the fields, templates and widgets provided in the core implementation,\n * plus an empty `rootSchema` and `formContext. We omit schemaUtils here because it cannot be defaulted without a\n * rootSchema and validator. It will be added into the computed registry later in the Form.\n */\nexport default function getDefaultRegistry() {\n return {\n fields: fields(),\n templates: templates(),\n widgets: widgets(),\n rootSchema: {},\n formContext: {},\n translateString: englishStringTranslator,\n globalFormOptions: {\n idPrefix: DEFAULT_ID_PREFIX,\n idSeparator: DEFAULT_ID_SEPARATOR,\n useFallbackUiForUnsupportedType: false,\n },\n };\n}\n//# sourceMappingURL=getDefaultRegistry.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Component, createRef } from 'react';\nimport { getByPath, setByPath, toPath, unsetByPath, createSchemaUtils, deepEquals, ErrorSchemaBuilder, getChangedFields, getTemplate, getUiOptions, hashObject, isObject, mergeObjects, shouldRender, SUBMIT_BTN_OPTIONS_KEY, toErrorList, toFieldPathId, UI_DEFINITIONS_KEY, UI_GLOBAL_OPTIONS_KEY, UI_OPTIONS_KEY, validationDataMerge, DEFAULT_ID_SEPARATOR, DEFAULT_ID_PREFIX, ERRORS_KEY, ID_KEY, getUsedFormData, getFieldNames, ANY_OF_KEY, ONE_OF_KEY, } from '@rjsf/utils';\nimport getDefaultRegistry from \"../getDefaultRegistry.js\";\nimport { ADDITIONAL_PROPERTY_KEY_REMOVE, IS_RESET } from \"./constants.js\";\n/** Converts the full `FormState` into the `IChangeEvent` version by picking out the public values\n *\n * @param state - The state of the form\n * @param status - The status provided by the onSubmit\n * @returns - The `IChangeEvent` for the state\n */\nfunction toIChangeEvent(state, status) {\n const { schema, uiSchema, fieldPathId, schemaUtils, formData, edit, errors, errorSchema } = state;\n return {\n schema,\n uiSchema,\n fieldPathId,\n schemaUtils,\n formData,\n edit,\n errors,\n errorSchema,\n ...(status !== undefined && { status }),\n };\n}\n/** The `Form` component renders the outer form and all the fields defined in the `schema` */\nexport default class Form extends Component {\n /** The ref used to hold the `form` element, this needs to be `any` because `tagName` or `_internalFormWrapper` can\n * provide any possible type here\n */\n formElement;\n /** The list of pending changes\n */\n pendingChanges = [];\n /** Flag to track when we're processing a user-initiated field change.\n * This prevents componentDidUpdate from reverting oneOf/anyOf option switches.\n */\n isProcessingUserChange = false;\n /** When the `extraErrors` prop changes, re-merges `schemaValidationErrors` + `extraErrors` + `customErrors` into\n * state before render, ensuring the updated errors are visible immediately in a single render cycle.\n *\n * @param props - The current props\n * @param state - The current state\n * @returns Partial state with re-merged errors if `extraErrors` changed, or `null` if no update is needed\n */\n static getDerivedStateFromProps(props, state) {\n if (props.extraErrors !== state.prevExtraErrors) {\n const baseErrors = {\n errors: state.schemaValidationErrors || [],\n errorSchema: state.schemaValidationErrorSchema || {},\n };\n let { errors, errorSchema } = baseErrors;\n if (props.extraErrors) {\n ({ errors, errorSchema } = validationDataMerge(baseErrors, props.extraErrors));\n }\n if (state.customErrors) {\n ({ errors, errorSchema } = validationDataMerge({ errors, errorSchema }, state.customErrors.ErrorSchema, true));\n }\n return { prevExtraErrors: props.extraErrors, errors, errorSchema };\n }\n return null;\n }\n /** Constructs the `Form` from the `props`. Will setup the initial state from the props. It will also call the\n * `onChange` handler if the initially provided `formData` is modified to add missing default values as part of the\n * state construction.\n *\n * @param props - The initial props for the `Form`\n */\n constructor(props) {\n super(props);\n if (!props.validator) {\n throw new Error('A validator is required for Form functionality to work');\n }\n const { formData: propsFormData, initialFormData, onChange } = props;\n const formData = propsFormData ?? initialFormData;\n this.state = {\n ...this.getStateFromProps(props, formData, undefined, undefined, undefined, true),\n prevExtraErrors: props.extraErrors,\n };\n if (onChange && !deepEquals(this.state.formData, formData)) {\n onChange(toIChangeEvent(this.state));\n }\n this.formElement = createRef();\n }\n /**\n * `getSnapshotBeforeUpdate` is a React lifecycle method that is invoked right before the most recently rendered\n * output is committed to the DOM. It enables your component to capture current values (e.g., scroll position) before\n * they are potentially changed.\n *\n * In this case, it checks if the props have changed since the last render. If they have, it computes the next state\n * of the component using `getStateFromProps` method and returns it along with a `shouldUpdate` flag set to `true` IF\n * the `nextState` and `prevState` are different, otherwise `false`. This ensures that we have the most up-to-date\n * state ready to be applied in `componentDidUpdate`.\n *\n * If `formData` hasn't changed, it simply returns an object with `shouldUpdate` set to `false`, indicating that a\n * state update is not necessary.\n *\n * @param prevProps - The previous set of props before the update.\n * @param prevState - The previous state before the update.\n * @returns Either an object containing the next state and a flag indicating that an update should occur, or an object\n * with a flag indicating that an update is not necessary.\n */\n getSnapshotBeforeUpdate(prevProps, prevState) {\n if (!deepEquals(this.props, prevProps)) {\n // Compare the previous props formData against the current props formData\n const formDataChangedFields = getChangedFields(this.props.formData, prevProps.formData);\n // Compare the current props formData against the current state's formData to determine if the new props were the\n // result of the onChange from the existing state formData\n const stateDataChangedFields = getChangedFields(this.props.formData, this.state.formData);\n const isSchemaChanged = !deepEquals(prevProps.schema, this.props.schema);\n // When formData is not an object, getChangedFields returns an empty array.\n // In this case, deepEquals is most needed to check again.\n const isFormDataChanged = formDataChangedFields.length > 0 || !deepEquals(prevProps.formData, this.props.formData);\n const isStateDataChanged = stateDataChangedFields.length > 0 || !deepEquals(this.state.formData, this.props.formData);\n const nextState = this.getStateFromProps(this.props, this.props.formData, \n // If the `schema` has changed, we need to update the retrieved schema.\n // Or if the `formData` changes, for example in the case of a schema with dependencies that need to\n // match one of the subSchemas, the retrieved schema must be updated.\n isSchemaChanged || isFormDataChanged ? undefined : this.state.retrievedSchema, isSchemaChanged, \n // Only the error clearing needs the path of each changed field, and it runs only when live validation does\n // not, so the walk that produces them is left for `getStateFromProps` to ask for\n () => getChangedFields(this.props.formData, prevProps.formData, true), \n // Skip live validation for this request if no form data has changed from the last state\n !isStateDataChanged);\n const shouldUpdate = !deepEquals(nextState, prevState);\n return { nextState, shouldUpdate };\n }\n return { shouldUpdate: false };\n }\n /**\n * `componentDidUpdate` is a React lifecycle method that is invoked immediately after updating occurs. This method is\n * not called for the initial render.\n *\n * Here, it checks if an update is necessary based on the `shouldUpdate` flag received from `getSnapshotBeforeUpdate`.\n * If an update is required, it applies the next state and, if needed, triggers the `onChange` handler to inform about\n * changes.\n *\n * @param _ - The previous set of props.\n * @param prevState - The previous state of the component before the update.\n * @param snapshot - The value returned from `getSnapshotBeforeUpdate`.\n */\n componentDidUpdate(_, prevState, snapshot) {\n if (snapshot.shouldUpdate) {\n const { nextState } = snapshot;\n // Prevent oneOf/anyOf option switches from reverting when getStateFromProps\n // re-evaluates and produces stale formData.\n const nextStateDiffersFromProps = !deepEquals(nextState.formData, this.props.formData);\n const wasProcessingUserChange = this.isProcessingUserChange;\n this.isProcessingUserChange = false;\n if (wasProcessingUserChange && nextStateDiffersFromProps) {\n // Skip - the user's option switch is already applied via processPendingChange\n return;\n }\n if (nextStateDiffersFromProps && !deepEquals(nextState.formData, prevState.formData) && this.props.onChange) {\n this.props.onChange(toIChangeEvent(nextState));\n }\n // oxlint-disable-next-line react/no-did-update-set-state -- guarded to prevent infinite loop\n this.setState(nextState);\n }\n }\n /** Extracts the updated state from the given `props` and `inputFormData`. As part of this process, the\n * `inputFormData` is first processed to add any missing required defaults. After that, the data is run through the\n * validation process IF required by the `props`.\n *\n * @param props - The props passed to the `Form`\n * @param inputFormData - The new or current data for the `Form`\n * @param retrievedSchema - An expanded schema, if not provided, it will be retrieved from the `schema` and `formData`.\n * @param [isSchemaChanged=false] - A flag indicating whether the schema has changed.\n * @param [getFormDataChangedFields=() => []] - Optional function returning the path of each `formData` field that\n * changed, only called when those paths are needed, which is when live validation is not going to run\n * @param [skipLiveValidate=false] - Optional flag, if true, means that we are not running live validation\n * @param [shouldSanitize=false] - Optional flag, if true, means that we should attempt to sanitize formData\n * @returns - The new state for the `Form`\n */\n getStateFromProps(props, inputFormData, retrievedSchema, isSchemaChanged = false, getFormDataChangedFields = () => [], skipLiveValidate = false, shouldSanitize = false) {\n const state = this.state || {};\n const schema = 'schema' in props ? props.schema : this.props.schema;\n const validator = 'validator' in props ? props.validator : this.props.validator;\n const uiSchema = ('uiSchema' in props ? props.uiSchema : this.props.uiSchema) || {};\n const isUncontrolled = props.formData === undefined && this.props.formData === undefined;\n const edit = typeof inputFormData !== 'undefined';\n const liveValidate = 'liveValidate' in props ? props.liveValidate : this.props.liveValidate;\n // oxlint-disable-next-line typescript/no-deprecated\n const mustValidate = edit && !props.noValidate && liveValidate;\n const experimental_defaultFormStateBehavior = 'experimental_defaultFormStateBehavior' in props\n ? props.experimental_defaultFormStateBehavior\n : this.props.experimental_defaultFormStateBehavior;\n const experimental_customMergeAllOf = 'experimental_customMergeAllOf' in props\n ? props.experimental_customMergeAllOf\n : this.props.experimental_customMergeAllOf;\n let { schemaUtils } = state;\n if (!schemaUtils ||\n schemaUtils.doesSchemaUtilsDiffer(validator, schema, experimental_defaultFormStateBehavior, experimental_customMergeAllOf)) {\n schemaUtils = createSchemaUtils(validator, schema, experimental_defaultFormStateBehavior, experimental_customMergeAllOf);\n }\n const rootSchema = schemaUtils.getRootSchema();\n // Compute the formData for getDefaultFormState() function based on the inputFormData, isUncontrolled and state\n let defaultsFormData = inputFormData;\n if (inputFormData === IS_RESET) {\n defaultsFormData = undefined;\n }\n else if (inputFormData === undefined && isUncontrolled) {\n defaultsFormData = state.formData;\n }\n let formData;\n let computedRetrievedSchema;\n let wasSanitized = false;\n const preventInfiniteSanitize = [];\n do {\n formData = schemaUtils.getDefaultFormState(rootSchema, defaultsFormData, false, state.initialDefaultsGenerated);\n // Only hash when sanitizing, wrapping `formData` in an object to deal with a scalar/undefined value\n const formHash = shouldSanitize ? hashObject({ formData }) : '';\n computedRetrievedSchema = this.updateRetrievedSchema(retrievedSchema ?? schemaUtils.retrieveSchema(rootSchema, formData));\n if (shouldSanitize &&\n !preventInfiniteSanitize.includes(formHash) &&\n !deepEquals(computedRetrievedSchema, state.retrievedSchema)) {\n // Sanitize the form data if shouldSanitize is true, we haven't already processed this same formData AND\n // we have a different retrieved schema from when we last ran the state\n const sanitizedFormData = schemaUtils.sanitizeDataForNewSchema(computedRetrievedSchema, state.retrievedSchema, formData);\n wasSanitized = !deepEquals(sanitizedFormData, formData);\n if (wasSanitized) {\n // Update both the formData AND defaultsFormData due to the sanitize so the loop works with the new data\n formData = sanitizedFormData;\n defaultsFormData = sanitizedFormData;\n const sanitizedFormHash = hashObject({ formData: sanitizedFormData });\n // If we've seen the sanitized data before, we are done\n wasSanitized = !preventInfiniteSanitize.includes(sanitizedFormHash);\n preventInfiniteSanitize.push(sanitizedFormHash);\n }\n preventInfiniteSanitize.push(formHash);\n }\n else {\n wasSanitized = false;\n }\n } while (wasSanitized);\n const getCurrentErrors = () => {\n // If the `props.noValidate` option is set or the schema has changed, we reset the error state.\n // oxlint-disable-next-line typescript/no-deprecated\n if (props.noValidate || isSchemaChanged) {\n return { errors: [], errorSchema: {} };\n }\n if (!props.liveValidate) {\n return {\n errors: state.schemaValidationErrors || [],\n errorSchema: state.schemaValidationErrorSchema || {},\n };\n }\n return {\n errors: state.errors || [],\n errorSchema: state.errorSchema || {},\n };\n };\n let errors;\n let errorSchema;\n let { schemaValidationErrors, schemaValidationErrorSchema } = state;\n // If we are skipping live validate, it means that the state has already been updated with live validation errors\n if (mustValidate && !skipLiveValidate) {\n const liveValidation = this.liveValidate(rootSchema, schemaUtils, state.errorSchema, formData, undefined, state.customErrors, retrievedSchema, \n // If retrievedSchema is undefined which means the schema or formData has changed, we do not merge state.\n // Else in the case where it hasn't changed,\n retrievedSchema !== undefined);\n errors = liveValidation.errors;\n errorSchema = liveValidation.errorSchema;\n schemaValidationErrors = liveValidation.schemaValidationErrors;\n schemaValidationErrorSchema = liveValidation.schemaValidationErrorSchema;\n }\n else {\n const currentErrors = getCurrentErrors();\n errors = currentErrors.errors;\n errorSchema = currentErrors.errorSchema;\n // We only update the error schema for changed fields if mustValidate is false\n if (!mustValidate) {\n const formDataChangedFields = getFormDataChangedFields();\n if (formDataChangedFields.length > 0) {\n // `formDataChangedFields` carries the path of each field that changed, so clearing has to follow that path\n // instead of dropping the whole branch it starts in. The path is split with `toPath()`, the same way\n // `toErrorSchema()` splits a validation error property, so the two address the same entry. Intermediate\n // objects are forced so the numeric segment of an array item stays an object key, which is how an\n // `ErrorSchema` addresses array items.\n const newErrorSchema = formDataChangedFields.reduce((acc, path) => {\n const pathOfField = toPath(path);\n // Every container holding the field changed along with it, so an error of their own, such as the\n // `uniqueItems` of the array the field sits in, is cleared too. Only their own errors go: the other\n // fields they hold did not change and keep theirs.\n for (let i = 1; i < pathOfField.length; i++) {\n setByPath(acc, [...pathOfField.slice(0, i), ERRORS_KEY], undefined, true);\n }\n return setByPath(acc, pathOfField, undefined, true);\n }, {});\n schemaValidationErrorSchema = mergeObjects(currentErrors.errorSchema, newErrorSchema, 'preventDuplicates');\n errorSchema = schemaValidationErrorSchema;\n }\n }\n const mergedErrors = Form.mergeErrors({ errorSchema, errors }, props.extraErrors, state.customErrors);\n errors = mergedErrors.errors;\n errorSchema = mergedErrors.errorSchema;\n }\n // Only store a new registry when the props cause a different one to be created\n const newRegistry = Form.getRegistry(props, rootSchema, schemaUtils);\n const registry = deepEquals(state.registry, newRegistry) ? state.registry : newRegistry;\n // Only compute a new `fieldPathId` when the `idPrefix` is different than the existing fieldPathId's ID_KEY\n const fieldPathId = state.fieldPathId && state.fieldPathId?.[ID_KEY] === registry.globalFormOptions.idPrefix\n ? state.fieldPathId\n : toFieldPathId('', registry.globalFormOptions);\n const nextState = {\n schemaUtils,\n schema: rootSchema,\n uiSchema,\n fieldPathId,\n formData,\n edit,\n errors,\n errorSchema,\n schemaValidationErrors,\n schemaValidationErrorSchema,\n retrievedSchema: computedRetrievedSchema,\n initialDefaultsGenerated: true,\n registry,\n };\n return nextState;\n }\n /** React lifecycle method that is used to determine whether component should be updated.\n *\n * @param nextProps - The next version of the props\n * @param nextState - The next version of the state\n * @returns - True if the component should be updated, false otherwise\n */\n shouldComponentUpdate(nextProps, nextState) {\n const { experimental_componentUpdateStrategy = 'customDeep' } = this.props;\n return shouldRender(this, nextProps, nextState, experimental_componentUpdateStrategy);\n }\n /** Validates the `formData` against the `schema` using the `altSchemaUtils` (if provided otherwise it uses the\n * `schemaUtils` in the state), returning the results.\n *\n * @param formData - The new form data to validate\n * @param schema - The schema used to validate against\n * @param [altSchemaUtils] - The alternate schemaUtils to use for validation\n * @param [retrievedSchema] - An optionally retrieved schema for per\n */\n validate(formData, schema = this.state.schema, altSchemaUtils, retrievedSchema) {\n const schemaUtils = altSchemaUtils || this.state.schemaUtils;\n const { customValidate, transformErrors, uiSchema } = this.props;\n // When a pre-resolved schema is provided (e.g., from live validation), use it directly.\n // Otherwise validate against the original schema so AJV sees the full constraint set.\n const validationSchema = retrievedSchema ?? schema;\n // JSON.stringify drops keys with `undefined` values; JSON.parse on the result gives AJV a clean\n // object that avoids spurious type errors for `type: \"string\"` fields that were cleared (#4518).\n const validationFormData = formData ? JSON.parse(JSON.stringify(formData)) : undefined;\n return schemaUtils\n .getValidator()\n .validateFormData(validationFormData, validationSchema, customValidate, transformErrors, uiSchema);\n }\n /** Renders any errors contained in the `state` in using the `ErrorList`, if not disabled by `showErrorList`. */\n renderErrors(registry) {\n const { errors, errorSchema, schema, uiSchema } = this.state;\n const options = getUiOptions(uiSchema);\n const ErrorListTemplate = getTemplate('ErrorListTemplate', registry, options);\n if (errors?.length) {\n return (_jsx(ErrorListTemplate, { errors: errors, errorSchema: errorSchema || {}, schema: schema, uiSchema: uiSchema, registry: registry }));\n }\n return null;\n }\n /** Merges any `extraErrors` or `customErrors` into the given `schemaValidation` object, returning the result\n *\n * @param schemaValidation - The `ValidationData` object into which additional errors are merged\n * @param [extraErrors] - The extra errors from the props\n * @param [customErrors] - The customErrors from custom components\n * @return - The `extraErrors` and `customErrors` merged into the `schemaValidation`\n * @private\n */\n static mergeErrors(schemaValidation, extraErrors, customErrors) {\n let { errorSchema, errors } = schemaValidation;\n if (extraErrors) {\n const merged = validationDataMerge(schemaValidation, extraErrors);\n errorSchema = merged.errorSchema;\n errors = merged.errors;\n }\n if (customErrors) {\n const merged = validationDataMerge({ errors, errorSchema }, customErrors.ErrorSchema, true);\n errorSchema = merged.errorSchema;\n errors = merged.errors;\n }\n return { errors, errorSchema };\n }\n /** Performs live validation and then updates and returns the errors and error schemas by potentially merging in\n * `extraErrors` and `customErrors`.\n *\n * @param rootSchema - The `rootSchema` from the state\n * @param schemaUtils - The `SchemaUtilsType` from the state\n * @param originalErrorSchema - The original `ErrorSchema` from the state\n * @param [formData] - The new form data to validate\n * @param [extraErrors] - The extra errors from the props\n * @param [customErrors] - The customErrors from custom components\n * @param [retrievedSchema] - An expanded schema, if not provided, it will be retrieved from the `schema` and `formData`\n * @param [mergeIntoOriginalErrorSchema=false] - Optional flag indicating whether we merge into original schema\n * @returns - An object containing `errorSchema`, `errors`, `schemaValidationErrors` and `schemaValidationErrorSchema`\n * @private\n */\n liveValidate(rootSchema, schemaUtils, originalErrorSchema, formData, extraErrors, customErrors, retrievedSchema, mergeIntoOriginalErrorSchema = false) {\n const schemaValidation = this.validate(formData, rootSchema, schemaUtils, retrievedSchema);\n const { errors } = schemaValidation;\n let { errorSchema } = schemaValidation;\n // We merge 'originalErrorSchema' with 'schemaValidation.errorSchema.'; This done to display the raised field error.\n if (mergeIntoOriginalErrorSchema) {\n errorSchema = mergeObjects(originalErrorSchema, schemaValidation.errorSchema, 'preventDuplicates');\n }\n const schemaValidationErrors = errors;\n const schemaValidationErrorSchema = errorSchema;\n const mergedErrors = Form.mergeErrors({ errorSchema, errors }, extraErrors, customErrors);\n return { ...mergedErrors, schemaValidationErrors, schemaValidationErrorSchema };\n }\n /** Returns the `formData` with only the elements specified in the `fields` list\n *\n * @param formData - The data for the `Form`\n * @param fields - The fields to keep while filtering\n * @deprecated - To be removed as an exported `Form` function in a future release; there isn't a planned replacement\n */\n // oxlint-disable-next-line class-methods-use-this, typescript/no-deprecated\n getUsedFormData = (formData, fields) => getUsedFormData(formData, fields);\n /** Returns the list of field names from inspecting the `pathSchema` as well as using the `formData`\n *\n * @param pathSchema - The `PathSchema` object for the form\n * @param [formData] - The form data to use while checking for empty objects/arrays\n * @deprecated - To be removed as an exported `Form` function in a future release; there isn't a planned replacement\n */\n // oxlint-disable-next-line class-methods-use-this, typescript/no-deprecated\n getFieldNames = (pathSchema, formData) => getFieldNames(pathSchema, formData);\n /** Returns the `formData` after filtering to remove any extra data not in a form field\n *\n * @param formData - The data for the `Form`\n * @returns The `formData` after omitting extra data\n * @deprecated - To be removed as an exported `Form` function in a future release, use `SchemaUtils.omitExtraData`\n * instead.\n */\n omitExtraData = (formData) => {\n const { schema, schemaUtils } = this.state;\n return schemaUtils.omitExtraData(schema, formData);\n };\n /** Allows a user to set a value for the provided `fieldPath`, which must be either a dotted path to the field OR a\n * `FieldPathList`. To set the root element, used either `''` or `[]` for the path. Passing undefined will clear the\n * value in the field.\n *\n * @param fieldPath - Either a dotted path to the field or the `FieldPathList` to the field\n * @param [newValue] - The new value for the field\n */\n setFieldValue = (fieldPath, newValue) => {\n const { registry } = this.state;\n const path = Array.isArray(fieldPath) ? fieldPath : fieldPath.split('.');\n const fieldPathId = toFieldPathId('', registry.globalFormOptions, path);\n this.onChange(newValue, path, undefined, fieldPathId[ID_KEY]);\n };\n /** Pushes the given change information into the `pendingChanges` array and then calls `processPendingChanges()` if\n * the array only contains a single pending change.\n *\n * @param newValue - The new form data from a change to a field\n * @param path - The path to the change into which to set the formData\n * @param [newErrorSchema] - The new `ErrorSchema` based on the field change\n * @param [id] - The id of the field that caused the change\n */\n onChange = (newValue, path, newErrorSchema, id) => {\n this.pendingChanges.push({ newValue, path, newErrorSchema, id });\n if (this.pendingChanges.length === 1) {\n this.processPendingChange();\n }\n };\n /** Function to handle changes made to a field in the `Form`. This handler gets the first change from the\n * `pendingChanges` list, containing the `newValue` for the `formData` and the `path` at which the `newValue` is to be\n * updated, along with a new, optional `ErrorSchema` for that same `path` and potentially the `id` of the field being\n * changed. It will first update the `formData` with any missing default fields and then, if `omitExtraData` and\n * `liveOmit` are turned on, the `formData` will be filtered to remove any extra data not in a form field. Then, the\n * resulting `formData` will be validated if required. The state will be updated with the new updated (potentially\n * filtered) `formData`, any errors that resulted from validation. Finally the `onChange` callback will be called, if\n * specified, with the updated state and the `processPendingChange()` function is called again.\n */\n processPendingChange() {\n if (this.pendingChanges.length === 0) {\n return;\n }\n // Mark that we're processing a user-initiated change.\n // This prevents componentDidUpdate from reverting oneOf/anyOf option switches.\n this.isProcessingUserChange = true;\n const { newValue, path, id } = this.pendingChanges[0];\n const { newErrorSchema } = this.pendingChanges[0];\n // oxlint-disable-next-line typescript/no-deprecated\n const { extraErrors, omitExtraData, liveOmit, noValidate, liveValidate, onChange, disabled, readonly } = this.props;\n const { formData: oldFormData, schemaUtils, schema, fieldPathId, schemaValidationErrorSchema, errors } = this.state;\n let { customErrors, retrievedSchema } = this.state;\n // Use the un-merged AJV-only schema as the base for re-merging extraErrors. Mirrors the\n // pattern in getStateFromProps/getDerivedStateFromProps and avoids the duplication that\n // happened when state.errorSchema (already containing merged extraErrors) was passed in.\n let mergeBaseErrorSchema = schemaValidationErrorSchema;\n const rootPathId = fieldPathId.path[0] || '';\n const isRootPath = !path || path.length === 0 || (path.length === 1 && path[0] === rootPathId);\n let formData = isRootPath ? newValue : structuredClone(oldFormData);\n // When switching from null to an object option in oneOf, MultiSchemaField sends\n // an object with property names but undefined values (e.g., {types: undefined, content: undefined}).\n // In this case, pass undefined to getStateFromProps to trigger fresh default computation.\n // Only do this when the previous formData was null/undefined (switching FROM null).\n const hasOnlyUndefinedValues = isObject(formData) &&\n Object.keys(formData).length > 0 &&\n Object.values(formData).every((v) => v === undefined);\n const wasPreviouslyNull = oldFormData === null || oldFormData === undefined;\n const inputForDefaults = hasOnlyUndefinedValues && wasPreviouslyNull ? undefined : formData;\n if (isObject(formData) || Array.isArray(formData)) {\n // Tracks if the user cleared a plain (non-oneOf/anyOf) leaf field.\n // The key is removed twice: once before getStateFromProps so inputForDefaults\n // reflects an empty field for conditional schema resolution, and once after so\n // the user's clear overrides any schema default getStateFromProps re-applied (#5125)\n // and AJV never receives { key: undefined } for type:\"string\" fields (#4518).\n let plainLeafWasCleared = false;\n if (newValue === ADDITIONAL_PROPERTY_KEY_REMOVE) {\n // For additional properties, this key was explicitly removed, so unset it\n unsetByPath(formData, path);\n }\n else if (!isRootPath) {\n // Set the new value at its path in the form data.\n let valueForPath = newValue;\n if (newValue === undefined) {\n const lastSegment = path[path.length - 1];\n if (typeof lastSegment === 'number') {\n // Array items: match ArrayField `handleChange` — AJV needs `null`, not undefined.\n valueForPath = null;\n }\n else {\n const { field } = schemaUtils.findFieldInSchema(schema, path, oldFormData);\n const leaf = field;\n const isOneOfOrAnyOfLeaf = leaf && (ONE_OF_KEY in leaf || ANY_OF_KEY in leaf);\n // oneOf/anyOf and unresolved leaves keep `undefined` so mergeDefaults doesn't\n // re-apply a branch default when the user clears the widget.\n // Plain resolved leaves use plainLeafWasCleared instead (see below).\n if (!isOneOfOrAnyOfLeaf && leaf !== undefined) {\n plainLeafWasCleared = true;\n }\n }\n }\n if (plainLeafWasCleared) {\n setByPath(formData, path, undefined);\n }\n else {\n setByPath(formData, path, valueForPath);\n }\n }\n const shouldSanitize = retrievedSchema && !isRootPath && !isObject(newValue) && !Array.isArray(newValue) && !disabled && !readonly;\n // Skip live validation here; it runs later in this function.\n const newState = this.getStateFromProps(this.props, inputForDefaults, undefined, undefined, undefined, true, shouldSanitize);\n formData = newState.formData;\n retrievedSchema = newState.retrievedSchema;\n // Re-set to undefined after merging defaults so the user's clear is preserved in\n // state (#5125 regression: without this, clearing a second field re-applies the\n // default to previously-cleared fields). The undefined key is stripped from the\n // formData copy passed to AJV via JSON.parse(JSON.stringify(...)) so the validator never\n // sees { [key]: undefined } for type:\"string\" or patternProperties fields (#4518).\n if (plainLeafWasCleared && formData) {\n setByPath(formData, path, undefined);\n }\n }\n const mustValidate = !noValidate && (liveValidate === true || liveValidate === 'onChange');\n let state = { formData, retrievedSchema };\n let newFormData = formData;\n if (omitExtraData === true && (liveOmit === true || liveOmit === 'onChange')) {\n // oxlint-disable-next-line typescript/no-deprecated\n newFormData = this.omitExtraData(formData);\n state = { ...state, formData: newFormData };\n }\n if (newErrorSchema) {\n // First check to see if there is an existing validation error on this path...\n const oldValidationError = !isRootPath\n ? getByPath(schemaValidationErrorSchema, path)\n : schemaValidationErrorSchema;\n // If there is an old validation error for this path, assume we are updating it directly\n if (oldValidationError && Object.keys(oldValidationError).length > 0) {\n // Apply the user-supplied newErrorSchema onto a clone of the AJV-only base, so that\n // mergeErrors below sees the user's error at this path without mutating shared state.\n if (!isRootPath) {\n mergeBaseErrorSchema = structuredClone(schemaValidationErrorSchema);\n // An `ErrorSchema` nests plain objects even at numeric segments, so never auto-vivify arrays\n setByPath(mergeBaseErrorSchema, path, newErrorSchema, true);\n }\n else {\n mergeBaseErrorSchema = newErrorSchema;\n }\n }\n else {\n if (!customErrors) {\n customErrors = new ErrorSchemaBuilder();\n }\n if (isRootPath) {\n const pathErrors = newErrorSchema[ERRORS_KEY];\n if (pathErrors) {\n // only set errors when there are some\n customErrors.setErrors(pathErrors);\n }\n }\n else {\n // An `ErrorSchema` nests plain objects even at numeric segments, so never auto-vivify arrays\n setByPath(customErrors.ErrorSchema, path, newErrorSchema, true);\n }\n }\n }\n else if (customErrors && getByPath(customErrors.ErrorSchema, [...path, ERRORS_KEY])) {\n // If we have custom errors and the path has an error, then we need to clear it\n customErrors.clearErrors(path);\n }\n // If there are pending changes in the queue, skip live validation since it will happen with the last change\n if (mustValidate && this.pendingChanges.length === 1) {\n const liveValidation = this.liveValidate(schema, schemaUtils, mergeBaseErrorSchema, newFormData, extraErrors, customErrors, retrievedSchema);\n state = { ...state, formData: newFormData, ...liveValidation, customErrors };\n }\n else if (!noValidate && newErrorSchema) {\n // Merging 'newErrorSchema' into 'errorSchema' to display the custom raised errors.\n const mergedErrors = Form.mergeErrors({ errorSchema: mergeBaseErrorSchema, errors }, extraErrors, customErrors);\n state = { ...state, formData: newFormData, ...mergedErrors, customErrors };\n }\n this.setState(state, () => {\n if (onChange) {\n onChange(toIChangeEvent({ ...this.state, ...state }), id);\n }\n // Now remove the change we just completed and call this again\n this.pendingChanges.shift();\n this.processPendingChange();\n });\n }\n /**\n * If the retrievedSchema has changed the new retrievedSchema is returned.\n * Otherwise, the old retrievedSchema is returned to persist reference.\n * - This ensures that AJV retrieves the schema from the cache when it has not changed,\n * avoiding the performance cost of recompiling the schema.\n *\n * @param retrievedSchema The new retrieved schema.\n * @returns The new retrieved schema if it has changed, else the old retrieved schema.\n */\n updateRetrievedSchema(retrievedSchema) {\n const isTheSame = deepEquals(retrievedSchema, this.state?.retrievedSchema);\n return isTheSame ? this.state.retrievedSchema : retrievedSchema;\n }\n /**\n * Callback function to handle reset form data.\n * - Reset all fields with default values.\n * - Reset validations and errors\n *\n */\n reset = () => {\n // Cast the IS_RESET symbol to T to avoid type issues, we use this symbol to detect reset mode\n const { formData: propsFormData, initialFormData = IS_RESET, onChange } = this.props;\n const newState = this.getStateFromProps(this.props, propsFormData ?? initialFormData, undefined, undefined, undefined, true);\n const newFormData = newState.formData;\n const state = {\n formData: newFormData,\n errorSchema: {},\n errors: [],\n schemaValidationErrors: [],\n schemaValidationErrorSchema: {},\n initialDefaultsGenerated: false,\n customErrors: undefined,\n };\n this.setState(state, () => onChange?.(toIChangeEvent({ ...this.state, ...state })));\n };\n /** Callback function to handle when a field on the form is blurred. Calls the `onBlur` callback for the `Form` if it\n * was provided. Also runs any live validation and/or live omit operations if the flags indicate they should happen\n * during `onBlur`.\n *\n * @param id - The unique `id` of the field that was blurred\n * @param data - The data associated with the field that was blurred\n */\n onBlur = (id, data) => {\n const { onBlur, omitExtraData, liveOmit, liveValidate } = this.props;\n if (onBlur) {\n onBlur(id, data);\n }\n if ((omitExtraData === true && liveOmit === 'onBlur') || liveValidate === 'onBlur') {\n const { onChange, extraErrors } = this.props;\n const { formData } = this.state;\n let newFormData = formData;\n let state = { formData: newFormData };\n if (omitExtraData === true && liveOmit === 'onBlur') {\n // oxlint-disable-next-line typescript/no-deprecated\n newFormData = this.omitExtraData(formData);\n state = { formData: newFormData };\n }\n if (liveValidate === 'onBlur') {\n const { schema, schemaUtils, errorSchema, customErrors, retrievedSchema } = this.state;\n const liveValidation = this.liveValidate(schema, schemaUtils, errorSchema, newFormData, extraErrors, customErrors, retrievedSchema);\n state = { formData: newFormData, ...liveValidation, customErrors };\n }\n const hasChanges = Object.keys(state)\n // Filter out `schemaValidationErrors` and `schemaValidationErrorSchema` since they aren't IChangeEvent props\n .filter((key) => !key.startsWith('schemaValidation'))\n .some((key) => {\n const oldData = this.state[key];\n const newData = state[key];\n return !deepEquals(oldData, newData);\n });\n this.setState(state, () => {\n if (onChange && hasChanges) {\n onChange(toIChangeEvent({ ...this.state, ...state }), id);\n }\n });\n }\n };\n /** Callback function to handle when a field on the form is focused. Calls the `onFocus` callback for the `Form` if it\n * was provided.\n *\n * @param id - The unique `id` of the field that was focused\n * @param data - The data associated with the field that was focused\n */\n onFocus = (id, data) => {\n const { onFocus } = this.props;\n if (onFocus) {\n onFocus(id, data);\n }\n };\n /** Callback function to handle when the form is submitted. First, it prevents the default event behavior. Nothing\n * happens if the target and currentTarget of the event are not the same. It will omit any extra data in the\n * `formData` in the state if `omitExtraData` is true. It will validate the resulting `formData`, reporting errors\n * via the `onError()` callback unless validation is disabled. Finally, it will add in any `extraErrors` and then call\n * back the `onSubmit` callback if it was provided.\n *\n * @param event - The submit HTML form event\n */\n onSubmit = (event) => {\n event.preventDefault();\n if (event.target !== event.currentTarget) {\n return;\n }\n event.persist();\n // oxlint-disable-next-line typescript/no-deprecated\n const { omitExtraData, extraErrors, noValidate, onSubmit } = this.props;\n let { formData: newFormData } = this.state;\n if (omitExtraData === true) {\n // oxlint-disable-next-line typescript/no-deprecated\n newFormData = this.omitExtraData(newFormData);\n }\n if (noValidate || this.validateFormWithFormData(newFormData)) {\n // There are no errors generated through schema validation.\n // Check for user provided errors and update state accordingly.\n const errorSchema = extraErrors || {};\n const errors = extraErrors ? toErrorList(extraErrors) : [];\n this.setState({\n formData: newFormData,\n errors,\n errorSchema,\n schemaValidationErrors: [],\n schemaValidationErrorSchema: {},\n }, () => {\n if (onSubmit) {\n onSubmit(toIChangeEvent({ ...this.state, formData: newFormData }, 'submitted'), event);\n }\n });\n }\n };\n /** Extracts the `GlobalFormOptions` from the given Form `props`\n *\n * @param props - The form props to extract the global form options from\n * @returns - The `GlobalFormOptions` from the props\n * @private\n */\n static getGlobalFormOptions(props) {\n const { uiSchema = {}, experimental_componentUpdateStrategy, idSeparator = DEFAULT_ID_SEPARATOR, idPrefix = DEFAULT_ID_PREFIX, nameGenerator, useFallbackUiForUnsupportedType = false, } = props;\n // oxlint-disable-next-line typescript/no-deprecated\n const rootFieldId = uiSchema['ui:rootFieldId'];\n // Omit any options that are undefined or null\n return {\n idPrefix: rootFieldId || idPrefix,\n idSeparator,\n useFallbackUiForUnsupportedType,\n ...(experimental_componentUpdateStrategy !== undefined && { experimental_componentUpdateStrategy }),\n ...(nameGenerator !== undefined && { nameGenerator }),\n };\n }\n /** Computed the registry for the form using the given `props`, `schema` and `schemaUtils` */\n static getRegistry(props, schema, schemaUtils) {\n const { translateString: customTranslateString, uiSchema = {} } = props;\n const { fields, templates, widgets, formContext, translateString } = getDefaultRegistry();\n return {\n fields: { ...fields, ...props.fields },\n templates: {\n ...templates,\n ...props.templates,\n ButtonTemplates: {\n ...templates.ButtonTemplates,\n ...props.templates?.ButtonTemplates,\n },\n },\n widgets: { ...widgets, ...props.widgets },\n rootSchema: schema,\n formContext: props.formContext || formContext,\n schemaUtils,\n translateString: customTranslateString || translateString,\n globalUiOptions: uiSchema[UI_GLOBAL_OPTIONS_KEY],\n globalFormOptions: Form.getGlobalFormOptions(props),\n uiSchemaDefinitions: uiSchema[UI_DEFINITIONS_KEY] ?? {},\n };\n }\n /** Provides a function that can be used to programmatically submit the `Form` */\n submit = () => {\n if (this.formElement.current) {\n const submitCustomEvent = new CustomEvent('submit', {\n cancelable: true,\n });\n submitCustomEvent.preventDefault();\n this.formElement.current.dispatchEvent(submitCustomEvent);\n this.formElement.current.requestSubmit();\n }\n };\n /** Attempts to focus on the field associated with the `error`. Uses the `property` field to compute path of the error\n * field, then, using the `idPrefix` and `idSeparator` converts that path into an id. Then the input element with that\n * id is attempted to be found using the `formElement` ref. If it is located, then it is focused.\n *\n * @param error - The error on which to focus\n */\n focusOnError(error) {\n const { idPrefix = 'root', idSeparator = '_' } = this.props;\n const { property } = error;\n const path = toPath(property ?? '');\n // The id of the root element is the idPrefix, so prepend it to the path\n path.unshift(idPrefix);\n const elementId = path.join(idSeparator);\n let field = this.formElement.current.elements[elementId];\n if (!field) {\n // if not an exact match, try finding a focusable element starting with the element id (like radio buttons or checkboxes)\n // some themes (e.g. shadcn) use button elements instead of native inputs for radio groups\n field = this.formElement.current.querySelector(`input[id^=\"${elementId}\"], button[id^=\"${elementId}\"]`);\n }\n if (field?.length) {\n // If we got a list with length > 0\n // oxlint-disable-next-line prefer-destructuring\n field = field[0];\n }\n if (field) {\n field.focus();\n }\n }\n /** Validates the form using the given `formData`. For use on form submission or on programmatic validation.\n * If `onError` is provided, then it will be called with the list of errors.\n *\n * @param formData - The form data to validate\n * @returns - True if the form is valid, false otherwise.\n */\n validateFormWithFormData = (formData) => {\n const { extraErrors, extraErrorsBlockSubmit, focusOnFirstError, onError } = this.props;\n const { errors: prevErrors } = this.state;\n const schemaValidation = this.validate(formData);\n // Always merge extraErrors so they remain visible in state regardless of extraErrorsBlockSubmit.\n const { errors, errorSchema } = extraErrors ? Form.mergeErrors(schemaValidation, extraErrors) : schemaValidation;\n // hasError gates submission: schema errors always block; extraErrors only block when\n // extraErrorsBlockSubmit is set (non-breaking default: extraErrors are informational only).\n const hasError = schemaValidation.errors.length > 0 || (extraErrors && extraErrorsBlockSubmit);\n if (hasError) {\n if (focusOnFirstError) {\n if (typeof focusOnFirstError === 'function') {\n focusOnFirstError(errors[0]);\n }\n else {\n this.focusOnError(errors[0]);\n }\n }\n this.setState({\n errors,\n errorSchema,\n schemaValidationErrors: schemaValidation.errors,\n schemaValidationErrorSchema: schemaValidation.errorSchema,\n }, () => {\n if (onError) {\n onError(errors);\n }\n else {\n // oxlint-disable-next-line no-console\n console.error('Form validation failed', errors);\n }\n });\n }\n else if (errors.length > 0) {\n // Non-blocking extraErrors are present — update display state without triggering onError.\n this.setState({\n errors,\n errorSchema,\n schemaValidationErrors: [],\n schemaValidationErrorSchema: {},\n });\n }\n else if (prevErrors.length > 0) {\n this.setState({\n errors: [],\n errorSchema: {},\n schemaValidationErrors: [],\n schemaValidationErrorSchema: {},\n });\n }\n return !hasError;\n };\n /** Programmatically validate the form. If `omitExtraData` is true, the `formData` will first be filtered to remove\n * any extra data not in a form field. If `onError` is provided, then it will be called with the list of errors the\n * same way as would happen on form submission.\n *\n * @returns - True if the form is valid, false otherwise.\n */\n validateForm() {\n const { omitExtraData } = this.props;\n let { formData: newFormData } = this.state;\n if (omitExtraData === true) {\n // oxlint-disable-next-line typescript/no-deprecated\n newFormData = this.omitExtraData(newFormData);\n }\n return this.validateFormWithFormData(newFormData);\n }\n /** Renders the `Form` fields inside the
| `tagName` or `_internalFormWrapper`, rendering any errors if\n * needed along with the submit button or any children of the form.\n */\n render() {\n const { children, id, className = '', tagName, name, method, target, action, autoComplete, enctype, acceptCharset, noHtml5Validate = false, disabled, readonly, showErrorList = 'top', _internalFormWrapper, } = this.props;\n const { schema, uiSchema, formData, errorSchema, fieldPathId, registry } = this.state;\n const { SchemaField: SchemaFieldComponent } = registry.fields;\n const { SubmitButton } = registry.templates.ButtonTemplates;\n // The `semantic-ui` and `material-ui` themes have `_internalFormWrapper`s that take an `as` prop that is the\n // PropTypes.elementType to use for the inner tag, so we'll need to pass `tagName` along if it is provided.\n // NOTE, the `as` prop is native to `semantic-ui` and is emulated in the `material-ui` theme\n const as = _internalFormWrapper ? tagName : undefined;\n const FormTag = _internalFormWrapper || tagName || 'form';\n let { [SUBMIT_BTN_OPTIONS_KEY]: submitOptions = {} } = getUiOptions(uiSchema);\n if (disabled) {\n submitOptions = { ...submitOptions, props: { ...submitOptions.props, disabled: true } };\n }\n const submitUiSchema = { [UI_OPTIONS_KEY]: { [SUBMIT_BTN_OPTIONS_KEY]: submitOptions } };\n return (_jsxs(FormTag, { className: className || 'rjsf', id: id, name: name, method: method, target: target, action: action, autoComplete: autoComplete, encType: enctype, acceptCharset: acceptCharset, noValidate: noHtml5Validate, onSubmit: this.onSubmit, as: as, ref: this.formElement, children: [showErrorList === 'top' && this.renderErrors(registry), _jsx(SchemaFieldComponent, { name: '', schema: schema, uiSchema: uiSchema, errorSchema: errorSchema, fieldPathId: fieldPathId, formData: formData, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, registry: registry, disabled: disabled, readonly: readonly }), children || _jsx(SubmitButton, { uiSchema: submitUiSchema, registry: registry }), showErrorList === 'bottom' && this.renderErrors(registry)] }));\n }\n}\n//# sourceMappingURL=Form.js.map","import { ANY_OF_KEY, createErrorHandler, getByPath, getDefaultFormState, getUiOptions, ONE_OF_KEY, PROPERTIES_KEY, toErrorSchema, toPath, unwrapErrorHandler, validationDataMerge, } from '@rjsf/utils';\n/** Filters duplicate errors from `anyOf`/`oneOf` schema paths according to the `suppressDuplicateFiltering` flag.\n *\n * @param errorList - The list of `RJSFValidationError`s to filter\n * @param [suppressDuplicateFiltering='none'] - Controls which duplicate filtering is suppressed:\n * - `'none'` (default): filters duplicates for both `anyOf` and `oneOf`\n * - `'all'`: returns `errorList` unmodified\n * - `'anyOf'`: suppresses filtering for `anyOf` errors; `oneOf` duplicates are still filtered\n * - `'oneOf'`: suppresses filtering for `oneOf` errors; `anyOf` duplicates are still filtered\n */\nexport function filterDuplicateErrors(errorList, suppressDuplicateFiltering = 'none') {\n if (suppressDuplicateFiltering === 'all') {\n return errorList;\n }\n return errorList.reduce((acc, err) => {\n const { message, schemaPath } = err;\n // Compute the index only when filtering for that keyword is not suppressed.\n // 'all' is already handled above; within the reduce, only 'none', 'anyOf', and 'oneOf' are possible.\n const anyOfIndex = suppressDuplicateFiltering !== 'anyOf' ? schemaPath?.indexOf(`/${ANY_OF_KEY}/`) : undefined;\n const oneOfIndex = suppressDuplicateFiltering !== 'oneOf' ? schemaPath?.indexOf(`/${ONE_OF_KEY}/`) : undefined;\n let schemaPrefix;\n if (anyOfIndex && anyOfIndex >= 0) {\n schemaPrefix = schemaPath?.substring(0, anyOfIndex);\n }\n else if (oneOfIndex && oneOfIndex >= 0) {\n schemaPrefix = schemaPath?.substring(0, oneOfIndex);\n }\n // If there is a schemaPrefix, then search for a duplicate message with the same prefix, otherwise undefined\n const dup = schemaPrefix\n ? acc.find((e) => e.message === message && e.schemaPath?.startsWith(schemaPrefix))\n : undefined;\n if (!dup) {\n acc.push(err);\n }\n return acc;\n }, []);\n}\n/** Transforming the error output from ajv to format used by @rjsf/utils.\n * At some point, components should be updated to support ajv.\n *\n * @param errors - The list of AJV errors to convert to `RJSFValidationErrors`\n * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`\n * @param [suppressDuplicateFiltering] - Controls which duplicate filtering is suppressed; see `filterDuplicateErrors`\n * @param [schema] - The schema for the validation\n */\nexport function transformRJSFValidationErrors(errors = [], uiSchema, suppressDuplicateFiltering, schema) {\n const errorList = errors.map((e) => {\n const { instancePath, keyword, params, schemaPath, parentSchema, ...rest } = e;\n let { message = '' } = rest;\n let property = instancePath.replace(/\\//g, '.');\n let stack = `${property} ${message}`.trim();\n let uiTitle = '';\n const rawPropertyNames = [\n ...(params.deps?.split(', ') || []),\n params.missingProperty,\n params.property,\n ].filter((item) => item);\n if (rawPropertyNames.length > 0) {\n rawPropertyNames.forEach((currentProperty) => {\n const path = property ? `${property}.${currentProperty}` : currentProperty;\n let uiSchemaTitle = getUiOptions(getByPath(uiSchema, toPath(path))).title;\n if (uiSchemaTitle === undefined) {\n // To retrieve a title from UI schema, construct a path to UI schema from `schemaPath` and `currentProperty`.\n // For example, when `#/properties/A/properties/B/required` and `C` are given, they are converted into `['A', 'B', 'C']`.\n const uiSchemaPath = schemaPath\n .replace(/\\/properties\\//g, '/')\n .split('/')\n .slice(1, -1)\n .concat([currentProperty]);\n uiSchemaTitle = getUiOptions(getByPath(uiSchema, uiSchemaPath)).title;\n }\n if (uiSchemaTitle === undefined) {\n // schemaPath may include non-property segments (e.g. allOf/if/then) that do\n // not exist in the uiSchema; fall back to the instance path, the same way the\n // root-schema title fallback does below.\n const propParts = property.replace(/^\\./, '').split('.').filter(Boolean);\n uiSchemaTitle = getByPath(uiSchema, [...propParts, currentProperty, 'title']);\n }\n if (uiSchemaTitle) {\n message = message.replace(`'${currentProperty}'`, `'${uiSchemaTitle}'`);\n uiTitle = uiSchemaTitle;\n }\n else {\n const parentSchemaTitle = getByPath(parentSchema, [\n PROPERTIES_KEY,\n currentProperty,\n 'title',\n ]);\n if (parentSchemaTitle) {\n message = message.replace(`'${currentProperty}'`, `'${parentSchemaTitle}'`);\n uiTitle = parentSchemaTitle;\n }\n else if (schema) {\n // parentSchema may be an allOf/anyOf/oneOf entry that lacks `properties`;\n // fall back to looking up the title from the root schema.\n const propParts = property.replace(/^\\./, '').split('.').filter(Boolean);\n const aSchemaPath = [];\n for (const part of propParts) {\n aSchemaPath.push(PROPERTIES_KEY, part);\n }\n aSchemaPath.push(PROPERTIES_KEY, currentProperty, 'title');\n const rootSchemaTitle = getByPath(schema, aSchemaPath);\n if (rootSchemaTitle) {\n message = message.replace(`'${currentProperty}'`, `'${rootSchemaTitle}'`);\n uiTitle = rootSchemaTitle;\n }\n }\n }\n });\n stack = message;\n }\n else {\n const uiSchemaTitle = getUiOptions(getByPath(uiSchema, toPath(property))).title;\n if (uiSchemaTitle) {\n stack = `'${uiSchemaTitle}' ${message}`.trim();\n uiTitle = uiSchemaTitle;\n }\n else {\n const parentSchemaTitle = parentSchema?.title;\n if (parentSchemaTitle) {\n stack = `'${parentSchemaTitle}' ${message}`.trim();\n uiTitle = parentSchemaTitle;\n }\n }\n }\n // If params.missingProperty is undefined, it is removed from rawPropertyNames by filter((item) => item).\n if ('missingProperty' in params) {\n property = property ? `${property}.${params.missingProperty}` : params.missingProperty;\n }\n // put data in expected format\n return {\n name: keyword,\n property,\n message,\n params, // specific to ajv\n stack,\n schemaPath,\n title: uiTitle,\n };\n });\n return filterDuplicateErrors(errorList, suppressDuplicateFiltering);\n}\n/** This function processes the `formData` with an optional user contributed `customValidate` function, which receives\n * the form data and a `errorHandler` function that will be used to add custom validation errors for each field. Also\n * supports a `transformErrors` function that will take the raw AJV validation errors, prior to custom validation and\n * transform them in what ever way it chooses.\n *\n * @param validator - The `ValidatorType` implementation used for the `getDefaultFormState()` call\n * @param rawErrors - The list of raw `ErrorObject`s to process\n * @param formData - The form data to validate\n * @param schema - The schema against which to validate the form data\n * @param [customValidate] - An optional function that is used to perform custom validation\n * @param [transformErrors] - An optional function that is used to transform errors after AJV validation\n * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`\n * @param [suppressDuplicateFiltering] - Controls which duplicate filtering is suppressed; see `filterDuplicateErrors`\n */\nexport default function processRawValidationErrors(validator, rawErrors, formData, schema, customValidate, transformErrors, uiSchema, suppressDuplicateFiltering) {\n const { validationError: invalidSchemaError } = rawErrors;\n let errors = transformRJSFValidationErrors(rawErrors.errors, uiSchema, suppressDuplicateFiltering, schema);\n if (invalidSchemaError) {\n errors = [...errors, { stack: invalidSchemaError.message }];\n }\n if (typeof transformErrors === 'function') {\n errors = transformErrors(errors, uiSchema);\n }\n let errorSchema = toErrorSchema(errors);\n if (invalidSchemaError) {\n errorSchema = {\n ...errorSchema,\n $schema: {\n __errors: [invalidSchemaError.message],\n },\n };\n }\n if (typeof customValidate !== 'function') {\n return { errors, errorSchema };\n }\n // Include form data with undefined values, which is required for custom validation.\n const newFormData = getDefaultFormState(validator, schema, formData, schema, true);\n const errorHandler = customValidate(newFormData, createErrorHandler(newFormData), uiSchema, errorSchema);\n const userErrorSchema = unwrapErrorHandler(errorHandler);\n return validationDataMerge({ errors, errorSchema }, userErrorSchema);\n}\n//# sourceMappingURL=processRawValidationErrors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nclass _CodeOrName {\n}\nexports._CodeOrName = _CodeOrName;\nexports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nclass Name extends _CodeOrName {\n constructor(s) {\n super();\n if (!exports.IDENTIFIER.test(s))\n throw new Error(\"CodeGen: name must be a valid identifier\");\n this.str = s;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n return false;\n }\n get names() {\n return { [this.str]: 1 };\n }\n}\nexports.Name = Name;\nclass _Code extends _CodeOrName {\n constructor(code) {\n super();\n this._items = typeof code === \"string\" ? [code] : code;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n if (this._items.length > 1)\n return false;\n const item = this._items[0];\n return item === \"\" || item === '\"\"';\n }\n get str() {\n var _a;\n return ((_a = this._str) !== null && _a !== void 0 ? _a : (this._str = this._items.reduce((s, c) => `${s}${c}`, \"\")));\n }\n get names() {\n var _a;\n return ((_a = this._names) !== null && _a !== void 0 ? _a : (this._names = this._items.reduce((names, c) => {\n if (c instanceof Name)\n names[c.str] = (names[c.str] || 0) + 1;\n return names;\n }, {})));\n }\n}\nexports._Code = _Code;\nexports.nil = new _Code(\"\");\nfunction _(strs, ...args) {\n const code = [strs[0]];\n let i = 0;\n while (i < args.length) {\n addCodeArg(code, args[i]);\n code.push(strs[++i]);\n }\n return new _Code(code);\n}\nexports._ = _;\nconst plus = new _Code(\"+\");\nfunction str(strs, ...args) {\n const expr = [safeStringify(strs[0])];\n let i = 0;\n while (i < args.length) {\n expr.push(plus);\n addCodeArg(expr, args[i]);\n expr.push(plus, safeStringify(strs[++i]));\n }\n optimize(expr);\n return new _Code(expr);\n}\nexports.str = str;\nfunction addCodeArg(code, arg) {\n if (arg instanceof _Code)\n code.push(...arg._items);\n else if (arg instanceof Name)\n code.push(arg);\n else\n code.push(interpolate(arg));\n}\nexports.addCodeArg = addCodeArg;\nfunction optimize(expr) {\n let i = 1;\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1]);\n if (res !== undefined) {\n expr.splice(i - 1, 3, res);\n continue;\n }\n expr[i++] = \"+\";\n }\n i++;\n }\n}\nfunction mergeExprItems(a, b) {\n if (b === '\"\"')\n return a;\n if (a === '\"\"')\n return b;\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"')\n return;\n if (typeof b != \"string\")\n return `${a.slice(0, -1)}${b}\"`;\n if (b[0] === '\"')\n return a.slice(0, -1) + b.slice(1);\n return;\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name))\n return `\"${a}${b.slice(1)}`;\n return;\n}\nfunction strConcat(c1, c2) {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str `${c1}${c2}`;\n}\nexports.strConcat = strConcat;\n// TODO do not allow arrays here\nfunction interpolate(x) {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x);\n}\nfunction stringify(x) {\n return new _Code(safeStringify(x));\n}\nexports.stringify = stringify;\nfunction safeStringify(x) {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\");\n}\nexports.safeStringify = safeStringify;\nfunction getProperty(key) {\n return typeof key == \"string\" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _ `[${key}]`;\n}\nexports.getProperty = getProperty;\n//Does best effort to format the name properly\nfunction getEsmExportName(key) {\n if (typeof key == \"string\" && exports.IDENTIFIER.test(key)) {\n return new _Code(`${key}`);\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`);\n}\nexports.getEsmExportName = getEsmExportName;\nfunction regexpCode(rx) {\n return new _Code(rx.toString());\n}\nexports.regexpCode = regexpCode;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;\nconst code_1 = require(\"./code\");\nclass ValueError extends Error {\n constructor(name) {\n super(`CodeGen: \"code\" for ${name} not defined`);\n this.value = name.value;\n }\n}\nvar UsedValueState;\n(function (UsedValueState) {\n UsedValueState[UsedValueState[\"Started\"] = 0] = \"Started\";\n UsedValueState[UsedValueState[\"Completed\"] = 1] = \"Completed\";\n})(UsedValueState || (exports.UsedValueState = UsedValueState = {}));\nexports.varKinds = {\n const: new code_1.Name(\"const\"),\n let: new code_1.Name(\"let\"),\n var: new code_1.Name(\"var\"),\n};\nclass Scope {\n constructor({ prefixes, parent } = {}) {\n this._names = {};\n this._prefixes = prefixes;\n this._parent = parent;\n }\n toName(nameOrPrefix) {\n return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);\n }\n name(prefix) {\n return new code_1.Name(this._newName(prefix));\n }\n _newName(prefix) {\n const ng = this._names[prefix] || this._nameGroup(prefix);\n return `${prefix}${ng.index++}`;\n }\n _nameGroup(prefix) {\n var _a, _b;\n if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`);\n }\n return (this._names[prefix] = { prefix, index: 0 });\n }\n}\nexports.Scope = Scope;\nclass ValueScopeName extends code_1.Name {\n constructor(prefix, nameStr) {\n super(nameStr);\n this.prefix = prefix;\n }\n setValue(value, { property, itemIndex }) {\n this.value = value;\n this.scopePath = (0, code_1._) `.${new code_1.Name(property)}[${itemIndex}]`;\n }\n}\nexports.ValueScopeName = ValueScopeName;\nconst line = (0, code_1._) `\\n`;\nclass ValueScope extends Scope {\n constructor(opts) {\n super(opts);\n this._values = {};\n this._scope = opts.scope;\n this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };\n }\n get() {\n return this._scope;\n }\n name(prefix) {\n return new ValueScopeName(prefix, this._newName(prefix));\n }\n value(nameOrPrefix, value) {\n var _a;\n if (value.ref === undefined)\n throw new Error(\"CodeGen: ref must be passed in value\");\n const name = this.toName(nameOrPrefix);\n const { prefix } = name;\n const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;\n let vs = this._values[prefix];\n if (vs) {\n const _name = vs.get(valueKey);\n if (_name)\n return _name;\n }\n else {\n vs = this._values[prefix] = new Map();\n }\n vs.set(valueKey, name);\n const s = this._scope[prefix] || (this._scope[prefix] = []);\n const itemIndex = s.length;\n s[itemIndex] = value.ref;\n name.setValue(value, { property: prefix, itemIndex });\n return name;\n }\n getValue(prefix, keyOrRef) {\n const vs = this._values[prefix];\n if (!vs)\n return;\n return vs.get(keyOrRef);\n }\n scopeRefs(scopeName, values = this._values) {\n return this._reduceValues(values, (name) => {\n if (name.scopePath === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return (0, code_1._) `${scopeName}${name.scopePath}`;\n });\n }\n scopeCode(values = this._values, usedValues, getCode) {\n return this._reduceValues(values, (name) => {\n if (name.value === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return name.value.code;\n }, usedValues, getCode);\n }\n _reduceValues(values, valueCode, usedValues = {}, getCode) {\n let code = code_1.nil;\n for (const prefix in values) {\n const vs = values[prefix];\n if (!vs)\n continue;\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());\n vs.forEach((name) => {\n if (nameSet.has(name))\n return;\n nameSet.set(name, UsedValueState.Started);\n let c = valueCode(name);\n if (c) {\n const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;\n code = (0, code_1._) `${code}${def} ${name} = ${c};${this.opts._n}`;\n }\n else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {\n code = (0, code_1._) `${code}${c}${this.opts._n}`;\n }\n else {\n throw new ValueError(name);\n }\n nameSet.set(name, UsedValueState.Completed);\n });\n }\n return code;\n }\n}\nexports.ValueScope = ValueScope;\n//# sourceMappingURL=scope.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;\nconst code_1 = require(\"./code\");\nconst scope_1 = require(\"./scope\");\nvar code_2 = require(\"./code\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return code_2._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return code_2.str; } });\nObject.defineProperty(exports, \"strConcat\", { enumerable: true, get: function () { return code_2.strConcat; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return code_2.nil; } });\nObject.defineProperty(exports, \"getProperty\", { enumerable: true, get: function () { return code_2.getProperty; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return code_2.stringify; } });\nObject.defineProperty(exports, \"regexpCode\", { enumerable: true, get: function () { return code_2.regexpCode; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return code_2.Name; } });\nvar scope_2 = require(\"./scope\");\nObject.defineProperty(exports, \"Scope\", { enumerable: true, get: function () { return scope_2.Scope; } });\nObject.defineProperty(exports, \"ValueScope\", { enumerable: true, get: function () { return scope_2.ValueScope; } });\nObject.defineProperty(exports, \"ValueScopeName\", { enumerable: true, get: function () { return scope_2.ValueScopeName; } });\nObject.defineProperty(exports, \"varKinds\", { enumerable: true, get: function () { return scope_2.varKinds; } });\nexports.operators = {\n GT: new code_1._Code(\">\"),\n GTE: new code_1._Code(\">=\"),\n LT: new code_1._Code(\"<\"),\n LTE: new code_1._Code(\"<=\"),\n EQ: new code_1._Code(\"===\"),\n NEQ: new code_1._Code(\"!==\"),\n NOT: new code_1._Code(\"!\"),\n OR: new code_1._Code(\"||\"),\n AND: new code_1._Code(\"&&\"),\n ADD: new code_1._Code(\"+\"),\n};\nclass Node {\n optimizeNodes() {\n return this;\n }\n optimizeNames(_names, _constants) {\n return this;\n }\n}\nclass Def extends Node {\n constructor(varKind, name, rhs) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.rhs = rhs;\n }\n render({ es5, _n }) {\n const varKind = es5 ? scope_1.varKinds.var : this.varKind;\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`;\n return `${varKind} ${this.name}${rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (!names[this.name.str])\n return;\n if (this.rhs)\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};\n }\n}\nclass Assign extends Node {\n constructor(lhs, rhs, sideEffects) {\n super();\n this.lhs = lhs;\n this.rhs = rhs;\n this.sideEffects = sideEffects;\n }\n render({ _n }) {\n return `${this.lhs} = ${this.rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)\n return;\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };\n return addExprNames(names, this.rhs);\n }\n}\nclass AssignOp extends Assign {\n constructor(lhs, op, rhs, sideEffects) {\n super(lhs, rhs, sideEffects);\n this.op = op;\n }\n render({ _n }) {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n;\n }\n}\nclass Label extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n return `${this.label}:` + _n;\n }\n}\nclass Break extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n const label = this.label ? ` ${this.label}` : \"\";\n return `break${label};` + _n;\n }\n}\nclass Throw extends Node {\n constructor(error) {\n super();\n this.error = error;\n }\n render({ _n }) {\n return `throw ${this.error};` + _n;\n }\n get names() {\n return this.error.names;\n }\n}\nclass AnyCode extends Node {\n constructor(code) {\n super();\n this.code = code;\n }\n render({ _n }) {\n return `${this.code};` + _n;\n }\n optimizeNodes() {\n return `${this.code}` ? this : undefined;\n }\n optimizeNames(names, constants) {\n this.code = optimizeExpr(this.code, names, constants);\n return this;\n }\n get names() {\n return this.code instanceof code_1._CodeOrName ? this.code.names : {};\n }\n}\nclass ParentNode extends Node {\n constructor(nodes = []) {\n super();\n this.nodes = nodes;\n }\n render(opts) {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\");\n }\n optimizeNodes() {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n const n = nodes[i].optimizeNodes();\n if (Array.isArray(n))\n nodes.splice(i, 1, ...n);\n else if (n)\n nodes[i] = n;\n else\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n optimizeNames(names, constants) {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i];\n if (n.optimizeNames(names, constants))\n continue;\n subtractNames(names, n.names);\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n get names() {\n return this.nodes.reduce((names, n) => addNames(names, n.names), {});\n }\n}\nclass BlockNode extends ParentNode {\n render(opts) {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n;\n }\n}\nclass Root extends ParentNode {\n}\nclass Else extends BlockNode {\n}\nElse.kind = \"else\";\nclass If extends BlockNode {\n constructor(condition, nodes) {\n super(nodes);\n this.condition = condition;\n }\n render(opts) {\n let code = `if(${this.condition})` + super.render(opts);\n if (this.else)\n code += \"else \" + this.else.render(opts);\n return code;\n }\n optimizeNodes() {\n super.optimizeNodes();\n const cond = this.condition;\n if (cond === true)\n return this.nodes; // else is ignored here\n let e = this.else;\n if (e) {\n const ns = e.optimizeNodes();\n e = this.else = Array.isArray(ns) ? new Else(ns) : ns;\n }\n if (e) {\n if (cond === false)\n return e instanceof If ? e : e.nodes;\n if (this.nodes.length)\n return this;\n return new If(not(cond), e instanceof If ? [e] : e.nodes);\n }\n if (cond === false || !this.nodes.length)\n return undefined;\n return this;\n }\n optimizeNames(names, constants) {\n var _a;\n this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n if (!(super.optimizeNames(names, constants) || this.else))\n return;\n this.condition = optimizeExpr(this.condition, names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n addExprNames(names, this.condition);\n if (this.else)\n addNames(names, this.else.names);\n return names;\n }\n}\nIf.kind = \"if\";\nclass For extends BlockNode {\n}\nFor.kind = \"for\";\nclass ForLoop extends For {\n constructor(iteration) {\n super();\n this.iteration = iteration;\n }\n render(opts) {\n return `for(${this.iteration})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iteration = optimizeExpr(this.iteration, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iteration.names);\n }\n}\nclass ForRange extends For {\n constructor(varKind, name, from, to) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.from = from;\n this.to = to;\n }\n render(opts) {\n const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;\n const { name, from, to } = this;\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);\n }\n get names() {\n const names = addExprNames(super.names, this.from);\n return addExprNames(names, this.to);\n }\n}\nclass ForIter extends For {\n constructor(loop, varKind, name, iterable) {\n super();\n this.loop = loop;\n this.varKind = varKind;\n this.name = name;\n this.iterable = iterable;\n }\n render(opts) {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iterable = optimizeExpr(this.iterable, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iterable.names);\n }\n}\nclass Func extends BlockNode {\n constructor(name, args, async) {\n super();\n this.name = name;\n this.args = args;\n this.async = async;\n }\n render(opts) {\n const _async = this.async ? \"async \" : \"\";\n return `${_async}function ${this.name}(${this.args})` + super.render(opts);\n }\n}\nFunc.kind = \"func\";\nclass Return extends ParentNode {\n render(opts) {\n return \"return \" + super.render(opts);\n }\n}\nReturn.kind = \"return\";\nclass Try extends BlockNode {\n render(opts) {\n let code = \"try\" + super.render(opts);\n if (this.catch)\n code += this.catch.render(opts);\n if (this.finally)\n code += this.finally.render(opts);\n return code;\n }\n optimizeNodes() {\n var _a, _b;\n super.optimizeNodes();\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();\n return this;\n }\n optimizeNames(names, constants) {\n var _a, _b;\n super.optimizeNames(names, constants);\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n if (this.catch)\n addNames(names, this.catch.names);\n if (this.finally)\n addNames(names, this.finally.names);\n return names;\n }\n}\nclass Catch extends BlockNode {\n constructor(error) {\n super();\n this.error = error;\n }\n render(opts) {\n return `catch(${this.error})` + super.render(opts);\n }\n}\nCatch.kind = \"catch\";\nclass Finally extends BlockNode {\n render(opts) {\n return \"finally\" + super.render(opts);\n }\n}\nFinally.kind = \"finally\";\nclass CodeGen {\n constructor(extScope, opts = {}) {\n this._values = {};\n this._blockStarts = [];\n this._constants = {};\n this.opts = { ...opts, _n: opts.lines ? \"\\n\" : \"\" };\n this._extScope = extScope;\n this._scope = new scope_1.Scope({ parent: extScope });\n this._nodes = [new Root()];\n }\n toString() {\n return this._root.render(this.opts);\n }\n // returns unique name in the internal scope\n name(prefix) {\n return this._scope.name(prefix);\n }\n // reserves unique name in the external scope\n scopeName(prefix) {\n return this._extScope.name(prefix);\n }\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName, value) {\n const name = this._extScope.value(prefixOrName, value);\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set());\n vs.add(name);\n return name;\n }\n getScopeValue(prefix, keyOrRef) {\n return this._extScope.getValue(prefix, keyOrRef);\n }\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName) {\n return this._extScope.scopeRefs(scopeName, this._values);\n }\n scopeCode() {\n return this._extScope.scopeCode(this._values);\n }\n _def(varKind, nameOrPrefix, rhs, constant) {\n const name = this._scope.toName(nameOrPrefix);\n if (rhs !== undefined && constant)\n this._constants[name.str] = rhs;\n this._leafNode(new Def(varKind, name, rhs));\n return name;\n }\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);\n }\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);\n }\n // `var` declaration with optional assignment\n var(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);\n }\n // assignment code\n assign(lhs, rhs, sideEffects) {\n return this._leafNode(new Assign(lhs, rhs, sideEffects));\n }\n // `+=` code\n add(lhs, rhs) {\n return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));\n }\n // appends passed SafeExpr to code or executes Block\n code(c) {\n if (typeof c == \"function\")\n c();\n else if (c !== code_1.nil)\n this._leafNode(new AnyCode(c));\n return this;\n }\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues) {\n const code = [\"{\"];\n for (const [key, value] of keyValues) {\n if (code.length > 1)\n code.push(\",\");\n code.push(key);\n if (key !== value || this.opts.es5) {\n code.push(\":\");\n (0, code_1.addCodeArg)(code, value);\n }\n }\n code.push(\"}\");\n return new code_1._Code(code);\n }\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition, thenBody, elseBody) {\n this._blockNode(new If(condition));\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf();\n }\n else if (thenBody) {\n this.code(thenBody).endIf();\n }\n else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body');\n }\n return this;\n }\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition) {\n return this._elseNode(new If(condition));\n }\n // `else` clause - only valid after `if` or `else if` clauses\n else() {\n return this._elseNode(new Else());\n }\n // end `if` statement (needed if gen.if was used only with condition)\n endIf() {\n return this._endBlockNode(If, Else);\n }\n _for(node, forBody) {\n this._blockNode(node);\n if (forBody)\n this.code(forBody).endFor();\n return this;\n }\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration, forBody) {\n return this._for(new ForLoop(iteration), forBody);\n }\n // `for` statement for a range of values\n forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name));\n }\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {\n const name = this._scope.toName(nameOrPrefix);\n if (this.opts.es5) {\n const arr = iterable instanceof code_1.Name ? iterable : this.var(\"_arr\", iterable);\n return this.forRange(\"_i\", 0, (0, code_1._) `${arr}.length`, (i) => {\n this.var(name, (0, code_1._) `${arr}[${i}]`);\n forBody(name);\n });\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name));\n }\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, (0, code_1._) `Object.keys(${obj})`, forBody);\n }\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name));\n }\n // end `for` loop\n endFor() {\n return this._endBlockNode(For);\n }\n // `label` statement\n label(label) {\n return this._leafNode(new Label(label));\n }\n // `break` statement\n break(label) {\n return this._leafNode(new Break(label));\n }\n // `return` statement\n return(value) {\n const node = new Return();\n this._blockNode(node);\n this.code(value);\n if (node.nodes.length !== 1)\n throw new Error('CodeGen: \"return\" should have one node');\n return this._endBlockNode(Return);\n }\n // `try` statement\n try(tryBody, catchCode, finallyCode) {\n if (!catchCode && !finallyCode)\n throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"');\n const node = new Try();\n this._blockNode(node);\n this.code(tryBody);\n if (catchCode) {\n const error = this.name(\"e\");\n this._currNode = node.catch = new Catch(error);\n catchCode(error);\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally();\n this.code(finallyCode);\n }\n return this._endBlockNode(Catch, Finally);\n }\n // `throw` statement\n throw(error) {\n return this._leafNode(new Throw(error));\n }\n // start self-balancing block\n block(body, nodeCount) {\n this._blockStarts.push(this._nodes.length);\n if (body)\n this.code(body).endBlock(nodeCount);\n return this;\n }\n // end the current self-balancing block\n endBlock(nodeCount) {\n const len = this._blockStarts.pop();\n if (len === undefined)\n throw new Error(\"CodeGen: not in self-balancing block\");\n const toClose = this._nodes.length - len;\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`);\n }\n this._nodes.length = len;\n return this;\n }\n // `function` heading (or definition if funcBody is passed)\n func(name, args = code_1.nil, async, funcBody) {\n this._blockNode(new Func(name, args, async));\n if (funcBody)\n this.code(funcBody).endFunc();\n return this;\n }\n // end function definition\n endFunc() {\n return this._endBlockNode(Func);\n }\n optimize(n = 1) {\n while (n-- > 0) {\n this._root.optimizeNodes();\n this._root.optimizeNames(this._root.names, this._constants);\n }\n }\n _leafNode(node) {\n this._currNode.nodes.push(node);\n return this;\n }\n _blockNode(node) {\n this._currNode.nodes.push(node);\n this._nodes.push(node);\n }\n _endBlockNode(N1, N2) {\n const n = this._currNode;\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop();\n return this;\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`);\n }\n _elseNode(node) {\n const n = this._currNode;\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"');\n }\n this._currNode = n.else = node;\n return this;\n }\n get _root() {\n return this._nodes[0];\n }\n get _currNode() {\n const ns = this._nodes;\n return ns[ns.length - 1];\n }\n set _currNode(node) {\n const ns = this._nodes;\n ns[ns.length - 1] = node;\n }\n}\nexports.CodeGen = CodeGen;\nfunction addNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) + (from[n] || 0);\n return names;\n}\nfunction addExprNames(names, from) {\n return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;\n}\nfunction optimizeExpr(expr, names, constants) {\n if (expr instanceof code_1.Name)\n return replaceName(expr);\n if (!canOptimize(expr))\n return expr;\n return new code_1._Code(expr._items.reduce((items, c) => {\n if (c instanceof code_1.Name)\n c = replaceName(c);\n if (c instanceof code_1._Code)\n items.push(...c._items);\n else\n items.push(c);\n return items;\n }, []));\n function replaceName(n) {\n const c = constants[n.str];\n if (c === undefined || names[n.str] !== 1)\n return n;\n delete names[n.str];\n return c;\n }\n function canOptimize(e) {\n return (e instanceof code_1._Code &&\n e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== undefined));\n }\n}\nfunction subtractNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) - (from[n] || 0);\n}\nfunction not(x) {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : (0, code_1._) `!${par(x)}`;\n}\nexports.not = not;\nconst andCode = mappend(exports.operators.AND);\n// boolean AND (&&) expression with the passed arguments\nfunction and(...args) {\n return args.reduce(andCode);\n}\nexports.and = and;\nconst orCode = mappend(exports.operators.OR);\n// boolean OR (||) expression with the passed arguments\nfunction or(...args) {\n return args.reduce(orCode);\n}\nexports.or = or;\nfunction mappend(op) {\n return (x, y) => (x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._) `${par(x)} ${op} ${par(y)}`);\n}\nfunction par(x) {\n return x instanceof code_1.Name ? x : (0, code_1._) `(${x})`;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst code_1 = require(\"./codegen/code\");\n// TODO refactor to use Set\nfunction toHash(arr) {\n const hash = {};\n for (const item of arr)\n hash[item] = true;\n return hash;\n}\nexports.toHash = toHash;\nfunction alwaysValidSchema(it, schema) {\n if (typeof schema == \"boolean\")\n return schema;\n if (Object.keys(schema).length === 0)\n return true;\n checkUnknownRules(it, schema);\n return !schemaHasRules(schema, it.self.RULES.all);\n}\nexports.alwaysValidSchema = alwaysValidSchema;\nfunction checkUnknownRules(it, schema = it.schema) {\n const { opts, self } = it;\n if (!opts.strictSchema)\n return;\n if (typeof schema === \"boolean\")\n return;\n const rules = self.RULES.keywords;\n for (const key in schema) {\n if (!rules[key])\n checkStrictMode(it, `unknown keyword: \"${key}\"`);\n }\n}\nexports.checkUnknownRules = checkUnknownRules;\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (rules[key])\n return true;\n return false;\n}\nexports.schemaHasRules = schemaHasRules;\nfunction schemaHasRulesButRef(schema, RULES) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (key !== \"$ref\" && RULES.all[key])\n return true;\n return false;\n}\nexports.schemaHasRulesButRef = schemaHasRulesButRef;\nfunction schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\")\n return schema;\n if (typeof schema == \"string\")\n return (0, codegen_1._) `${schema}`;\n }\n return (0, codegen_1._) `${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`;\n}\nexports.schemaRefOrVal = schemaRefOrVal;\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\nexports.unescapeFragment = unescapeFragment;\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\nexports.escapeFragment = escapeFragment;\nfunction escapeJsonPointer(str) {\n if (typeof str == \"number\")\n return `${str}`;\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nexports.escapeJsonPointer = escapeJsonPointer;\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\nexports.unescapeJsonPointer = unescapeJsonPointer;\nfunction eachItem(xs, f) {\n if (Array.isArray(xs)) {\n for (const x of xs)\n f(x);\n }\n else {\n f(xs);\n }\n}\nexports.eachItem = eachItem;\nfunction makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName, }) {\n return (gen, from, to, toName) => {\n const res = to === undefined\n ? from\n : to instanceof codegen_1.Name\n ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof codegen_1.Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to);\n return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;\n };\n}\nexports.mergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => {\n gen.if((0, codegen_1._) `${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._) `${to} || {}`).code((0, codegen_1._) `Object.assign(${to}, ${from})`));\n }),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true);\n }\n else {\n gen.assign(to, (0, codegen_1._) `${to} || {}`);\n setEvaluated(gen, to, from);\n }\n }),\n mergeValues: (from, to) => (from === true ? true : { ...from, ...to }),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._) `${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._) `${to} > ${from} ? ${to} : ${from}`)),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n};\nfunction evaluatedPropsToName(gen, ps) {\n if (ps === true)\n return gen.var(\"props\", true);\n const props = gen.var(\"props\", (0, codegen_1._) `{}`);\n if (ps !== undefined)\n setEvaluated(gen, props, ps);\n return props;\n}\nexports.evaluatedPropsToName = evaluatedPropsToName;\nfunction setEvaluated(gen, props, ps) {\n Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._) `${props}${(0, codegen_1.getProperty)(p)}`, true));\n}\nexports.setEvaluated = setEvaluated;\nconst snippets = {};\nfunction useFunc(gen, f) {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)),\n });\n}\nexports.useFunc = useFunc;\nvar Type;\n(function (Type) {\n Type[Type[\"Num\"] = 0] = \"Num\";\n Type[Type[\"Str\"] = 1] = \"Str\";\n})(Type || (exports.Type = Type = {}));\nfunction getErrorPath(dataProp, dataPropType, jsPropertySyntax) {\n // let path\n if (dataProp instanceof codegen_1.Name) {\n const isNumber = dataPropType === Type.Num;\n return jsPropertySyntax\n ? isNumber\n ? (0, codegen_1._) `\"[\" + ${dataProp} + \"]\"`\n : (0, codegen_1._) `\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? (0, codegen_1._) `\"/\" + ${dataProp}`\n : (0, codegen_1._) `\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`; // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp);\n}\nexports.getErrorPath = getErrorPath;\nfunction checkStrictMode(it, msg, mode = it.opts.strictSchema) {\n if (!mode)\n return;\n msg = `strict mode: ${msg}`;\n if (mode === true)\n throw new Error(msg);\n it.self.logger.warn(msg);\n}\nexports.checkStrictMode = checkStrictMode;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"./codegen\");\nconst names = {\n // validation function arguments\n data: new codegen_1.Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new codegen_1.Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new codegen_1.Name(\"instancePath\"),\n parentData: new codegen_1.Name(\"parentData\"),\n parentDataProperty: new codegen_1.Name(\"parentDataProperty\"),\n rootData: new codegen_1.Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new codegen_1.Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new codegen_1.Name(\"vErrors\"), // null or array of validation errors\n errors: new codegen_1.Name(\"errors\"), // counter of validation errors\n this: new codegen_1.Name(\"this\"),\n // \"globals\"\n self: new codegen_1.Name(\"self\"),\n scope: new codegen_1.Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new codegen_1.Name(\"json\"),\n jsonPos: new codegen_1.Name(\"jsonPos\"),\n jsonLen: new codegen_1.Name(\"jsonLen\"),\n jsonPart: new codegen_1.Name(\"jsonPart\"),\n};\nexports.default = names;\n//# sourceMappingURL=names.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst util_1 = require(\"./util\");\nconst names_1 = require(\"./names\");\nexports.keywordError = {\n message: ({ keyword }) => (0, codegen_1.str) `must pass \"${keyword}\" keyword validation`,\n};\nexports.keyword$DataError = {\n message: ({ keyword, schemaType }) => schemaType\n ? (0, codegen_1.str) `\"${keyword}\" keyword must be ${schemaType} ($data)`\n : (0, codegen_1.str) `\"${keyword}\" keyword is invalid ($data)`,\n};\nfunction reportError(cxt, error = exports.keywordError, errorPaths, overrideAllErrors) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : (compositeRule || allErrors)) {\n addError(gen, errObj);\n }\n else {\n returnErrors(it, (0, codegen_1._) `[${errObj}]`);\n }\n}\nexports.reportError = reportError;\nfunction reportExtraError(cxt, error = exports.keywordError, errorPaths) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n addError(gen, errObj);\n if (!(compositeRule || allErrors)) {\n returnErrors(it, names_1.default.vErrors);\n }\n}\nexports.reportExtraError = reportExtraError;\nfunction resetErrorsCount(gen, errsCount) {\n gen.assign(names_1.default.errors, errsCount);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._) `${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));\n}\nexports.resetErrorsCount = resetErrorsCount;\nfunction extendErrors({ gen, keyword, schemaValue, data, errsCount, it, }) {\n /* istanbul ignore if */\n if (errsCount === undefined)\n throw new Error(\"ajv implementation error\");\n const err = gen.name(\"err\");\n gen.forRange(\"i\", errsCount, names_1.default.errors, (i) => {\n gen.const(err, (0, codegen_1._) `${names_1.default.vErrors}[${i}]`);\n gen.if((0, codegen_1._) `${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._) `${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath)));\n gen.assign((0, codegen_1._) `${err}.schemaPath`, (0, codegen_1.str) `${it.errSchemaPath}/${keyword}`);\n if (it.opts.verbose) {\n gen.assign((0, codegen_1._) `${err}.schema`, schemaValue);\n gen.assign((0, codegen_1._) `${err}.data`, data);\n }\n });\n}\nexports.extendErrors = extendErrors;\nfunction addError(gen, errObj) {\n const err = gen.const(\"err\", errObj);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._) `[${err}]`), (0, codegen_1._) `${names_1.default.vErrors}.push(${err})`);\n gen.code((0, codegen_1._) `${names_1.default.errors}++`);\n}\nfunction returnErrors(it, errs) {\n const { gen, validateName, schemaEnv } = it;\n if (schemaEnv.$async) {\n gen.throw((0, codegen_1._) `new ${it.ValidationError}(${errs})`);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, errs);\n gen.return(false);\n }\n}\nconst E = {\n keyword: new codegen_1.Name(\"keyword\"),\n schemaPath: new codegen_1.Name(\"schemaPath\"), // also used in JTD errors\n params: new codegen_1.Name(\"params\"),\n propertyName: new codegen_1.Name(\"propertyName\"),\n message: new codegen_1.Name(\"message\"),\n schema: new codegen_1.Name(\"schema\"),\n parentSchema: new codegen_1.Name(\"parentSchema\"),\n};\nfunction errorObjectCode(cxt, error, errorPaths) {\n const { createErrors } = cxt.it;\n if (createErrors === false)\n return (0, codegen_1._) `{}`;\n return errorObject(cxt, error, errorPaths);\n}\nfunction errorObject(cxt, error, errorPaths = {}) {\n const { gen, it } = cxt;\n const keyValues = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ];\n extraErrorProps(cxt, error, keyValues);\n return gen.object(...keyValues);\n}\nfunction errorInstancePath({ errorPath }, { instancePath }) {\n const instPath = instancePath\n ? (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}`\n : errorPath;\n return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)];\n}\nfunction errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) {\n let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str) `${errSchemaPath}/${keyword}`;\n if (schemaPath) {\n schPath = (0, codegen_1.str) `${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`;\n }\n return [E.schemaPath, schPath];\n}\nfunction extraErrorProps(cxt, { params, message }, keyValues) {\n const { keyword, data, schemaValue, it } = cxt;\n const { opts, propertyName, topSchemaRef, schemaPath } = it;\n keyValues.push([E.keyword, keyword], [E.params, typeof params == \"function\" ? params(cxt) : params || (0, codegen_1._) `{}`]);\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message]);\n }\n if (opts.verbose) {\n keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._) `${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);\n }\n if (propertyName)\n keyValues.push([E.propertyName, propertyName]);\n}\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst boolError = {\n message: \"boolean schema is false\",\n};\nfunction topBoolOrEmptySchema(it) {\n const { gen, schema, validateName } = it;\n if (schema === false) {\n falseSchemaError(it, false);\n }\n else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(names_1.default.data);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, null);\n gen.return(true);\n }\n}\nexports.topBoolOrEmptySchema = topBoolOrEmptySchema;\nfunction boolOrEmptySchema(it, valid) {\n const { gen, schema } = it;\n if (schema === false) {\n gen.var(valid, false); // TODO var\n falseSchemaError(it);\n }\n else {\n gen.var(valid, true); // TODO var\n }\n}\nexports.boolOrEmptySchema = boolOrEmptySchema;\nfunction falseSchemaError(it, overrideAllErrors) {\n const { gen, data } = it;\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n };\n (0, errors_1.reportError)(cxt, boolError, undefined, overrideAllErrors);\n}\n//# sourceMappingURL=boolSchema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRules = exports.isJSONType = void 0;\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"];\nconst jsonTypes = new Set(_jsonTypes);\nfunction isJSONType(x) {\n return typeof x == \"string\" && jsonTypes.has(x);\n}\nexports.isJSONType = isJSONType;\nfunction getRules() {\n const groups = {\n number: { type: \"number\", rules: [] },\n string: { type: \"string\", rules: [] },\n array: { type: \"array\", rules: [] },\n object: { type: \"object\", rules: [] },\n };\n return {\n types: { ...groups, integer: true, boolean: true, null: true },\n rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object],\n post: { rules: [] },\n all: {},\n keywords: {},\n };\n}\nexports.getRules = getRules;\n//# sourceMappingURL=rules.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;\nfunction schemaHasRulesForType({ schema, self }, type) {\n const group = self.RULES.types[type];\n return group && group !== true && shouldUseGroup(schema, group);\n}\nexports.schemaHasRulesForType = schemaHasRulesForType;\nfunction shouldUseGroup(schema, group) {\n return group.rules.some((rule) => shouldUseRule(schema, rule));\n}\nexports.shouldUseGroup = shouldUseGroup;\nfunction shouldUseRule(schema, rule) {\n var _a;\n return (schema[rule.keyword] !== undefined ||\n ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== undefined)));\n}\nexports.shouldUseRule = shouldUseRule;\n//# sourceMappingURL=applicability.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;\nconst rules_1 = require(\"../rules\");\nconst applicability_1 = require(\"./applicability\");\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nvar DataType;\n(function (DataType) {\n DataType[DataType[\"Correct\"] = 0] = \"Correct\";\n DataType[DataType[\"Wrong\"] = 1] = \"Wrong\";\n})(DataType || (exports.DataType = DataType = {}));\nfunction getSchemaTypes(schema) {\n const types = getJSONTypes(schema.type);\n const hasNull = types.includes(\"null\");\n if (hasNull) {\n if (schema.nullable === false)\n throw new Error(\"type: null contradicts nullable: false\");\n }\n else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"');\n }\n if (schema.nullable === true)\n types.push(\"null\");\n }\n return types;\n}\nexports.getSchemaTypes = getSchemaTypes;\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction getJSONTypes(ts) {\n const types = Array.isArray(ts) ? ts : ts ? [ts] : [];\n if (types.every(rules_1.isJSONType))\n return types;\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"));\n}\nexports.getJSONTypes = getJSONTypes;\nfunction coerceAndCheckDataType(it, types) {\n const { gen, data, opts } = it;\n const coerceTo = coerceToTypes(types, opts.coerceTypes);\n const checkTypes = types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0]));\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong);\n gen.if(wrongType, () => {\n if (coerceTo.length)\n coerceData(it, types, coerceTo);\n else\n reportTypeError(it);\n });\n }\n return checkTypes;\n}\nexports.coerceAndCheckDataType = coerceAndCheckDataType;\nconst COERCIBLE = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nfunction coerceToTypes(types, coerceTypes) {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : [];\n}\nfunction coerceData(it, types, coerceTo) {\n const { gen, data, opts } = it;\n const dataType = gen.let(\"dataType\", (0, codegen_1._) `typeof ${data}`);\n const coerced = gen.let(\"coerced\", (0, codegen_1._) `undefined`);\n if (opts.coerceTypes === \"array\") {\n gen.if((0, codegen_1._) `${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen\n .assign(data, (0, codegen_1._) `${data}[0]`)\n .assign(dataType, (0, codegen_1._) `typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));\n }\n gen.if((0, codegen_1._) `${coerced} !== undefined`);\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t);\n }\n }\n gen.else();\n reportTypeError(it);\n gen.endIf();\n gen.if((0, codegen_1._) `${coerced} !== undefined`, () => {\n gen.assign(data, coerced);\n assignParentData(it, coerced);\n });\n function coerceSpecificType(t) {\n switch (t) {\n case \"string\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, (0, codegen_1._) `\"\" + ${data}`)\n .elseIf((0, codegen_1._) `${data} === null`)\n .assign(coerced, (0, codegen_1._) `\"\"`);\n return;\n case \"number\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"integer\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"boolean\":\n gen\n .elseIf((0, codegen_1._) `${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf((0, codegen_1._) `${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true);\n return;\n case \"null\":\n gen.elseIf((0, codegen_1._) `${data} === \"\" || ${data} === 0 || ${data} === false`);\n gen.assign(coerced, null);\n return;\n case \"array\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`)\n .assign(coerced, (0, codegen_1._) `[${data}]`);\n }\n }\n}\nfunction assignParentData({ gen, parentData, parentDataProperty }, expr) {\n // TODO use gen.property\n gen.if((0, codegen_1._) `${parentData} !== undefined`, () => gen.assign((0, codegen_1._) `${parentData}[${parentDataProperty}]`, expr));\n}\nfunction checkDataType(dataType, data, strictNums, correct = DataType.Correct) {\n const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;\n let cond;\n switch (dataType) {\n case \"null\":\n return (0, codegen_1._) `${data} ${EQ} null`;\n case \"array\":\n cond = (0, codegen_1._) `Array.isArray(${data})`;\n break;\n case \"object\":\n cond = (0, codegen_1._) `${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`;\n break;\n case \"integer\":\n cond = numCond((0, codegen_1._) `!(${data} % 1) && !isNaN(${data})`);\n break;\n case \"number\":\n cond = numCond();\n break;\n default:\n return (0, codegen_1._) `typeof ${data} ${EQ} ${dataType}`;\n }\n return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);\n function numCond(_cond = codegen_1.nil) {\n return (0, codegen_1.and)((0, codegen_1._) `typeof ${data} == \"number\"`, _cond, strictNums ? (0, codegen_1._) `isFinite(${data})` : codegen_1.nil);\n }\n}\nexports.checkDataType = checkDataType;\nfunction checkDataTypes(dataTypes, data, strictNums, correct) {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct);\n }\n let cond;\n const types = (0, util_1.toHash)(dataTypes);\n if (types.array && types.object) {\n const notObj = (0, codegen_1._) `typeof ${data} != \"object\"`;\n cond = types.null ? notObj : (0, codegen_1._) `!${data} || ${notObj}`;\n delete types.null;\n delete types.array;\n delete types.object;\n }\n else {\n cond = codegen_1.nil;\n }\n if (types.number)\n delete types.integer;\n for (const t in types)\n cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));\n return cond;\n}\nexports.checkDataTypes = checkDataTypes;\nconst typeError = {\n message: ({ schema }) => `must be ${schema}`,\n params: ({ schema, schemaValue }) => typeof schema == \"string\" ? (0, codegen_1._) `{type: ${schema}}` : (0, codegen_1._) `{type: ${schemaValue}}`,\n};\nfunction reportTypeError(it) {\n const cxt = getTypeErrorContext(it);\n (0, errors_1.reportError)(cxt, typeError);\n}\nexports.reportTypeError = reportTypeError;\nfunction getTypeErrorContext(it) {\n const { gen, data, schema } = it;\n const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, \"type\");\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n };\n}\n//# sourceMappingURL=dataType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assignDefaults = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction assignDefaults(it, ty) {\n const { properties, items } = it.schema;\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default);\n }\n }\n else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i) => assignDefault(it, i, sch.default));\n }\n}\nexports.assignDefaults = assignDefaults;\nfunction assignDefault(it, prop, defaultValue) {\n const { gen, compositeRule, data, opts } = it;\n if (defaultValue === undefined)\n return;\n const childData = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(prop)}`;\n if (compositeRule) {\n (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`);\n return;\n }\n let condition = (0, codegen_1._) `${childData} === undefined`;\n if (opts.useDefaults === \"empty\") {\n condition = (0, codegen_1._) `${condition} || ${childData} === null || ${childData} === \"\"`;\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, (0, codegen_1._) `${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);\n}\n//# sourceMappingURL=defaults.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;\nconst codegen_1 = require(\"../compile/codegen\");\nconst util_1 = require(\"../compile/util\");\nconst names_1 = require(\"../compile/names\");\nconst util_2 = require(\"../compile/util\");\nfunction checkReportMissingProp(cxt, prop) {\n const { gen, data, it } = cxt;\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({ missingProperty: (0, codegen_1._) `${prop}` }, true);\n cxt.error();\n });\n}\nexports.checkReportMissingProp = checkReportMissingProp;\nfunction checkMissingProp({ gen, data, it: { opts } }, properties, missing) {\n return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._) `${missing} = ${prop}`)));\n}\nexports.checkMissingProp = checkMissingProp;\nfunction reportMissingProp(cxt, missing) {\n cxt.setParams({ missingProperty: missing }, true);\n cxt.error();\n}\nexports.reportMissingProp = reportMissingProp;\nfunction hasPropFunc(gen) {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: (0, codegen_1._) `Object.prototype.hasOwnProperty`,\n });\n}\nexports.hasPropFunc = hasPropFunc;\nfunction isOwnProperty(gen, data, property) {\n return (0, codegen_1._) `${hasPropFunc(gen)}.call(${data}, ${property})`;\n}\nexports.isOwnProperty = isOwnProperty;\nfunction propertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} !== undefined`;\n return ownProperties ? (0, codegen_1._) `${cond} && ${isOwnProperty(gen, data, property)}` : cond;\n}\nexports.propertyInData = propertyInData;\nfunction noPropertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} === undefined`;\n return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;\n}\nexports.noPropertyInData = noPropertyInData;\nfunction allSchemaProperties(schemaMap) {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : [];\n}\nexports.allSchemaProperties = allSchemaProperties;\nfunction schemaProperties(it, schemaMap) {\n return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));\n}\nexports.schemaProperties = schemaProperties;\nfunction callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {\n const dataAndSchema = passSchema ? (0, codegen_1._) `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;\n const valCxt = [\n [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],\n [names_1.default.parentData, it.parentData],\n [names_1.default.parentDataProperty, it.parentDataProperty],\n [names_1.default.rootData, names_1.default.rootData],\n ];\n if (it.opts.dynamicRef)\n valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);\n const args = (0, codegen_1._) `${dataAndSchema}, ${gen.object(...valCxt)}`;\n return context !== codegen_1.nil ? (0, codegen_1._) `${func}.call(${context}, ${args})` : (0, codegen_1._) `${func}(${args})`;\n}\nexports.callValidateCode = callValidateCode;\nconst newRegExp = (0, codegen_1._) `new RegExp`;\nfunction usePattern({ gen, it: { opts } }, pattern) {\n const u = opts.unicodeRegExp ? \"u\" : \"\";\n const { regExp } = opts.code;\n const rx = regExp(pattern, u);\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: (0, codegen_1._) `${regExp.code === \"new RegExp\" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`,\n });\n}\nexports.usePattern = usePattern;\nfunction validateArray(cxt) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true);\n validateItems(() => gen.assign(validArr, false));\n return validArr;\n }\n gen.var(valid, true);\n validateItems(() => gen.break());\n return valid;\n function validateItems(notValid) {\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword,\n dataProp: i,\n dataPropType: util_1.Type.Num,\n }, valid);\n gen.if((0, codegen_1.not)(valid), notValid);\n });\n }\n}\nexports.validateArray = validateArray;\nfunction validateUnion(cxt) {\n const { gen, schema, keyword, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));\n if (alwaysValid && !it.opts.unevaluated)\n return;\n const valid = gen.let(\"valid\", false);\n const schValid = gen.name(\"_valid\");\n gen.block(() => schema.forEach((_sch, i) => {\n const schCxt = cxt.subschema({\n keyword,\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n gen.assign(valid, (0, codegen_1._) `${valid} || ${schValid}`);\n const merged = cxt.mergeValidEvaluated(schCxt, schValid);\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged)\n gen.if((0, codegen_1.not)(valid));\n }));\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n}\nexports.validateUnion = validateUnion;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst code_1 = require(\"../../vocabularies/code\");\nconst errors_1 = require(\"../errors\");\nfunction macroKeywordCode(cxt, def) {\n const { gen, keyword, schema, parentSchema, it } = cxt;\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it);\n const schemaRef = useKeyword(gen, keyword, macroSchema);\n if (it.opts.validateSchema !== false)\n it.self.validateSchema(macroSchema, true);\n const valid = gen.name(\"valid\");\n cxt.subschema({\n schema: macroSchema,\n schemaPath: codegen_1.nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n }, valid);\n cxt.pass(valid, () => cxt.error(true));\n}\nexports.macroKeywordCode = macroKeywordCode;\nfunction funcKeywordCode(cxt, def) {\n var _a;\n const { gen, keyword, schema, parentSchema, $data, it } = cxt;\n checkAsyncKeyword(it, def);\n const validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate;\n const validateRef = useKeyword(gen, keyword, validate);\n const valid = gen.let(\"valid\");\n cxt.block$data(valid, validateKeyword);\n cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid);\n function validateKeyword() {\n if (def.errors === false) {\n assignValid();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => cxt.error());\n }\n else {\n const ruleErrs = def.async ? validateAsync() : validateSync();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => addErrs(cxt, ruleErrs));\n }\n }\n function validateAsync() {\n const ruleErrs = gen.let(\"ruleErrs\", null);\n gen.try(() => assignValid((0, codegen_1._) `await `), (e) => gen.assign(valid, false).if((0, codegen_1._) `${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._) `${e}.errors`), () => gen.throw(e)));\n return ruleErrs;\n }\n function validateSync() {\n const validateErrs = (0, codegen_1._) `${validateRef}.errors`;\n gen.assign(validateErrs, null);\n assignValid(codegen_1.nil);\n return validateErrs;\n }\n function assignValid(_await = def.async ? (0, codegen_1._) `await ` : codegen_1.nil) {\n const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false);\n gen.assign(valid, (0, codegen_1._) `${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);\n }\n function reportErrs(errors) {\n var _a;\n gen.if((0, codegen_1.not)((_a = def.valid) !== null && _a !== void 0 ? _a : valid), errors);\n }\n}\nexports.funcKeywordCode = funcKeywordCode;\nfunction modifyData(cxt) {\n const { gen, data, it } = cxt;\n gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._) `${it.parentData}[${it.parentDataProperty}]`));\n}\nfunction addErrs(cxt, errs) {\n const { gen } = cxt;\n gen.if((0, codegen_1._) `Array.isArray(${errs})`, () => {\n gen\n .assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`)\n .assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n (0, errors_1.extendErrors)(cxt);\n }, () => cxt.error());\n}\nfunction checkAsyncKeyword({ schemaEnv }, def) {\n if (def.async && !schemaEnv.$async)\n throw new Error(\"async keyword in sync schema\");\n}\nfunction useKeyword(gen, keyword, result) {\n if (result === undefined)\n throw new Error(`keyword \"${keyword}\" failed to compile`);\n return gen.scopeValue(\"keyword\", typeof result == \"function\" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) });\n}\nfunction validSchemaType(schema, schemaType, allowUndefined = false) {\n // TODO add tests\n return (!schemaType.length ||\n schemaType.some((st) => st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")));\n}\nexports.validSchemaType = validSchemaType;\nfunction validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\");\n }\n const deps = def.dependencies;\n if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`);\n }\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword]);\n if (!valid) {\n const msg = `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors);\n if (opts.validateSchema === \"log\")\n self.logger.error(msg);\n else\n throw new Error(msg);\n }\n }\n}\nexports.validateKeywordUsage = validateKeywordUsage;\n//# sourceMappingURL=keyword.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');\n }\n if (keyword !== undefined) {\n const sch = it.schema[keyword];\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`,\n };\n }\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"');\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n };\n }\n throw new Error('either \"keyword\" or \"schema\" must be passed');\n}\nexports.getSubschema = getSubschema;\nfunction extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');\n }\n const { gen } = it;\n if (dataProp !== undefined) {\n const { errorPath, dataPathArr, opts } = it;\n const nextData = gen.let(\"data\", (0, codegen_1._) `${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);\n dataContextProps(nextData);\n subschema.errorPath = (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;\n subschema.parentDataProperty = (0, codegen_1._) `${dataProp}`;\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];\n }\n if (data !== undefined) {\n const nextData = data instanceof codegen_1.Name ? data : gen.let(\"data\", data, true); // replaceable if used once?\n dataContextProps(nextData);\n if (propertyName !== undefined)\n subschema.propertyName = propertyName;\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n if (dataTypes)\n subschema.dataTypes = dataTypes;\n function dataContextProps(_nextData) {\n subschema.data = _nextData;\n subschema.dataLevel = it.dataLevel + 1;\n subschema.dataTypes = [];\n it.definedProperties = new Set();\n subschema.parentData = it.data;\n subschema.dataNames = [...it.dataNames, _nextData];\n }\n}\nexports.extendSubschemaData = extendSubschemaData;\nfunction extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {\n if (compositeRule !== undefined)\n subschema.compositeRule = compositeRule;\n if (createErrors !== undefined)\n subschema.createErrors = createErrors;\n if (allErrors !== undefined)\n subschema.allErrors = allErrors;\n subschema.jtdDiscriminator = jtdDiscriminator; // not inherited\n subschema.jtdMetadata = jtdMetadata; // not inherited\n}\nexports.extendSubschemaMode = extendSubschemaMode;\n//# sourceMappingURL=subschema.js.map","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i (count += countKeys(sch)));\n }\n if (count === Infinity)\n return Infinity;\n }\n return count;\n}\nfunction getFullPath(resolver, id = \"\", normalize) {\n if (normalize !== false)\n id = normalizeId(id);\n const p = resolver.parse(id);\n return _getFullPath(resolver, p);\n}\nexports.getFullPath = getFullPath;\nfunction _getFullPath(resolver, p) {\n const serialized = resolver.serialize(p);\n return serialized.split(\"#\")[0] + \"#\";\n}\nexports._getFullPath = _getFullPath;\nconst TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\";\n}\nexports.normalizeId = normalizeId;\nfunction resolveUrl(resolver, baseId, id) {\n id = normalizeId(id);\n return resolver.resolve(baseId, id);\n}\nexports.resolveUrl = resolveUrl;\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i;\nfunction getSchemaRefs(schema, baseId) {\n if (typeof schema == \"boolean\")\n return {};\n const { schemaId, uriResolver } = this.opts;\n const schId = normalizeId(schema[schemaId] || baseId);\n const baseIds = { \"\": schId };\n const pathPrefix = getFullPath(uriResolver, schId, false);\n const localRefs = {};\n const schemaRefs = new Set();\n traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined)\n return;\n const fullPath = pathPrefix + jsonPtr;\n let innerBaseId = baseIds[parentJsonPtr];\n if (typeof sch[schemaId] == \"string\")\n innerBaseId = addRef.call(this, sch[schemaId]);\n addAnchor.call(this, sch.$anchor);\n addAnchor.call(this, sch.$dynamicAnchor);\n baseIds[jsonPtr] = innerBaseId;\n function addRef(ref) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve;\n ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref);\n if (schemaRefs.has(ref))\n throw ambiguos(ref);\n schemaRefs.add(ref);\n let schOrRef = this.refs[ref];\n if (typeof schOrRef == \"string\")\n schOrRef = this.refs[schOrRef];\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref);\n }\n else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref);\n localRefs[ref] = sch;\n }\n else {\n this.refs[ref] = fullPath;\n }\n }\n return ref;\n }\n function addAnchor(anchor) {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor))\n throw new Error(`invalid anchor \"${anchor}\"`);\n addRef.call(this, `#${anchor}`);\n }\n }\n });\n return localRefs;\n function checkAmbiguosRef(sch1, sch2, ref) {\n if (sch2 !== undefined && !equal(sch1, sch2))\n throw ambiguos(ref);\n }\n function ambiguos(ref) {\n return new Error(`reference \"${ref}\" resolves to more than one schema`);\n }\n}\nexports.getSchemaRefs = getSchemaRefs;\n//# sourceMappingURL=resolve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;\nconst boolSchema_1 = require(\"./boolSchema\");\nconst dataType_1 = require(\"./dataType\");\nconst applicability_1 = require(\"./applicability\");\nconst dataType_2 = require(\"./dataType\");\nconst defaults_1 = require(\"./defaults\");\nconst keyword_1 = require(\"./keyword\");\nconst subschema_1 = require(\"./subschema\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst resolve_1 = require(\"../resolve\");\nconst util_1 = require(\"../util\");\nconst errors_1 = require(\"../errors\");\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nfunction validateFunctionCode(it) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it);\n return;\n }\n }\n validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));\n}\nexports.validateFunctionCode = validateFunctionCode;\nfunction validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {\n if (opts.code.es5) {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {\n gen.code((0, codegen_1._) `\"use strict\"; ${funcSourceUrl(schema, opts)}`);\n destructureValCxtES5(gen, opts);\n gen.code(body);\n });\n }\n else {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));\n }\n}\nfunction destructureValCxt(opts) {\n return (0, codegen_1._) `{${names_1.default.instancePath}=\"\", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._) `, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;\n}\nfunction destructureValCxtES5(gen, opts) {\n gen.if(names_1.default.valCxt, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.instancePath}`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentData}`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);\n gen.var(names_1.default.rootData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.rootData}`);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);\n }, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `\"\"`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.rootData, names_1.default.data);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `{}`);\n });\n}\nfunction topSchemaObjCode(it) {\n const { schema, opts, gen } = it;\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n checkNoDefault(it);\n gen.let(names_1.default.vErrors, null);\n gen.let(names_1.default.errors, 0);\n if (opts.unevaluated)\n resetEvaluated(it);\n typeAndKeywords(it);\n returnResults(it);\n });\n return;\n}\nfunction resetEvaluated(it) {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const { gen, validateName } = it;\n it.evaluated = gen.const(\"evaluated\", (0, codegen_1._) `${validateName}.evaluated`);\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._) `${it.evaluated}.props`, (0, codegen_1._) `undefined`));\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._) `${it.evaluated}.items`, (0, codegen_1._) `undefined`));\n}\nfunction funcSourceUrl(schema, opts) {\n const schId = typeof schema == \"object\" && schema[opts.schemaId];\n return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._) `/*# sourceURL=${schId} */` : codegen_1.nil;\n}\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it, valid) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid);\n return;\n }\n }\n (0, boolSchema_1.boolOrEmptySchema)(it, valid);\n}\nfunction schemaCxtHasRules({ schema, self }) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (self.RULES.all[key])\n return true;\n return false;\n}\nfunction isSchemaObj(it) {\n return typeof it.schema != \"boolean\";\n}\nfunction subSchemaObjCode(it, valid) {\n const { schema, gen, opts } = it;\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n updateContext(it);\n checkAsyncSchema(it);\n const errsCount = gen.const(\"_errs\", names_1.default.errors);\n typeAndKeywords(it, errsCount);\n // TODO var\n gen.var(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n}\nfunction checkKeywords(it) {\n (0, util_1.checkUnknownRules)(it);\n checkRefsAndKeywords(it);\n}\nfunction typeAndKeywords(it, errsCount) {\n if (it.opts.jtd)\n return schemaKeywords(it, [], false, errsCount);\n const types = (0, dataType_1.getSchemaTypes)(it.schema);\n const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);\n schemaKeywords(it, types, !checkedTypes, errsCount);\n}\nfunction checkRefsAndKeywords(it) {\n const { schema, errSchemaPath, opts, self } = it;\n if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`);\n }\n}\nfunction checkNoDefault(it) {\n const { schema, opts } = it;\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n (0, util_1.checkStrictMode)(it, \"default is ignored in the schema root\");\n }\n}\nfunction updateContext(it) {\n const schId = it.schema[it.opts.schemaId];\n if (schId)\n it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);\n}\nfunction checkAsyncSchema(it) {\n if (it.schema.$async && !it.schemaEnv.$async)\n throw new Error(\"async schema in sync schema\");\n}\nfunction commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {\n const msg = schema.$comment;\n if (opts.$comment === true) {\n gen.code((0, codegen_1._) `${names_1.default.self}.logger.log(${msg})`);\n }\n else if (typeof opts.$comment == \"function\") {\n const schemaPath = (0, codegen_1.str) `${errSchemaPath}/$comment`;\n const rootName = gen.scopeValue(\"root\", { ref: schemaEnv.root });\n gen.code((0, codegen_1._) `${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);\n }\n}\nfunction returnResults(it) {\n const { gen, schemaEnv, validateName, ValidationError, opts } = it;\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if((0, codegen_1._) `${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._) `new ${ValidationError}(${names_1.default.vErrors})`));\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, names_1.default.vErrors);\n if (opts.unevaluated)\n assignEvaluated(it);\n gen.return((0, codegen_1._) `${names_1.default.errors} === 0`);\n }\n}\nfunction assignEvaluated({ gen, evaluated, props, items }) {\n if (props instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.props`, props);\n if (items instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.items`, items);\n}\nfunction schemaKeywords(it, types, typeErrors, errsCount) {\n const { gen, schema, data, allErrors, opts, self } = it;\n const { RULES } = self;\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", RULES.all.$ref.definition)); // TODO typecast\n return;\n }\n if (!opts.jtd)\n checkStrictTypes(it, types);\n gen.block(() => {\n for (const group of RULES.rules)\n groupKeywords(group);\n groupKeywords(RULES.post);\n });\n function groupKeywords(group) {\n if (!(0, applicability_1.shouldUseGroup)(schema, group))\n return;\n if (group.type) {\n gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));\n iterateKeywords(it, group);\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else();\n (0, dataType_2.reportTypeError)(it);\n }\n gen.endIf();\n }\n else {\n iterateKeywords(it, group);\n }\n // TODO make it \"ok\" call?\n if (!allErrors)\n gen.if((0, codegen_1._) `${names_1.default.errors} === ${errsCount || 0}`);\n }\n}\nfunction iterateKeywords(it, group) {\n const { gen, schema, opts: { useDefaults }, } = it;\n if (useDefaults)\n (0, defaults_1.assignDefaults)(it, group.type);\n gen.block(() => {\n for (const rule of group.rules) {\n if ((0, applicability_1.shouldUseRule)(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type);\n }\n }\n });\n}\nfunction checkStrictTypes(it, types) {\n if (it.schemaEnv.meta || !it.opts.strictTypes)\n return;\n checkContextTypes(it, types);\n if (!it.opts.allowUnionTypes)\n checkMultipleTypes(it, types);\n checkKeywordTypes(it, it.dataTypes);\n}\nfunction checkContextTypes(it, types) {\n if (!types.length)\n return;\n if (!it.dataTypes.length) {\n it.dataTypes = types;\n return;\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`);\n }\n });\n narrowSchemaTypes(it, types);\n}\nfunction checkMultipleTypes(it, ts) {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\");\n }\n}\nfunction checkKeywordTypes(it, ts) {\n const rules = it.self.RULES.all;\n for (const keyword in rules) {\n const rule = rules[keyword];\n if (typeof rule == \"object\" && (0, applicability_1.shouldUseRule)(it.schema, rule)) {\n const { type } = rule.definition;\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`);\n }\n }\n }\n}\nfunction hasApplicableType(schTs, kwdT) {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"));\n}\nfunction includesType(ts, t) {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"));\n}\nfunction narrowSchemaTypes(it, withTypes) {\n const ts = [];\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t))\n ts.push(t);\n else if (withTypes.includes(\"integer\") && t === \"number\")\n ts.push(\"integer\");\n }\n it.dataTypes = ts;\n}\nfunction strictTypesError(it, msg) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n msg += ` at \"${schemaPath}\" (strictTypes)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);\n}\nclass KeywordCxt {\n constructor(it, def, keyword) {\n (0, keyword_1.validateKeywordUsage)(it, def, keyword);\n this.gen = it.gen;\n this.allErrors = it.allErrors;\n this.keyword = keyword;\n this.data = it.data;\n this.schema = it.schema[keyword];\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data;\n this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data);\n this.schemaType = def.schemaType;\n this.parentSchema = it.schema;\n this.params = {};\n this.it = it;\n this.def = def;\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it));\n }\n else {\n this.schemaCode = this.schemaValue;\n if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);\n }\n }\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", names_1.default.errors);\n }\n }\n result(condition, successAction, failAction) {\n this.failResult((0, codegen_1.not)(condition), successAction, failAction);\n }\n failResult(condition, successAction, failAction) {\n this.gen.if(condition);\n if (failAction)\n failAction();\n else\n this.error();\n if (successAction) {\n this.gen.else();\n successAction();\n if (this.allErrors)\n this.gen.endIf();\n }\n else {\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n }\n pass(condition, failAction) {\n this.failResult((0, codegen_1.not)(condition), undefined, failAction);\n }\n fail(condition) {\n if (condition === undefined) {\n this.error();\n if (!this.allErrors)\n this.gen.if(false); // this branch will be removed by gen.optimize\n return;\n }\n this.gen.if(condition);\n this.error();\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n fail$data(condition) {\n if (!this.$data)\n return this.fail(condition);\n const { schemaCode } = this;\n this.fail((0, codegen_1._) `${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);\n }\n error(append, errorParams, errorPaths) {\n if (errorParams) {\n this.setParams(errorParams);\n this._error(append, errorPaths);\n this.setParams({});\n return;\n }\n this._error(append, errorPaths);\n }\n _error(append, errorPaths) {\n ;\n (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);\n }\n $dataError() {\n (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);\n }\n reset() {\n if (this.errsCount === undefined)\n throw new Error('add \"trackErrors\" to keyword definition');\n (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);\n }\n ok(cond) {\n if (!this.allErrors)\n this.gen.if(cond);\n }\n setParams(obj, assign) {\n if (assign)\n Object.assign(this.params, obj);\n else\n this.params = obj;\n }\n block$data(valid, codeBlock, $dataValid = codegen_1.nil) {\n this.gen.block(() => {\n this.check$data(valid, $dataValid);\n codeBlock();\n });\n }\n check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {\n if (!this.$data)\n return;\n const { gen, schemaCode, schemaType, def } = this;\n gen.if((0, codegen_1.or)((0, codegen_1._) `${schemaCode} === undefined`, $dataValid));\n if (valid !== codegen_1.nil)\n gen.assign(valid, true);\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data());\n this.$dataError();\n if (valid !== codegen_1.nil)\n gen.assign(valid, false);\n }\n gen.else();\n }\n invalid$data() {\n const { gen, schemaCode, schemaType, def, it } = this;\n return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());\n function wrong$DataType() {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof codegen_1.Name))\n throw new Error(\"ajv implementation error\");\n const st = Array.isArray(schemaType) ? schemaType : [schemaType];\n return (0, codegen_1._) `${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;\n }\n return codegen_1.nil;\n }\n function invalid$DataSchema() {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", { ref: def.validateSchema }); // TODO value.code for standalone\n return (0, codegen_1._) `!${validateSchemaRef}(${schemaCode})`;\n }\n return codegen_1.nil;\n }\n }\n subschema(appl, valid) {\n const subschema = (0, subschema_1.getSubschema)(this.it, appl);\n (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);\n (0, subschema_1.extendSubschemaMode)(subschema, appl);\n const nextContext = { ...this.it, ...subschema, items: undefined, props: undefined };\n subschemaCode(nextContext, valid);\n return nextContext;\n }\n mergeEvaluated(schemaCxt, toName) {\n const { it, gen } = this;\n if (!it.opts.unevaluated)\n return;\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);\n }\n }\n mergeValidEvaluated(schemaCxt, valid) {\n const { it, gen } = this;\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));\n return true;\n }\n }\n}\nexports.KeywordCxt = KeywordCxt;\nfunction keywordCode(it, keyword, def, ruleType) {\n const cxt = new KeywordCxt(it, def, keyword);\n if (\"code\" in def) {\n def.code(cxt, ruleType);\n }\n else if (cxt.$data && def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n else if (\"macro\" in def) {\n (0, keyword_1.macroKeywordCode)(cxt, def);\n }\n else if (def.compile || def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n}\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, { dataLevel, dataNames, dataPathArr }) {\n let jsonPointer;\n let data;\n if ($data === \"\")\n return names_1.default.rootData;\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data))\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n jsonPointer = $data;\n data = names_1.default.rootData;\n }\n else {\n const matches = RELATIVE_JSON_POINTER.exec($data);\n if (!matches)\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n const up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer === \"#\") {\n if (up >= dataLevel)\n throw new Error(errorMsg(\"property/index\", up));\n return dataPathArr[dataLevel - up];\n }\n if (up > dataLevel)\n throw new Error(errorMsg(\"data\", up));\n data = dataNames[dataLevel - up];\n if (!jsonPointer)\n return data;\n }\n let expr = data;\n const segments = jsonPointer.split(\"/\");\n for (const segment of segments) {\n if (segment) {\n data = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;\n expr = (0, codegen_1._) `${expr} && ${data}`;\n }\n }\n return expr;\n function errorMsg(pointerType, up) {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;\n }\n}\nexports.getData = getData;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass ValidationError extends Error {\n constructor(errors) {\n super(\"validation failed\");\n this.errors = errors;\n this.ajv = this.validation = true;\n }\n}\nexports.default = ValidationError;\n//# sourceMappingURL=validation_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst resolve_1 = require(\"./resolve\");\nclass MissingRefError extends Error {\n constructor(resolver, baseId, ref, msg) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`);\n this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref);\n this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef));\n }\n}\nexports.default = MissingRefError;\n//# sourceMappingURL=ref_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst validation_error_1 = require(\"../runtime/validation_error\");\nconst names_1 = require(\"./names\");\nconst resolve_1 = require(\"./resolve\");\nconst util_1 = require(\"./util\");\nconst validate_1 = require(\"./validate\");\nclass SchemaEnv {\n constructor(env) {\n var _a;\n this.refs = {};\n this.dynamicAnchors = {};\n let schema;\n if (typeof env.schema == \"object\")\n schema = env.schema;\n this.schema = env.schema;\n this.schemaId = env.schemaId;\n this.root = env.root || this;\n this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || \"$id\"]);\n this.schemaPath = env.schemaPath;\n this.localRefs = env.localRefs;\n this.meta = env.meta;\n this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;\n this.refs = {};\n }\n}\nexports.SchemaEnv = SchemaEnv;\n// let codeSize = 0\n// let nodeCount = 0\n// Compiles schema in SchemaEnv\nfunction compileSchema(sch) {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch);\n if (_sch)\n return _sch;\n const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); // TODO if getFullPath removed 1 tests fails\n const { es5, lines } = this.opts.code;\n const { ownProperties } = this.opts;\n const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties });\n let _ValidationError;\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: validation_error_1.default,\n code: (0, codegen_1._) `require(\"ajv/dist/runtime/validation_error\").default`,\n });\n }\n const validateName = gen.scopeName(\"validate\");\n sch.validateName = validateName;\n const schemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: names_1.default.data,\n parentData: names_1.default.parentData,\n parentDataProperty: names_1.default.parentDataProperty,\n dataNames: [names_1.default.data],\n dataPathArr: [codegen_1.nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set(),\n topSchemaRef: gen.scopeValue(\"schema\", this.opts.code.source === true\n ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) }\n : { ref: sch.schema }),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: codegen_1.nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: (0, codegen_1._) `\"\"`,\n opts: this.opts,\n self: this,\n };\n let sourceCode;\n try {\n this._compilations.add(sch);\n (0, validate_1.validateFunctionCode)(schemaCxt);\n gen.optimize(this.opts.code.optimize);\n // gen.optimize(1)\n const validateCode = gen.toString();\n sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process)\n sourceCode = this.opts.code.process(sourceCode, sch);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);\n const validate = makeValidate(this, this.scope.get());\n this.scope.value(validateName, { ref: validate });\n validate.errors = null;\n validate.schema = sch.schema;\n validate.schemaEnv = sch;\n if (sch.$async)\n validate.$async = true;\n if (this.opts.code.source === true) {\n validate.source = { validateName, validateCode, scopeValues: gen._values };\n }\n if (this.opts.unevaluated) {\n const { props, items } = schemaCxt;\n validate.evaluated = {\n props: props instanceof codegen_1.Name ? undefined : props,\n items: items instanceof codegen_1.Name ? undefined : items,\n dynamicProps: props instanceof codegen_1.Name,\n dynamicItems: items instanceof codegen_1.Name,\n };\n if (validate.source)\n validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated);\n }\n sch.validate = validate;\n return sch;\n }\n catch (e) {\n delete sch.validate;\n delete sch.validateName;\n if (sourceCode)\n this.logger.error(\"Error compiling schema, function code:\", sourceCode);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e;\n }\n finally {\n this._compilations.delete(sch);\n }\n}\nexports.compileSchema = compileSchema;\nfunction resolveRef(root, baseId, ref) {\n var _a;\n ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);\n const schOrFunc = root.refs[ref];\n if (schOrFunc)\n return schOrFunc;\n let _sch = resolve.call(this, root, ref);\n if (_sch === undefined) {\n const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; // TODO maybe localRefs should hold SchemaEnv\n const { schemaId } = this.opts;\n if (schema)\n _sch = new SchemaEnv({ schema, schemaId, root, baseId });\n }\n if (_sch === undefined)\n return;\n return (root.refs[ref] = inlineOrCompile.call(this, _sch));\n}\nexports.resolveRef = resolveRef;\nfunction inlineOrCompile(sch) {\n if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs))\n return sch.schema;\n return sch.validate ? sch : compileSchema.call(this, sch);\n}\n// Index of schema compilation in the currently compiled list\nfunction getCompilingSchema(schEnv) {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv))\n return sch;\n }\n}\nexports.getCompilingSchema = getCompilingSchema;\nfunction sameSchemaEnv(s1, s2) {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;\n}\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(root, // information about the root schema for the current schema\nref // reference to resolve\n) {\n let sch;\n while (typeof (sch = this.refs[ref]) == \"string\")\n ref = sch;\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);\n}\n// Resolve schema, its root and baseId\nfunction resolveSchema(root, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\nref // reference to resolve\n) {\n const p = this.opts.uriResolver.parse(ref);\n const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);\n let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, undefined);\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root);\n }\n const id = (0, resolve_1.normalizeId)(refPath);\n const schOrRef = this.refs[id] || this.schemas[id];\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef);\n if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== \"object\")\n return;\n return getJsonPointer.call(this, p, sch);\n }\n if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== \"object\")\n return;\n if (!schOrRef.validate)\n compileSchema.call(this, schOrRef);\n if (id === (0, resolve_1.normalizeId)(ref)) {\n const { schema } = schOrRef;\n const { schemaId } = this.opts;\n const schId = schema[schemaId];\n if (schId)\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n return new SchemaEnv({ schema, schemaId, root, baseId });\n }\n return getJsonPointer.call(this, p, schOrRef);\n}\nexports.resolveSchema = resolveSchema;\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n]);\nfunction getJsonPointer(parsedRef, { baseId, schema, root }) {\n var _a;\n if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== \"/\")\n return;\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\")\n return;\n const partSchema = schema[(0, util_1.unescapeFragment)(part)];\n if (partSchema === undefined)\n return;\n schema = partSchema;\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId];\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n }\n }\n let env;\n if (typeof schema != \"boolean\" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {\n const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref);\n env = resolveSchema.call(this, root, $ref);\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const { schemaId } = this.opts;\n env = env || new SchemaEnv({ schema, schemaId, root, baseId });\n if (env.schema !== env.root.schema)\n return env;\n return undefined;\n}\n//# sourceMappingURL=index.js.map","'use strict'\n\n/** @type {(value: string) => boolean} */\nconst isUUID = RegExp.prototype.test.bind(/^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)$/u)\n\n/** @type {(value: string) => boolean} */\nconst isPort = RegExp.prototype.test.bind(/^\\d*$/u)\n\n/** @type {(value: string) => boolean} */\nconst isHexPair = RegExp.prototype.test.bind(/^[\\da-f]{2}$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isUnreserved = RegExp.prototype.test.bind(/^[\\da-z\\-._~]$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isPathCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\\-._~!$&'()*+,;=:@/]$/u)\n\n/** @type {(value: string) => boolean} */\nconst isQueryFragmentCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\\-._~!$&'()*+,;=:@/?]$/u)\n\n/** @type {(value: string) => boolean} */\nconst isUserinfoCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\\-._~!$&'()*+,;=:]$/u)\n\nconst BYTE_HEX = new Array(256)\n{\n const HEX_DIGITS = '0123456789ABCDEF'\n for (let i = 0; i < 256; i++) {\n BYTE_HEX[i] = '%' + HEX_DIGITS[i >> 4] + HEX_DIGITS[i & 0xF]\n }\n}\nfunction percentEncodeNonAscii (cp) {\n if (cp < 0x800) {\n return BYTE_HEX[0xC0 | (cp >> 6)] +\n BYTE_HEX[0x80 | (cp & 0x3F)]\n }\n if (cp < 0x10000) {\n return BYTE_HEX[0xE0 | (cp >> 12)] +\n BYTE_HEX[0x80 | ((cp >> 6) & 0x3F)] +\n BYTE_HEX[0x80 | (cp & 0x3F)]\n }\n return BYTE_HEX[0xF0 | (cp >> 18)] +\n BYTE_HEX[0x80 | ((cp >> 12) & 0x3F)] +\n BYTE_HEX[0x80 | ((cp >> 6) & 0x3F)] +\n BYTE_HEX[0x80 | (cp & 0x3F)]\n}\n\n/**\n * @param {Array} input\n * @returns {string}\n */\nfunction stringArrayToHexStripped (input) {\n let acc = ''\n let code = 0\n let i = 0\n\n for (i = 0; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (code === 48) {\n continue\n }\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n break\n }\n\n for (i += 1; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n }\n return acc\n}\n\n/** @type {(value: string) => boolean} */\nconst isHextet = RegExp.prototype.test.bind(/^[\\dA-Fa-f]{1,4}$/)\n\n/** @type {(value: string) => boolean} */\nconst isIPvFuture = RegExp.prototype.test.bind(/^[vV][\\dA-Fa-f]+\\.[A-Za-z\\d\\-._~!$&'()*+,;=:]+$/)\n\n/** @type {(value: string) => boolean} */\nconst isZoneCharacter = RegExp.prototype.test.bind(/^[A-Za-z\\d\\-._~]$/)\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nconst nonSimpleDomain = RegExp.prototype.test.bind(/[^!\"$&'()*+,\\-.;=_`a-z{}~]/u)\n\n/**\n * @param {string} zone\n * @returns {boolean}\n */\nfunction isZoneIdentifier (zone) {\n if (zone.length === 0) return false\n\n for (let i = 0; i < zone.length; i++) {\n if (isZoneCharacter(zone[i])) continue\n if (zone[i] === '%' && i + 2 < zone.length && isHexPair(zone.slice(i + 1, i + 3))) {\n i += 2\n continue\n }\n return false\n }\n\n return true\n}\n\n/**\n * Compresses the longest run of zero hextets to \"::\" per RFC 5952. A run of a\n * single zero hextet is left uncompressed. On ties the leftmost run wins.\n *\n * @param {string[]} hextets\n * @returns {string}\n */\nfunction compressIPv6ZeroRun (hextets) {\n let bestStart = -1\n let bestLength = 0\n let runStart = -1\n let runLength = 0\n for (let i = 0; i < hextets.length; i++) {\n if (hextets[i] === '0') {\n if (runStart === -1) runStart = i\n runLength++\n if (runLength > bestLength) {\n bestLength = runLength\n bestStart = runStart\n }\n } else {\n runStart = -1\n runLength = 0\n }\n }\n\n if (bestLength < 2) return hextets.join(':')\n\n const head = hextets.slice(0, bestStart).join(':')\n const tail = hextets.slice(bestStart + bestLength).join(':')\n return head + '::' + tail\n}\n\n/**\n * Validates an IPv6 address against the alternatives in RFC 3986 section\n * 3.2.2 and returns the same address with leading hextet zeroes removed.\n * An embedded IPv4 address counts as two hextets and is only valid at the end.\n *\n * @param {string} input\n * @returns {string|undefined}\n */\nfunction normalizeIPv6Address (input) {\n const compression = input.indexOf('::')\n if (compression !== -1 && input.indexOf('::', compression + 1) !== -1) return undefined\n\n const left = compression === -1 ? input.split(':') : input.slice(0, compression).split(':')\n const right = compression === -1 ? [] : input.slice(compression + 2).split(':')\n if (compression !== -1) {\n if (left.length === 1 && left[0] === '') left.length = 0\n if (right.length === 1 && right[0] === '') right.length = 0\n }\n\n const parts = left.concat(right)\n let hextetCount = 0\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i]\n if (part === '') return undefined\n\n if (part.indexOf('.') !== -1) {\n if (i !== parts.length - 1 || (compression !== -1 && right.length === 0) || !isIPv4(part)) return undefined\n hextetCount += 2\n continue\n }\n\n if (!isHextet(part)) return undefined\n parts[i] = parseInt(part, 16).toString(16)\n hextetCount++\n }\n\n if (compression === -1) {\n if (hextetCount !== 8) return undefined\n return compressIPv6ZeroRun(parts)\n }\n if (hextetCount >= 8) return undefined\n\n // expand \"::\" then re-compress the longest run for a canonical result\n const expanded = parts.slice(0, left.length)\n for (let i = hextetCount; i < 8; i++) expanded.push('0')\n for (let i = left.length; i < parts.length; i++) expanded.push(parts[i])\n return compressIPv6ZeroRun(expanded)\n}\n\n/**\n * @typedef {Object} NormalizeIPv6Result\n * @property {string} host - The normalized host.\n * @property {string} [escapedHost] - The escaped host.\n * @property {boolean} isIPV6 - Indicates if the host is an IPv6 address.\n * @property {boolean} [isIPVFuture] - Indicates if the host is an IPvFuture literal.\n * @property {boolean} [error] - Indicates if a bracketed IP literal is malformed.\n */\n\n/**\n * Validates and normalizes a bracketed IP literal. Raw zone separators remain\n * accepted for backwards compatibility, while encoded separators and zone\n * contents follow RFC 6874.\n *\n * @param {string} host\n * @returns {NormalizeIPv6Result}\n */\nfunction normalizeIPv6 (host) {\n const bracketed = host[0] === '[' && host[host.length - 1] === ']'\n const hasBracket = host[0] === '[' || host[host.length - 1] === ']'\n if (hasBracket && !bracketed) return { host, isIPV6: false, error: true }\n\n let input = bracketed ? host.slice(1, -1) : host\n if (bracketed && isIPvFuture(input)) {\n input = input.toLowerCase()\n return { host: `[${input}]`, escapedHost: input, isIPV6: false, isIPVFuture: true }\n }\n\n if (findToken(input, ':') < 2) {\n return { host, isIPV6: false, error: bracketed }\n }\n\n let zoneIdentifier = ''\n const zoneSeparator = input.indexOf('%')\n if (zoneSeparator !== -1) {\n const separatorLength = input.slice(zoneSeparator, zoneSeparator + 3).toLowerCase() === '%25' ? 3 : 1\n zoneIdentifier = input.slice(zoneSeparator + separatorLength)\n if (!isZoneIdentifier(zoneIdentifier)) return { host, isIPV6: false, error: true }\n input = input.slice(0, zoneSeparator)\n }\n\n const address = normalizeIPv6Address(input)\n if (address === undefined) return { host, isIPV6: false, error: true }\n\n return {\n host: address + (zoneIdentifier ? '%' + zoneIdentifier : ''),\n escapedHost: address + (zoneIdentifier ? '%25' + zoneIdentifier : ''),\n isIPV6: true\n }\n}\n\n/**\n * @param {string} str\n * @param {string} token\n * @returns {number}\n */\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\n/**\n * @param {string} path\n * @returns {string}\n *\n * @see https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n */\nfunction removeDotSegments (path) {\n let input = path\n const output = []\n let nextSlash = -1\n let len = 0\n\n // eslint-disable-next-line no-cond-assign\n while (len = input.length) {\n if (len === 1) {\n if (input === '.') {\n break\n } else if (input === '/') {\n output.push('/')\n break\n } else {\n output.push(input)\n break\n }\n } else if (len === 2) {\n if (input[0] === '.') {\n if (input[1] === '.') {\n break\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.' || input[1] === '/') {\n output.push('/')\n break\n }\n }\n } else if (len === 3) {\n if (input === '/..') {\n if (output.length !== 0) {\n output.pop()\n }\n output.push('/')\n break\n }\n }\n if (input[0] === '.') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(3)\n continue\n }\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(2)\n continue\n } else if (input[2] === '.') {\n if (input[3] === '/') {\n input = input.slice(3)\n if (output.length !== 0) {\n output.pop()\n }\n continue\n }\n }\n }\n }\n\n // Rule 2E: Move normal path segment to output\n if ((nextSlash = input.indexOf('/', 1)) === -1) {\n output.push(input)\n break\n } else {\n output.push(input.slice(0, nextSlash))\n input = input.slice(nextSlash)\n }\n }\n\n return output.join('')\n}\n\n/**\n * Re-escape RFC 3986 gen-delims that must not appear literally in the host.\n * After the URI regex parses, these characters cannot be literal in the host\n * field, so any that appear after decoding came from percent-encoding and\n * must be restored to prevent authority structure changes.\n *\n * @param {string} host\n * @param {boolean} isIP - true for IPv4/IPv6 hosts (skip colon re-escaping)\n * @returns {string}\n */\nconst HOST_DELIMS = { '@': '%40', '/': '%2F', '?': '%3F', '#': '%23', ':': '%3A' }\nconst HOST_DELIM_RE = /[@/?#:]/g\nconst HOST_DELIM_NO_COLON_RE = /[@/?#]/g\n\nfunction reescapeHostDelimiters (host, isIP) {\n const re = isIP ? HOST_DELIM_NO_COLON_RE : HOST_DELIM_RE\n re.lastIndex = 0\n return host.replace(re, (ch) => HOST_DELIMS[ch])\n}\n\n/**\n * Normalizes percent escapes and optionally decodes only unreserved ASCII bytes.\n * Reserved delimiters such as `%2F` stay escaped; `%2E` is unreserved.\n *\n * @param {string} input\n * @param {boolean} [decodeUnreserved=false]\n * @returns {string}\n */\nfunction normalizePercentEncoding (input, decodeUnreserved = false) {\n if (input.indexOf('%') === -1) {\n return input\n }\n\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n if (input[i] === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n const normalizedHex = hex.toUpperCase()\n const decoded = String.fromCharCode(parseInt(normalizedHex, 16))\n\n if (decodeUnreserved && isUnreserved(decoded)) {\n output += decoded\n } else {\n output += '%' + normalizedHex\n }\n\n i += 2\n continue\n }\n }\n\n output += input[i]\n }\n\n return output\n}\n\n/**\n * Normalizes path data without turning reserved escapes into live path syntax.\n * Valid escapes are uppercased, raw unsafe characters are escaped, and only\n * unreserved bytes that are not `.` are decoded.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizePathEncoding (input) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n const normalizedHex = hex.toUpperCase()\n const decoded = String.fromCharCode(parseInt(normalizedHex, 16))\n\n if (decoded !== '.' && isUnreserved(decoded)) {\n output += decoded\n } else {\n output += '%' + normalizedHex\n }\n\n i += 2\n continue\n }\n }\n\n if (isPathCharacter(ch)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += isEscapeSafe(code) ? ch : BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Serializes a path without rewriting reserved data. Raw RFC 3986 path\n * characters remain literal, valid escapes are preserved and uppercased, and\n * everything else is UTF-8 percent-encoded. In a path-noscheme, a colon in the\n * first segment must be escaped so the result cannot be parsed as a scheme.\n *\n * @param {string} input\n * @param {boolean} [pathNoScheme=false]\n * @returns {string}\n */\nfunction serializePathEncoding (input, pathNoScheme = false) {\n let output = ''\n let firstSegment = pathNoScheme && input[0] !== '/'\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n output += '%' + hex.toUpperCase()\n i += 2\n continue\n }\n }\n\n if (ch === '/') {\n firstSegment = false\n }\n\n if (isPathCharacter(ch) && (ch !== ':' || !firstSegment)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Percent-encodes a URI component using its RFC 3986 literal character set.\n * Existing valid escapes are preserved and normalized to uppercase hex.\n *\n * @param {string} input\n * @param {(value: string) => boolean} isAllowed\n * @returns {string}\n */\nfunction encodeComponent (input, isAllowed) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n output += '%' + hex.toUpperCase()\n i += 2\n continue\n }\n }\n\n if (isAllowed(ch)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Encodes userinfo while preserving its RFC 3986 §3.2.1 literal characters.\n * In particular, authority delimiters such as `@`, `/`, `?`, and `#` are data.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction encodeUserinfo (input) {\n return encodeComponent(input, isUserinfoCharacter)\n}\n\n/**\n * Encodes query data using the RFC 3986 §3.4 grammar. A literal `#` must be\n * escaped because it would otherwise begin the fragment component.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction encodeQuery (input) {\n return encodeComponent(input, isQueryFragmentCharacter)\n}\n\n/**\n * Encodes fragment data using the RFC 3986 §3.5 grammar.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction encodeFragment (input) {\n return encodeComponent(input, isQueryFragmentCharacter)\n}\n\nfunction isEscapeSafe (cp) {\n return (\n (cp >= 0x30 && cp <= 0x39) ||\n (cp >= 0x41 && cp <= 0x5A) ||\n (cp >= 0x61 && cp <= 0x7A) ||\n cp === 0x2A || cp === 0x2B || cp === 0x2D || cp === 0x2E ||\n cp === 0x2F || cp === 0x40 || cp === 0x5F\n )\n}\n\n/**\n * Normalizes the percent-encoding of a query or fragment component.\n *\n * Like `normalizePathEncoding`, but uses the query/fragment character set\n * (which additionally allows `?`) and decodes `.` since it has no dot-segment\n * meaning outside of a path.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizeQueryFragmentEncoding (input) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n const normalizedHex = hex.toUpperCase()\n const decoded = String.fromCharCode(parseInt(normalizedHex, 16))\n\n if (isUnreserved(decoded)) {\n output += decoded\n } else {\n output += '%' + normalizedHex\n }\n\n i += 2\n continue\n }\n }\n\n if (isQueryFragmentCharacter(ch)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += isEscapeSafe(code) ? ch : BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Escapes a component while preserving existing valid percent escapes.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction escapePreservingEscapes (input) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n if (input[i] === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n output += '%' + hex.toUpperCase()\n i += 2\n continue\n }\n }\n\n output += escape(input[i])\n }\n\n return output\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @returns {string|undefined}\n */\nfunction recomposeAuthority (component) {\n const uriTokens = []\n\n if (component.userinfo !== undefined) {\n uriTokens.push(encodeUserinfo(component.userinfo))\n uriTokens.push('@')\n }\n\n if (component.host !== undefined) {\n let host = component.host\n if (!isIPv4(host)) {\n let ipV6res = normalizeIPv6(host)\n if (ipV6res.isIPV6 !== true && ipV6res.isIPVFuture !== true) {\n // Decode only unreserved bytes, once. In particular, keep %25 encoded\n // so it cannot introduce a second escape during recomposition.\n host = normalizePercentEncoding(host, true)\n ipV6res = normalizeIPv6(host)\n }\n if (ipV6res.isIPV6 === true || ipV6res.isIPVFuture === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = reescapeHostDelimiters(host, false)\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof component.port === 'number' || typeof component.port === 'string') {\n const port = String(component.port)\n if (!isPort(port)) {\n throw new TypeError('URI port is malformed.')\n }\n uriTokens.push(':')\n uriTokens.push(port)\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n nonSimpleDomain,\n recomposeAuthority,\n reescapeHostDelimiters,\n normalizePercentEncoding,\n normalizePathEncoding,\n serializePathEncoding,\n normalizeQueryFragmentEncoding,\n encodeUserinfo,\n encodeQuery,\n encodeFragment,\n escapePreservingEscapes,\n removeDotSegments,\n isIPv4,\n isUUID,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n","'use strict'\n\nconst { isUUID } = require('./utils')\nconst URN_REG = /^([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-./:;=@]|%[\\da-f]{2})+)$/iu\n\nconst supportedSchemeNames = /** @type {const} */ (['http', 'https', 'ws',\n 'wss', 'urn', 'urn:uuid'])\n\n/** @typedef {supportedSchemeNames[number]} SchemeName */\n\n/**\n * @param {string} name\n * @returns {name is SchemeName}\n */\nfunction isValidSchemeName (name) {\n return supportedSchemeNames.indexOf(/** @type {*} */ (name)) !== -1\n}\n\n/**\n * @callback SchemeFn\n * @param {import('../types/index').URIComponent} component\n * @param {import('../types/index').Options} options\n * @returns {import('../types/index').URIComponent}\n */\n\n/**\n * @typedef {Object} SchemeHandler\n * @property {SchemeName} scheme - The scheme name.\n * @property {boolean} [domainHost] - Indicates if the scheme supports domain hosts.\n * @property {SchemeFn} parse - Function to parse the URI component for this scheme.\n * @property {SchemeFn} serialize - Function to serialize the URI component for this scheme.\n * @property {boolean} [skipNormalize] - Indicates if normalization should be skipped for this scheme.\n * @property {boolean} [absolutePath] - Indicates if the scheme uses absolute paths.\n * @property {boolean} [unicodeSupport] - Indicates if the scheme supports Unicode.\n */\n\n/**\n * @param {import('../types/index').URIComponent} wsComponent\n * @returns {boolean}\n */\nfunction wsIsSecure (wsComponent) {\n if (wsComponent.secure === true) {\n return true\n } else if (wsComponent.secure === false) {\n return false\n } else if (wsComponent.scheme) {\n return (\n wsComponent.scheme.length === 3 &&\n (wsComponent.scheme[0] === 'w' || wsComponent.scheme[0] === 'W') &&\n (wsComponent.scheme[1] === 's' || wsComponent.scheme[1] === 'S') &&\n (wsComponent.scheme[2] === 's' || wsComponent.scheme[2] === 'S')\n )\n } else {\n return false\n }\n}\n\n/** @type {SchemeFn} */\nfunction httpParse (component) {\n if (!component.host) {\n component.error = component.error || 'HTTP URIs must have a host.'\n }\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction httpSerialize (component) {\n const secure = String(component.scheme).toLowerCase() === 'https'\n\n // normalize the default port\n if (component.port === (secure ? 443 : 80) || component.port === '') {\n component.port = undefined\n }\n\n // normalize the empty path\n if (!component.path) {\n component.path = '/'\n }\n\n // NOTE: We do not parse query strings for HTTP URIs\n // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n // and not the HTTP spec.\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction wsParse (wsComponent) {\n// indicate if the secure flag is set\n wsComponent.secure = wsIsSecure(wsComponent)\n\n // construct resouce name\n wsComponent.resourceName = (wsComponent.path || '/') + (wsComponent.query ? '?' + wsComponent.query : '')\n wsComponent.path = undefined\n wsComponent.query = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction wsSerialize (wsComponent) {\n// normalize the default port\n if (wsComponent.port === (wsIsSecure(wsComponent) ? 443 : 80) || wsComponent.port === '') {\n wsComponent.port = undefined\n }\n\n // ensure scheme matches secure flag\n if (typeof wsComponent.secure === 'boolean') {\n wsComponent.scheme = (wsComponent.secure ? 'wss' : 'ws')\n wsComponent.secure = undefined\n }\n\n // reconstruct path from resource name\n if (wsComponent.resourceName) {\n const queryIndex = wsComponent.resourceName.indexOf('?')\n const path = queryIndex === -1\n ? wsComponent.resourceName\n : wsComponent.resourceName.slice(0, queryIndex)\n wsComponent.path = (path && path !== '/' ? path : undefined)\n wsComponent.query = queryIndex === -1\n ? undefined\n : wsComponent.resourceName.slice(queryIndex + 1)\n wsComponent.resourceName = undefined\n }\n\n // forbid fragment component\n wsComponent.fragment = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnParse (urnComponent, options) {\n if (!urnComponent.path) {\n urnComponent.error = 'URN can not be parsed'\n return urnComponent\n }\n const matches = urnComponent.path.match(URN_REG)\n if (matches && matches[0] === urnComponent.path) {\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n urnComponent.nid = matches[1].toLowerCase()\n urnComponent.nss = matches[2]\n const urnScheme = `${scheme}:${options.nid || urnComponent.nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n urnComponent.path = undefined\n\n if (schemeHandler) {\n urnComponent = schemeHandler.parse(urnComponent, options)\n }\n } else {\n urnComponent.error = urnComponent.error || 'URN can not be parsed.'\n }\n\n return urnComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnSerialize (urnComponent, options) {\n if (urnComponent.nid === undefined) {\n throw new Error('URN without nid cannot be serialized')\n }\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n const nid = urnComponent.nid.toLowerCase()\n const urnScheme = `${scheme}:${options.nid || nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n\n if (schemeHandler) {\n urnComponent = schemeHandler.serialize(urnComponent, options)\n }\n\n const uriComponent = urnComponent\n const nss = urnComponent.nss\n uriComponent.path = `${nid || options.nid}:${nss}`\n\n options.skipEscape = true\n return uriComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidParse (urnComponent, options) {\n const uuidComponent = urnComponent\n uuidComponent.uuid = uuidComponent.nss\n uuidComponent.nss = undefined\n\n if (!options.tolerant && (!uuidComponent.uuid || !isUUID(uuidComponent.uuid))) {\n uuidComponent.error = uuidComponent.error || 'UUID is not valid.'\n }\n\n return uuidComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidSerialize (uuidComponent) {\n const urnComponent = uuidComponent\n // normalize UUID\n urnComponent.nss = (uuidComponent.uuid || '').toLowerCase()\n return urnComponent\n}\n\nconst http = /** @type {SchemeHandler} */ ({\n scheme: 'http',\n domainHost: true,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst https = /** @type {SchemeHandler} */ ({\n scheme: 'https',\n domainHost: http.domainHost,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst ws = /** @type {SchemeHandler} */ ({\n scheme: 'ws',\n domainHost: true,\n parse: wsParse,\n serialize: wsSerialize\n})\n\nconst wss = /** @type {SchemeHandler} */ ({\n scheme: 'wss',\n domainHost: ws.domainHost,\n parse: ws.parse,\n serialize: ws.serialize\n})\n\nconst urn = /** @type {SchemeHandler} */ ({\n scheme: 'urn',\n parse: urnParse,\n serialize: urnSerialize,\n skipNormalize: true\n})\n\nconst urnuuid = /** @type {SchemeHandler} */ ({\n scheme: 'urn:uuid',\n parse: urnuuidParse,\n serialize: urnuuidSerialize,\n skipNormalize: true\n})\n\nconst SCHEMES = /** @type {Record} */ ({\n http,\n https,\n ws,\n wss,\n urn,\n 'urn:uuid': urnuuid\n})\n\nObject.setPrototypeOf(SCHEMES, null)\n\n/**\n * @param {string|undefined} scheme\n * @returns {SchemeHandler|undefined}\n */\nfunction getSchemeHandler (scheme) {\n return (\n scheme && (\n SCHEMES[/** @type {SchemeName} */ (scheme)] ||\n SCHEMES[/** @type {SchemeName} */(scheme.toLowerCase())])\n ) ||\n undefined\n}\n\nmodule.exports = {\n wsIsSecure,\n SCHEMES,\n isValidSchemeName,\n getSchemeHandler,\n}\n","'use strict'\n\nconst { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, serializePathEncoding, normalizeQueryFragmentEncoding, encodeQuery, encodeFragment, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require('./lib/utils')\nconst { SCHEMES, getSchemeHandler } = require('./lib/schemes')\n\nconst VALID_SCHEME = /^[A-Za-z][A-Za-z0-9+.-]*$/u\nconst MALFORMED_SCHEME_ERROR = 'URI scheme is malformed.'\n\n/**\n * @param {string} scheme\n * @returns {string}\n */\nfunction decodeValidScheme (scheme) {\n const decodedScheme = unescape(String(scheme))\n if (!VALID_SCHEME.test(decodedScheme)) {\n throw new TypeError(MALFORMED_SCHEME_ERROR)\n }\n return decodedScheme\n}\n\n/**\n * @template {import('./types/index').URIComponent|string} T\n * @param {T} uri\n * @param {import('./types/index').Options} [options]\n * @returns {T}\n */\nfunction normalize (uri, options) {\n if (typeof uri === 'string') {\n uri = /** @type {T} */ (normalizeString(uri, options))\n } else if (typeof uri === 'object') {\n uri = /** @type {T} */ (parse(serialize(uri, options), options))\n }\n return uri\n}\n\n/**\n * @param {string} baseURI\n * @param {string} relativeURI\n * @param {import('./types/index').Options} [options]\n * @returns {string}\n */\nfunction resolve (baseURI, relativeURI, options) {\n const schemelessOptions = options ? Object.assign({ scheme: 'null' }, options) : { scheme: 'null' }\n const {\n parsed: baseParsed,\n malformedAuthorityOrPort: baseMalformed,\n malformedPercentEncoding: baseMalformedPercentEncoding,\n malformedSchemeSpecific: baseMalformedSchemeSpecific,\n malformedHost: baseMalformedHost,\n malformedScheme: baseMalformedScheme\n } = parseWithStatus(baseURI, schemelessOptions)\n const {\n parsed: relativeParsed,\n malformedAuthorityOrPort: relativeMalformed,\n malformedPercentEncoding: relativeMalformedPercentEncoding,\n malformedSchemeSpecific: relativeMalformedSchemeSpecific,\n malformedHost: relativeMalformedHost,\n malformedScheme: relativeMalformedScheme\n } = parseWithStatus(relativeURI, schemelessOptions)\n if (\n baseMalformed ||\n relativeMalformed ||\n baseMalformedPercentEncoding ||\n relativeMalformedPercentEncoding ||\n baseMalformedSchemeSpecific ||\n relativeMalformedSchemeSpecific ||\n baseMalformedHost ||\n relativeMalformedHost ||\n baseMalformedScheme ||\n relativeMalformedScheme\n ) {\n throw new Error(baseParsed.error || relativeParsed.error || 'URI is malformed.')\n }\n const resolved = resolveComponent(baseParsed, relativeParsed, schemelessOptions, true)\n const resolvedSchemeHandler = getSchemeHandler((options && options.scheme) || resolved.scheme)\n const resolvedHost = resolved.host\n const resolvedHostIsIP = resolvedHost !== undefined && resolvedHost !== '' &&\n (isIPv4(resolvedHost) || normalizeIPv6(resolvedHost).isIPV6)\n canonicalizeHost(resolved, options || {}, resolvedSchemeHandler, resolvedHostIsIP)\n // Percent escapes in an ASCII reg-name are encoded data. The WHATWG hostname\n // parser can reject them even though fast-uri preserves them safely as RFC\n // 3986 data. A raw non-ASCII host must still fail closed if conversion fails.\n const encodedASCIIHost = resolvedHost && resolvedHost.indexOf('%') !== -1 &&\n !/\\P{ASCII}/u.test(resolvedHost)\n if (resolved.error && !encodedASCIIHost) {\n throw new Error(resolved.error)\n }\n schemelessOptions.skipEscape = true\n return serialize(resolved, schemelessOptions)\n}\n\n/**\n * @param {import ('./types/index').URIComponent} base\n * @param {import ('./types/index').URIComponent} relative\n * @param {import('./types/index').Options} [options]\n * @param {boolean} [skipNormalization=false]\n * @returns {import ('./types/index').URIComponent}\n */\nfunction resolveComponent (base, relative, options, skipNormalization) {\n /** @type {import('./types/index').URIComponent} */\n const target = {}\n if (!skipNormalization) {\n base = parse(serialize(base, options), options) // normalize base component\n relative = parse(serialize(relative, options), options) // normalize relative component\n }\n options = options || {}\n\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (!relative.path) {\n target.path = base.path\n if (relative.query !== undefined) {\n target.query = relative.query\n } else {\n target.query = base.query\n }\n } else {\n if (relative.path[0] === '/') {\n target.path = removeDotSegments(relative.path)\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = '/' + relative.path\n } else if (!base.path) {\n target.path = relative.path\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf('/') + 1) + relative.path\n }\n target.path = removeDotSegments(target.path)\n }\n target.query = relative.query\n }\n // target.authority = base.authority;\n target.userinfo = base.userinfo\n target.host = base.host\n target.port = base.port\n }\n target.scheme = base.scheme\n }\n\n target.fragment = relative.fragment\n\n return target\n}\n\n/**\n * @param {import ('./types/index').URIComponent|string} uriA\n * @param {import ('./types/index').URIComponent|string} uriB\n * @param {import ('./types/index').Options} options\n * @returns {boolean}\n */\nfunction equal (uriA, uriB, options) {\n const normalizedA = normalizeComparableURI(uriA, options)\n const normalizedB = normalizeComparableURI(uriB, options)\n\n return normalizedA !== undefined && normalizedB !== undefined && normalizedA === normalizedB\n}\n\n/**\n * @param {Readonly} cmpts\n * @param {import('./types/index').Options} [opts]\n * @returns {string}\n */\nfunction serialize (cmpts, opts) {\n const component = {\n host: cmpts.host,\n scheme: cmpts.scheme,\n userinfo: cmpts.userinfo,\n port: cmpts.port,\n path: cmpts.path,\n query: cmpts.query,\n nid: cmpts.nid,\n nss: cmpts.nss,\n uuid: cmpts.uuid,\n fragment: cmpts.fragment,\n reference: cmpts.reference,\n resourceName: cmpts.resourceName,\n secure: cmpts.secure,\n error: ''\n }\n const options = Object.assign({}, opts)\n const uriTokens = []\n\n if (component.scheme) {\n component.scheme = decodeValidScheme(component.scheme)\n }\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || component.scheme)\n\n // perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options)\n\n const hasAuthority = component.userinfo !== undefined || component.host !== undefined || component.port !== undefined\n const pathNoScheme = !options.skipEscape && component.scheme === undefined && !hasAuthority\n\n if (component.path !== undefined) {\n if (!options.skipEscape) {\n component.path = serializePathEncoding(component.path, pathNoScheme)\n } else {\n component.path = normalizePercentEncoding(component.path)\n }\n }\n\n if (options.reference !== 'suffix' && component.scheme) {\n // Scheme handlers may replace the scheme during serialization.\n component.scheme = decodeValidScheme(component.scheme)\n uriTokens.push(component.scheme, ':')\n }\n\n const authority = recomposeAuthority(component)\n if (authority !== undefined) {\n if (options.reference !== 'suffix') {\n uriTokens.push('//')\n }\n\n uriTokens.push(authority)\n\n if (component.path && component.path[0] !== '/') {\n uriTokens.push('/')\n }\n }\n if (component.path !== undefined) {\n let s = component.path\n\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s)\n }\n\n // Dot-segment removal can expose a colon that was not originally in the\n // first segment (for example, \"./a:b\"). Reapply path-noscheme encoding so\n // the serialized relative reference cannot be reparsed as a URI scheme.\n if (pathNoScheme) {\n s = serializePathEncoding(s, true)\n }\n\n if (\n authority === undefined &&\n s[0] === '/' &&\n s[1] === '/'\n ) {\n // don't allow the path to start with \"//\"\n s = '/%2F' + s.slice(2)\n }\n\n uriTokens.push(s)\n }\n\n if (component.query !== undefined) {\n uriTokens.push('?', encodeQuery(component.query))\n }\n\n if (component.fragment !== undefined) {\n uriTokens.push('#', encodeFragment(component.fragment))\n }\n return uriTokens.join('')\n}\n\nconst URI_PARSE = /^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u\n\n// Captures the authority component (between \"//\" and the next \"/\", \"?\" or \"#\"),\n// with or without a scheme prefix, for the literal-backslash rejection below.\nconst AUTHORITY_PREFIX = /^(?:[^#/:?]+:)?\\/\\/([^/?#]*)/\n\n// Captures the leading authority-introducer region after an optional scheme: a\n// run of forward slashes, backslashes, and the characters the WHATWG URL parser\n// removes before parsing (TAB U+0009, LF U+000A, CR U+000D). A valid introducer\n// is exactly \"//\". Node treats \"\\\" as \"/\" on special schemes and strips those\n// characters first, so forms like \"\\\\\", \"/\\\", \"\\/\", \"//\", or a leading\n// \"//\" reach an authority in Node while fast-uri's URI_PARSE folds them into\n// the path group (host confusion / SSRF / redirect bypass).\nconst AUTHORITY_INTRODUCER_REGION = /^(?:[^#/:?]+:)?([/\\\\\\t\\n\\r]*)/\n\n/**\n * @param {import('./types/index').URIComponent} parsed\n * @param {RegExpMatchArray} matches\n * @returns {string|undefined}\n */\nfunction getParseError (parsed, matches) {\n if (matches[2] !== undefined && parsed.path && parsed.path[0] !== '/') {\n return 'URI path must start with \"/\" when authority is present.'\n }\n\n if (typeof parsed.port === 'number' && (parsed.port < 0 || parsed.port > 65535)) {\n return 'URI port is malformed.'\n }\n\n return undefined\n}\n\n/**\n * Checks percent syntax without decoding the represented octets. RFC 3986\n * percent-encoding is byte-oriented, so sequences such as `%FF` are valid even\n * though they are not independently valid UTF-8.\n *\n * @param {string|undefined} component\n * @returns {boolean}\n */\nfunction hasMalformedPercentEncoding (component) {\n if (component === undefined) return false\n\n let percent = component.indexOf('%')\n while (percent !== -1) {\n if (percent + 2 >= component.length || !/^[\\da-f]{2}$/iu.test(component.slice(percent + 1, percent + 3))) {\n return true\n }\n percent = component.indexOf('%', percent + 3)\n }\n\n return false\n}\n\n/**\n * Whether the host is a bracketed IP literal (RFC 3986 `IP-literal`).\n * An unterminated `[` is not a literal, so it must still be validated as a\n * reg-name instead of being waved through as an IP.\n *\n * @param {string} host\n * @returns {boolean}\n */\nfunction isIPLiteral (host) {\n return host[0] === '[' && host[host.length - 1] === ']'\n}\n\n/**\n * @param {RegExpMatchArray} matches\n * @returns {boolean}\n */\nfunction hasMalformedComponentPercentEncoding (matches) {\n // Bracketed IP literals use a raw \"%\" as the zone separator for historical\n // compatibility. Their parsing is intentionally left to normalizeIPv6.\n const host = matches[4]\n return hasMalformedPercentEncoding(matches[3]) ||\n (host !== undefined && !isIPLiteral(host) && hasMalformedPercentEncoding(host)) ||\n hasMalformedPercentEncoding(matches[6]) ||\n hasMalformedPercentEncoding(matches[7]) ||\n hasMalformedPercentEncoding(matches[8])\n}\n\n/**\n * @param {import('./types/index').URIComponent} parsed\n * @param {import('./types/index').Options} options\n * @param {{ domainHost?: boolean, unicodeSupport?: boolean }|undefined} schemeHandler\n * @param {boolean} isIP\n * @returns {boolean} whether host conversion failed\n */\nfunction canonicalizeHost (parsed, options, schemeHandler, isIP) {\n if (\n !options.unicodeSupport &&\n (!schemeHandler || !schemeHandler.unicodeSupport) &&\n parsed.host &&\n !isIPLiteral(parsed.host) &&\n (options.domainHost || (schemeHandler && schemeHandler.domainHost)) &&\n isIP === false &&\n nonSimpleDomain(parsed.host)\n ) {\n try {\n parsed.host = new URL('http://' + parsed.host).hostname\n } catch (e) {\n parsed.error = parsed.error || \"Host's domain name can not be converted to ASCII: \" + e\n return true\n }\n }\n return false\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {{ parsed: import('./types/index').URIComponent, malformedAuthorityOrPort: boolean, malformedPercentEncoding: boolean, malformedSchemeSpecific: boolean, malformedHost: boolean, malformedScheme: boolean }}\n */\nfunction parseWithStatus (uri, opts) {\n const options = Object.assign({}, opts)\n /** @type {import('./types/index').URIComponent} */\n const parsed = {\n scheme: undefined,\n userinfo: undefined,\n host: '',\n port: undefined,\n path: '',\n query: undefined,\n fragment: undefined\n }\n\n let malformedAuthorityOrPort = false\n let malformedPercentEncoding = false\n let malformedSchemeSpecific = false\n let malformedHost = false\n let malformedIPLiteral = false\n let malformedScheme = false\n\n let isIP = false\n if (options.reference === 'suffix') {\n if (options.scheme) {\n uri = options.scheme + ':' + uri\n } else {\n uri = '//' + uri\n }\n }\n\n // A literal backslash (U+005C) is not a valid RFC 3986 URI character and is\n // not an authority delimiter. Reject it in the authority rather than\n // rewriting it: normalizing \"\\\" -> \"/\" (WHATWG error recovery) could silently\n // change the resource identified by an otherwise-invalid input, and lets \"\\\"\n // act as a host delimiter here while Node's native URL parses a different\n // host (SSRF / redirect / origin-allowlist bypass). Percent-encoded %5C is\n // untouched and remains valid encoded data.\n const authorityMatch = uri.match(AUTHORITY_PREFIX)\n if (authorityMatch !== null && authorityMatch[1].indexOf('\\\\') !== -1) {\n parsed.error = 'URI authority must not contain a literal backslash.'\n malformedAuthorityOrPort = true\n }\n\n // Reject a malformed or whitespace-smuggled authority introducer. fast-uri\n // only recognizes a literal \"//\"; anything else in the leading separator run\n // (a backslash, or a \"//\" that appears only after removing the TAB/LF/CR that\n // Node strips) means the authority fast-uri parses differs from the one Node's\n // URL resolves. Reject rather than rewrite, mirroring the literal-backslash\n // guard above. Percent-encoded forms (%5C, %09) are untouched, valid data.\n const introducerMatch = uri.match(AUTHORITY_INTRODUCER_REGION)\n if (introducerMatch !== null) {\n const region = introducerMatch[1]\n const normalizedRegion = region.replace(/[\\t\\n\\r]/g, '')\n // Two or more leading separators introduce an authority.\n if (normalizedRegion.length >= 2) {\n if (normalizedRegion.slice(0, 2) !== '//') {\n parsed.error = parsed.error || 'URI authority must not contain a literal backslash.'\n malformedAuthorityOrPort = true\n } else if (region.length !== normalizedRegion.length) {\n parsed.error = parsed.error || 'URI authority introducer must not contain whitespace.'\n malformedAuthorityOrPort = true\n }\n }\n }\n\n const matches = uri.match(URI_PARSE)\n\n if (matches) {\n // store each component\n parsed.scheme = matches[1]\n parsed.userinfo = matches[3]\n parsed.host = matches[4]\n parsed.port = parseInt(matches[5], 10)\n parsed.path = matches[6] || ''\n parsed.query = matches[7]\n parsed.fragment = matches[8]\n\n if (parsed.scheme !== undefined) {\n const decodedScheme = unescape(parsed.scheme)\n if (VALID_SCHEME.test(decodedScheme)) {\n parsed.scheme = decodedScheme.toLowerCase()\n } else {\n parsed.error = parsed.error || MALFORMED_SCHEME_ERROR\n malformedScheme = true\n }\n }\n\n malformedPercentEncoding = hasMalformedComponentPercentEncoding(matches)\n if (malformedPercentEncoding) {\n parsed.error = parsed.error || 'URI contains malformed percent-encoding.'\n }\n\n // fix port number\n if (isNaN(parsed.port)) {\n parsed.port = matches[5]\n }\n\n const parseError = getParseError(parsed, matches)\n if (parseError !== undefined) {\n parsed.error = parsed.error || parseError\n malformedAuthorityOrPort = true\n }\n\n if (parsed.host) {\n const ipv4result = isIPv4(parsed.host)\n if (ipv4result === false) {\n const bracketedIPLiteral = isIPLiteral(parsed.host)\n const hasIPLiteralBracket = parsed.host.indexOf('[') !== -1 || parsed.host.indexOf(']') !== -1\n const ipv6result = normalizeIPv6(parsed.host)\n isIP = ipv6result.isIPV6 || ipv6result.isIPVFuture === true\n malformedIPLiteral = hasIPLiteralBracket && (!bracketedIPLiteral || ipv6result.error === true)\n parsed.host = isIP ? ipv6result.host : ipv6result.host.toLowerCase()\n\n if (malformedIPLiteral) {\n parsed.error = parsed.error || 'URI host is malformed.'\n malformedAuthorityOrPort = true\n }\n } else {\n isIP = true\n }\n }\n if (parsed.scheme === undefined && parsed.userinfo === undefined && parsed.host === undefined && parsed.port === undefined && parsed.query === undefined && !parsed.path) {\n parsed.reference = 'same-document'\n } else if (parsed.scheme === undefined) {\n parsed.reference = 'relative'\n } else if (parsed.fragment === undefined) {\n parsed.reference = 'absolute'\n } else {\n parsed.reference = 'uri'\n }\n\n // check for reference errors\n if (options.reference && options.reference !== 'suffix' && options.reference !== parsed.reference) {\n parsed.error = parsed.error || 'URI is not a ' + options.reference + ' reference.'\n }\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme)\n\n // convert Unicode IDN -> ASCII IDN when the effective scheme uses domain hosts\n if (!malformedIPLiteral) {\n malformedHost = canonicalizeHost(parsed, options, schemeHandler, isIP)\n }\n\n if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {\n if (uri.indexOf('%') !== -1) {\n if (parsed.host !== undefined && !malformedIPLiteral) {\n const host = isIP ? parsed.host : normalizePercentEncoding(parsed.host, true)\n parsed.host = reescapeHostDelimiters(host, isIP)\n }\n }\n if (parsed.path) {\n parsed.path = normalizePathEncoding(parsed.path)\n }\n if (parsed.query) {\n parsed.query = normalizeQueryFragmentEncoding(parsed.query)\n }\n if (parsed.fragment) {\n parsed.fragment = normalizeQueryFragmentEncoding(parsed.fragment)\n }\n }\n\n // perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(parsed, options)\n if (schemeHandler === SCHEMES.urn && parsed.nid === undefined) {\n malformedSchemeSpecific = true\n }\n }\n } else {\n parsed.error = parsed.error || 'URI can not be parsed.'\n }\n return { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme }\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns\n */\nfunction parse (uri, opts) {\n return parseWithStatus(uri, opts).parsed\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {string}\n */\nfunction normalizeString (uri, opts) {\n return normalizeStringWithStatus(uri, opts).normalized\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {{ normalized: string, malformedAuthorityOrPort: boolean, malformedPercentEncoding: boolean, malformedSchemeSpecific: boolean, malformedHost: boolean, malformedScheme: boolean }}\n */\nfunction normalizeStringWithStatus (uri, opts) {\n const { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = parseWithStatus(uri, opts)\n return {\n normalized: malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? uri : serialize(parsed, opts),\n malformedAuthorityOrPort,\n malformedPercentEncoding,\n malformedSchemeSpecific,\n malformedHost,\n malformedScheme\n }\n}\n\n/**\n * @param {import ('./types/index').URIComponent|string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {string|undefined}\n */\nfunction normalizeComparableURI (uri, opts) {\n if (typeof uri !== 'string' && typeof uri !== 'object') {\n return undefined\n }\n\n let value\n try {\n value = typeof uri === 'string' ? uri : serialize(uri, opts)\n } catch {\n return undefined\n }\n const { normalized, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = normalizeStringWithStatus(value, opts)\n return malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? undefined : normalized\n}\n\nconst fastUri = {\n SCHEMES,\n normalize,\n resolve,\n resolveComponent,\n equal,\n serialize,\n parse\n}\n\nmodule.exports = fastUri\nmodule.exports.default = fastUri\nmodule.exports.fastUri = fastUri\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst uri = require(\"fast-uri\");\nuri.code = 'require(\"ajv/dist/runtime/uri\").default';\nexports.default = uri;\n//# sourceMappingURL=uri.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nconst validation_error_1 = require(\"./runtime/validation_error\");\nconst ref_error_1 = require(\"./compile/ref_error\");\nconst rules_1 = require(\"./compile/rules\");\nconst compile_1 = require(\"./compile\");\nconst codegen_2 = require(\"./compile/codegen\");\nconst resolve_1 = require(\"./compile/resolve\");\nconst dataType_1 = require(\"./compile/validate/dataType\");\nconst util_1 = require(\"./compile/util\");\nconst $dataRefSchema = require(\"./refs/data.json\");\nconst uri_1 = require(\"./runtime/uri\");\nconst defaultRegExp = (str, flags) => new RegExp(str, flags);\ndefaultRegExp.code = \"new RegExp\";\nconst META_IGNORE_OPTIONS = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"];\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n]);\nconst removedOptions = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n};\nconst deprecatedOptions = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n};\nconst MAX_EXPRESSION = 200;\n// eslint-disable-next-line complexity\nfunction requiredOptions(o) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;\n const s = o.strict;\n const _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize;\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0;\n const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp;\n const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default;\n return {\n strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true,\n strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true,\n strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : \"log\",\n strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : \"log\",\n strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false,\n code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp },\n loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION,\n loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION,\n meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true,\n messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true,\n inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true,\n schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : \"$id\",\n addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true,\n validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true,\n validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true,\n unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true,\n int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true,\n uriResolver: uriResolver,\n };\n}\nclass Ajv {\n constructor(opts = {}) {\n this.schemas = {};\n this.refs = {};\n this.formats = Object.create(null);\n this._compilations = new Set();\n this._loading = {};\n this._cache = new Map();\n opts = this.opts = { ...opts, ...requiredOptions(opts) };\n const { es5, lines } = this.opts.code;\n this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines });\n this.logger = getLogger(opts.logger);\n const formatOpt = opts.validateFormats;\n opts.validateFormats = false;\n this.RULES = (0, rules_1.getRules)();\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\");\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\");\n this._metaOpts = getMetaSchemaOptions.call(this);\n if (opts.formats)\n addInitialFormats.call(this);\n this._addVocabularies();\n this._addDefaultMetaSchema();\n if (opts.keywords)\n addInitialKeywords.call(this, opts.keywords);\n if (typeof opts.meta == \"object\")\n this.addMetaSchema(opts.meta);\n addInitialSchemas.call(this);\n opts.validateFormats = formatOpt;\n }\n _addVocabularies() {\n this.addKeyword(\"$async\");\n }\n _addDefaultMetaSchema() {\n const { $data, meta, schemaId } = this.opts;\n let _dataRefSchema = $dataRefSchema;\n if (schemaId === \"id\") {\n _dataRefSchema = { ...$dataRefSchema };\n _dataRefSchema.id = _dataRefSchema.$id;\n delete _dataRefSchema.$id;\n }\n if (meta && $data)\n this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false);\n }\n defaultMeta() {\n const { meta, schemaId } = this.opts;\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined);\n }\n validate(schemaKeyRef, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data // to be validated\n ) {\n let v;\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema(schemaKeyRef);\n if (!v)\n throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`);\n }\n else {\n v = this.compile(schemaKeyRef);\n }\n const valid = v(data);\n if (!(\"$async\" in v))\n this.errors = v.errors;\n return valid;\n }\n compile(schema, _meta) {\n const sch = this._addSchema(schema, _meta);\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n compileAsync(schema, meta) {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\");\n }\n const { loadSchema } = this.opts;\n return runCompileAsync.call(this, schema, meta);\n async function runCompileAsync(_schema, _meta) {\n await loadMetaSchema.call(this, _schema.$schema);\n const sch = this._addSchema(_schema, _meta);\n return sch.validate || _compileAsync.call(this, sch);\n }\n async function loadMetaSchema($ref) {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, { $ref }, true);\n }\n }\n async function _compileAsync(sch) {\n try {\n return this._compileSchemaEnv(sch);\n }\n catch (e) {\n if (!(e instanceof ref_error_1.default))\n throw e;\n checkLoaded.call(this, e);\n await loadMissingSchema.call(this, e.missingSchema);\n return _compileAsync.call(this, sch);\n }\n }\n function checkLoaded({ missingSchema: ref, missingRef }) {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`);\n }\n }\n async function loadMissingSchema(ref) {\n const _schema = await _loadSchema.call(this, ref);\n if (!this.refs[ref])\n await loadMetaSchema.call(this, _schema.$schema);\n if (!this.refs[ref])\n this.addSchema(_schema, ref, meta);\n }\n async function _loadSchema(ref) {\n const p = this._loading[ref];\n if (p)\n return p;\n try {\n return await (this._loading[ref] = loadSchema(ref));\n }\n finally {\n delete this._loading[ref];\n }\n }\n }\n // Adds schema to the instance\n addSchema(schema, // If array is passed, `key` will be ignored\n key, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ) {\n if (Array.isArray(schema)) {\n for (const sch of schema)\n this.addSchema(sch, undefined, _meta, _validateSchema);\n return this;\n }\n let id;\n if (typeof schema === \"object\") {\n const { schemaId } = this.opts;\n id = schema[schemaId];\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`);\n }\n }\n key = (0, resolve_1.normalizeId)(key || id);\n this._checkUnique(key);\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true);\n return this;\n }\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(schema, key, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ) {\n this.addSchema(schema, key, true, _validateSchema);\n return this;\n }\n // Validate schema against its meta-schema\n validateSchema(schema, throwOrLogError) {\n if (typeof schema == \"boolean\")\n return true;\n let $schema;\n $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\");\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta();\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\");\n this.errors = null;\n return true;\n }\n const valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText();\n if (this.opts.validateSchema === \"log\")\n this.logger.error(message);\n else\n throw new Error(message);\n }\n return valid;\n }\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema(keyRef) {\n let sch;\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\")\n keyRef = sch;\n if (sch === undefined) {\n const { schemaId } = this.opts;\n const root = new compile_1.SchemaEnv({ schema: {}, schemaId });\n sch = compile_1.resolveSchema.call(this, root, keyRef);\n if (!sch)\n return;\n this.refs[keyRef] = sch;\n }\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef);\n this._removeAllSchemas(this.refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas);\n this._removeAllSchemas(this.refs);\n this._cache.clear();\n return this;\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef);\n if (typeof sch == \"object\")\n this._cache.delete(sch.schema);\n delete this.schemas[schemaKeyRef];\n delete this.refs[schemaKeyRef];\n return this;\n }\n case \"object\": {\n const cacheKey = schemaKeyRef;\n this._cache.delete(cacheKey);\n let id = schemaKeyRef[this.opts.schemaId];\n if (id) {\n id = (0, resolve_1.normalizeId)(id);\n delete this.schemas[id];\n delete this.refs[id];\n }\n return this;\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\");\n }\n }\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions) {\n for (const def of definitions)\n this.addKeyword(def);\n return this;\n }\n addKeyword(kwdOrDef, def // deprecated\n ) {\n let keyword;\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef;\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\");\n def.keyword = keyword;\n }\n }\n else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef;\n keyword = def.keyword;\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\");\n }\n }\n else {\n throw new Error(\"invalid addKeywords parameters\");\n }\n checkKeyword.call(this, keyword, def);\n if (!def) {\n (0, util_1.eachItem)(keyword, (kwd) => addRule.call(this, kwd));\n return this;\n }\n keywordMetaschema.call(this, def);\n const definition = {\n ...def,\n type: (0, dataType_1.getJSONTypes)(def.type),\n schemaType: (0, dataType_1.getJSONTypes)(def.schemaType),\n };\n (0, util_1.eachItem)(keyword, definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t)));\n return this;\n }\n getKeyword(keyword) {\n const rule = this.RULES.all[keyword];\n return typeof rule == \"object\" ? rule.definition : !!rule;\n }\n // Remove keyword\n removeKeyword(keyword) {\n // TODO return type should be Ajv\n const { RULES } = this;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword);\n if (i >= 0)\n group.rules.splice(i, 1);\n }\n return this;\n }\n // Add format\n addFormat(name, format) {\n if (typeof format == \"string\")\n format = new RegExp(format);\n this.formats[name] = format;\n return this;\n }\n errorsText(errors = this.errors, // optional array of validation errors\n { separator = \", \", dataVar = \"data\" } = {} // optional options with properties `separator` and `dataVar`\n ) {\n if (!errors || errors.length === 0)\n return \"No errors\";\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg);\n }\n $dataMetaSchema(metaSchema, keywordsJsonPointers) {\n const rules = this.RULES.all;\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1); // first segment is an empty string\n let keywords = metaSchema;\n for (const seg of segments)\n keywords = keywords[seg];\n for (const key in rules) {\n const rule = rules[key];\n if (typeof rule != \"object\")\n continue;\n const { $data } = rule.definition;\n const schema = keywords[key];\n if ($data && schema)\n keywords[key] = schemaOrData(schema);\n }\n }\n return metaSchema;\n }\n _removeAllSchemas(schemas, regex) {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef];\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef];\n }\n else if (sch && !sch.meta) {\n this._cache.delete(sch.schema);\n delete schemas[keyRef];\n }\n }\n }\n }\n _addSchema(schema, meta, baseId, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) {\n let id;\n const { schemaId } = this.opts;\n if (typeof schema == \"object\") {\n id = schema[schemaId];\n }\n else {\n if (this.opts.jtd)\n throw new Error(\"schema must be object\");\n else if (typeof schema != \"boolean\")\n throw new Error(\"schema must be object or boolean\");\n }\n let sch = this._cache.get(schema);\n if (sch !== undefined)\n return sch;\n baseId = (0, resolve_1.normalizeId)(id || baseId);\n const localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId);\n sch = new compile_1.SchemaEnv({ schema, schemaId, meta, baseId, localRefs });\n this._cache.set(sch.schema, sch);\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId)\n this._checkUnique(baseId);\n this.refs[baseId] = sch;\n }\n if (validateSchema)\n this.validateSchema(schema, true);\n return sch;\n }\n _checkUnique(id) {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`);\n }\n }\n _compileSchemaEnv(sch) {\n if (sch.meta)\n this._compileMetaSchema(sch);\n else\n compile_1.compileSchema.call(this, sch);\n /* istanbul ignore if */\n if (!sch.validate)\n throw new Error(\"ajv implementation error\");\n return sch.validate;\n }\n _compileMetaSchema(sch) {\n const currentOpts = this.opts;\n this.opts = this._metaOpts;\n try {\n compile_1.compileSchema.call(this, sch);\n }\n finally {\n this.opts = currentOpts;\n }\n }\n}\nAjv.ValidationError = validation_error_1.default;\nAjv.MissingRefError = ref_error_1.default;\nexports.default = Ajv;\nfunction checkOptions(checkOpts, options, msg, log = \"error\") {\n for (const key in checkOpts) {\n const opt = key;\n if (opt in options)\n this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`);\n }\n}\nfunction getSchEnv(keyRef) {\n keyRef = (0, resolve_1.normalizeId)(keyRef); // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef];\n}\nfunction addInitialSchemas() {\n const optsSchemas = this.opts.schemas;\n if (!optsSchemas)\n return;\n if (Array.isArray(optsSchemas))\n this.addSchema(optsSchemas);\n else\n for (const key in optsSchemas)\n this.addSchema(optsSchemas[key], key);\n}\nfunction addInitialFormats() {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name];\n if (format)\n this.addFormat(name, format);\n }\n}\nfunction addInitialKeywords(defs) {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs);\n return;\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\");\n for (const keyword in defs) {\n const def = defs[keyword];\n if (!def.keyword)\n def.keyword = keyword;\n this.addKeyword(def);\n }\n}\nfunction getMetaSchemaOptions() {\n const metaOpts = { ...this.opts };\n for (const opt of META_IGNORE_OPTIONS)\n delete metaOpts[opt];\n return metaOpts;\n}\nconst noLogs = { log() { }, warn() { }, error() { } };\nfunction getLogger(logger) {\n if (logger === false)\n return noLogs;\n if (logger === undefined)\n return console;\n if (logger.log && logger.warn && logger.error)\n return logger;\n throw new Error(\"logger must implement log, warn and error methods\");\n}\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i;\nfunction checkKeyword(keyword, def) {\n const { RULES } = this;\n (0, util_1.eachItem)(keyword, (kwd) => {\n if (RULES.keywords[kwd])\n throw new Error(`Keyword ${kwd} is already defined`);\n if (!KEYWORD_NAME.test(kwd))\n throw new Error(`Keyword ${kwd} has invalid name`);\n });\n if (!def)\n return;\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function');\n }\n}\nfunction addRule(keyword, definition, dataType) {\n var _a;\n const post = definition === null || definition === void 0 ? void 0 : definition.post;\n if (dataType && post)\n throw new Error('keyword with \"post\" flag cannot have \"type\"');\n const { RULES } = this;\n let ruleGroup = post ? RULES.post : RULES.rules.find(({ type: t }) => t === dataType);\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.rules.push(ruleGroup);\n }\n RULES.keywords[keyword] = true;\n if (!definition)\n return;\n const rule = {\n keyword,\n definition: {\n ...definition,\n type: (0, dataType_1.getJSONTypes)(definition.type),\n schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType),\n },\n };\n if (definition.before)\n addBeforeRule.call(this, ruleGroup, rule, definition.before);\n else\n ruleGroup.rules.push(rule);\n RULES.all[keyword] = rule;\n (_a = definition.implements) === null || _a === void 0 ? void 0 : _a.forEach((kwd) => this.addKeyword(kwd));\n}\nfunction addBeforeRule(ruleGroup, rule, before) {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before);\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule);\n }\n else {\n ruleGroup.rules.push(rule);\n this.logger.warn(`rule ${before} is not defined`);\n }\n}\nfunction keywordMetaschema(def) {\n let { metaSchema } = def;\n if (metaSchema === undefined)\n return;\n if (def.$data && this.opts.$data)\n metaSchema = schemaOrData(metaSchema);\n def.validateSchema = this.compile(metaSchema, true);\n}\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n};\nfunction schemaOrData(schema) {\n return { anyOf: [schema, $dataRef] };\n}\n//# sourceMappingURL=core.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst def = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID');\n },\n};\nexports.default = def;\n//# sourceMappingURL=id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callRef = exports.getValidate = void 0;\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst compile_1 = require(\"../../compile\");\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt) {\n const { gen, schema: $ref, it } = cxt;\n const { baseId, schemaEnv: env, validateName, opts, self } = it;\n const { root } = env;\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId)\n return callRootRef();\n const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref);\n if (schOrEnv === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref);\n if (schOrEnv instanceof compile_1.SchemaEnv)\n return callValidate(schOrEnv);\n return inlineRefSchema(schOrEnv);\n function callRootRef() {\n if (env === root)\n return callRef(cxt, validateName, env, env.$async);\n const rootName = gen.scopeValue(\"root\", { ref: root });\n return callRef(cxt, (0, codegen_1._) `${rootName}.validate`, root, root.$async);\n }\n function callValidate(sch) {\n const v = getValidate(cxt, sch);\n callRef(cxt, v, sch, sch.$async);\n }\n function inlineRefSchema(sch) {\n const schName = gen.scopeValue(\"schema\", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch });\n const valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({\n schema: sch,\n dataTypes: [],\n schemaPath: codegen_1.nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n }, valid);\n cxt.mergeEvaluated(schCxt);\n cxt.ok(valid);\n }\n },\n};\nfunction getValidate(cxt, sch) {\n const { gen } = cxt;\n return sch.validate\n ? gen.scopeValue(\"validate\", { ref: sch.validate })\n : (0, codegen_1._) `${gen.scopeValue(\"wrapper\", { ref: sch })}.validate`;\n}\nexports.getValidate = getValidate;\nfunction callRef(cxt, v, sch, $async) {\n const { gen, it } = cxt;\n const { allErrors, schemaEnv: env, opts } = it;\n const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil;\n if ($async)\n callAsyncRef();\n else\n callSyncRef();\n function callAsyncRef() {\n if (!env.$async)\n throw new Error(\"async schema referenced by sync schema\");\n const valid = gen.let(\"valid\");\n gen.try(() => {\n gen.code((0, codegen_1._) `await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`);\n addEvaluatedFrom(v); // TODO will not work with async, it has to be returned with the result\n if (!allErrors)\n gen.assign(valid, true);\n }, (e) => {\n gen.if((0, codegen_1._) `!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e));\n addErrorsFrom(e);\n if (!allErrors)\n gen.assign(valid, false);\n });\n cxt.ok(valid);\n }\n function callSyncRef() {\n cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v));\n }\n function addErrorsFrom(source) {\n const errs = (0, codegen_1._) `${source}.errors`;\n gen.assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`); // TODO tagged\n gen.assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n }\n function addEvaluatedFrom(source) {\n var _a;\n if (!it.opts.unevaluated)\n return;\n const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated;\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props);\n }\n }\n else {\n const props = gen.var(\"props\", (0, codegen_1._) `${source}.evaluated.props`);\n it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name);\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items);\n }\n }\n else {\n const items = gen.var(\"items\", (0, codegen_1._) `${source}.evaluated.items`);\n it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name);\n }\n }\n }\n}\nexports.callRef = callRef;\nexports.default = def;\n//# sourceMappingURL=ref.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst id_1 = require(\"./id\");\nconst ref_1 = require(\"./ref\");\nconst core = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n { keyword: \"$comment\" },\n \"definitions\",\n id_1.default,\n ref_1.default,\n];\nexports.default = core;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n maximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n minimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n exclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n exclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => (0, codegen_1.str) `must be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n cxt.fail$data((0, codegen_1._) `${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitNumber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must be multiple of ${schemaCode}`,\n params: ({ schemaCode }) => (0, codegen_1._) `{multipleOf: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, it } = cxt;\n // const bdt = bad$DataType(schemaCode, def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision;\n const res = gen.let(\"res\");\n const invalid = prec\n ? (0, codegen_1._) `Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : (0, codegen_1._) `${res} !== parseInt(${res})`;\n cxt.fail$data((0, codegen_1._) `(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=multipleOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nfunction ucs2length(str) {\n const len = str.length;\n let length = 0;\n let pos = 0;\n let value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xfc00) === 0xdc00)\n pos++; // low surrogate\n }\n }\n return length;\n}\nexports.default = ucs2length;\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default';\n//# sourceMappingURL=ucs2length.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst ucs2length_1 = require(\"../../runtime/ucs2length\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} characters`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode, it } = cxt;\n const op = keyword === \"maxLength\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n const len = it.opts.unicode === false ? (0, codegen_1._) `${data}.length` : (0, codegen_1._) `${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`;\n cxt.fail$data((0, codegen_1._) `${len} ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitLength.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match pattern \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{pattern: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n const u = it.opts.unicodeRegExp ? \"u\" : \"\";\n if ($data) {\n const { regExp } = it.opts.code;\n const regExpCode = regExp.code === \"new RegExp\" ? (0, codegen_1._) `new RegExp` : (0, util_1.useFunc)(gen, regExp);\n const valid = gen.let(\"valid\");\n gen.try(() => gen.assign(valid, (0, codegen_1._) `${regExpCode}(${schemaCode}, ${u}).test(${data})`), () => gen.assign(valid, false));\n cxt.fail$data((0, codegen_1._) `!${valid}`);\n }\n else {\n const regExp = (0, code_1.usePattern)(cxt, schema);\n cxt.fail$data((0, codegen_1._) `!${regExp}.test(${data})`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=pattern.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} properties`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxProperties\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `Object.keys(${data}).length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { missingProperty } }) => (0, codegen_1.str) `must have required property '${missingProperty}'`,\n params: ({ params: { missingProperty } }) => (0, codegen_1._) `{missingProperty: ${missingProperty}}`,\n};\nconst def = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, schema, schemaCode, data, $data, it } = cxt;\n const { opts } = it;\n if (!$data && schema.length === 0)\n return;\n const useLoop = schema.length >= opts.loopRequired;\n if (it.allErrors)\n allErrorsMode();\n else\n exitOnErrorMode();\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties;\n const { definedProperties } = cxt.it;\n for (const requiredKey of schema) {\n if ((props === null || props === void 0 ? void 0 : props[requiredKey]) === undefined && !definedProperties.has(requiredKey)) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictRequired);\n }\n }\n }\n function allErrorsMode() {\n if (useLoop || $data) {\n cxt.block$data(codegen_1.nil, loopAllRequired);\n }\n else {\n for (const prop of schema) {\n (0, code_1.checkReportMissingProp)(cxt, prop);\n }\n }\n }\n function exitOnErrorMode() {\n const missing = gen.let(\"missing\");\n if (useLoop || $data) {\n const valid = gen.let(\"valid\", true);\n cxt.block$data(valid, () => loopUntilMissing(missing, valid));\n cxt.ok(valid);\n }\n else {\n gen.if((0, code_1.checkMissingProp)(cxt, schema, missing));\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n function loopAllRequired() {\n gen.forOf(\"prop\", schemaCode, (prop) => {\n cxt.setParams({ missingProperty: prop });\n gen.if((0, code_1.noPropertyInData)(gen, data, prop, opts.ownProperties), () => cxt.error());\n });\n }\n function loopUntilMissing(missing, valid) {\n cxt.setParams({ missingProperty: missing });\n gen.forOf(missing, schemaCode, () => {\n gen.assign(valid, (0, code_1.propertyInData)(gen, data, missing, opts.ownProperties));\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error();\n gen.break();\n });\n }, codegen_1.nil);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=required.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} items`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxItems\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `${data}.length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/ajv-validator/ajv/issues/889\nconst equal = require(\"fast-deep-equal\");\nequal.code = 'require(\"ajv/dist/runtime/equal\").default';\nexports.default = equal;\n//# sourceMappingURL=equal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dataType_1 = require(\"../../compile/validate/dataType\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: ({ params: { i, j } }) => (0, codegen_1.str) `must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({ params: { i, j } }) => (0, codegen_1._) `{i: ${i}, j: ${j}}`,\n};\nconst def = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;\n if (!$data && !schema)\n return;\n const valid = gen.let(\"valid\");\n const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : [];\n cxt.block$data(valid, validateUniqueItems, (0, codegen_1._) `${schemaCode} === false`);\n cxt.ok(valid);\n function validateUniqueItems() {\n const i = gen.let(\"i\", (0, codegen_1._) `${data}.length`);\n const j = gen.let(\"j\");\n cxt.setParams({ i, j });\n gen.assign(valid, true);\n gen.if((0, codegen_1._) `${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));\n }\n function canOptimize() {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\");\n }\n function loopN(i, j) {\n const item = gen.name(\"item\");\n const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong);\n const indices = gen.const(\"indices\", (0, codegen_1._) `{}`);\n gen.for((0, codegen_1._) `;${i}--;`, () => {\n gen.let(item, (0, codegen_1._) `${data}[${i}]`);\n gen.if(wrongType, (0, codegen_1._) `continue`);\n if (itemTypes.length > 1)\n gen.if((0, codegen_1._) `typeof ${item} == \"string\"`, (0, codegen_1._) `${item} += \"_\"`);\n gen\n .if((0, codegen_1._) `typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, (0, codegen_1._) `${indices}[${item}]`);\n cxt.error();\n gen.assign(valid, false).break();\n })\n .code((0, codegen_1._) `${indices}[${item}] = ${i}`);\n });\n }\n function loopN2(i, j) {\n const eql = (0, util_1.useFunc)(gen, equal_1.default);\n const outer = gen.name(\"outer\");\n gen.label(outer).for((0, codegen_1._) `;${i}--;`, () => gen.for((0, codegen_1._) `${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._) `${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error();\n gen.assign(valid, false).break(outer);\n })));\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=uniqueItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to constant\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValue: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schemaCode, schema } = cxt;\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data((0, codegen_1._) `!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`);\n }\n else {\n cxt.fail((0, codegen_1._) `${schema} !== ${data}`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=const.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to one of the allowed values\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValues: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n if (!$data && schema.length === 0)\n throw new Error(\"enum must have non-empty array\");\n const useLoop = schema.length >= it.opts.loopEnum;\n let eql;\n const getEql = () => (eql !== null && eql !== void 0 ? eql : (eql = (0, util_1.useFunc)(gen, equal_1.default)));\n let valid;\n if (useLoop || $data) {\n valid = gen.let(\"valid\");\n cxt.block$data(valid, loopEnum);\n }\n else {\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const vSchema = gen.const(\"vSchema\", schemaCode);\n valid = (0, codegen_1.or)(...schema.map((_x, i) => equalCode(vSchema, i)));\n }\n cxt.pass(valid);\n function loopEnum() {\n gen.assign(valid, false);\n gen.forOf(\"v\", schemaCode, (v) => gen.if((0, codegen_1._) `${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break()));\n }\n function equalCode(vSchema, i) {\n const sch = schema[i];\n return typeof sch === \"object\" && sch !== null\n ? (0, codegen_1._) `${getEql()}(${data}, ${vSchema}[${i}])`\n : (0, codegen_1._) `${data} === ${sch}`;\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=enum.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst limitNumber_1 = require(\"./limitNumber\");\nconst multipleOf_1 = require(\"./multipleOf\");\nconst limitLength_1 = require(\"./limitLength\");\nconst pattern_1 = require(\"./pattern\");\nconst limitProperties_1 = require(\"./limitProperties\");\nconst required_1 = require(\"./required\");\nconst limitItems_1 = require(\"./limitItems\");\nconst uniqueItems_1 = require(\"./uniqueItems\");\nconst const_1 = require(\"./const\");\nconst enum_1 = require(\"./enum\");\nconst validation = [\n // number\n limitNumber_1.default,\n multipleOf_1.default,\n // string\n limitLength_1.default,\n pattern_1.default,\n // object\n limitProperties_1.default,\n required_1.default,\n // array\n limitItems_1.default,\n uniqueItems_1.default,\n // any\n { keyword: \"type\", schemaType: [\"string\", \"array\"] },\n { keyword: \"nullable\", schemaType: \"boolean\" },\n const_1.default,\n enum_1.default,\n];\nexports.default = validation;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateAdditionalItems = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"additionalItems\",\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { parentSchema, it } = cxt;\n const { items } = parentSchema;\n if (!Array.isArray(items)) {\n (0, util_1.checkStrictMode)(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas');\n return;\n }\n validateAdditionalItems(cxt, items);\n },\n};\nfunction validateAdditionalItems(cxt, items) {\n const { gen, schema, data, keyword, it } = cxt;\n it.items = true;\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n if (schema === false) {\n cxt.setParams({ len: items.length });\n cxt.pass((0, codegen_1._) `${len} <= ${items.length}`);\n }\n else if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.var(\"valid\", (0, codegen_1._) `${len} <= ${items.length}`); // TODO var\n gen.if((0, codegen_1.not)(valid), () => validateItems(valid));\n cxt.ok(valid);\n }\n function validateItems(valid) {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid);\n if (!it.allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n });\n }\n}\nexports.validateAdditionalItems = validateAdditionalItems;\nexports.default = def;\n//# sourceMappingURL=additionalItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTuple = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt) {\n const { schema, it } = cxt;\n if (Array.isArray(schema))\n return validateTuple(cxt, \"additionalItems\", schema);\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nfunction validateTuple(cxt, extraItems, schArr = cxt.schema) {\n const { gen, parentSchema, data, keyword, it } = cxt;\n checkStrictTuple(parentSchema);\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = util_1.mergeEvaluated.items(gen, schArr.length, it.items);\n }\n const valid = gen.name(\"valid\");\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n schArr.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n gen.if((0, codegen_1._) `${len} > ${i}`, () => cxt.subschema({\n keyword,\n schemaProp: i,\n dataProp: i,\n }, valid));\n cxt.ok(valid);\n });\n function checkStrictTuple(sch) {\n const { opts, errSchemaPath } = it;\n const l = schArr.length;\n const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false);\n if (opts.strictTuples && !fullTuple) {\n const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`;\n (0, util_1.checkStrictMode)(it, msg, opts.strictTuples);\n }\n }\n}\nexports.validateTuple = validateTuple;\nexports.default = def;\n//# sourceMappingURL=items.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst items_1 = require(\"./items\");\nconst def = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => (0, items_1.validateTuple)(cxt, \"items\"),\n};\nexports.default = def;\n//# sourceMappingURL=prefixItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst additionalItems_1 = require(\"./additionalItems\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { schema, parentSchema, it } = cxt;\n const { prefixItems } = parentSchema;\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n if (prefixItems)\n (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);\n else\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nexports.default = def;\n//# sourceMappingURL=items2020.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { min, max } }) => max === undefined\n ? (0, codegen_1.str) `must contain at least ${min} valid item(s)`\n : (0, codegen_1.str) `must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({ params: { min, max } }) => max === undefined ? (0, codegen_1._) `{minContains: ${min}}` : (0, codegen_1._) `{minContains: ${min}, maxContains: ${max}}`,\n};\nconst def = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n let min;\n let max;\n const { minContains, maxContains } = parentSchema;\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains;\n max = maxContains;\n }\n else {\n min = 1;\n }\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n cxt.setParams({ min, max });\n if (max === undefined && min === 0) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`);\n return;\n }\n if (max !== undefined && min > max) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" > \"maxContains\" is always invalid`);\n cxt.fail();\n return;\n }\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n let cond = (0, codegen_1._) `${len} >= ${min}`;\n if (max !== undefined)\n cond = (0, codegen_1._) `${cond} && ${len} <= ${max}`;\n cxt.pass(cond);\n return;\n }\n it.items = true;\n const valid = gen.name(\"valid\");\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()));\n }\n else if (min === 0) {\n gen.let(valid, true);\n if (max !== undefined)\n gen.if((0, codegen_1._) `${data}.length > 0`, validateItemsWithCount);\n }\n else {\n gen.let(valid, false);\n validateItemsWithCount();\n }\n cxt.result(valid, () => cxt.reset());\n function validateItemsWithCount() {\n const schValid = gen.name(\"_valid\");\n const count = gen.let(\"count\", 0);\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));\n }\n function validateItems(_valid, block) {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword: \"contains\",\n dataProp: i,\n dataPropType: util_1.Type.Num,\n compositeRule: true,\n }, _valid);\n block();\n });\n }\n function checkLimits(count) {\n gen.code((0, codegen_1._) `${count}++`);\n if (max === undefined) {\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true).break());\n }\n else {\n gen.if((0, codegen_1._) `${count} > ${max}`, () => gen.assign(valid, false).break());\n if (min === 1)\n gen.assign(valid, true);\n else\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true));\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=contains.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nexports.error = {\n message: ({ params: { property, depsCount, deps } }) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\";\n return (0, codegen_1.str) `must have ${property_ies} ${deps} when property ${property} is present`;\n },\n params: ({ params: { property, depsCount, deps, missingProperty } }) => (0, codegen_1._) `{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n};\nconst def = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error: exports.error,\n code(cxt) {\n const [propDeps, schDeps] = splitDependencies(cxt);\n validatePropertyDeps(cxt, propDeps);\n validateSchemaDeps(cxt, schDeps);\n },\n};\nfunction splitDependencies({ schema }) {\n const propertyDeps = {};\n const schemaDeps = {};\n for (const key in schema) {\n if (key === \"__proto__\")\n continue;\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps;\n deps[key] = schema[key];\n }\n return [propertyDeps, schemaDeps];\n}\nfunction validatePropertyDeps(cxt, propertyDeps = cxt.schema) {\n const { gen, data, it } = cxt;\n if (Object.keys(propertyDeps).length === 0)\n return;\n const missing = gen.let(\"missing\");\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop];\n if (deps.length === 0)\n continue;\n const hasProperty = (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties);\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n });\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n (0, code_1.checkReportMissingProp)(cxt, depProp);\n }\n });\n }\n else {\n gen.if((0, codegen_1._) `${hasProperty} && (${(0, code_1.checkMissingProp)(cxt, deps, missing)})`);\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n}\nexports.validatePropertyDeps = validatePropertyDeps;\nfunction validateSchemaDeps(cxt, schemaDeps = cxt.schema) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n for (const prop in schemaDeps) {\n if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop]))\n continue;\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties), () => {\n const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid);\n cxt.mergeValidEvaluated(schCxt, valid);\n }, () => gen.var(valid, true) // TODO var\n );\n cxt.ok(valid);\n }\n}\nexports.validateSchemaDeps = validateSchemaDeps;\nexports.default = def;\n//# sourceMappingURL=dependencies.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"property name must be valid\",\n params: ({ params }) => (0, codegen_1._) `{propertyName: ${params.propertyName}}`,\n};\nconst def = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt) {\n const { gen, schema, data, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n const valid = gen.name(\"valid\");\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({ propertyName: key });\n cxt.subschema({\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n }, valid);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error(true);\n if (!it.allErrors)\n gen.break();\n });\n });\n cxt.ok(valid);\n },\n};\nexports.default = def;\n//# sourceMappingURL=propertyNames.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must NOT have additional properties\",\n params: ({ params }) => (0, codegen_1._) `{additionalProperty: ${params.additionalProperty}}`,\n};\nconst def = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, errsCount, it } = cxt;\n /* istanbul ignore if */\n if (!errsCount)\n throw new Error(\"ajv implementation error\");\n const { allErrors, opts } = it;\n it.props = true;\n if (opts.removeAdditional !== \"all\" && (0, util_1.alwaysValidSchema)(it, schema))\n return;\n const props = (0, code_1.allSchemaProperties)(parentSchema.properties);\n const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties);\n checkAdditionalProperties();\n cxt.ok((0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n function checkAdditionalProperties() {\n gen.forIn(\"key\", data, (key) => {\n if (!props.length && !patProps.length)\n additionalPropertyCode(key);\n else\n gen.if(isAdditional(key), () => additionalPropertyCode(key));\n });\n }\n function isAdditional(key) {\n let definedProp;\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, \"properties\");\n definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key);\n }\n else if (props.length) {\n definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._) `${key} === ${p}`));\n }\n else {\n definedProp = codegen_1.nil;\n }\n if (patProps.length) {\n definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._) `${(0, code_1.usePattern)(cxt, p)}.test(${key})`));\n }\n return (0, codegen_1.not)(definedProp);\n }\n function deleteAdditional(key) {\n gen.code((0, codegen_1._) `delete ${data}[${key}]`);\n }\n function additionalPropertyCode(key) {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key);\n return;\n }\n if (schema === false) {\n cxt.setParams({ additionalProperty: key });\n cxt.error();\n if (!allErrors)\n gen.break();\n return;\n }\n if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.name(\"valid\");\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.reset();\n deleteAdditional(key);\n });\n }\n else {\n applyAdditionalSchema(key, valid);\n if (!allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n }\n }\n function applyAdditionalSchema(key, valid, errors) {\n const subschema = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: util_1.Type.Str,\n };\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n });\n }\n cxt.subschema(subschema, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=additionalProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_1 = require(\"../../compile/validate\");\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst def = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, \"additionalProperties\"));\n }\n const allProps = (0, code_1.allSchemaProperties)(schema);\n for (const prop of allProps) {\n it.definedProperties.add(prop);\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);\n }\n const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));\n if (properties.length === 0)\n return;\n const valid = gen.name(\"valid\");\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop);\n }\n else {\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));\n applyPropertySchema(prop);\n if (!it.allErrors)\n gen.else().var(valid, true);\n gen.endIf();\n }\n cxt.it.definedProperties.add(prop);\n cxt.ok(valid);\n }\n function hasDefault(prop) {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;\n }\n function applyPropertySchema(prop) {\n cxt.subschema({\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n }, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=properties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst util_2 = require(\"../../compile/util\");\nconst def = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, data, parentSchema, it } = cxt;\n const { opts } = it;\n const patterns = (0, code_1.allSchemaProperties)(schema);\n const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));\n if (patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))) {\n return;\n }\n const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;\n const valid = gen.name(\"valid\");\n if (it.props !== true && !(it.props instanceof codegen_1.Name)) {\n it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);\n }\n const { props } = it;\n validatePatternProperties();\n function validatePatternProperties() {\n for (const pat of patterns) {\n if (checkProperties)\n checkMatchingProperties(pat);\n if (it.allErrors) {\n validateProperties(pat);\n }\n else {\n gen.var(valid, true); // TODO var\n validateProperties(pat);\n gen.if(valid);\n }\n }\n }\n function checkMatchingProperties(pat) {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);\n }\n }\n }\n function validateProperties(pat) {\n gen.forIn(\"key\", data, (key) => {\n gen.if((0, codegen_1._) `${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat);\n if (!alwaysValid) {\n cxt.subschema({\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: util_2.Type.Str,\n }, valid);\n }\n if (it.opts.unevaluated && props !== true) {\n gen.assign((0, codegen_1._) `${props}[${key}]`, true);\n }\n else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=patternProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt) {\n const { gen, schema, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n cxt.fail();\n return;\n }\n const valid = gen.name(\"valid\");\n cxt.subschema({\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, valid);\n cxt.failResult(valid, () => cxt.reset(), () => cxt.error());\n },\n error: { message: \"must NOT be valid\" },\n};\nexports.default = def;\n//# sourceMappingURL=not.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: code_1.validateUnion,\n error: { message: \"must match a schema in anyOf\" },\n};\nexports.default = def;\n//# sourceMappingURL=anyOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must match exactly one schema in oneOf\",\n params: ({ params }) => (0, codegen_1._) `{passingSchemas: ${params.passing}}`,\n};\nconst def = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n if (it.opts.discriminator && parentSchema.discriminator)\n return;\n const schArr = schema;\n const valid = gen.let(\"valid\", false);\n const passing = gen.let(\"passing\", null);\n const schValid = gen.name(\"_valid\");\n cxt.setParams({ passing });\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n gen.block(validateOneOf);\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n function validateOneOf() {\n schArr.forEach((sch, i) => {\n let schCxt;\n if ((0, util_1.alwaysValidSchema)(it, sch)) {\n gen.var(schValid, true);\n }\n else {\n schCxt = cxt.subschema({\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n }\n if (i > 0) {\n gen\n .if((0, codegen_1._) `${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, (0, codegen_1._) `[${passing}, ${i}]`)\n .else();\n }\n gen.if(schValid, () => {\n gen.assign(valid, true);\n gen.assign(passing, i);\n if (schCxt)\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=oneOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt) {\n const { gen, schema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const valid = gen.name(\"valid\");\n schema.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n const schCxt = cxt.subschema({ keyword: \"allOf\", schemaProp: i }, valid);\n cxt.ok(valid);\n cxt.mergeEvaluated(schCxt);\n });\n },\n};\nexports.default = def;\n//# sourceMappingURL=allOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params }) => (0, codegen_1.str) `must match \"${params.ifClause}\" schema`,\n params: ({ params }) => (0, codegen_1._) `{failingKeyword: ${params.ifClause}}`,\n};\nconst def = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, parentSchema, it } = cxt;\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n (0, util_1.checkStrictMode)(it, '\"if\" without \"then\" and \"else\" is ignored');\n }\n const hasThen = hasSchema(it, \"then\");\n const hasElse = hasSchema(it, \"else\");\n if (!hasThen && !hasElse)\n return;\n const valid = gen.let(\"valid\", true);\n const schValid = gen.name(\"_valid\");\n validateIf();\n cxt.reset();\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\");\n cxt.setParams({ ifClause });\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause));\n }\n else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"));\n }\n else {\n gen.if((0, codegen_1.not)(schValid), validateClause(\"else\"));\n }\n cxt.pass(valid, () => cxt.error(true));\n function validateIf() {\n const schCxt = cxt.subschema({\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, schValid);\n cxt.mergeEvaluated(schCxt);\n }\n function validateClause(keyword, ifClause) {\n return () => {\n const schCxt = cxt.subschema({ keyword }, schValid);\n gen.assign(valid, schValid);\n cxt.mergeValidEvaluated(schCxt, valid);\n if (ifClause)\n gen.assign(ifClause, (0, codegen_1._) `${keyword}`);\n else\n cxt.setParams({ ifClause: keyword });\n };\n }\n },\n};\nfunction hasSchema(it, keyword) {\n const schema = it.schema[keyword];\n return schema !== undefined && !(0, util_1.alwaysValidSchema)(it, schema);\n}\nexports.default = def;\n//# sourceMappingURL=if.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({ keyword, parentSchema, it }) {\n if (parentSchema.if === undefined)\n (0, util_1.checkStrictMode)(it, `\"${keyword}\" without \"if\" is ignored`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=thenElse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst additionalItems_1 = require(\"./additionalItems\");\nconst prefixItems_1 = require(\"./prefixItems\");\nconst items_1 = require(\"./items\");\nconst items2020_1 = require(\"./items2020\");\nconst contains_1 = require(\"./contains\");\nconst dependencies_1 = require(\"./dependencies\");\nconst propertyNames_1 = require(\"./propertyNames\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst properties_1 = require(\"./properties\");\nconst patternProperties_1 = require(\"./patternProperties\");\nconst not_1 = require(\"./not\");\nconst anyOf_1 = require(\"./anyOf\");\nconst oneOf_1 = require(\"./oneOf\");\nconst allOf_1 = require(\"./allOf\");\nconst if_1 = require(\"./if\");\nconst thenElse_1 = require(\"./thenElse\");\nfunction getApplicator(draft2020 = false) {\n const applicator = [\n // any\n not_1.default,\n anyOf_1.default,\n oneOf_1.default,\n allOf_1.default,\n if_1.default,\n thenElse_1.default,\n // object\n propertyNames_1.default,\n additionalProperties_1.default,\n dependencies_1.default,\n properties_1.default,\n patternProperties_1.default,\n ];\n // array\n if (draft2020)\n applicator.push(prefixItems_1.default, items2020_1.default);\n else\n applicator.push(additionalItems_1.default, items_1.default);\n applicator.push(contains_1.default);\n return applicator;\n}\nexports.default = getApplicator;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match format \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{format: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt, ruleType) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n const { opts, errSchemaPath, schemaEnv, self } = it;\n if (!opts.validateFormats)\n return;\n if ($data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fDef = gen.const(\"fDef\", (0, codegen_1._) `${fmts}[${schemaCode}]`);\n const fType = gen.let(\"fType\");\n const format = gen.let(\"format\");\n // TODO simplify\n gen.if((0, codegen_1._) `typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._) `${fDef}.type || \"string\"`).assign(format, (0, codegen_1._) `${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._) `\"string\"`).assign(format, fDef));\n cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt()));\n function unknownFmt() {\n if (opts.strictSchema === false)\n return codegen_1.nil;\n return (0, codegen_1._) `${schemaCode} && !${format}`;\n }\n function invalidFmt() {\n const callFormat = schemaEnv.$async\n ? (0, codegen_1._) `(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : (0, codegen_1._) `${format}(${data})`;\n const validData = (0, codegen_1._) `(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`;\n return (0, codegen_1._) `${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`;\n }\n }\n function validateFormat() {\n const formatDef = self.formats[schema];\n if (!formatDef) {\n unknownFormat();\n return;\n }\n if (formatDef === true)\n return;\n const [fmtType, format, fmtRef] = getFormat(formatDef);\n if (fmtType === ruleType)\n cxt.pass(validCondition());\n function unknownFormat() {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg());\n return;\n }\n throw new Error(unknownMsg());\n function unknownMsg() {\n return `unknown format \"${schema}\" ignored in schema at path \"${errSchemaPath}\"`;\n }\n }\n function getFormat(fmtDef) {\n const code = fmtDef instanceof RegExp\n ? (0, codegen_1.regexpCode)(fmtDef)\n : opts.code.formats\n ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(schema)}`\n : undefined;\n const fmt = gen.scopeValue(\"formats\", { key: schema, ref: fmtDef, code });\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, (0, codegen_1._) `${fmt}.validate`];\n }\n return [\"string\", fmtDef, fmt];\n }\n function validCondition() {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async)\n throw new Error(\"async format in sync schema\");\n return (0, codegen_1._) `await ${fmtRef}(${data})`;\n }\n return typeof format == \"function\" ? (0, codegen_1._) `${fmtRef}(${data})` : (0, codegen_1._) `${fmtRef}.test(${data})`;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=format.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst format_1 = require(\"./format\");\nconst format = [format_1.default];\nexports.default = format;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentVocabulary = exports.metadataVocabulary = void 0;\nexports.metadataVocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n];\nexports.contentVocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n];\n//# sourceMappingURL=metadata.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"./core\");\nconst validation_1 = require(\"./validation\");\nconst applicator_1 = require(\"./applicator\");\nconst format_1 = require(\"./format\");\nconst metadata_1 = require(\"./metadata\");\nconst draft7Vocabularies = [\n core_1.default,\n validation_1.default,\n (0, applicator_1.default)(),\n format_1.default,\n metadata_1.metadataVocabulary,\n metadata_1.contentVocabulary,\n];\nexports.default = draft7Vocabularies;\n//# sourceMappingURL=draft7.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiscrError = void 0;\nvar DiscrError;\n(function (DiscrError) {\n DiscrError[\"Tag\"] = \"tag\";\n DiscrError[\"Mapping\"] = \"mapping\";\n})(DiscrError || (exports.DiscrError = DiscrError = {}));\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst types_1 = require(\"../discriminator/types\");\nconst compile_1 = require(\"../../compile\");\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._) `{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n};\nconst def = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt) {\n const { gen, data, schema, parentSchema, it } = cxt;\n const { oneOf } = parentSchema;\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\");\n }\n const tagName = schema.propertyName;\n if (typeof tagName != \"string\")\n throw new Error(\"discriminator: requires propertyName\");\n if (schema.mapping)\n throw new Error(\"discriminator: mapping is not supported\");\n if (!oneOf)\n throw new Error(\"discriminator: requires oneOf keyword\");\n const valid = gen.let(\"valid\", false);\n const tag = gen.const(\"tag\", (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(tagName)}`);\n gen.if((0, codegen_1._) `typeof ${tag} == \"string\"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName }));\n cxt.ok(valid);\n function validateMapping() {\n const mapping = getMapping();\n gen.if(false);\n for (const tagValue in mapping) {\n gen.elseIf((0, codegen_1._) `${tag} === ${tagValue}`);\n gen.assign(valid, applyTagSchema(mapping[tagValue]));\n }\n gen.else();\n cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName });\n gen.endIf();\n }\n function applyTagSchema(schemaProp) {\n const _valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({ keyword: \"oneOf\", schemaProp }, _valid);\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n return _valid;\n }\n function getMapping() {\n var _a;\n const oneOfMapping = {};\n const topRequired = hasRequired(parentSchema);\n let tagRequired = true;\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i];\n if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {\n const ref = sch.$ref;\n sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref);\n if (sch instanceof compile_1.SchemaEnv)\n sch = sch.schema;\n if (sch === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, it.baseId, ref);\n }\n const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];\n if (typeof propSch != \"object\") {\n throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`);\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch));\n addMappings(propSch, i);\n }\n if (!tagRequired)\n throw new Error(`discriminator: \"${tagName}\" must be required`);\n return oneOfMapping;\n function hasRequired({ required }) {\n return Array.isArray(required) && required.includes(tagName);\n }\n function addMappings(sch, i) {\n if (sch.const) {\n addMapping(sch.const, i);\n }\n else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i);\n }\n }\n else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`);\n }\n }\n function addMapping(tagValue, i) {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`);\n }\n oneOfMapping[tagValue] = i;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0;\nconst core_1 = require(\"./core\");\nconst draft7_1 = require(\"./vocabularies/draft7\");\nconst discriminator_1 = require(\"./vocabularies/discriminator\");\nconst draft7MetaSchema = require(\"./refs/json-schema-draft-07.json\");\nconst META_SUPPORT_DATA = [\"/properties\"];\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\";\nclass Ajv extends core_1.default {\n _addVocabularies() {\n super._addVocabularies();\n draft7_1.default.forEach((v) => this.addVocabulary(v));\n if (this.opts.discriminator)\n this.addKeyword(discriminator_1.default);\n }\n _addDefaultMetaSchema() {\n super._addDefaultMetaSchema();\n if (!this.opts.meta)\n return;\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n : draft7MetaSchema;\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false);\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID;\n }\n defaultMeta() {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined));\n }\n}\nexports.Ajv = Ajv;\nmodule.exports = exports = Ajv;\nmodule.exports.Ajv = Ajv;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Ajv;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nvar validation_error_1 = require(\"./runtime/validation_error\");\nObject.defineProperty(exports, \"ValidationError\", { enumerable: true, get: function () { return validation_error_1.default; } });\nvar ref_error_1 = require(\"./compile/ref_error\");\nObject.defineProperty(exports, \"MissingRefError\", { enumerable: true, get: function () { return ref_error_1.default; } });\n//# sourceMappingURL=ajv.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatNames = exports.fastFormats = exports.fullFormats = void 0;\nfunction fmtDef(validate, compare) {\n return { validate, compare };\n}\nexports.fullFormats = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: fmtDef(date, compareDate),\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: fmtDef(time, compareTime),\n \"date-time\": fmtDef(date_time, compareDateTime),\n // duration: https://tools.ietf.org/html/rfc3339#appendix-A\n duration: /^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/,\n uri,\n \"uri-reference\": /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,\n // uri-template: https://tools.ietf.org/html/rfc6570\n \"uri-template\": /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i,\n // For the source: https://gist.github.com/dperini/729294\n // For test cases: https://mathiasbynens.be/demo/url-regex\n url: /^(?:https?|ftp):\\/\\/(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))$/i,\n regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n \"json-pointer\": /^(?:\\/(?:[^~/]|~0|~1)*)*$/,\n \"json-pointer-uri-fragment\": /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n \"relative-json-pointer\": /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/,\n // the following formats are used by the openapi specification: https://spec.openapis.org/oas/v3.0.0#data-types\n // byte: https://github.com/miguelmota/is-base64\n byte,\n // signed 32 bit integer\n int32: { type: \"number\", validate: validateInt32 },\n // signed 64 bit integer\n int64: { type: \"number\", validate: validateInt64 },\n // C-type float\n float: { type: \"number\", validate: validateNumber },\n // C-type double\n double: { type: \"number\", validate: validateNumber },\n // hint to the UI to hide input strings\n password: true,\n // unchecked string payload\n binary: true,\n};\nexports.fastFormats = {\n ...exports.fullFormats,\n date: fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/, compareDate),\n time: fmtDef(/^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i, compareTime),\n \"date-time\": fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i, compareDateTime),\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n \"uri-reference\": /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'wilful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n};\nexports.formatNames = Object.keys(exports.fullFormats);\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\nconst DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nconst DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n const matches = DATE.exec(str);\n if (!matches)\n return false;\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n return (month >= 1 &&\n month <= 12 &&\n day >= 1 &&\n day <= (month === 2 && isLeapYear(year) ? 29 : DAYS[month]));\n}\nfunction compareDate(d1, d2) {\n if (!(d1 && d2))\n return undefined;\n if (d1 > d2)\n return 1;\n if (d1 < d2)\n return -1;\n return 0;\n}\nconst TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d(?::?\\d\\d)?)?$/i;\nfunction time(str, withTimeZone) {\n const matches = TIME.exec(str);\n if (!matches)\n return false;\n const hour = +matches[1];\n const minute = +matches[2];\n const second = +matches[3];\n const timeZone = matches[5];\n return (((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour === 23 && minute === 59 && second === 60)) &&\n (!withTimeZone || timeZone !== \"\"));\n}\nfunction compareTime(t1, t2) {\n if (!(t1 && t2))\n return undefined;\n const a1 = TIME.exec(t1);\n const a2 = TIME.exec(t2);\n if (!(a1 && a2))\n return undefined;\n t1 = a1[1] + a1[2] + a1[3] + (a1[4] || \"\");\n t2 = a2[1] + a2[2] + a2[3] + (a2[4] || \"\");\n if (t1 > t2)\n return 1;\n if (t1 < t2)\n return -1;\n return 0;\n}\nconst DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n const dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length === 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\nfunction compareDateTime(dt1, dt2) {\n if (!(dt1 && dt2))\n return undefined;\n const [d1, t1] = dt1.split(DATE_TIME_SEPARATOR);\n const [d2, t2] = dt2.split(DATE_TIME_SEPARATOR);\n const res = compareDate(d1, d2);\n if (res === undefined)\n return undefined;\n return res || compareTime(t1, t2);\n}\nconst NOT_URI_FRAGMENT = /\\/|:/;\nconst URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\nconst BYTE = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;\nfunction byte(str) {\n BYTE.lastIndex = 0;\n return BYTE.test(str);\n}\nconst MIN_INT32 = -(2 ** 31);\nconst MAX_INT32 = 2 ** 31 - 1;\nfunction validateInt32(value) {\n return Number.isInteger(value) && value <= MAX_INT32 && value >= MIN_INT32;\n}\nfunction validateInt64(value) {\n // JSON and javascript max Int is 2**53, so any int that passes isInteger is valid for Int64\n return Number.isInteger(value);\n}\nfunction validateNumber() {\n return true;\n}\nconst Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str))\n return false;\n try {\n new RegExp(str);\n return true;\n }\n catch (e) {\n return false;\n }\n}\n//# sourceMappingURL=formats.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nclass _CodeOrName {\n}\nexports._CodeOrName = _CodeOrName;\nexports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nclass Name extends _CodeOrName {\n constructor(s) {\n super();\n if (!exports.IDENTIFIER.test(s))\n throw new Error(\"CodeGen: name must be a valid identifier\");\n this.str = s;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n return false;\n }\n get names() {\n return { [this.str]: 1 };\n }\n}\nexports.Name = Name;\nclass _Code extends _CodeOrName {\n constructor(code) {\n super();\n this._items = typeof code === \"string\" ? [code] : code;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n if (this._items.length > 1)\n return false;\n const item = this._items[0];\n return item === \"\" || item === '\"\"';\n }\n get str() {\n var _a;\n return ((_a = this._str) !== null && _a !== void 0 ? _a : (this._str = this._items.reduce((s, c) => `${s}${c}`, \"\")));\n }\n get names() {\n var _a;\n return ((_a = this._names) !== null && _a !== void 0 ? _a : (this._names = this._items.reduce((names, c) => {\n if (c instanceof Name)\n names[c.str] = (names[c.str] || 0) + 1;\n return names;\n }, {})));\n }\n}\nexports._Code = _Code;\nexports.nil = new _Code(\"\");\nfunction _(strs, ...args) {\n const code = [strs[0]];\n let i = 0;\n while (i < args.length) {\n addCodeArg(code, args[i]);\n code.push(strs[++i]);\n }\n return new _Code(code);\n}\nexports._ = _;\nconst plus = new _Code(\"+\");\nfunction str(strs, ...args) {\n const expr = [safeStringify(strs[0])];\n let i = 0;\n while (i < args.length) {\n expr.push(plus);\n addCodeArg(expr, args[i]);\n expr.push(plus, safeStringify(strs[++i]));\n }\n optimize(expr);\n return new _Code(expr);\n}\nexports.str = str;\nfunction addCodeArg(code, arg) {\n if (arg instanceof _Code)\n code.push(...arg._items);\n else if (arg instanceof Name)\n code.push(arg);\n else\n code.push(interpolate(arg));\n}\nexports.addCodeArg = addCodeArg;\nfunction optimize(expr) {\n let i = 1;\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1]);\n if (res !== undefined) {\n expr.splice(i - 1, 3, res);\n continue;\n }\n expr[i++] = \"+\";\n }\n i++;\n }\n}\nfunction mergeExprItems(a, b) {\n if (b === '\"\"')\n return a;\n if (a === '\"\"')\n return b;\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"')\n return;\n if (typeof b != \"string\")\n return `${a.slice(0, -1)}${b}\"`;\n if (b[0] === '\"')\n return a.slice(0, -1) + b.slice(1);\n return;\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name))\n return `\"${a}${b.slice(1)}`;\n return;\n}\nfunction strConcat(c1, c2) {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str `${c1}${c2}`;\n}\nexports.strConcat = strConcat;\n// TODO do not allow arrays here\nfunction interpolate(x) {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x);\n}\nfunction stringify(x) {\n return new _Code(safeStringify(x));\n}\nexports.stringify = stringify;\nfunction safeStringify(x) {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\");\n}\nexports.safeStringify = safeStringify;\nfunction getProperty(key) {\n return typeof key == \"string\" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _ `[${key}]`;\n}\nexports.getProperty = getProperty;\n//Does best effort to format the name properly\nfunction getEsmExportName(key) {\n if (typeof key == \"string\" && exports.IDENTIFIER.test(key)) {\n return new _Code(`${key}`);\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`);\n}\nexports.getEsmExportName = getEsmExportName;\nfunction regexpCode(rx) {\n return new _Code(rx.toString());\n}\nexports.regexpCode = regexpCode;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;\nconst code_1 = require(\"./code\");\nclass ValueError extends Error {\n constructor(name) {\n super(`CodeGen: \"code\" for ${name} not defined`);\n this.value = name.value;\n }\n}\nvar UsedValueState;\n(function (UsedValueState) {\n UsedValueState[UsedValueState[\"Started\"] = 0] = \"Started\";\n UsedValueState[UsedValueState[\"Completed\"] = 1] = \"Completed\";\n})(UsedValueState || (exports.UsedValueState = UsedValueState = {}));\nexports.varKinds = {\n const: new code_1.Name(\"const\"),\n let: new code_1.Name(\"let\"),\n var: new code_1.Name(\"var\"),\n};\nclass Scope {\n constructor({ prefixes, parent } = {}) {\n this._names = {};\n this._prefixes = prefixes;\n this._parent = parent;\n }\n toName(nameOrPrefix) {\n return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);\n }\n name(prefix) {\n return new code_1.Name(this._newName(prefix));\n }\n _newName(prefix) {\n const ng = this._names[prefix] || this._nameGroup(prefix);\n return `${prefix}${ng.index++}`;\n }\n _nameGroup(prefix) {\n var _a, _b;\n if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`);\n }\n return (this._names[prefix] = { prefix, index: 0 });\n }\n}\nexports.Scope = Scope;\nclass ValueScopeName extends code_1.Name {\n constructor(prefix, nameStr) {\n super(nameStr);\n this.prefix = prefix;\n }\n setValue(value, { property, itemIndex }) {\n this.value = value;\n this.scopePath = (0, code_1._) `.${new code_1.Name(property)}[${itemIndex}]`;\n }\n}\nexports.ValueScopeName = ValueScopeName;\nconst line = (0, code_1._) `\\n`;\nclass ValueScope extends Scope {\n constructor(opts) {\n super(opts);\n this._values = {};\n this._scope = opts.scope;\n this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };\n }\n get() {\n return this._scope;\n }\n name(prefix) {\n return new ValueScopeName(prefix, this._newName(prefix));\n }\n value(nameOrPrefix, value) {\n var _a;\n if (value.ref === undefined)\n throw new Error(\"CodeGen: ref must be passed in value\");\n const name = this.toName(nameOrPrefix);\n const { prefix } = name;\n const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;\n let vs = this._values[prefix];\n if (vs) {\n const _name = vs.get(valueKey);\n if (_name)\n return _name;\n }\n else {\n vs = this._values[prefix] = new Map();\n }\n vs.set(valueKey, name);\n const s = this._scope[prefix] || (this._scope[prefix] = []);\n const itemIndex = s.length;\n s[itemIndex] = value.ref;\n name.setValue(value, { property: prefix, itemIndex });\n return name;\n }\n getValue(prefix, keyOrRef) {\n const vs = this._values[prefix];\n if (!vs)\n return;\n return vs.get(keyOrRef);\n }\n scopeRefs(scopeName, values = this._values) {\n return this._reduceValues(values, (name) => {\n if (name.scopePath === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return (0, code_1._) `${scopeName}${name.scopePath}`;\n });\n }\n scopeCode(values = this._values, usedValues, getCode) {\n return this._reduceValues(values, (name) => {\n if (name.value === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return name.value.code;\n }, usedValues, getCode);\n }\n _reduceValues(values, valueCode, usedValues = {}, getCode) {\n let code = code_1.nil;\n for (const prefix in values) {\n const vs = values[prefix];\n if (!vs)\n continue;\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());\n vs.forEach((name) => {\n if (nameSet.has(name))\n return;\n nameSet.set(name, UsedValueState.Started);\n let c = valueCode(name);\n if (c) {\n const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;\n code = (0, code_1._) `${code}${def} ${name} = ${c};${this.opts._n}`;\n }\n else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {\n code = (0, code_1._) `${code}${c}${this.opts._n}`;\n }\n else {\n throw new ValueError(name);\n }\n nameSet.set(name, UsedValueState.Completed);\n });\n }\n return code;\n }\n}\nexports.ValueScope = ValueScope;\n//# sourceMappingURL=scope.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;\nconst code_1 = require(\"./code\");\nconst scope_1 = require(\"./scope\");\nvar code_2 = require(\"./code\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return code_2._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return code_2.str; } });\nObject.defineProperty(exports, \"strConcat\", { enumerable: true, get: function () { return code_2.strConcat; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return code_2.nil; } });\nObject.defineProperty(exports, \"getProperty\", { enumerable: true, get: function () { return code_2.getProperty; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return code_2.stringify; } });\nObject.defineProperty(exports, \"regexpCode\", { enumerable: true, get: function () { return code_2.regexpCode; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return code_2.Name; } });\nvar scope_2 = require(\"./scope\");\nObject.defineProperty(exports, \"Scope\", { enumerable: true, get: function () { return scope_2.Scope; } });\nObject.defineProperty(exports, \"ValueScope\", { enumerable: true, get: function () { return scope_2.ValueScope; } });\nObject.defineProperty(exports, \"ValueScopeName\", { enumerable: true, get: function () { return scope_2.ValueScopeName; } });\nObject.defineProperty(exports, \"varKinds\", { enumerable: true, get: function () { return scope_2.varKinds; } });\nexports.operators = {\n GT: new code_1._Code(\">\"),\n GTE: new code_1._Code(\">=\"),\n LT: new code_1._Code(\"<\"),\n LTE: new code_1._Code(\"<=\"),\n EQ: new code_1._Code(\"===\"),\n NEQ: new code_1._Code(\"!==\"),\n NOT: new code_1._Code(\"!\"),\n OR: new code_1._Code(\"||\"),\n AND: new code_1._Code(\"&&\"),\n ADD: new code_1._Code(\"+\"),\n};\nclass Node {\n optimizeNodes() {\n return this;\n }\n optimizeNames(_names, _constants) {\n return this;\n }\n}\nclass Def extends Node {\n constructor(varKind, name, rhs) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.rhs = rhs;\n }\n render({ es5, _n }) {\n const varKind = es5 ? scope_1.varKinds.var : this.varKind;\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`;\n return `${varKind} ${this.name}${rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (!names[this.name.str])\n return;\n if (this.rhs)\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};\n }\n}\nclass Assign extends Node {\n constructor(lhs, rhs, sideEffects) {\n super();\n this.lhs = lhs;\n this.rhs = rhs;\n this.sideEffects = sideEffects;\n }\n render({ _n }) {\n return `${this.lhs} = ${this.rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)\n return;\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };\n return addExprNames(names, this.rhs);\n }\n}\nclass AssignOp extends Assign {\n constructor(lhs, op, rhs, sideEffects) {\n super(lhs, rhs, sideEffects);\n this.op = op;\n }\n render({ _n }) {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n;\n }\n}\nclass Label extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n return `${this.label}:` + _n;\n }\n}\nclass Break extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n const label = this.label ? ` ${this.label}` : \"\";\n return `break${label};` + _n;\n }\n}\nclass Throw extends Node {\n constructor(error) {\n super();\n this.error = error;\n }\n render({ _n }) {\n return `throw ${this.error};` + _n;\n }\n get names() {\n return this.error.names;\n }\n}\nclass AnyCode extends Node {\n constructor(code) {\n super();\n this.code = code;\n }\n render({ _n }) {\n return `${this.code};` + _n;\n }\n optimizeNodes() {\n return `${this.code}` ? this : undefined;\n }\n optimizeNames(names, constants) {\n this.code = optimizeExpr(this.code, names, constants);\n return this;\n }\n get names() {\n return this.code instanceof code_1._CodeOrName ? this.code.names : {};\n }\n}\nclass ParentNode extends Node {\n constructor(nodes = []) {\n super();\n this.nodes = nodes;\n }\n render(opts) {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\");\n }\n optimizeNodes() {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n const n = nodes[i].optimizeNodes();\n if (Array.isArray(n))\n nodes.splice(i, 1, ...n);\n else if (n)\n nodes[i] = n;\n else\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n optimizeNames(names, constants) {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i];\n if (n.optimizeNames(names, constants))\n continue;\n subtractNames(names, n.names);\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n get names() {\n return this.nodes.reduce((names, n) => addNames(names, n.names), {});\n }\n}\nclass BlockNode extends ParentNode {\n render(opts) {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n;\n }\n}\nclass Root extends ParentNode {\n}\nclass Else extends BlockNode {\n}\nElse.kind = \"else\";\nclass If extends BlockNode {\n constructor(condition, nodes) {\n super(nodes);\n this.condition = condition;\n }\n render(opts) {\n let code = `if(${this.condition})` + super.render(opts);\n if (this.else)\n code += \"else \" + this.else.render(opts);\n return code;\n }\n optimizeNodes() {\n super.optimizeNodes();\n const cond = this.condition;\n if (cond === true)\n return this.nodes; // else is ignored here\n let e = this.else;\n if (e) {\n const ns = e.optimizeNodes();\n e = this.else = Array.isArray(ns) ? new Else(ns) : ns;\n }\n if (e) {\n if (cond === false)\n return e instanceof If ? e : e.nodes;\n if (this.nodes.length)\n return this;\n return new If(not(cond), e instanceof If ? [e] : e.nodes);\n }\n if (cond === false || !this.nodes.length)\n return undefined;\n return this;\n }\n optimizeNames(names, constants) {\n var _a;\n this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n if (!(super.optimizeNames(names, constants) || this.else))\n return;\n this.condition = optimizeExpr(this.condition, names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n addExprNames(names, this.condition);\n if (this.else)\n addNames(names, this.else.names);\n return names;\n }\n}\nIf.kind = \"if\";\nclass For extends BlockNode {\n}\nFor.kind = \"for\";\nclass ForLoop extends For {\n constructor(iteration) {\n super();\n this.iteration = iteration;\n }\n render(opts) {\n return `for(${this.iteration})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iteration = optimizeExpr(this.iteration, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iteration.names);\n }\n}\nclass ForRange extends For {\n constructor(varKind, name, from, to) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.from = from;\n this.to = to;\n }\n render(opts) {\n const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;\n const { name, from, to } = this;\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);\n }\n get names() {\n const names = addExprNames(super.names, this.from);\n return addExprNames(names, this.to);\n }\n}\nclass ForIter extends For {\n constructor(loop, varKind, name, iterable) {\n super();\n this.loop = loop;\n this.varKind = varKind;\n this.name = name;\n this.iterable = iterable;\n }\n render(opts) {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iterable = optimizeExpr(this.iterable, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iterable.names);\n }\n}\nclass Func extends BlockNode {\n constructor(name, args, async) {\n super();\n this.name = name;\n this.args = args;\n this.async = async;\n }\n render(opts) {\n const _async = this.async ? \"async \" : \"\";\n return `${_async}function ${this.name}(${this.args})` + super.render(opts);\n }\n}\nFunc.kind = \"func\";\nclass Return extends ParentNode {\n render(opts) {\n return \"return \" + super.render(opts);\n }\n}\nReturn.kind = \"return\";\nclass Try extends BlockNode {\n render(opts) {\n let code = \"try\" + super.render(opts);\n if (this.catch)\n code += this.catch.render(opts);\n if (this.finally)\n code += this.finally.render(opts);\n return code;\n }\n optimizeNodes() {\n var _a, _b;\n super.optimizeNodes();\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();\n return this;\n }\n optimizeNames(names, constants) {\n var _a, _b;\n super.optimizeNames(names, constants);\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n if (this.catch)\n addNames(names, this.catch.names);\n if (this.finally)\n addNames(names, this.finally.names);\n return names;\n }\n}\nclass Catch extends BlockNode {\n constructor(error) {\n super();\n this.error = error;\n }\n render(opts) {\n return `catch(${this.error})` + super.render(opts);\n }\n}\nCatch.kind = \"catch\";\nclass Finally extends BlockNode {\n render(opts) {\n return \"finally\" + super.render(opts);\n }\n}\nFinally.kind = \"finally\";\nclass CodeGen {\n constructor(extScope, opts = {}) {\n this._values = {};\n this._blockStarts = [];\n this._constants = {};\n this.opts = { ...opts, _n: opts.lines ? \"\\n\" : \"\" };\n this._extScope = extScope;\n this._scope = new scope_1.Scope({ parent: extScope });\n this._nodes = [new Root()];\n }\n toString() {\n return this._root.render(this.opts);\n }\n // returns unique name in the internal scope\n name(prefix) {\n return this._scope.name(prefix);\n }\n // reserves unique name in the external scope\n scopeName(prefix) {\n return this._extScope.name(prefix);\n }\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName, value) {\n const name = this._extScope.value(prefixOrName, value);\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set());\n vs.add(name);\n return name;\n }\n getScopeValue(prefix, keyOrRef) {\n return this._extScope.getValue(prefix, keyOrRef);\n }\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName) {\n return this._extScope.scopeRefs(scopeName, this._values);\n }\n scopeCode() {\n return this._extScope.scopeCode(this._values);\n }\n _def(varKind, nameOrPrefix, rhs, constant) {\n const name = this._scope.toName(nameOrPrefix);\n if (rhs !== undefined && constant)\n this._constants[name.str] = rhs;\n this._leafNode(new Def(varKind, name, rhs));\n return name;\n }\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);\n }\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);\n }\n // `var` declaration with optional assignment\n var(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);\n }\n // assignment code\n assign(lhs, rhs, sideEffects) {\n return this._leafNode(new Assign(lhs, rhs, sideEffects));\n }\n // `+=` code\n add(lhs, rhs) {\n return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));\n }\n // appends passed SafeExpr to code or executes Block\n code(c) {\n if (typeof c == \"function\")\n c();\n else if (c !== code_1.nil)\n this._leafNode(new AnyCode(c));\n return this;\n }\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues) {\n const code = [\"{\"];\n for (const [key, value] of keyValues) {\n if (code.length > 1)\n code.push(\",\");\n code.push(key);\n if (key !== value || this.opts.es5) {\n code.push(\":\");\n (0, code_1.addCodeArg)(code, value);\n }\n }\n code.push(\"}\");\n return new code_1._Code(code);\n }\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition, thenBody, elseBody) {\n this._blockNode(new If(condition));\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf();\n }\n else if (thenBody) {\n this.code(thenBody).endIf();\n }\n else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body');\n }\n return this;\n }\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition) {\n return this._elseNode(new If(condition));\n }\n // `else` clause - only valid after `if` or `else if` clauses\n else() {\n return this._elseNode(new Else());\n }\n // end `if` statement (needed if gen.if was used only with condition)\n endIf() {\n return this._endBlockNode(If, Else);\n }\n _for(node, forBody) {\n this._blockNode(node);\n if (forBody)\n this.code(forBody).endFor();\n return this;\n }\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration, forBody) {\n return this._for(new ForLoop(iteration), forBody);\n }\n // `for` statement for a range of values\n forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name));\n }\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {\n const name = this._scope.toName(nameOrPrefix);\n if (this.opts.es5) {\n const arr = iterable instanceof code_1.Name ? iterable : this.var(\"_arr\", iterable);\n return this.forRange(\"_i\", 0, (0, code_1._) `${arr}.length`, (i) => {\n this.var(name, (0, code_1._) `${arr}[${i}]`);\n forBody(name);\n });\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name));\n }\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, (0, code_1._) `Object.keys(${obj})`, forBody);\n }\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name));\n }\n // end `for` loop\n endFor() {\n return this._endBlockNode(For);\n }\n // `label` statement\n label(label) {\n return this._leafNode(new Label(label));\n }\n // `break` statement\n break(label) {\n return this._leafNode(new Break(label));\n }\n // `return` statement\n return(value) {\n const node = new Return();\n this._blockNode(node);\n this.code(value);\n if (node.nodes.length !== 1)\n throw new Error('CodeGen: \"return\" should have one node');\n return this._endBlockNode(Return);\n }\n // `try` statement\n try(tryBody, catchCode, finallyCode) {\n if (!catchCode && !finallyCode)\n throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"');\n const node = new Try();\n this._blockNode(node);\n this.code(tryBody);\n if (catchCode) {\n const error = this.name(\"e\");\n this._currNode = node.catch = new Catch(error);\n catchCode(error);\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally();\n this.code(finallyCode);\n }\n return this._endBlockNode(Catch, Finally);\n }\n // `throw` statement\n throw(error) {\n return this._leafNode(new Throw(error));\n }\n // start self-balancing block\n block(body, nodeCount) {\n this._blockStarts.push(this._nodes.length);\n if (body)\n this.code(body).endBlock(nodeCount);\n return this;\n }\n // end the current self-balancing block\n endBlock(nodeCount) {\n const len = this._blockStarts.pop();\n if (len === undefined)\n throw new Error(\"CodeGen: not in self-balancing block\");\n const toClose = this._nodes.length - len;\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`);\n }\n this._nodes.length = len;\n return this;\n }\n // `function` heading (or definition if funcBody is passed)\n func(name, args = code_1.nil, async, funcBody) {\n this._blockNode(new Func(name, args, async));\n if (funcBody)\n this.code(funcBody).endFunc();\n return this;\n }\n // end function definition\n endFunc() {\n return this._endBlockNode(Func);\n }\n optimize(n = 1) {\n while (n-- > 0) {\n this._root.optimizeNodes();\n this._root.optimizeNames(this._root.names, this._constants);\n }\n }\n _leafNode(node) {\n this._currNode.nodes.push(node);\n return this;\n }\n _blockNode(node) {\n this._currNode.nodes.push(node);\n this._nodes.push(node);\n }\n _endBlockNode(N1, N2) {\n const n = this._currNode;\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop();\n return this;\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`);\n }\n _elseNode(node) {\n const n = this._currNode;\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"');\n }\n this._currNode = n.else = node;\n return this;\n }\n get _root() {\n return this._nodes[0];\n }\n get _currNode() {\n const ns = this._nodes;\n return ns[ns.length - 1];\n }\n set _currNode(node) {\n const ns = this._nodes;\n ns[ns.length - 1] = node;\n }\n}\nexports.CodeGen = CodeGen;\nfunction addNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) + (from[n] || 0);\n return names;\n}\nfunction addExprNames(names, from) {\n return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;\n}\nfunction optimizeExpr(expr, names, constants) {\n if (expr instanceof code_1.Name)\n return replaceName(expr);\n if (!canOptimize(expr))\n return expr;\n return new code_1._Code(expr._items.reduce((items, c) => {\n if (c instanceof code_1.Name)\n c = replaceName(c);\n if (c instanceof code_1._Code)\n items.push(...c._items);\n else\n items.push(c);\n return items;\n }, []));\n function replaceName(n) {\n const c = constants[n.str];\n if (c === undefined || names[n.str] !== 1)\n return n;\n delete names[n.str];\n return c;\n }\n function canOptimize(e) {\n return (e instanceof code_1._Code &&\n e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== undefined));\n }\n}\nfunction subtractNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) - (from[n] || 0);\n}\nfunction not(x) {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : (0, code_1._) `!${par(x)}`;\n}\nexports.not = not;\nconst andCode = mappend(exports.operators.AND);\n// boolean AND (&&) expression with the passed arguments\nfunction and(...args) {\n return args.reduce(andCode);\n}\nexports.and = and;\nconst orCode = mappend(exports.operators.OR);\n// boolean OR (||) expression with the passed arguments\nfunction or(...args) {\n return args.reduce(orCode);\n}\nexports.or = or;\nfunction mappend(op) {\n return (x, y) => (x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._) `${par(x)} ${op} ${par(y)}`);\n}\nfunction par(x) {\n return x instanceof code_1.Name ? x : (0, code_1._) `(${x})`;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst code_1 = require(\"./codegen/code\");\n// TODO refactor to use Set\nfunction toHash(arr) {\n const hash = {};\n for (const item of arr)\n hash[item] = true;\n return hash;\n}\nexports.toHash = toHash;\nfunction alwaysValidSchema(it, schema) {\n if (typeof schema == \"boolean\")\n return schema;\n if (Object.keys(schema).length === 0)\n return true;\n checkUnknownRules(it, schema);\n return !schemaHasRules(schema, it.self.RULES.all);\n}\nexports.alwaysValidSchema = alwaysValidSchema;\nfunction checkUnknownRules(it, schema = it.schema) {\n const { opts, self } = it;\n if (!opts.strictSchema)\n return;\n if (typeof schema === \"boolean\")\n return;\n const rules = self.RULES.keywords;\n for (const key in schema) {\n if (!rules[key])\n checkStrictMode(it, `unknown keyword: \"${key}\"`);\n }\n}\nexports.checkUnknownRules = checkUnknownRules;\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (rules[key])\n return true;\n return false;\n}\nexports.schemaHasRules = schemaHasRules;\nfunction schemaHasRulesButRef(schema, RULES) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (key !== \"$ref\" && RULES.all[key])\n return true;\n return false;\n}\nexports.schemaHasRulesButRef = schemaHasRulesButRef;\nfunction schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\")\n return schema;\n if (typeof schema == \"string\")\n return (0, codegen_1._) `${schema}`;\n }\n return (0, codegen_1._) `${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`;\n}\nexports.schemaRefOrVal = schemaRefOrVal;\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\nexports.unescapeFragment = unescapeFragment;\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\nexports.escapeFragment = escapeFragment;\nfunction escapeJsonPointer(str) {\n if (typeof str == \"number\")\n return `${str}`;\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nexports.escapeJsonPointer = escapeJsonPointer;\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\nexports.unescapeJsonPointer = unescapeJsonPointer;\nfunction eachItem(xs, f) {\n if (Array.isArray(xs)) {\n for (const x of xs)\n f(x);\n }\n else {\n f(xs);\n }\n}\nexports.eachItem = eachItem;\nfunction makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName, }) {\n return (gen, from, to, toName) => {\n const res = to === undefined\n ? from\n : to instanceof codegen_1.Name\n ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof codegen_1.Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to);\n return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;\n };\n}\nexports.mergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => {\n gen.if((0, codegen_1._) `${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._) `${to} || {}`).code((0, codegen_1._) `Object.assign(${to}, ${from})`));\n }),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true);\n }\n else {\n gen.assign(to, (0, codegen_1._) `${to} || {}`);\n setEvaluated(gen, to, from);\n }\n }),\n mergeValues: (from, to) => (from === true ? true : { ...from, ...to }),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._) `${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._) `${to} > ${from} ? ${to} : ${from}`)),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n};\nfunction evaluatedPropsToName(gen, ps) {\n if (ps === true)\n return gen.var(\"props\", true);\n const props = gen.var(\"props\", (0, codegen_1._) `{}`);\n if (ps !== undefined)\n setEvaluated(gen, props, ps);\n return props;\n}\nexports.evaluatedPropsToName = evaluatedPropsToName;\nfunction setEvaluated(gen, props, ps) {\n Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._) `${props}${(0, codegen_1.getProperty)(p)}`, true));\n}\nexports.setEvaluated = setEvaluated;\nconst snippets = {};\nfunction useFunc(gen, f) {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)),\n });\n}\nexports.useFunc = useFunc;\nvar Type;\n(function (Type) {\n Type[Type[\"Num\"] = 0] = \"Num\";\n Type[Type[\"Str\"] = 1] = \"Str\";\n})(Type || (exports.Type = Type = {}));\nfunction getErrorPath(dataProp, dataPropType, jsPropertySyntax) {\n // let path\n if (dataProp instanceof codegen_1.Name) {\n const isNumber = dataPropType === Type.Num;\n return jsPropertySyntax\n ? isNumber\n ? (0, codegen_1._) `\"[\" + ${dataProp} + \"]\"`\n : (0, codegen_1._) `\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? (0, codegen_1._) `\"/\" + ${dataProp}`\n : (0, codegen_1._) `\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`; // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp);\n}\nexports.getErrorPath = getErrorPath;\nfunction checkStrictMode(it, msg, mode = it.opts.strictSchema) {\n if (!mode)\n return;\n msg = `strict mode: ${msg}`;\n if (mode === true)\n throw new Error(msg);\n it.self.logger.warn(msg);\n}\nexports.checkStrictMode = checkStrictMode;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"./codegen\");\nconst names = {\n // validation function arguments\n data: new codegen_1.Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new codegen_1.Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new codegen_1.Name(\"instancePath\"),\n parentData: new codegen_1.Name(\"parentData\"),\n parentDataProperty: new codegen_1.Name(\"parentDataProperty\"),\n rootData: new codegen_1.Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new codegen_1.Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new codegen_1.Name(\"vErrors\"), // null or array of validation errors\n errors: new codegen_1.Name(\"errors\"), // counter of validation errors\n this: new codegen_1.Name(\"this\"),\n // \"globals\"\n self: new codegen_1.Name(\"self\"),\n scope: new codegen_1.Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new codegen_1.Name(\"json\"),\n jsonPos: new codegen_1.Name(\"jsonPos\"),\n jsonLen: new codegen_1.Name(\"jsonLen\"),\n jsonPart: new codegen_1.Name(\"jsonPart\"),\n};\nexports.default = names;\n//# sourceMappingURL=names.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst util_1 = require(\"./util\");\nconst names_1 = require(\"./names\");\nexports.keywordError = {\n message: ({ keyword }) => (0, codegen_1.str) `must pass \"${keyword}\" keyword validation`,\n};\nexports.keyword$DataError = {\n message: ({ keyword, schemaType }) => schemaType\n ? (0, codegen_1.str) `\"${keyword}\" keyword must be ${schemaType} ($data)`\n : (0, codegen_1.str) `\"${keyword}\" keyword is invalid ($data)`,\n};\nfunction reportError(cxt, error = exports.keywordError, errorPaths, overrideAllErrors) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : (compositeRule || allErrors)) {\n addError(gen, errObj);\n }\n else {\n returnErrors(it, (0, codegen_1._) `[${errObj}]`);\n }\n}\nexports.reportError = reportError;\nfunction reportExtraError(cxt, error = exports.keywordError, errorPaths) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n addError(gen, errObj);\n if (!(compositeRule || allErrors)) {\n returnErrors(it, names_1.default.vErrors);\n }\n}\nexports.reportExtraError = reportExtraError;\nfunction resetErrorsCount(gen, errsCount) {\n gen.assign(names_1.default.errors, errsCount);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._) `${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));\n}\nexports.resetErrorsCount = resetErrorsCount;\nfunction extendErrors({ gen, keyword, schemaValue, data, errsCount, it, }) {\n /* istanbul ignore if */\n if (errsCount === undefined)\n throw new Error(\"ajv implementation error\");\n const err = gen.name(\"err\");\n gen.forRange(\"i\", errsCount, names_1.default.errors, (i) => {\n gen.const(err, (0, codegen_1._) `${names_1.default.vErrors}[${i}]`);\n gen.if((0, codegen_1._) `${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._) `${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath)));\n gen.assign((0, codegen_1._) `${err}.schemaPath`, (0, codegen_1.str) `${it.errSchemaPath}/${keyword}`);\n if (it.opts.verbose) {\n gen.assign((0, codegen_1._) `${err}.schema`, schemaValue);\n gen.assign((0, codegen_1._) `${err}.data`, data);\n }\n });\n}\nexports.extendErrors = extendErrors;\nfunction addError(gen, errObj) {\n const err = gen.const(\"err\", errObj);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._) `[${err}]`), (0, codegen_1._) `${names_1.default.vErrors}.push(${err})`);\n gen.code((0, codegen_1._) `${names_1.default.errors}++`);\n}\nfunction returnErrors(it, errs) {\n const { gen, validateName, schemaEnv } = it;\n if (schemaEnv.$async) {\n gen.throw((0, codegen_1._) `new ${it.ValidationError}(${errs})`);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, errs);\n gen.return(false);\n }\n}\nconst E = {\n keyword: new codegen_1.Name(\"keyword\"),\n schemaPath: new codegen_1.Name(\"schemaPath\"), // also used in JTD errors\n params: new codegen_1.Name(\"params\"),\n propertyName: new codegen_1.Name(\"propertyName\"),\n message: new codegen_1.Name(\"message\"),\n schema: new codegen_1.Name(\"schema\"),\n parentSchema: new codegen_1.Name(\"parentSchema\"),\n};\nfunction errorObjectCode(cxt, error, errorPaths) {\n const { createErrors } = cxt.it;\n if (createErrors === false)\n return (0, codegen_1._) `{}`;\n return errorObject(cxt, error, errorPaths);\n}\nfunction errorObject(cxt, error, errorPaths = {}) {\n const { gen, it } = cxt;\n const keyValues = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ];\n extraErrorProps(cxt, error, keyValues);\n return gen.object(...keyValues);\n}\nfunction errorInstancePath({ errorPath }, { instancePath }) {\n const instPath = instancePath\n ? (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}`\n : errorPath;\n return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)];\n}\nfunction errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) {\n let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str) `${errSchemaPath}/${keyword}`;\n if (schemaPath) {\n schPath = (0, codegen_1.str) `${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`;\n }\n return [E.schemaPath, schPath];\n}\nfunction extraErrorProps(cxt, { params, message }, keyValues) {\n const { keyword, data, schemaValue, it } = cxt;\n const { opts, propertyName, topSchemaRef, schemaPath } = it;\n keyValues.push([E.keyword, keyword], [E.params, typeof params == \"function\" ? params(cxt) : params || (0, codegen_1._) `{}`]);\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message]);\n }\n if (opts.verbose) {\n keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._) `${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);\n }\n if (propertyName)\n keyValues.push([E.propertyName, propertyName]);\n}\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst boolError = {\n message: \"boolean schema is false\",\n};\nfunction topBoolOrEmptySchema(it) {\n const { gen, schema, validateName } = it;\n if (schema === false) {\n falseSchemaError(it, false);\n }\n else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(names_1.default.data);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, null);\n gen.return(true);\n }\n}\nexports.topBoolOrEmptySchema = topBoolOrEmptySchema;\nfunction boolOrEmptySchema(it, valid) {\n const { gen, schema } = it;\n if (schema === false) {\n gen.var(valid, false); // TODO var\n falseSchemaError(it);\n }\n else {\n gen.var(valid, true); // TODO var\n }\n}\nexports.boolOrEmptySchema = boolOrEmptySchema;\nfunction falseSchemaError(it, overrideAllErrors) {\n const { gen, data } = it;\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n };\n (0, errors_1.reportError)(cxt, boolError, undefined, overrideAllErrors);\n}\n//# sourceMappingURL=boolSchema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRules = exports.isJSONType = void 0;\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"];\nconst jsonTypes = new Set(_jsonTypes);\nfunction isJSONType(x) {\n return typeof x == \"string\" && jsonTypes.has(x);\n}\nexports.isJSONType = isJSONType;\nfunction getRules() {\n const groups = {\n number: { type: \"number\", rules: [] },\n string: { type: \"string\", rules: [] },\n array: { type: \"array\", rules: [] },\n object: { type: \"object\", rules: [] },\n };\n return {\n types: { ...groups, integer: true, boolean: true, null: true },\n rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object],\n post: { rules: [] },\n all: {},\n keywords: {},\n };\n}\nexports.getRules = getRules;\n//# sourceMappingURL=rules.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;\nfunction schemaHasRulesForType({ schema, self }, type) {\n const group = self.RULES.types[type];\n return group && group !== true && shouldUseGroup(schema, group);\n}\nexports.schemaHasRulesForType = schemaHasRulesForType;\nfunction shouldUseGroup(schema, group) {\n return group.rules.some((rule) => shouldUseRule(schema, rule));\n}\nexports.shouldUseGroup = shouldUseGroup;\nfunction shouldUseRule(schema, rule) {\n var _a;\n return (schema[rule.keyword] !== undefined ||\n ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== undefined)));\n}\nexports.shouldUseRule = shouldUseRule;\n//# sourceMappingURL=applicability.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;\nconst rules_1 = require(\"../rules\");\nconst applicability_1 = require(\"./applicability\");\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nvar DataType;\n(function (DataType) {\n DataType[DataType[\"Correct\"] = 0] = \"Correct\";\n DataType[DataType[\"Wrong\"] = 1] = \"Wrong\";\n})(DataType || (exports.DataType = DataType = {}));\nfunction getSchemaTypes(schema) {\n const types = getJSONTypes(schema.type);\n const hasNull = types.includes(\"null\");\n if (hasNull) {\n if (schema.nullable === false)\n throw new Error(\"type: null contradicts nullable: false\");\n }\n else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"');\n }\n if (schema.nullable === true)\n types.push(\"null\");\n }\n return types;\n}\nexports.getSchemaTypes = getSchemaTypes;\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction getJSONTypes(ts) {\n const types = Array.isArray(ts) ? ts : ts ? [ts] : [];\n if (types.every(rules_1.isJSONType))\n return types;\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"));\n}\nexports.getJSONTypes = getJSONTypes;\nfunction coerceAndCheckDataType(it, types) {\n const { gen, data, opts } = it;\n const coerceTo = coerceToTypes(types, opts.coerceTypes);\n const checkTypes = types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0]));\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong);\n gen.if(wrongType, () => {\n if (coerceTo.length)\n coerceData(it, types, coerceTo);\n else\n reportTypeError(it);\n });\n }\n return checkTypes;\n}\nexports.coerceAndCheckDataType = coerceAndCheckDataType;\nconst COERCIBLE = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nfunction coerceToTypes(types, coerceTypes) {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : [];\n}\nfunction coerceData(it, types, coerceTo) {\n const { gen, data, opts } = it;\n const dataType = gen.let(\"dataType\", (0, codegen_1._) `typeof ${data}`);\n const coerced = gen.let(\"coerced\", (0, codegen_1._) `undefined`);\n if (opts.coerceTypes === \"array\") {\n gen.if((0, codegen_1._) `${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen\n .assign(data, (0, codegen_1._) `${data}[0]`)\n .assign(dataType, (0, codegen_1._) `typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));\n }\n gen.if((0, codegen_1._) `${coerced} !== undefined`);\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t);\n }\n }\n gen.else();\n reportTypeError(it);\n gen.endIf();\n gen.if((0, codegen_1._) `${coerced} !== undefined`, () => {\n gen.assign(data, coerced);\n assignParentData(it, coerced);\n });\n function coerceSpecificType(t) {\n switch (t) {\n case \"string\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, (0, codegen_1._) `\"\" + ${data}`)\n .elseIf((0, codegen_1._) `${data} === null`)\n .assign(coerced, (0, codegen_1._) `\"\"`);\n return;\n case \"number\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"integer\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"boolean\":\n gen\n .elseIf((0, codegen_1._) `${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf((0, codegen_1._) `${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true);\n return;\n case \"null\":\n gen.elseIf((0, codegen_1._) `${data} === \"\" || ${data} === 0 || ${data} === false`);\n gen.assign(coerced, null);\n return;\n case \"array\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`)\n .assign(coerced, (0, codegen_1._) `[${data}]`);\n }\n }\n}\nfunction assignParentData({ gen, parentData, parentDataProperty }, expr) {\n // TODO use gen.property\n gen.if((0, codegen_1._) `${parentData} !== undefined`, () => gen.assign((0, codegen_1._) `${parentData}[${parentDataProperty}]`, expr));\n}\nfunction checkDataType(dataType, data, strictNums, correct = DataType.Correct) {\n const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;\n let cond;\n switch (dataType) {\n case \"null\":\n return (0, codegen_1._) `${data} ${EQ} null`;\n case \"array\":\n cond = (0, codegen_1._) `Array.isArray(${data})`;\n break;\n case \"object\":\n cond = (0, codegen_1._) `${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`;\n break;\n case \"integer\":\n cond = numCond((0, codegen_1._) `!(${data} % 1) && !isNaN(${data})`);\n break;\n case \"number\":\n cond = numCond();\n break;\n default:\n return (0, codegen_1._) `typeof ${data} ${EQ} ${dataType}`;\n }\n return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);\n function numCond(_cond = codegen_1.nil) {\n return (0, codegen_1.and)((0, codegen_1._) `typeof ${data} == \"number\"`, _cond, strictNums ? (0, codegen_1._) `isFinite(${data})` : codegen_1.nil);\n }\n}\nexports.checkDataType = checkDataType;\nfunction checkDataTypes(dataTypes, data, strictNums, correct) {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct);\n }\n let cond;\n const types = (0, util_1.toHash)(dataTypes);\n if (types.array && types.object) {\n const notObj = (0, codegen_1._) `typeof ${data} != \"object\"`;\n cond = types.null ? notObj : (0, codegen_1._) `!${data} || ${notObj}`;\n delete types.null;\n delete types.array;\n delete types.object;\n }\n else {\n cond = codegen_1.nil;\n }\n if (types.number)\n delete types.integer;\n for (const t in types)\n cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));\n return cond;\n}\nexports.checkDataTypes = checkDataTypes;\nconst typeError = {\n message: ({ schema }) => `must be ${schema}`,\n params: ({ schema, schemaValue }) => typeof schema == \"string\" ? (0, codegen_1._) `{type: ${schema}}` : (0, codegen_1._) `{type: ${schemaValue}}`,\n};\nfunction reportTypeError(it) {\n const cxt = getTypeErrorContext(it);\n (0, errors_1.reportError)(cxt, typeError);\n}\nexports.reportTypeError = reportTypeError;\nfunction getTypeErrorContext(it) {\n const { gen, data, schema } = it;\n const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, \"type\");\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n };\n}\n//# sourceMappingURL=dataType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assignDefaults = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction assignDefaults(it, ty) {\n const { properties, items } = it.schema;\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default);\n }\n }\n else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i) => assignDefault(it, i, sch.default));\n }\n}\nexports.assignDefaults = assignDefaults;\nfunction assignDefault(it, prop, defaultValue) {\n const { gen, compositeRule, data, opts } = it;\n if (defaultValue === undefined)\n return;\n const childData = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(prop)}`;\n if (compositeRule) {\n (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`);\n return;\n }\n let condition = (0, codegen_1._) `${childData} === undefined`;\n if (opts.useDefaults === \"empty\") {\n condition = (0, codegen_1._) `${condition} || ${childData} === null || ${childData} === \"\"`;\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, (0, codegen_1._) `${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);\n}\n//# sourceMappingURL=defaults.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;\nconst codegen_1 = require(\"../compile/codegen\");\nconst util_1 = require(\"../compile/util\");\nconst names_1 = require(\"../compile/names\");\nconst util_2 = require(\"../compile/util\");\nfunction checkReportMissingProp(cxt, prop) {\n const { gen, data, it } = cxt;\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({ missingProperty: (0, codegen_1._) `${prop}` }, true);\n cxt.error();\n });\n}\nexports.checkReportMissingProp = checkReportMissingProp;\nfunction checkMissingProp({ gen, data, it: { opts } }, properties, missing) {\n return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._) `${missing} = ${prop}`)));\n}\nexports.checkMissingProp = checkMissingProp;\nfunction reportMissingProp(cxt, missing) {\n cxt.setParams({ missingProperty: missing }, true);\n cxt.error();\n}\nexports.reportMissingProp = reportMissingProp;\nfunction hasPropFunc(gen) {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: (0, codegen_1._) `Object.prototype.hasOwnProperty`,\n });\n}\nexports.hasPropFunc = hasPropFunc;\nfunction isOwnProperty(gen, data, property) {\n return (0, codegen_1._) `${hasPropFunc(gen)}.call(${data}, ${property})`;\n}\nexports.isOwnProperty = isOwnProperty;\nfunction propertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} !== undefined`;\n return ownProperties ? (0, codegen_1._) `${cond} && ${isOwnProperty(gen, data, property)}` : cond;\n}\nexports.propertyInData = propertyInData;\nfunction noPropertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} === undefined`;\n return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;\n}\nexports.noPropertyInData = noPropertyInData;\nfunction allSchemaProperties(schemaMap) {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : [];\n}\nexports.allSchemaProperties = allSchemaProperties;\nfunction schemaProperties(it, schemaMap) {\n return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));\n}\nexports.schemaProperties = schemaProperties;\nfunction callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {\n const dataAndSchema = passSchema ? (0, codegen_1._) `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;\n const valCxt = [\n [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],\n [names_1.default.parentData, it.parentData],\n [names_1.default.parentDataProperty, it.parentDataProperty],\n [names_1.default.rootData, names_1.default.rootData],\n ];\n if (it.opts.dynamicRef)\n valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);\n const args = (0, codegen_1._) `${dataAndSchema}, ${gen.object(...valCxt)}`;\n return context !== codegen_1.nil ? (0, codegen_1._) `${func}.call(${context}, ${args})` : (0, codegen_1._) `${func}(${args})`;\n}\nexports.callValidateCode = callValidateCode;\nconst newRegExp = (0, codegen_1._) `new RegExp`;\nfunction usePattern({ gen, it: { opts } }, pattern) {\n const u = opts.unicodeRegExp ? \"u\" : \"\";\n const { regExp } = opts.code;\n const rx = regExp(pattern, u);\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: (0, codegen_1._) `${regExp.code === \"new RegExp\" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`,\n });\n}\nexports.usePattern = usePattern;\nfunction validateArray(cxt) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true);\n validateItems(() => gen.assign(validArr, false));\n return validArr;\n }\n gen.var(valid, true);\n validateItems(() => gen.break());\n return valid;\n function validateItems(notValid) {\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword,\n dataProp: i,\n dataPropType: util_1.Type.Num,\n }, valid);\n gen.if((0, codegen_1.not)(valid), notValid);\n });\n }\n}\nexports.validateArray = validateArray;\nfunction validateUnion(cxt) {\n const { gen, schema, keyword, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));\n if (alwaysValid && !it.opts.unevaluated)\n return;\n const valid = gen.let(\"valid\", false);\n const schValid = gen.name(\"_valid\");\n gen.block(() => schema.forEach((_sch, i) => {\n const schCxt = cxt.subschema({\n keyword,\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n gen.assign(valid, (0, codegen_1._) `${valid} || ${schValid}`);\n const merged = cxt.mergeValidEvaluated(schCxt, schValid);\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged)\n gen.if((0, codegen_1.not)(valid));\n }));\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n}\nexports.validateUnion = validateUnion;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst code_1 = require(\"../../vocabularies/code\");\nconst errors_1 = require(\"../errors\");\nfunction macroKeywordCode(cxt, def) {\n const { gen, keyword, schema, parentSchema, it } = cxt;\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it);\n const schemaRef = useKeyword(gen, keyword, macroSchema);\n if (it.opts.validateSchema !== false)\n it.self.validateSchema(macroSchema, true);\n const valid = gen.name(\"valid\");\n cxt.subschema({\n schema: macroSchema,\n schemaPath: codegen_1.nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n }, valid);\n cxt.pass(valid, () => cxt.error(true));\n}\nexports.macroKeywordCode = macroKeywordCode;\nfunction funcKeywordCode(cxt, def) {\n var _a;\n const { gen, keyword, schema, parentSchema, $data, it } = cxt;\n checkAsyncKeyword(it, def);\n const validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate;\n const validateRef = useKeyword(gen, keyword, validate);\n const valid = gen.let(\"valid\");\n cxt.block$data(valid, validateKeyword);\n cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid);\n function validateKeyword() {\n if (def.errors === false) {\n assignValid();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => cxt.error());\n }\n else {\n const ruleErrs = def.async ? validateAsync() : validateSync();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => addErrs(cxt, ruleErrs));\n }\n }\n function validateAsync() {\n const ruleErrs = gen.let(\"ruleErrs\", null);\n gen.try(() => assignValid((0, codegen_1._) `await `), (e) => gen.assign(valid, false).if((0, codegen_1._) `${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._) `${e}.errors`), () => gen.throw(e)));\n return ruleErrs;\n }\n function validateSync() {\n const validateErrs = (0, codegen_1._) `${validateRef}.errors`;\n gen.assign(validateErrs, null);\n assignValid(codegen_1.nil);\n return validateErrs;\n }\n function assignValid(_await = def.async ? (0, codegen_1._) `await ` : codegen_1.nil) {\n const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false);\n gen.assign(valid, (0, codegen_1._) `${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);\n }\n function reportErrs(errors) {\n var _a;\n gen.if((0, codegen_1.not)((_a = def.valid) !== null && _a !== void 0 ? _a : valid), errors);\n }\n}\nexports.funcKeywordCode = funcKeywordCode;\nfunction modifyData(cxt) {\n const { gen, data, it } = cxt;\n gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._) `${it.parentData}[${it.parentDataProperty}]`));\n}\nfunction addErrs(cxt, errs) {\n const { gen } = cxt;\n gen.if((0, codegen_1._) `Array.isArray(${errs})`, () => {\n gen\n .assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`)\n .assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n (0, errors_1.extendErrors)(cxt);\n }, () => cxt.error());\n}\nfunction checkAsyncKeyword({ schemaEnv }, def) {\n if (def.async && !schemaEnv.$async)\n throw new Error(\"async keyword in sync schema\");\n}\nfunction useKeyword(gen, keyword, result) {\n if (result === undefined)\n throw new Error(`keyword \"${keyword}\" failed to compile`);\n return gen.scopeValue(\"keyword\", typeof result == \"function\" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) });\n}\nfunction validSchemaType(schema, schemaType, allowUndefined = false) {\n // TODO add tests\n return (!schemaType.length ||\n schemaType.some((st) => st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")));\n}\nexports.validSchemaType = validSchemaType;\nfunction validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\");\n }\n const deps = def.dependencies;\n if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`);\n }\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword]);\n if (!valid) {\n const msg = `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors);\n if (opts.validateSchema === \"log\")\n self.logger.error(msg);\n else\n throw new Error(msg);\n }\n }\n}\nexports.validateKeywordUsage = validateKeywordUsage;\n//# sourceMappingURL=keyword.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');\n }\n if (keyword !== undefined) {\n const sch = it.schema[keyword];\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`,\n };\n }\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"');\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n };\n }\n throw new Error('either \"keyword\" or \"schema\" must be passed');\n}\nexports.getSubschema = getSubschema;\nfunction extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');\n }\n const { gen } = it;\n if (dataProp !== undefined) {\n const { errorPath, dataPathArr, opts } = it;\n const nextData = gen.let(\"data\", (0, codegen_1._) `${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);\n dataContextProps(nextData);\n subschema.errorPath = (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;\n subschema.parentDataProperty = (0, codegen_1._) `${dataProp}`;\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];\n }\n if (data !== undefined) {\n const nextData = data instanceof codegen_1.Name ? data : gen.let(\"data\", data, true); // replaceable if used once?\n dataContextProps(nextData);\n if (propertyName !== undefined)\n subschema.propertyName = propertyName;\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n if (dataTypes)\n subschema.dataTypes = dataTypes;\n function dataContextProps(_nextData) {\n subschema.data = _nextData;\n subschema.dataLevel = it.dataLevel + 1;\n subschema.dataTypes = [];\n it.definedProperties = new Set();\n subschema.parentData = it.data;\n subschema.dataNames = [...it.dataNames, _nextData];\n }\n}\nexports.extendSubschemaData = extendSubschemaData;\nfunction extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {\n if (compositeRule !== undefined)\n subschema.compositeRule = compositeRule;\n if (createErrors !== undefined)\n subschema.createErrors = createErrors;\n if (allErrors !== undefined)\n subschema.allErrors = allErrors;\n subschema.jtdDiscriminator = jtdDiscriminator; // not inherited\n subschema.jtdMetadata = jtdMetadata; // not inherited\n}\nexports.extendSubschemaMode = extendSubschemaMode;\n//# sourceMappingURL=subschema.js.map","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i (count += countKeys(sch)));\n }\n if (count === Infinity)\n return Infinity;\n }\n return count;\n}\nfunction getFullPath(resolver, id = \"\", normalize) {\n if (normalize !== false)\n id = normalizeId(id);\n const p = resolver.parse(id);\n return _getFullPath(resolver, p);\n}\nexports.getFullPath = getFullPath;\nfunction _getFullPath(resolver, p) {\n const serialized = resolver.serialize(p);\n return serialized.split(\"#\")[0] + \"#\";\n}\nexports._getFullPath = _getFullPath;\nconst TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\";\n}\nexports.normalizeId = normalizeId;\nfunction resolveUrl(resolver, baseId, id) {\n id = normalizeId(id);\n return resolver.resolve(baseId, id);\n}\nexports.resolveUrl = resolveUrl;\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i;\nfunction getSchemaRefs(schema, baseId) {\n if (typeof schema == \"boolean\")\n return {};\n const { schemaId, uriResolver } = this.opts;\n const schId = normalizeId(schema[schemaId] || baseId);\n const baseIds = { \"\": schId };\n const pathPrefix = getFullPath(uriResolver, schId, false);\n const localRefs = {};\n const schemaRefs = new Set();\n traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined)\n return;\n const fullPath = pathPrefix + jsonPtr;\n let innerBaseId = baseIds[parentJsonPtr];\n if (typeof sch[schemaId] == \"string\")\n innerBaseId = addRef.call(this, sch[schemaId]);\n addAnchor.call(this, sch.$anchor);\n addAnchor.call(this, sch.$dynamicAnchor);\n baseIds[jsonPtr] = innerBaseId;\n function addRef(ref) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve;\n ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref);\n if (schemaRefs.has(ref))\n throw ambiguos(ref);\n schemaRefs.add(ref);\n let schOrRef = this.refs[ref];\n if (typeof schOrRef == \"string\")\n schOrRef = this.refs[schOrRef];\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref);\n }\n else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref);\n localRefs[ref] = sch;\n }\n else {\n this.refs[ref] = fullPath;\n }\n }\n return ref;\n }\n function addAnchor(anchor) {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor))\n throw new Error(`invalid anchor \"${anchor}\"`);\n addRef.call(this, `#${anchor}`);\n }\n }\n });\n return localRefs;\n function checkAmbiguosRef(sch1, sch2, ref) {\n if (sch2 !== undefined && !equal(sch1, sch2))\n throw ambiguos(ref);\n }\n function ambiguos(ref) {\n return new Error(`reference \"${ref}\" resolves to more than one schema`);\n }\n}\nexports.getSchemaRefs = getSchemaRefs;\n//# sourceMappingURL=resolve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;\nconst boolSchema_1 = require(\"./boolSchema\");\nconst dataType_1 = require(\"./dataType\");\nconst applicability_1 = require(\"./applicability\");\nconst dataType_2 = require(\"./dataType\");\nconst defaults_1 = require(\"./defaults\");\nconst keyword_1 = require(\"./keyword\");\nconst subschema_1 = require(\"./subschema\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst resolve_1 = require(\"../resolve\");\nconst util_1 = require(\"../util\");\nconst errors_1 = require(\"../errors\");\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nfunction validateFunctionCode(it) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it);\n return;\n }\n }\n validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));\n}\nexports.validateFunctionCode = validateFunctionCode;\nfunction validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {\n if (opts.code.es5) {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {\n gen.code((0, codegen_1._) `\"use strict\"; ${funcSourceUrl(schema, opts)}`);\n destructureValCxtES5(gen, opts);\n gen.code(body);\n });\n }\n else {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));\n }\n}\nfunction destructureValCxt(opts) {\n return (0, codegen_1._) `{${names_1.default.instancePath}=\"\", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._) `, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;\n}\nfunction destructureValCxtES5(gen, opts) {\n gen.if(names_1.default.valCxt, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.instancePath}`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentData}`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);\n gen.var(names_1.default.rootData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.rootData}`);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);\n }, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `\"\"`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.rootData, names_1.default.data);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `{}`);\n });\n}\nfunction topSchemaObjCode(it) {\n const { schema, opts, gen } = it;\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n checkNoDefault(it);\n gen.let(names_1.default.vErrors, null);\n gen.let(names_1.default.errors, 0);\n if (opts.unevaluated)\n resetEvaluated(it);\n typeAndKeywords(it);\n returnResults(it);\n });\n return;\n}\nfunction resetEvaluated(it) {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const { gen, validateName } = it;\n it.evaluated = gen.const(\"evaluated\", (0, codegen_1._) `${validateName}.evaluated`);\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._) `${it.evaluated}.props`, (0, codegen_1._) `undefined`));\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._) `${it.evaluated}.items`, (0, codegen_1._) `undefined`));\n}\nfunction funcSourceUrl(schema, opts) {\n const schId = typeof schema == \"object\" && schema[opts.schemaId];\n return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._) `/*# sourceURL=${schId} */` : codegen_1.nil;\n}\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it, valid) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid);\n return;\n }\n }\n (0, boolSchema_1.boolOrEmptySchema)(it, valid);\n}\nfunction schemaCxtHasRules({ schema, self }) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (self.RULES.all[key])\n return true;\n return false;\n}\nfunction isSchemaObj(it) {\n return typeof it.schema != \"boolean\";\n}\nfunction subSchemaObjCode(it, valid) {\n const { schema, gen, opts } = it;\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n updateContext(it);\n checkAsyncSchema(it);\n const errsCount = gen.const(\"_errs\", names_1.default.errors);\n typeAndKeywords(it, errsCount);\n // TODO var\n gen.var(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n}\nfunction checkKeywords(it) {\n (0, util_1.checkUnknownRules)(it);\n checkRefsAndKeywords(it);\n}\nfunction typeAndKeywords(it, errsCount) {\n if (it.opts.jtd)\n return schemaKeywords(it, [], false, errsCount);\n const types = (0, dataType_1.getSchemaTypes)(it.schema);\n const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);\n schemaKeywords(it, types, !checkedTypes, errsCount);\n}\nfunction checkRefsAndKeywords(it) {\n const { schema, errSchemaPath, opts, self } = it;\n if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`);\n }\n}\nfunction checkNoDefault(it) {\n const { schema, opts } = it;\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n (0, util_1.checkStrictMode)(it, \"default is ignored in the schema root\");\n }\n}\nfunction updateContext(it) {\n const schId = it.schema[it.opts.schemaId];\n if (schId)\n it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);\n}\nfunction checkAsyncSchema(it) {\n if (it.schema.$async && !it.schemaEnv.$async)\n throw new Error(\"async schema in sync schema\");\n}\nfunction commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {\n const msg = schema.$comment;\n if (opts.$comment === true) {\n gen.code((0, codegen_1._) `${names_1.default.self}.logger.log(${msg})`);\n }\n else if (typeof opts.$comment == \"function\") {\n const schemaPath = (0, codegen_1.str) `${errSchemaPath}/$comment`;\n const rootName = gen.scopeValue(\"root\", { ref: schemaEnv.root });\n gen.code((0, codegen_1._) `${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);\n }\n}\nfunction returnResults(it) {\n const { gen, schemaEnv, validateName, ValidationError, opts } = it;\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if((0, codegen_1._) `${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._) `new ${ValidationError}(${names_1.default.vErrors})`));\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, names_1.default.vErrors);\n if (opts.unevaluated)\n assignEvaluated(it);\n gen.return((0, codegen_1._) `${names_1.default.errors} === 0`);\n }\n}\nfunction assignEvaluated({ gen, evaluated, props, items }) {\n if (props instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.props`, props);\n if (items instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.items`, items);\n}\nfunction schemaKeywords(it, types, typeErrors, errsCount) {\n const { gen, schema, data, allErrors, opts, self } = it;\n const { RULES } = self;\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", RULES.all.$ref.definition)); // TODO typecast\n return;\n }\n if (!opts.jtd)\n checkStrictTypes(it, types);\n gen.block(() => {\n for (const group of RULES.rules)\n groupKeywords(group);\n groupKeywords(RULES.post);\n });\n function groupKeywords(group) {\n if (!(0, applicability_1.shouldUseGroup)(schema, group))\n return;\n if (group.type) {\n gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));\n iterateKeywords(it, group);\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else();\n (0, dataType_2.reportTypeError)(it);\n }\n gen.endIf();\n }\n else {\n iterateKeywords(it, group);\n }\n // TODO make it \"ok\" call?\n if (!allErrors)\n gen.if((0, codegen_1._) `${names_1.default.errors} === ${errsCount || 0}`);\n }\n}\nfunction iterateKeywords(it, group) {\n const { gen, schema, opts: { useDefaults }, } = it;\n if (useDefaults)\n (0, defaults_1.assignDefaults)(it, group.type);\n gen.block(() => {\n for (const rule of group.rules) {\n if ((0, applicability_1.shouldUseRule)(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type);\n }\n }\n });\n}\nfunction checkStrictTypes(it, types) {\n if (it.schemaEnv.meta || !it.opts.strictTypes)\n return;\n checkContextTypes(it, types);\n if (!it.opts.allowUnionTypes)\n checkMultipleTypes(it, types);\n checkKeywordTypes(it, it.dataTypes);\n}\nfunction checkContextTypes(it, types) {\n if (!types.length)\n return;\n if (!it.dataTypes.length) {\n it.dataTypes = types;\n return;\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`);\n }\n });\n narrowSchemaTypes(it, types);\n}\nfunction checkMultipleTypes(it, ts) {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\");\n }\n}\nfunction checkKeywordTypes(it, ts) {\n const rules = it.self.RULES.all;\n for (const keyword in rules) {\n const rule = rules[keyword];\n if (typeof rule == \"object\" && (0, applicability_1.shouldUseRule)(it.schema, rule)) {\n const { type } = rule.definition;\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`);\n }\n }\n }\n}\nfunction hasApplicableType(schTs, kwdT) {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"));\n}\nfunction includesType(ts, t) {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"));\n}\nfunction narrowSchemaTypes(it, withTypes) {\n const ts = [];\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t))\n ts.push(t);\n else if (withTypes.includes(\"integer\") && t === \"number\")\n ts.push(\"integer\");\n }\n it.dataTypes = ts;\n}\nfunction strictTypesError(it, msg) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n msg += ` at \"${schemaPath}\" (strictTypes)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);\n}\nclass KeywordCxt {\n constructor(it, def, keyword) {\n (0, keyword_1.validateKeywordUsage)(it, def, keyword);\n this.gen = it.gen;\n this.allErrors = it.allErrors;\n this.keyword = keyword;\n this.data = it.data;\n this.schema = it.schema[keyword];\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data;\n this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data);\n this.schemaType = def.schemaType;\n this.parentSchema = it.schema;\n this.params = {};\n this.it = it;\n this.def = def;\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it));\n }\n else {\n this.schemaCode = this.schemaValue;\n if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);\n }\n }\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", names_1.default.errors);\n }\n }\n result(condition, successAction, failAction) {\n this.failResult((0, codegen_1.not)(condition), successAction, failAction);\n }\n failResult(condition, successAction, failAction) {\n this.gen.if(condition);\n if (failAction)\n failAction();\n else\n this.error();\n if (successAction) {\n this.gen.else();\n successAction();\n if (this.allErrors)\n this.gen.endIf();\n }\n else {\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n }\n pass(condition, failAction) {\n this.failResult((0, codegen_1.not)(condition), undefined, failAction);\n }\n fail(condition) {\n if (condition === undefined) {\n this.error();\n if (!this.allErrors)\n this.gen.if(false); // this branch will be removed by gen.optimize\n return;\n }\n this.gen.if(condition);\n this.error();\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n fail$data(condition) {\n if (!this.$data)\n return this.fail(condition);\n const { schemaCode } = this;\n this.fail((0, codegen_1._) `${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);\n }\n error(append, errorParams, errorPaths) {\n if (errorParams) {\n this.setParams(errorParams);\n this._error(append, errorPaths);\n this.setParams({});\n return;\n }\n this._error(append, errorPaths);\n }\n _error(append, errorPaths) {\n ;\n (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);\n }\n $dataError() {\n (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);\n }\n reset() {\n if (this.errsCount === undefined)\n throw new Error('add \"trackErrors\" to keyword definition');\n (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);\n }\n ok(cond) {\n if (!this.allErrors)\n this.gen.if(cond);\n }\n setParams(obj, assign) {\n if (assign)\n Object.assign(this.params, obj);\n else\n this.params = obj;\n }\n block$data(valid, codeBlock, $dataValid = codegen_1.nil) {\n this.gen.block(() => {\n this.check$data(valid, $dataValid);\n codeBlock();\n });\n }\n check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {\n if (!this.$data)\n return;\n const { gen, schemaCode, schemaType, def } = this;\n gen.if((0, codegen_1.or)((0, codegen_1._) `${schemaCode} === undefined`, $dataValid));\n if (valid !== codegen_1.nil)\n gen.assign(valid, true);\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data());\n this.$dataError();\n if (valid !== codegen_1.nil)\n gen.assign(valid, false);\n }\n gen.else();\n }\n invalid$data() {\n const { gen, schemaCode, schemaType, def, it } = this;\n return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());\n function wrong$DataType() {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof codegen_1.Name))\n throw new Error(\"ajv implementation error\");\n const st = Array.isArray(schemaType) ? schemaType : [schemaType];\n return (0, codegen_1._) `${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;\n }\n return codegen_1.nil;\n }\n function invalid$DataSchema() {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", { ref: def.validateSchema }); // TODO value.code for standalone\n return (0, codegen_1._) `!${validateSchemaRef}(${schemaCode})`;\n }\n return codegen_1.nil;\n }\n }\n subschema(appl, valid) {\n const subschema = (0, subschema_1.getSubschema)(this.it, appl);\n (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);\n (0, subschema_1.extendSubschemaMode)(subschema, appl);\n const nextContext = { ...this.it, ...subschema, items: undefined, props: undefined };\n subschemaCode(nextContext, valid);\n return nextContext;\n }\n mergeEvaluated(schemaCxt, toName) {\n const { it, gen } = this;\n if (!it.opts.unevaluated)\n return;\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);\n }\n }\n mergeValidEvaluated(schemaCxt, valid) {\n const { it, gen } = this;\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));\n return true;\n }\n }\n}\nexports.KeywordCxt = KeywordCxt;\nfunction keywordCode(it, keyword, def, ruleType) {\n const cxt = new KeywordCxt(it, def, keyword);\n if (\"code\" in def) {\n def.code(cxt, ruleType);\n }\n else if (cxt.$data && def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n else if (\"macro\" in def) {\n (0, keyword_1.macroKeywordCode)(cxt, def);\n }\n else if (def.compile || def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n}\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, { dataLevel, dataNames, dataPathArr }) {\n let jsonPointer;\n let data;\n if ($data === \"\")\n return names_1.default.rootData;\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data))\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n jsonPointer = $data;\n data = names_1.default.rootData;\n }\n else {\n const matches = RELATIVE_JSON_POINTER.exec($data);\n if (!matches)\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n const up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer === \"#\") {\n if (up >= dataLevel)\n throw new Error(errorMsg(\"property/index\", up));\n return dataPathArr[dataLevel - up];\n }\n if (up > dataLevel)\n throw new Error(errorMsg(\"data\", up));\n data = dataNames[dataLevel - up];\n if (!jsonPointer)\n return data;\n }\n let expr = data;\n const segments = jsonPointer.split(\"/\");\n for (const segment of segments) {\n if (segment) {\n data = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;\n expr = (0, codegen_1._) `${expr} && ${data}`;\n }\n }\n return expr;\n function errorMsg(pointerType, up) {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;\n }\n}\nexports.getData = getData;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass ValidationError extends Error {\n constructor(errors) {\n super(\"validation failed\");\n this.errors = errors;\n this.ajv = this.validation = true;\n }\n}\nexports.default = ValidationError;\n//# sourceMappingURL=validation_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst resolve_1 = require(\"./resolve\");\nclass MissingRefError extends Error {\n constructor(resolver, baseId, ref, msg) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`);\n this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref);\n this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef));\n }\n}\nexports.default = MissingRefError;\n//# sourceMappingURL=ref_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst validation_error_1 = require(\"../runtime/validation_error\");\nconst names_1 = require(\"./names\");\nconst resolve_1 = require(\"./resolve\");\nconst util_1 = require(\"./util\");\nconst validate_1 = require(\"./validate\");\nclass SchemaEnv {\n constructor(env) {\n var _a;\n this.refs = {};\n this.dynamicAnchors = {};\n let schema;\n if (typeof env.schema == \"object\")\n schema = env.schema;\n this.schema = env.schema;\n this.schemaId = env.schemaId;\n this.root = env.root || this;\n this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || \"$id\"]);\n this.schemaPath = env.schemaPath;\n this.localRefs = env.localRefs;\n this.meta = env.meta;\n this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;\n this.refs = {};\n }\n}\nexports.SchemaEnv = SchemaEnv;\n// let codeSize = 0\n// let nodeCount = 0\n// Compiles schema in SchemaEnv\nfunction compileSchema(sch) {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch);\n if (_sch)\n return _sch;\n const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); // TODO if getFullPath removed 1 tests fails\n const { es5, lines } = this.opts.code;\n const { ownProperties } = this.opts;\n const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties });\n let _ValidationError;\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: validation_error_1.default,\n code: (0, codegen_1._) `require(\"ajv/dist/runtime/validation_error\").default`,\n });\n }\n const validateName = gen.scopeName(\"validate\");\n sch.validateName = validateName;\n const schemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: names_1.default.data,\n parentData: names_1.default.parentData,\n parentDataProperty: names_1.default.parentDataProperty,\n dataNames: [names_1.default.data],\n dataPathArr: [codegen_1.nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set(),\n topSchemaRef: gen.scopeValue(\"schema\", this.opts.code.source === true\n ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) }\n : { ref: sch.schema }),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: codegen_1.nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: (0, codegen_1._) `\"\"`,\n opts: this.opts,\n self: this,\n };\n let sourceCode;\n try {\n this._compilations.add(sch);\n (0, validate_1.validateFunctionCode)(schemaCxt);\n gen.optimize(this.opts.code.optimize);\n // gen.optimize(1)\n const validateCode = gen.toString();\n sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process)\n sourceCode = this.opts.code.process(sourceCode, sch);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);\n const validate = makeValidate(this, this.scope.get());\n this.scope.value(validateName, { ref: validate });\n validate.errors = null;\n validate.schema = sch.schema;\n validate.schemaEnv = sch;\n if (sch.$async)\n validate.$async = true;\n if (this.opts.code.source === true) {\n validate.source = { validateName, validateCode, scopeValues: gen._values };\n }\n if (this.opts.unevaluated) {\n const { props, items } = schemaCxt;\n validate.evaluated = {\n props: props instanceof codegen_1.Name ? undefined : props,\n items: items instanceof codegen_1.Name ? undefined : items,\n dynamicProps: props instanceof codegen_1.Name,\n dynamicItems: items instanceof codegen_1.Name,\n };\n if (validate.source)\n validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated);\n }\n sch.validate = validate;\n return sch;\n }\n catch (e) {\n delete sch.validate;\n delete sch.validateName;\n if (sourceCode)\n this.logger.error(\"Error compiling schema, function code:\", sourceCode);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e;\n }\n finally {\n this._compilations.delete(sch);\n }\n}\nexports.compileSchema = compileSchema;\nfunction resolveRef(root, baseId, ref) {\n var _a;\n ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);\n const schOrFunc = root.refs[ref];\n if (schOrFunc)\n return schOrFunc;\n let _sch = resolve.call(this, root, ref);\n if (_sch === undefined) {\n const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; // TODO maybe localRefs should hold SchemaEnv\n const { schemaId } = this.opts;\n if (schema)\n _sch = new SchemaEnv({ schema, schemaId, root, baseId });\n }\n if (_sch === undefined)\n return;\n return (root.refs[ref] = inlineOrCompile.call(this, _sch));\n}\nexports.resolveRef = resolveRef;\nfunction inlineOrCompile(sch) {\n if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs))\n return sch.schema;\n return sch.validate ? sch : compileSchema.call(this, sch);\n}\n// Index of schema compilation in the currently compiled list\nfunction getCompilingSchema(schEnv) {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv))\n return sch;\n }\n}\nexports.getCompilingSchema = getCompilingSchema;\nfunction sameSchemaEnv(s1, s2) {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;\n}\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(root, // information about the root schema for the current schema\nref // reference to resolve\n) {\n let sch;\n while (typeof (sch = this.refs[ref]) == \"string\")\n ref = sch;\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);\n}\n// Resolve schema, its root and baseId\nfunction resolveSchema(root, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\nref // reference to resolve\n) {\n const p = this.opts.uriResolver.parse(ref);\n const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);\n let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, undefined);\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root);\n }\n const id = (0, resolve_1.normalizeId)(refPath);\n const schOrRef = this.refs[id] || this.schemas[id];\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef);\n if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== \"object\")\n return;\n return getJsonPointer.call(this, p, sch);\n }\n if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== \"object\")\n return;\n if (!schOrRef.validate)\n compileSchema.call(this, schOrRef);\n if (id === (0, resolve_1.normalizeId)(ref)) {\n const { schema } = schOrRef;\n const { schemaId } = this.opts;\n const schId = schema[schemaId];\n if (schId)\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n return new SchemaEnv({ schema, schemaId, root, baseId });\n }\n return getJsonPointer.call(this, p, schOrRef);\n}\nexports.resolveSchema = resolveSchema;\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n]);\nfunction getJsonPointer(parsedRef, { baseId, schema, root }) {\n var _a;\n if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== \"/\")\n return;\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\")\n return;\n const partSchema = schema[(0, util_1.unescapeFragment)(part)];\n if (partSchema === undefined)\n return;\n schema = partSchema;\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId];\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n }\n }\n let env;\n if (typeof schema != \"boolean\" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {\n const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref);\n env = resolveSchema.call(this, root, $ref);\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const { schemaId } = this.opts;\n env = env || new SchemaEnv({ schema, schemaId, root, baseId });\n if (env.schema !== env.root.schema)\n return env;\n return undefined;\n}\n//# sourceMappingURL=index.js.map","'use strict'\n\n/** @type {(value: string) => boolean} */\nconst isUUID = RegExp.prototype.test.bind(/^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)$/u)\n\n/** @type {(value: string) => boolean} */\nconst isPort = RegExp.prototype.test.bind(/^\\d*$/u)\n\n/** @type {(value: string) => boolean} */\nconst isHexPair = RegExp.prototype.test.bind(/^[\\da-f]{2}$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isUnreserved = RegExp.prototype.test.bind(/^[\\da-z\\-._~]$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isPathCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\\-._~!$&'()*+,;=:@/]$/u)\n\n/** @type {(value: string) => boolean} */\nconst isQueryFragmentCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\\-._~!$&'()*+,;=:@/?]$/u)\n\n/** @type {(value: string) => boolean} */\nconst isUserinfoCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\\-._~!$&'()*+,;=:]$/u)\n\nconst BYTE_HEX = new Array(256)\n{\n const HEX_DIGITS = '0123456789ABCDEF'\n for (let i = 0; i < 256; i++) {\n BYTE_HEX[i] = '%' + HEX_DIGITS[i >> 4] + HEX_DIGITS[i & 0xF]\n }\n}\nfunction percentEncodeNonAscii (cp) {\n if (cp < 0x800) {\n return BYTE_HEX[0xC0 | (cp >> 6)] +\n BYTE_HEX[0x80 | (cp & 0x3F)]\n }\n if (cp < 0x10000) {\n return BYTE_HEX[0xE0 | (cp >> 12)] +\n BYTE_HEX[0x80 | ((cp >> 6) & 0x3F)] +\n BYTE_HEX[0x80 | (cp & 0x3F)]\n }\n return BYTE_HEX[0xF0 | (cp >> 18)] +\n BYTE_HEX[0x80 | ((cp >> 12) & 0x3F)] +\n BYTE_HEX[0x80 | ((cp >> 6) & 0x3F)] +\n BYTE_HEX[0x80 | (cp & 0x3F)]\n}\n\n/**\n * @param {Array} input\n * @returns {string}\n */\nfunction stringArrayToHexStripped (input) {\n let acc = ''\n let code = 0\n let i = 0\n\n for (i = 0; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (code === 48) {\n continue\n }\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n break\n }\n\n for (i += 1; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n }\n return acc\n}\n\n/** @type {(value: string) => boolean} */\nconst isHextet = RegExp.prototype.test.bind(/^[\\dA-Fa-f]{1,4}$/)\n\n/** @type {(value: string) => boolean} */\nconst isIPvFuture = RegExp.prototype.test.bind(/^[vV][\\dA-Fa-f]+\\.[A-Za-z\\d\\-._~!$&'()*+,;=:]+$/)\n\n/** @type {(value: string) => boolean} */\nconst isZoneCharacter = RegExp.prototype.test.bind(/^[A-Za-z\\d\\-._~]$/)\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nconst nonSimpleDomain = RegExp.prototype.test.bind(/[^!\"$&'()*+,\\-.;=_`a-z{}~]/u)\n\n/**\n * @param {string} zone\n * @returns {boolean}\n */\nfunction isZoneIdentifier (zone) {\n if (zone.length === 0) return false\n\n for (let i = 0; i < zone.length; i++) {\n if (isZoneCharacter(zone[i])) continue\n if (zone[i] === '%' && i + 2 < zone.length && isHexPair(zone.slice(i + 1, i + 3))) {\n i += 2\n continue\n }\n return false\n }\n\n return true\n}\n\n/**\n * Compresses the longest run of zero hextets to \"::\" per RFC 5952. A run of a\n * single zero hextet is left uncompressed. On ties the leftmost run wins.\n *\n * @param {string[]} hextets\n * @returns {string}\n */\nfunction compressIPv6ZeroRun (hextets) {\n let bestStart = -1\n let bestLength = 0\n let runStart = -1\n let runLength = 0\n for (let i = 0; i < hextets.length; i++) {\n if (hextets[i] === '0') {\n if (runStart === -1) runStart = i\n runLength++\n if (runLength > bestLength) {\n bestLength = runLength\n bestStart = runStart\n }\n } else {\n runStart = -1\n runLength = 0\n }\n }\n\n if (bestLength < 2) return hextets.join(':')\n\n const head = hextets.slice(0, bestStart).join(':')\n const tail = hextets.slice(bestStart + bestLength).join(':')\n return head + '::' + tail\n}\n\n/**\n * Validates an IPv6 address against the alternatives in RFC 3986 section\n * 3.2.2 and returns the same address with leading hextet zeroes removed.\n * An embedded IPv4 address counts as two hextets and is only valid at the end.\n *\n * @param {string} input\n * @returns {string|undefined}\n */\nfunction normalizeIPv6Address (input) {\n const compression = input.indexOf('::')\n if (compression !== -1 && input.indexOf('::', compression + 1) !== -1) return undefined\n\n const left = compression === -1 ? input.split(':') : input.slice(0, compression).split(':')\n const right = compression === -1 ? [] : input.slice(compression + 2).split(':')\n if (compression !== -1) {\n if (left.length === 1 && left[0] === '') left.length = 0\n if (right.length === 1 && right[0] === '') right.length = 0\n }\n\n const parts = left.concat(right)\n let hextetCount = 0\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i]\n if (part === '') return undefined\n\n if (part.indexOf('.') !== -1) {\n if (i !== parts.length - 1 || (compression !== -1 && right.length === 0) || !isIPv4(part)) return undefined\n hextetCount += 2\n continue\n }\n\n if (!isHextet(part)) return undefined\n parts[i] = parseInt(part, 16).toString(16)\n hextetCount++\n }\n\n if (compression === -1) {\n if (hextetCount !== 8) return undefined\n return compressIPv6ZeroRun(parts)\n }\n if (hextetCount >= 8) return undefined\n\n // expand \"::\" then re-compress the longest run for a canonical result\n const expanded = parts.slice(0, left.length)\n for (let i = hextetCount; i < 8; i++) expanded.push('0')\n for (let i = left.length; i < parts.length; i++) expanded.push(parts[i])\n return compressIPv6ZeroRun(expanded)\n}\n\n/**\n * @typedef {Object} NormalizeIPv6Result\n * @property {string} host - The normalized host.\n * @property {string} [escapedHost] - The escaped host.\n * @property {boolean} isIPV6 - Indicates if the host is an IPv6 address.\n * @property {boolean} [isIPVFuture] - Indicates if the host is an IPvFuture literal.\n * @property {boolean} [error] - Indicates if a bracketed IP literal is malformed.\n */\n\n/**\n * Validates and normalizes a bracketed IP literal. Raw zone separators remain\n * accepted for backwards compatibility, while encoded separators and zone\n * contents follow RFC 6874.\n *\n * @param {string} host\n * @returns {NormalizeIPv6Result}\n */\nfunction normalizeIPv6 (host) {\n const bracketed = host[0] === '[' && host[host.length - 1] === ']'\n const hasBracket = host[0] === '[' || host[host.length - 1] === ']'\n if (hasBracket && !bracketed) return { host, isIPV6: false, error: true }\n\n let input = bracketed ? host.slice(1, -1) : host\n if (bracketed && isIPvFuture(input)) {\n input = input.toLowerCase()\n return { host: `[${input}]`, escapedHost: input, isIPV6: false, isIPVFuture: true }\n }\n\n if (findToken(input, ':') < 2) {\n return { host, isIPV6: false, error: bracketed }\n }\n\n let zoneIdentifier = ''\n const zoneSeparator = input.indexOf('%')\n if (zoneSeparator !== -1) {\n const separatorLength = input.slice(zoneSeparator, zoneSeparator + 3).toLowerCase() === '%25' ? 3 : 1\n zoneIdentifier = input.slice(zoneSeparator + separatorLength)\n if (!isZoneIdentifier(zoneIdentifier)) return { host, isIPV6: false, error: true }\n input = input.slice(0, zoneSeparator)\n }\n\n const address = normalizeIPv6Address(input)\n if (address === undefined) return { host, isIPV6: false, error: true }\n\n return {\n host: address + (zoneIdentifier ? '%' + zoneIdentifier : ''),\n escapedHost: address + (zoneIdentifier ? '%25' + zoneIdentifier : ''),\n isIPV6: true\n }\n}\n\n/**\n * @param {string} str\n * @param {string} token\n * @returns {number}\n */\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\n/**\n * @param {string} path\n * @returns {string}\n *\n * @see https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n */\nfunction removeDotSegments (path) {\n let input = path\n const output = []\n let nextSlash = -1\n let len = 0\n\n // eslint-disable-next-line no-cond-assign\n while (len = input.length) {\n if (len === 1) {\n if (input === '.') {\n break\n } else if (input === '/') {\n output.push('/')\n break\n } else {\n output.push(input)\n break\n }\n } else if (len === 2) {\n if (input[0] === '.') {\n if (input[1] === '.') {\n break\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.' || input[1] === '/') {\n output.push('/')\n break\n }\n }\n } else if (len === 3) {\n if (input === '/..') {\n if (output.length !== 0) {\n output.pop()\n }\n output.push('/')\n break\n }\n }\n if (input[0] === '.') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(3)\n continue\n }\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(2)\n continue\n } else if (input[2] === '.') {\n if (input[3] === '/') {\n input = input.slice(3)\n if (output.length !== 0) {\n output.pop()\n }\n continue\n }\n }\n }\n }\n\n // Rule 2E: Move normal path segment to output\n if ((nextSlash = input.indexOf('/', 1)) === -1) {\n output.push(input)\n break\n } else {\n output.push(input.slice(0, nextSlash))\n input = input.slice(nextSlash)\n }\n }\n\n return output.join('')\n}\n\n/**\n * Re-escape RFC 3986 gen-delims that must not appear literally in the host.\n * After the URI regex parses, these characters cannot be literal in the host\n * field, so any that appear after decoding came from percent-encoding and\n * must be restored to prevent authority structure changes.\n *\n * @param {string} host\n * @param {boolean} isIP - true for IPv4/IPv6 hosts (skip colon re-escaping)\n * @returns {string}\n */\nconst HOST_DELIMS = { '@': '%40', '/': '%2F', '?': '%3F', '#': '%23', ':': '%3A' }\nconst HOST_DELIM_RE = /[@/?#:]/g\nconst HOST_DELIM_NO_COLON_RE = /[@/?#]/g\n\nfunction reescapeHostDelimiters (host, isIP) {\n const re = isIP ? HOST_DELIM_NO_COLON_RE : HOST_DELIM_RE\n re.lastIndex = 0\n return host.replace(re, (ch) => HOST_DELIMS[ch])\n}\n\n/**\n * Normalizes percent escapes and optionally decodes only unreserved ASCII bytes.\n * Reserved delimiters such as `%2F` stay escaped; `%2E` is unreserved.\n *\n * @param {string} input\n * @param {boolean} [decodeUnreserved=false]\n * @returns {string}\n */\nfunction normalizePercentEncoding (input, decodeUnreserved = false) {\n if (input.indexOf('%') === -1) {\n return input\n }\n\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n if (input[i] === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n const normalizedHex = hex.toUpperCase()\n const decoded = String.fromCharCode(parseInt(normalizedHex, 16))\n\n if (decodeUnreserved && isUnreserved(decoded)) {\n output += decoded\n } else {\n output += '%' + normalizedHex\n }\n\n i += 2\n continue\n }\n }\n\n output += input[i]\n }\n\n return output\n}\n\n/**\n * Normalizes path data without turning reserved escapes into live path syntax.\n * Valid escapes are uppercased, raw unsafe characters are escaped, and only\n * unreserved bytes that are not `.` are decoded.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizePathEncoding (input) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n const normalizedHex = hex.toUpperCase()\n const decoded = String.fromCharCode(parseInt(normalizedHex, 16))\n\n if (decoded !== '.' && isUnreserved(decoded)) {\n output += decoded\n } else {\n output += '%' + normalizedHex\n }\n\n i += 2\n continue\n }\n }\n\n if (isPathCharacter(ch)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += isEscapeSafe(code) ? ch : BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Serializes a path without rewriting reserved data. Raw RFC 3986 path\n * characters remain literal, valid escapes are preserved and uppercased, and\n * everything else is UTF-8 percent-encoded. In a path-noscheme, a colon in the\n * first segment must be escaped so the result cannot be parsed as a scheme.\n *\n * @param {string} input\n * @param {boolean} [pathNoScheme=false]\n * @returns {string}\n */\nfunction serializePathEncoding (input, pathNoScheme = false) {\n let output = ''\n let firstSegment = pathNoScheme && input[0] !== '/'\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n output += '%' + hex.toUpperCase()\n i += 2\n continue\n }\n }\n\n if (ch === '/') {\n firstSegment = false\n }\n\n if (isPathCharacter(ch) && (ch !== ':' || !firstSegment)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Percent-encodes a URI component using its RFC 3986 literal character set.\n * Existing valid escapes are preserved and normalized to uppercase hex.\n *\n * @param {string} input\n * @param {(value: string) => boolean} isAllowed\n * @returns {string}\n */\nfunction encodeComponent (input, isAllowed) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n output += '%' + hex.toUpperCase()\n i += 2\n continue\n }\n }\n\n if (isAllowed(ch)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Encodes userinfo while preserving its RFC 3986 §3.2.1 literal characters.\n * In particular, authority delimiters such as `@`, `/`, `?`, and `#` are data.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction encodeUserinfo (input) {\n return encodeComponent(input, isUserinfoCharacter)\n}\n\n/**\n * Encodes query data using the RFC 3986 §3.4 grammar. A literal `#` must be\n * escaped because it would otherwise begin the fragment component.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction encodeQuery (input) {\n return encodeComponent(input, isQueryFragmentCharacter)\n}\n\n/**\n * Encodes fragment data using the RFC 3986 §3.5 grammar.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction encodeFragment (input) {\n return encodeComponent(input, isQueryFragmentCharacter)\n}\n\nfunction isEscapeSafe (cp) {\n return (\n (cp >= 0x30 && cp <= 0x39) ||\n (cp >= 0x41 && cp <= 0x5A) ||\n (cp >= 0x61 && cp <= 0x7A) ||\n cp === 0x2A || cp === 0x2B || cp === 0x2D || cp === 0x2E ||\n cp === 0x2F || cp === 0x40 || cp === 0x5F\n )\n}\n\n/**\n * Normalizes the percent-encoding of a query or fragment component.\n *\n * Like `normalizePathEncoding`, but uses the query/fragment character set\n * (which additionally allows `?`) and decodes `.` since it has no dot-segment\n * meaning outside of a path.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizeQueryFragmentEncoding (input) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n const normalizedHex = hex.toUpperCase()\n const decoded = String.fromCharCode(parseInt(normalizedHex, 16))\n\n if (isUnreserved(decoded)) {\n output += decoded\n } else {\n output += '%' + normalizedHex\n }\n\n i += 2\n continue\n }\n }\n\n if (isQueryFragmentCharacter(ch)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += isEscapeSafe(code) ? ch : BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Escapes a component while preserving existing valid percent escapes.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction escapePreservingEscapes (input) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n if (input[i] === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n output += '%' + hex.toUpperCase()\n i += 2\n continue\n }\n }\n\n output += escape(input[i])\n }\n\n return output\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @returns {string|undefined}\n */\nfunction recomposeAuthority (component) {\n const uriTokens = []\n\n if (component.userinfo !== undefined) {\n uriTokens.push(encodeUserinfo(component.userinfo))\n uriTokens.push('@')\n }\n\n if (component.host !== undefined) {\n let host = component.host\n if (!isIPv4(host)) {\n let ipV6res = normalizeIPv6(host)\n if (ipV6res.isIPV6 !== true && ipV6res.isIPVFuture !== true) {\n // Decode only unreserved bytes, once. In particular, keep %25 encoded\n // so it cannot introduce a second escape during recomposition.\n host = normalizePercentEncoding(host, true)\n ipV6res = normalizeIPv6(host)\n }\n if (ipV6res.isIPV6 === true || ipV6res.isIPVFuture === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = reescapeHostDelimiters(host, false)\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof component.port === 'number' || typeof component.port === 'string') {\n const port = String(component.port)\n if (!isPort(port)) {\n throw new TypeError('URI port is malformed.')\n }\n uriTokens.push(':')\n uriTokens.push(port)\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n nonSimpleDomain,\n recomposeAuthority,\n reescapeHostDelimiters,\n normalizePercentEncoding,\n normalizePathEncoding,\n serializePathEncoding,\n normalizeQueryFragmentEncoding,\n encodeUserinfo,\n encodeQuery,\n encodeFragment,\n escapePreservingEscapes,\n removeDotSegments,\n isIPv4,\n isUUID,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n","'use strict'\n\nconst { isUUID } = require('./utils')\nconst URN_REG = /^([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-./:;=@]|%[\\da-f]{2})+)$/iu\n\nconst supportedSchemeNames = /** @type {const} */ (['http', 'https', 'ws',\n 'wss', 'urn', 'urn:uuid'])\n\n/** @typedef {supportedSchemeNames[number]} SchemeName */\n\n/**\n * @param {string} name\n * @returns {name is SchemeName}\n */\nfunction isValidSchemeName (name) {\n return supportedSchemeNames.indexOf(/** @type {*} */ (name)) !== -1\n}\n\n/**\n * @callback SchemeFn\n * @param {import('../types/index').URIComponent} component\n * @param {import('../types/index').Options} options\n * @returns {import('../types/index').URIComponent}\n */\n\n/**\n * @typedef {Object} SchemeHandler\n * @property {SchemeName} scheme - The scheme name.\n * @property {boolean} [domainHost] - Indicates if the scheme supports domain hosts.\n * @property {SchemeFn} parse - Function to parse the URI component for this scheme.\n * @property {SchemeFn} serialize - Function to serialize the URI component for this scheme.\n * @property {boolean} [skipNormalize] - Indicates if normalization should be skipped for this scheme.\n * @property {boolean} [absolutePath] - Indicates if the scheme uses absolute paths.\n * @property {boolean} [unicodeSupport] - Indicates if the scheme supports Unicode.\n */\n\n/**\n * @param {import('../types/index').URIComponent} wsComponent\n * @returns {boolean}\n */\nfunction wsIsSecure (wsComponent) {\n if (wsComponent.secure === true) {\n return true\n } else if (wsComponent.secure === false) {\n return false\n } else if (wsComponent.scheme) {\n return (\n wsComponent.scheme.length === 3 &&\n (wsComponent.scheme[0] === 'w' || wsComponent.scheme[0] === 'W') &&\n (wsComponent.scheme[1] === 's' || wsComponent.scheme[1] === 'S') &&\n (wsComponent.scheme[2] === 's' || wsComponent.scheme[2] === 'S')\n )\n } else {\n return false\n }\n}\n\n/** @type {SchemeFn} */\nfunction httpParse (component) {\n if (!component.host) {\n component.error = component.error || 'HTTP URIs must have a host.'\n }\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction httpSerialize (component) {\n const secure = String(component.scheme).toLowerCase() === 'https'\n\n // normalize the default port\n if (component.port === (secure ? 443 : 80) || component.port === '') {\n component.port = undefined\n }\n\n // normalize the empty path\n if (!component.path) {\n component.path = '/'\n }\n\n // NOTE: We do not parse query strings for HTTP URIs\n // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n // and not the HTTP spec.\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction wsParse (wsComponent) {\n// indicate if the secure flag is set\n wsComponent.secure = wsIsSecure(wsComponent)\n\n // construct resouce name\n wsComponent.resourceName = (wsComponent.path || '/') + (wsComponent.query ? '?' + wsComponent.query : '')\n wsComponent.path = undefined\n wsComponent.query = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction wsSerialize (wsComponent) {\n// normalize the default port\n if (wsComponent.port === (wsIsSecure(wsComponent) ? 443 : 80) || wsComponent.port === '') {\n wsComponent.port = undefined\n }\n\n // ensure scheme matches secure flag\n if (typeof wsComponent.secure === 'boolean') {\n wsComponent.scheme = (wsComponent.secure ? 'wss' : 'ws')\n wsComponent.secure = undefined\n }\n\n // reconstruct path from resource name\n if (wsComponent.resourceName) {\n const queryIndex = wsComponent.resourceName.indexOf('?')\n const path = queryIndex === -1\n ? wsComponent.resourceName\n : wsComponent.resourceName.slice(0, queryIndex)\n wsComponent.path = (path && path !== '/' ? path : undefined)\n wsComponent.query = queryIndex === -1\n ? undefined\n : wsComponent.resourceName.slice(queryIndex + 1)\n wsComponent.resourceName = undefined\n }\n\n // forbid fragment component\n wsComponent.fragment = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnParse (urnComponent, options) {\n if (!urnComponent.path) {\n urnComponent.error = 'URN can not be parsed'\n return urnComponent\n }\n const matches = urnComponent.path.match(URN_REG)\n if (matches && matches[0] === urnComponent.path) {\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n urnComponent.nid = matches[1].toLowerCase()\n urnComponent.nss = matches[2]\n const urnScheme = `${scheme}:${options.nid || urnComponent.nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n urnComponent.path = undefined\n\n if (schemeHandler) {\n urnComponent = schemeHandler.parse(urnComponent, options)\n }\n } else {\n urnComponent.error = urnComponent.error || 'URN can not be parsed.'\n }\n\n return urnComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnSerialize (urnComponent, options) {\n if (urnComponent.nid === undefined) {\n throw new Error('URN without nid cannot be serialized')\n }\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n const nid = urnComponent.nid.toLowerCase()\n const urnScheme = `${scheme}:${options.nid || nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n\n if (schemeHandler) {\n urnComponent = schemeHandler.serialize(urnComponent, options)\n }\n\n const uriComponent = urnComponent\n const nss = urnComponent.nss\n uriComponent.path = `${nid || options.nid}:${nss}`\n\n options.skipEscape = true\n return uriComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidParse (urnComponent, options) {\n const uuidComponent = urnComponent\n uuidComponent.uuid = uuidComponent.nss\n uuidComponent.nss = undefined\n\n if (!options.tolerant && (!uuidComponent.uuid || !isUUID(uuidComponent.uuid))) {\n uuidComponent.error = uuidComponent.error || 'UUID is not valid.'\n }\n\n return uuidComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidSerialize (uuidComponent) {\n const urnComponent = uuidComponent\n // normalize UUID\n urnComponent.nss = (uuidComponent.uuid || '').toLowerCase()\n return urnComponent\n}\n\nconst http = /** @type {SchemeHandler} */ ({\n scheme: 'http',\n domainHost: true,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst https = /** @type {SchemeHandler} */ ({\n scheme: 'https',\n domainHost: http.domainHost,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst ws = /** @type {SchemeHandler} */ ({\n scheme: 'ws',\n domainHost: true,\n parse: wsParse,\n serialize: wsSerialize\n})\n\nconst wss = /** @type {SchemeHandler} */ ({\n scheme: 'wss',\n domainHost: ws.domainHost,\n parse: ws.parse,\n serialize: ws.serialize\n})\n\nconst urn = /** @type {SchemeHandler} */ ({\n scheme: 'urn',\n parse: urnParse,\n serialize: urnSerialize,\n skipNormalize: true\n})\n\nconst urnuuid = /** @type {SchemeHandler} */ ({\n scheme: 'urn:uuid',\n parse: urnuuidParse,\n serialize: urnuuidSerialize,\n skipNormalize: true\n})\n\nconst SCHEMES = /** @type {Record} */ ({\n http,\n https,\n ws,\n wss,\n urn,\n 'urn:uuid': urnuuid\n})\n\nObject.setPrototypeOf(SCHEMES, null)\n\n/**\n * @param {string|undefined} scheme\n * @returns {SchemeHandler|undefined}\n */\nfunction getSchemeHandler (scheme) {\n return (\n scheme && (\n SCHEMES[/** @type {SchemeName} */ (scheme)] ||\n SCHEMES[/** @type {SchemeName} */(scheme.toLowerCase())])\n ) ||\n undefined\n}\n\nmodule.exports = {\n wsIsSecure,\n SCHEMES,\n isValidSchemeName,\n getSchemeHandler,\n}\n","'use strict'\n\nconst { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, serializePathEncoding, normalizeQueryFragmentEncoding, encodeQuery, encodeFragment, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require('./lib/utils')\nconst { SCHEMES, getSchemeHandler } = require('./lib/schemes')\n\nconst VALID_SCHEME = /^[A-Za-z][A-Za-z0-9+.-]*$/u\nconst MALFORMED_SCHEME_ERROR = 'URI scheme is malformed.'\n\n/**\n * @param {string} scheme\n * @returns {string}\n */\nfunction decodeValidScheme (scheme) {\n const decodedScheme = unescape(String(scheme))\n if (!VALID_SCHEME.test(decodedScheme)) {\n throw new TypeError(MALFORMED_SCHEME_ERROR)\n }\n return decodedScheme\n}\n\n/**\n * @template {import('./types/index').URIComponent|string} T\n * @param {T} uri\n * @param {import('./types/index').Options} [options]\n * @returns {T}\n */\nfunction normalize (uri, options) {\n if (typeof uri === 'string') {\n uri = /** @type {T} */ (normalizeString(uri, options))\n } else if (typeof uri === 'object') {\n uri = /** @type {T} */ (parse(serialize(uri, options), options))\n }\n return uri\n}\n\n/**\n * @param {string} baseURI\n * @param {string} relativeURI\n * @param {import('./types/index').Options} [options]\n * @returns {string}\n */\nfunction resolve (baseURI, relativeURI, options) {\n const schemelessOptions = options ? Object.assign({ scheme: 'null' }, options) : { scheme: 'null' }\n const {\n parsed: baseParsed,\n malformedAuthorityOrPort: baseMalformed,\n malformedPercentEncoding: baseMalformedPercentEncoding,\n malformedSchemeSpecific: baseMalformedSchemeSpecific,\n malformedHost: baseMalformedHost,\n malformedScheme: baseMalformedScheme\n } = parseWithStatus(baseURI, schemelessOptions)\n const {\n parsed: relativeParsed,\n malformedAuthorityOrPort: relativeMalformed,\n malformedPercentEncoding: relativeMalformedPercentEncoding,\n malformedSchemeSpecific: relativeMalformedSchemeSpecific,\n malformedHost: relativeMalformedHost,\n malformedScheme: relativeMalformedScheme\n } = parseWithStatus(relativeURI, schemelessOptions)\n if (\n baseMalformed ||\n relativeMalformed ||\n baseMalformedPercentEncoding ||\n relativeMalformedPercentEncoding ||\n baseMalformedSchemeSpecific ||\n relativeMalformedSchemeSpecific ||\n baseMalformedHost ||\n relativeMalformedHost ||\n baseMalformedScheme ||\n relativeMalformedScheme\n ) {\n throw new Error(baseParsed.error || relativeParsed.error || 'URI is malformed.')\n }\n const resolved = resolveComponent(baseParsed, relativeParsed, schemelessOptions, true)\n const resolvedSchemeHandler = getSchemeHandler((options && options.scheme) || resolved.scheme)\n const resolvedHost = resolved.host\n const resolvedHostIsIP = resolvedHost !== undefined && resolvedHost !== '' &&\n (isIPv4(resolvedHost) || normalizeIPv6(resolvedHost).isIPV6)\n canonicalizeHost(resolved, options || {}, resolvedSchemeHandler, resolvedHostIsIP)\n // Percent escapes in an ASCII reg-name are encoded data. The WHATWG hostname\n // parser can reject them even though fast-uri preserves them safely as RFC\n // 3986 data. A raw non-ASCII host must still fail closed if conversion fails.\n const encodedASCIIHost = resolvedHost && resolvedHost.indexOf('%') !== -1 &&\n !/\\P{ASCII}/u.test(resolvedHost)\n if (resolved.error && !encodedASCIIHost) {\n throw new Error(resolved.error)\n }\n schemelessOptions.skipEscape = true\n return serialize(resolved, schemelessOptions)\n}\n\n/**\n * @param {import ('./types/index').URIComponent} base\n * @param {import ('./types/index').URIComponent} relative\n * @param {import('./types/index').Options} [options]\n * @param {boolean} [skipNormalization=false]\n * @returns {import ('./types/index').URIComponent}\n */\nfunction resolveComponent (base, relative, options, skipNormalization) {\n /** @type {import('./types/index').URIComponent} */\n const target = {}\n if (!skipNormalization) {\n base = parse(serialize(base, options), options) // normalize base component\n relative = parse(serialize(relative, options), options) // normalize relative component\n }\n options = options || {}\n\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (!relative.path) {\n target.path = base.path\n if (relative.query !== undefined) {\n target.query = relative.query\n } else {\n target.query = base.query\n }\n } else {\n if (relative.path[0] === '/') {\n target.path = removeDotSegments(relative.path)\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = '/' + relative.path\n } else if (!base.path) {\n target.path = relative.path\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf('/') + 1) + relative.path\n }\n target.path = removeDotSegments(target.path)\n }\n target.query = relative.query\n }\n // target.authority = base.authority;\n target.userinfo = base.userinfo\n target.host = base.host\n target.port = base.port\n }\n target.scheme = base.scheme\n }\n\n target.fragment = relative.fragment\n\n return target\n}\n\n/**\n * @param {import ('./types/index').URIComponent|string} uriA\n * @param {import ('./types/index').URIComponent|string} uriB\n * @param {import ('./types/index').Options} options\n * @returns {boolean}\n */\nfunction equal (uriA, uriB, options) {\n const normalizedA = normalizeComparableURI(uriA, options)\n const normalizedB = normalizeComparableURI(uriB, options)\n\n return normalizedA !== undefined && normalizedB !== undefined && normalizedA === normalizedB\n}\n\n/**\n * @param {Readonly} cmpts\n * @param {import('./types/index').Options} [opts]\n * @returns {string}\n */\nfunction serialize (cmpts, opts) {\n const component = {\n host: cmpts.host,\n scheme: cmpts.scheme,\n userinfo: cmpts.userinfo,\n port: cmpts.port,\n path: cmpts.path,\n query: cmpts.query,\n nid: cmpts.nid,\n nss: cmpts.nss,\n uuid: cmpts.uuid,\n fragment: cmpts.fragment,\n reference: cmpts.reference,\n resourceName: cmpts.resourceName,\n secure: cmpts.secure,\n error: ''\n }\n const options = Object.assign({}, opts)\n const uriTokens = []\n\n if (component.scheme) {\n component.scheme = decodeValidScheme(component.scheme)\n }\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || component.scheme)\n\n // perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options)\n\n const hasAuthority = component.userinfo !== undefined || component.host !== undefined || component.port !== undefined\n const pathNoScheme = !options.skipEscape && component.scheme === undefined && !hasAuthority\n\n if (component.path !== undefined) {\n if (!options.skipEscape) {\n component.path = serializePathEncoding(component.path, pathNoScheme)\n } else {\n component.path = normalizePercentEncoding(component.path)\n }\n }\n\n if (options.reference !== 'suffix' && component.scheme) {\n // Scheme handlers may replace the scheme during serialization.\n component.scheme = decodeValidScheme(component.scheme)\n uriTokens.push(component.scheme, ':')\n }\n\n const authority = recomposeAuthority(component)\n if (authority !== undefined) {\n if (options.reference !== 'suffix') {\n uriTokens.push('//')\n }\n\n uriTokens.push(authority)\n\n if (component.path && component.path[0] !== '/') {\n uriTokens.push('/')\n }\n }\n if (component.path !== undefined) {\n let s = component.path\n\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s)\n }\n\n // Dot-segment removal can expose a colon that was not originally in the\n // first segment (for example, \"./a:b\"). Reapply path-noscheme encoding so\n // the serialized relative reference cannot be reparsed as a URI scheme.\n if (pathNoScheme) {\n s = serializePathEncoding(s, true)\n }\n\n if (\n authority === undefined &&\n s[0] === '/' &&\n s[1] === '/'\n ) {\n // don't allow the path to start with \"//\"\n s = '/%2F' + s.slice(2)\n }\n\n uriTokens.push(s)\n }\n\n if (component.query !== undefined) {\n uriTokens.push('?', encodeQuery(component.query))\n }\n\n if (component.fragment !== undefined) {\n uriTokens.push('#', encodeFragment(component.fragment))\n }\n return uriTokens.join('')\n}\n\nconst URI_PARSE = /^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u\n\n// Captures the authority component (between \"//\" and the next \"/\", \"?\" or \"#\"),\n// with or without a scheme prefix, for the literal-backslash rejection below.\nconst AUTHORITY_PREFIX = /^(?:[^#/:?]+:)?\\/\\/([^/?#]*)/\n\n// Captures the leading authority-introducer region after an optional scheme: a\n// run of forward slashes, backslashes, and the characters the WHATWG URL parser\n// removes before parsing (TAB U+0009, LF U+000A, CR U+000D). A valid introducer\n// is exactly \"//\". Node treats \"\\\" as \"/\" on special schemes and strips those\n// characters first, so forms like \"\\\\\", \"/\\\", \"\\/\", \"//\", or a leading\n// \"//\" reach an authority in Node while fast-uri's URI_PARSE folds them into\n// the path group (host confusion / SSRF / redirect bypass).\nconst AUTHORITY_INTRODUCER_REGION = /^(?:[^#/:?]+:)?([/\\\\\\t\\n\\r]*)/\n\n/**\n * @param {import('./types/index').URIComponent} parsed\n * @param {RegExpMatchArray} matches\n * @returns {string|undefined}\n */\nfunction getParseError (parsed, matches) {\n if (matches[2] !== undefined && parsed.path && parsed.path[0] !== '/') {\n return 'URI path must start with \"/\" when authority is present.'\n }\n\n if (typeof parsed.port === 'number' && (parsed.port < 0 || parsed.port > 65535)) {\n return 'URI port is malformed.'\n }\n\n return undefined\n}\n\n/**\n * Checks percent syntax without decoding the represented octets. RFC 3986\n * percent-encoding is byte-oriented, so sequences such as `%FF` are valid even\n * though they are not independently valid UTF-8.\n *\n * @param {string|undefined} component\n * @returns {boolean}\n */\nfunction hasMalformedPercentEncoding (component) {\n if (component === undefined) return false\n\n let percent = component.indexOf('%')\n while (percent !== -1) {\n if (percent + 2 >= component.length || !/^[\\da-f]{2}$/iu.test(component.slice(percent + 1, percent + 3))) {\n return true\n }\n percent = component.indexOf('%', percent + 3)\n }\n\n return false\n}\n\n/**\n * Whether the host is a bracketed IP literal (RFC 3986 `IP-literal`).\n * An unterminated `[` is not a literal, so it must still be validated as a\n * reg-name instead of being waved through as an IP.\n *\n * @param {string} host\n * @returns {boolean}\n */\nfunction isIPLiteral (host) {\n return host[0] === '[' && host[host.length - 1] === ']'\n}\n\n/**\n * @param {RegExpMatchArray} matches\n * @returns {boolean}\n */\nfunction hasMalformedComponentPercentEncoding (matches) {\n // Bracketed IP literals use a raw \"%\" as the zone separator for historical\n // compatibility. Their parsing is intentionally left to normalizeIPv6.\n const host = matches[4]\n return hasMalformedPercentEncoding(matches[3]) ||\n (host !== undefined && !isIPLiteral(host) && hasMalformedPercentEncoding(host)) ||\n hasMalformedPercentEncoding(matches[6]) ||\n hasMalformedPercentEncoding(matches[7]) ||\n hasMalformedPercentEncoding(matches[8])\n}\n\n/**\n * @param {import('./types/index').URIComponent} parsed\n * @param {import('./types/index').Options} options\n * @param {{ domainHost?: boolean, unicodeSupport?: boolean }|undefined} schemeHandler\n * @param {boolean} isIP\n * @returns {boolean} whether host conversion failed\n */\nfunction canonicalizeHost (parsed, options, schemeHandler, isIP) {\n if (\n !options.unicodeSupport &&\n (!schemeHandler || !schemeHandler.unicodeSupport) &&\n parsed.host &&\n !isIPLiteral(parsed.host) &&\n (options.domainHost || (schemeHandler && schemeHandler.domainHost)) &&\n isIP === false &&\n nonSimpleDomain(parsed.host)\n ) {\n try {\n parsed.host = new URL('http://' + parsed.host).hostname\n } catch (e) {\n parsed.error = parsed.error || \"Host's domain name can not be converted to ASCII: \" + e\n return true\n }\n }\n return false\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {{ parsed: import('./types/index').URIComponent, malformedAuthorityOrPort: boolean, malformedPercentEncoding: boolean, malformedSchemeSpecific: boolean, malformedHost: boolean, malformedScheme: boolean }}\n */\nfunction parseWithStatus (uri, opts) {\n const options = Object.assign({}, opts)\n /** @type {import('./types/index').URIComponent} */\n const parsed = {\n scheme: undefined,\n userinfo: undefined,\n host: '',\n port: undefined,\n path: '',\n query: undefined,\n fragment: undefined\n }\n\n let malformedAuthorityOrPort = false\n let malformedPercentEncoding = false\n let malformedSchemeSpecific = false\n let malformedHost = false\n let malformedIPLiteral = false\n let malformedScheme = false\n\n let isIP = false\n if (options.reference === 'suffix') {\n if (options.scheme) {\n uri = options.scheme + ':' + uri\n } else {\n uri = '//' + uri\n }\n }\n\n // A literal backslash (U+005C) is not a valid RFC 3986 URI character and is\n // not an authority delimiter. Reject it in the authority rather than\n // rewriting it: normalizing \"\\\" -> \"/\" (WHATWG error recovery) could silently\n // change the resource identified by an otherwise-invalid input, and lets \"\\\"\n // act as a host delimiter here while Node's native URL parses a different\n // host (SSRF / redirect / origin-allowlist bypass). Percent-encoded %5C is\n // untouched and remains valid encoded data.\n const authorityMatch = uri.match(AUTHORITY_PREFIX)\n if (authorityMatch !== null && authorityMatch[1].indexOf('\\\\') !== -1) {\n parsed.error = 'URI authority must not contain a literal backslash.'\n malformedAuthorityOrPort = true\n }\n\n // Reject a malformed or whitespace-smuggled authority introducer. fast-uri\n // only recognizes a literal \"//\"; anything else in the leading separator run\n // (a backslash, or a \"//\" that appears only after removing the TAB/LF/CR that\n // Node strips) means the authority fast-uri parses differs from the one Node's\n // URL resolves. Reject rather than rewrite, mirroring the literal-backslash\n // guard above. Percent-encoded forms (%5C, %09) are untouched, valid data.\n const introducerMatch = uri.match(AUTHORITY_INTRODUCER_REGION)\n if (introducerMatch !== null) {\n const region = introducerMatch[1]\n const normalizedRegion = region.replace(/[\\t\\n\\r]/g, '')\n // Two or more leading separators introduce an authority.\n if (normalizedRegion.length >= 2) {\n if (normalizedRegion.slice(0, 2) !== '//') {\n parsed.error = parsed.error || 'URI authority must not contain a literal backslash.'\n malformedAuthorityOrPort = true\n } else if (region.length !== normalizedRegion.length) {\n parsed.error = parsed.error || 'URI authority introducer must not contain whitespace.'\n malformedAuthorityOrPort = true\n }\n }\n }\n\n const matches = uri.match(URI_PARSE)\n\n if (matches) {\n // store each component\n parsed.scheme = matches[1]\n parsed.userinfo = matches[3]\n parsed.host = matches[4]\n parsed.port = parseInt(matches[5], 10)\n parsed.path = matches[6] || ''\n parsed.query = matches[7]\n parsed.fragment = matches[8]\n\n if (parsed.scheme !== undefined) {\n const decodedScheme = unescape(parsed.scheme)\n if (VALID_SCHEME.test(decodedScheme)) {\n parsed.scheme = decodedScheme.toLowerCase()\n } else {\n parsed.error = parsed.error || MALFORMED_SCHEME_ERROR\n malformedScheme = true\n }\n }\n\n malformedPercentEncoding = hasMalformedComponentPercentEncoding(matches)\n if (malformedPercentEncoding) {\n parsed.error = parsed.error || 'URI contains malformed percent-encoding.'\n }\n\n // fix port number\n if (isNaN(parsed.port)) {\n parsed.port = matches[5]\n }\n\n const parseError = getParseError(parsed, matches)\n if (parseError !== undefined) {\n parsed.error = parsed.error || parseError\n malformedAuthorityOrPort = true\n }\n\n if (parsed.host) {\n const ipv4result = isIPv4(parsed.host)\n if (ipv4result === false) {\n const bracketedIPLiteral = isIPLiteral(parsed.host)\n const hasIPLiteralBracket = parsed.host.indexOf('[') !== -1 || parsed.host.indexOf(']') !== -1\n const ipv6result = normalizeIPv6(parsed.host)\n isIP = ipv6result.isIPV6 || ipv6result.isIPVFuture === true\n malformedIPLiteral = hasIPLiteralBracket && (!bracketedIPLiteral || ipv6result.error === true)\n parsed.host = isIP ? ipv6result.host : ipv6result.host.toLowerCase()\n\n if (malformedIPLiteral) {\n parsed.error = parsed.error || 'URI host is malformed.'\n malformedAuthorityOrPort = true\n }\n } else {\n isIP = true\n }\n }\n if (parsed.scheme === undefined && parsed.userinfo === undefined && parsed.host === undefined && parsed.port === undefined && parsed.query === undefined && !parsed.path) {\n parsed.reference = 'same-document'\n } else if (parsed.scheme === undefined) {\n parsed.reference = 'relative'\n } else if (parsed.fragment === undefined) {\n parsed.reference = 'absolute'\n } else {\n parsed.reference = 'uri'\n }\n\n // check for reference errors\n if (options.reference && options.reference !== 'suffix' && options.reference !== parsed.reference) {\n parsed.error = parsed.error || 'URI is not a ' + options.reference + ' reference.'\n }\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme)\n\n // convert Unicode IDN -> ASCII IDN when the effective scheme uses domain hosts\n if (!malformedIPLiteral) {\n malformedHost = canonicalizeHost(parsed, options, schemeHandler, isIP)\n }\n\n if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {\n if (uri.indexOf('%') !== -1) {\n if (parsed.host !== undefined && !malformedIPLiteral) {\n const host = isIP ? parsed.host : normalizePercentEncoding(parsed.host, true)\n parsed.host = reescapeHostDelimiters(host, isIP)\n }\n }\n if (parsed.path) {\n parsed.path = normalizePathEncoding(parsed.path)\n }\n if (parsed.query) {\n parsed.query = normalizeQueryFragmentEncoding(parsed.query)\n }\n if (parsed.fragment) {\n parsed.fragment = normalizeQueryFragmentEncoding(parsed.fragment)\n }\n }\n\n // perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(parsed, options)\n if (schemeHandler === SCHEMES.urn && parsed.nid === undefined) {\n malformedSchemeSpecific = true\n }\n }\n } else {\n parsed.error = parsed.error || 'URI can not be parsed.'\n }\n return { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme }\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns\n */\nfunction parse (uri, opts) {\n return parseWithStatus(uri, opts).parsed\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {string}\n */\nfunction normalizeString (uri, opts) {\n return normalizeStringWithStatus(uri, opts).normalized\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {{ normalized: string, malformedAuthorityOrPort: boolean, malformedPercentEncoding: boolean, malformedSchemeSpecific: boolean, malformedHost: boolean, malformedScheme: boolean }}\n */\nfunction normalizeStringWithStatus (uri, opts) {\n const { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = parseWithStatus(uri, opts)\n return {\n normalized: malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? uri : serialize(parsed, opts),\n malformedAuthorityOrPort,\n malformedPercentEncoding,\n malformedSchemeSpecific,\n malformedHost,\n malformedScheme\n }\n}\n\n/**\n * @param {import ('./types/index').URIComponent|string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {string|undefined}\n */\nfunction normalizeComparableURI (uri, opts) {\n if (typeof uri !== 'string' && typeof uri !== 'object') {\n return undefined\n }\n\n let value\n try {\n value = typeof uri === 'string' ? uri : serialize(uri, opts)\n } catch {\n return undefined\n }\n const { normalized, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = normalizeStringWithStatus(value, opts)\n return malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? undefined : normalized\n}\n\nconst fastUri = {\n SCHEMES,\n normalize,\n resolve,\n resolveComponent,\n equal,\n serialize,\n parse\n}\n\nmodule.exports = fastUri\nmodule.exports.default = fastUri\nmodule.exports.fastUri = fastUri\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst uri = require(\"fast-uri\");\nuri.code = 'require(\"ajv/dist/runtime/uri\").default';\nexports.default = uri;\n//# sourceMappingURL=uri.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nconst validation_error_1 = require(\"./runtime/validation_error\");\nconst ref_error_1 = require(\"./compile/ref_error\");\nconst rules_1 = require(\"./compile/rules\");\nconst compile_1 = require(\"./compile\");\nconst codegen_2 = require(\"./compile/codegen\");\nconst resolve_1 = require(\"./compile/resolve\");\nconst dataType_1 = require(\"./compile/validate/dataType\");\nconst util_1 = require(\"./compile/util\");\nconst $dataRefSchema = require(\"./refs/data.json\");\nconst uri_1 = require(\"./runtime/uri\");\nconst defaultRegExp = (str, flags) => new RegExp(str, flags);\ndefaultRegExp.code = \"new RegExp\";\nconst META_IGNORE_OPTIONS = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"];\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n]);\nconst removedOptions = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n};\nconst deprecatedOptions = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n};\nconst MAX_EXPRESSION = 200;\n// eslint-disable-next-line complexity\nfunction requiredOptions(o) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;\n const s = o.strict;\n const _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize;\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0;\n const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp;\n const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default;\n return {\n strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true,\n strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true,\n strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : \"log\",\n strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : \"log\",\n strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false,\n code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp },\n loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION,\n loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION,\n meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true,\n messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true,\n inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true,\n schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : \"$id\",\n addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true,\n validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true,\n validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true,\n unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true,\n int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true,\n uriResolver: uriResolver,\n };\n}\nclass Ajv {\n constructor(opts = {}) {\n this.schemas = {};\n this.refs = {};\n this.formats = Object.create(null);\n this._compilations = new Set();\n this._loading = {};\n this._cache = new Map();\n opts = this.opts = { ...opts, ...requiredOptions(opts) };\n const { es5, lines } = this.opts.code;\n this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines });\n this.logger = getLogger(opts.logger);\n const formatOpt = opts.validateFormats;\n opts.validateFormats = false;\n this.RULES = (0, rules_1.getRules)();\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\");\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\");\n this._metaOpts = getMetaSchemaOptions.call(this);\n if (opts.formats)\n addInitialFormats.call(this);\n this._addVocabularies();\n this._addDefaultMetaSchema();\n if (opts.keywords)\n addInitialKeywords.call(this, opts.keywords);\n if (typeof opts.meta == \"object\")\n this.addMetaSchema(opts.meta);\n addInitialSchemas.call(this);\n opts.validateFormats = formatOpt;\n }\n _addVocabularies() {\n this.addKeyword(\"$async\");\n }\n _addDefaultMetaSchema() {\n const { $data, meta, schemaId } = this.opts;\n let _dataRefSchema = $dataRefSchema;\n if (schemaId === \"id\") {\n _dataRefSchema = { ...$dataRefSchema };\n _dataRefSchema.id = _dataRefSchema.$id;\n delete _dataRefSchema.$id;\n }\n if (meta && $data)\n this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false);\n }\n defaultMeta() {\n const { meta, schemaId } = this.opts;\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined);\n }\n validate(schemaKeyRef, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data // to be validated\n ) {\n let v;\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema(schemaKeyRef);\n if (!v)\n throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`);\n }\n else {\n v = this.compile(schemaKeyRef);\n }\n const valid = v(data);\n if (!(\"$async\" in v))\n this.errors = v.errors;\n return valid;\n }\n compile(schema, _meta) {\n const sch = this._addSchema(schema, _meta);\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n compileAsync(schema, meta) {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\");\n }\n const { loadSchema } = this.opts;\n return runCompileAsync.call(this, schema, meta);\n async function runCompileAsync(_schema, _meta) {\n await loadMetaSchema.call(this, _schema.$schema);\n const sch = this._addSchema(_schema, _meta);\n return sch.validate || _compileAsync.call(this, sch);\n }\n async function loadMetaSchema($ref) {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, { $ref }, true);\n }\n }\n async function _compileAsync(sch) {\n try {\n return this._compileSchemaEnv(sch);\n }\n catch (e) {\n if (!(e instanceof ref_error_1.default))\n throw e;\n checkLoaded.call(this, e);\n await loadMissingSchema.call(this, e.missingSchema);\n return _compileAsync.call(this, sch);\n }\n }\n function checkLoaded({ missingSchema: ref, missingRef }) {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`);\n }\n }\n async function loadMissingSchema(ref) {\n const _schema = await _loadSchema.call(this, ref);\n if (!this.refs[ref])\n await loadMetaSchema.call(this, _schema.$schema);\n if (!this.refs[ref])\n this.addSchema(_schema, ref, meta);\n }\n async function _loadSchema(ref) {\n const p = this._loading[ref];\n if (p)\n return p;\n try {\n return await (this._loading[ref] = loadSchema(ref));\n }\n finally {\n delete this._loading[ref];\n }\n }\n }\n // Adds schema to the instance\n addSchema(schema, // If array is passed, `key` will be ignored\n key, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ) {\n if (Array.isArray(schema)) {\n for (const sch of schema)\n this.addSchema(sch, undefined, _meta, _validateSchema);\n return this;\n }\n let id;\n if (typeof schema === \"object\") {\n const { schemaId } = this.opts;\n id = schema[schemaId];\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`);\n }\n }\n key = (0, resolve_1.normalizeId)(key || id);\n this._checkUnique(key);\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true);\n return this;\n }\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(schema, key, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ) {\n this.addSchema(schema, key, true, _validateSchema);\n return this;\n }\n // Validate schema against its meta-schema\n validateSchema(schema, throwOrLogError) {\n if (typeof schema == \"boolean\")\n return true;\n let $schema;\n $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\");\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta();\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\");\n this.errors = null;\n return true;\n }\n const valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText();\n if (this.opts.validateSchema === \"log\")\n this.logger.error(message);\n else\n throw new Error(message);\n }\n return valid;\n }\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema(keyRef) {\n let sch;\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\")\n keyRef = sch;\n if (sch === undefined) {\n const { schemaId } = this.opts;\n const root = new compile_1.SchemaEnv({ schema: {}, schemaId });\n sch = compile_1.resolveSchema.call(this, root, keyRef);\n if (!sch)\n return;\n this.refs[keyRef] = sch;\n }\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef);\n this._removeAllSchemas(this.refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas);\n this._removeAllSchemas(this.refs);\n this._cache.clear();\n return this;\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef);\n if (typeof sch == \"object\")\n this._cache.delete(sch.schema);\n delete this.schemas[schemaKeyRef];\n delete this.refs[schemaKeyRef];\n return this;\n }\n case \"object\": {\n const cacheKey = schemaKeyRef;\n this._cache.delete(cacheKey);\n let id = schemaKeyRef[this.opts.schemaId];\n if (id) {\n id = (0, resolve_1.normalizeId)(id);\n delete this.schemas[id];\n delete this.refs[id];\n }\n return this;\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\");\n }\n }\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions) {\n for (const def of definitions)\n this.addKeyword(def);\n return this;\n }\n addKeyword(kwdOrDef, def // deprecated\n ) {\n let keyword;\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef;\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\");\n def.keyword = keyword;\n }\n }\n else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef;\n keyword = def.keyword;\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\");\n }\n }\n else {\n throw new Error(\"invalid addKeywords parameters\");\n }\n checkKeyword.call(this, keyword, def);\n if (!def) {\n (0, util_1.eachItem)(keyword, (kwd) => addRule.call(this, kwd));\n return this;\n }\n keywordMetaschema.call(this, def);\n const definition = {\n ...def,\n type: (0, dataType_1.getJSONTypes)(def.type),\n schemaType: (0, dataType_1.getJSONTypes)(def.schemaType),\n };\n (0, util_1.eachItem)(keyword, definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t)));\n return this;\n }\n getKeyword(keyword) {\n const rule = this.RULES.all[keyword];\n return typeof rule == \"object\" ? rule.definition : !!rule;\n }\n // Remove keyword\n removeKeyword(keyword) {\n // TODO return type should be Ajv\n const { RULES } = this;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword);\n if (i >= 0)\n group.rules.splice(i, 1);\n }\n return this;\n }\n // Add format\n addFormat(name, format) {\n if (typeof format == \"string\")\n format = new RegExp(format);\n this.formats[name] = format;\n return this;\n }\n errorsText(errors = this.errors, // optional array of validation errors\n { separator = \", \", dataVar = \"data\" } = {} // optional options with properties `separator` and `dataVar`\n ) {\n if (!errors || errors.length === 0)\n return \"No errors\";\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg);\n }\n $dataMetaSchema(metaSchema, keywordsJsonPointers) {\n const rules = this.RULES.all;\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1); // first segment is an empty string\n let keywords = metaSchema;\n for (const seg of segments)\n keywords = keywords[seg];\n for (const key in rules) {\n const rule = rules[key];\n if (typeof rule != \"object\")\n continue;\n const { $data } = rule.definition;\n const schema = keywords[key];\n if ($data && schema)\n keywords[key] = schemaOrData(schema);\n }\n }\n return metaSchema;\n }\n _removeAllSchemas(schemas, regex) {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef];\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef];\n }\n else if (sch && !sch.meta) {\n this._cache.delete(sch.schema);\n delete schemas[keyRef];\n }\n }\n }\n }\n _addSchema(schema, meta, baseId, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) {\n let id;\n const { schemaId } = this.opts;\n if (typeof schema == \"object\") {\n id = schema[schemaId];\n }\n else {\n if (this.opts.jtd)\n throw new Error(\"schema must be object\");\n else if (typeof schema != \"boolean\")\n throw new Error(\"schema must be object or boolean\");\n }\n let sch = this._cache.get(schema);\n if (sch !== undefined)\n return sch;\n baseId = (0, resolve_1.normalizeId)(id || baseId);\n const localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId);\n sch = new compile_1.SchemaEnv({ schema, schemaId, meta, baseId, localRefs });\n this._cache.set(sch.schema, sch);\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId)\n this._checkUnique(baseId);\n this.refs[baseId] = sch;\n }\n if (validateSchema)\n this.validateSchema(schema, true);\n return sch;\n }\n _checkUnique(id) {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`);\n }\n }\n _compileSchemaEnv(sch) {\n if (sch.meta)\n this._compileMetaSchema(sch);\n else\n compile_1.compileSchema.call(this, sch);\n /* istanbul ignore if */\n if (!sch.validate)\n throw new Error(\"ajv implementation error\");\n return sch.validate;\n }\n _compileMetaSchema(sch) {\n const currentOpts = this.opts;\n this.opts = this._metaOpts;\n try {\n compile_1.compileSchema.call(this, sch);\n }\n finally {\n this.opts = currentOpts;\n }\n }\n}\nAjv.ValidationError = validation_error_1.default;\nAjv.MissingRefError = ref_error_1.default;\nexports.default = Ajv;\nfunction checkOptions(checkOpts, options, msg, log = \"error\") {\n for (const key in checkOpts) {\n const opt = key;\n if (opt in options)\n this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`);\n }\n}\nfunction getSchEnv(keyRef) {\n keyRef = (0, resolve_1.normalizeId)(keyRef); // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef];\n}\nfunction addInitialSchemas() {\n const optsSchemas = this.opts.schemas;\n if (!optsSchemas)\n return;\n if (Array.isArray(optsSchemas))\n this.addSchema(optsSchemas);\n else\n for (const key in optsSchemas)\n this.addSchema(optsSchemas[key], key);\n}\nfunction addInitialFormats() {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name];\n if (format)\n this.addFormat(name, format);\n }\n}\nfunction addInitialKeywords(defs) {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs);\n return;\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\");\n for (const keyword in defs) {\n const def = defs[keyword];\n if (!def.keyword)\n def.keyword = keyword;\n this.addKeyword(def);\n }\n}\nfunction getMetaSchemaOptions() {\n const metaOpts = { ...this.opts };\n for (const opt of META_IGNORE_OPTIONS)\n delete metaOpts[opt];\n return metaOpts;\n}\nconst noLogs = { log() { }, warn() { }, error() { } };\nfunction getLogger(logger) {\n if (logger === false)\n return noLogs;\n if (logger === undefined)\n return console;\n if (logger.log && logger.warn && logger.error)\n return logger;\n throw new Error(\"logger must implement log, warn and error methods\");\n}\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i;\nfunction checkKeyword(keyword, def) {\n const { RULES } = this;\n (0, util_1.eachItem)(keyword, (kwd) => {\n if (RULES.keywords[kwd])\n throw new Error(`Keyword ${kwd} is already defined`);\n if (!KEYWORD_NAME.test(kwd))\n throw new Error(`Keyword ${kwd} has invalid name`);\n });\n if (!def)\n return;\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function');\n }\n}\nfunction addRule(keyword, definition, dataType) {\n var _a;\n const post = definition === null || definition === void 0 ? void 0 : definition.post;\n if (dataType && post)\n throw new Error('keyword with \"post\" flag cannot have \"type\"');\n const { RULES } = this;\n let ruleGroup = post ? RULES.post : RULES.rules.find(({ type: t }) => t === dataType);\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.rules.push(ruleGroup);\n }\n RULES.keywords[keyword] = true;\n if (!definition)\n return;\n const rule = {\n keyword,\n definition: {\n ...definition,\n type: (0, dataType_1.getJSONTypes)(definition.type),\n schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType),\n },\n };\n if (definition.before)\n addBeforeRule.call(this, ruleGroup, rule, definition.before);\n else\n ruleGroup.rules.push(rule);\n RULES.all[keyword] = rule;\n (_a = definition.implements) === null || _a === void 0 ? void 0 : _a.forEach((kwd) => this.addKeyword(kwd));\n}\nfunction addBeforeRule(ruleGroup, rule, before) {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before);\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule);\n }\n else {\n ruleGroup.rules.push(rule);\n this.logger.warn(`rule ${before} is not defined`);\n }\n}\nfunction keywordMetaschema(def) {\n let { metaSchema } = def;\n if (metaSchema === undefined)\n return;\n if (def.$data && this.opts.$data)\n metaSchema = schemaOrData(metaSchema);\n def.validateSchema = this.compile(metaSchema, true);\n}\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n};\nfunction schemaOrData(schema) {\n return { anyOf: [schema, $dataRef] };\n}\n//# sourceMappingURL=core.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst def = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID');\n },\n};\nexports.default = def;\n//# sourceMappingURL=id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callRef = exports.getValidate = void 0;\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst compile_1 = require(\"../../compile\");\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt) {\n const { gen, schema: $ref, it } = cxt;\n const { baseId, schemaEnv: env, validateName, opts, self } = it;\n const { root } = env;\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId)\n return callRootRef();\n const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref);\n if (schOrEnv === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref);\n if (schOrEnv instanceof compile_1.SchemaEnv)\n return callValidate(schOrEnv);\n return inlineRefSchema(schOrEnv);\n function callRootRef() {\n if (env === root)\n return callRef(cxt, validateName, env, env.$async);\n const rootName = gen.scopeValue(\"root\", { ref: root });\n return callRef(cxt, (0, codegen_1._) `${rootName}.validate`, root, root.$async);\n }\n function callValidate(sch) {\n const v = getValidate(cxt, sch);\n callRef(cxt, v, sch, sch.$async);\n }\n function inlineRefSchema(sch) {\n const schName = gen.scopeValue(\"schema\", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch });\n const valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({\n schema: sch,\n dataTypes: [],\n schemaPath: codegen_1.nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n }, valid);\n cxt.mergeEvaluated(schCxt);\n cxt.ok(valid);\n }\n },\n};\nfunction getValidate(cxt, sch) {\n const { gen } = cxt;\n return sch.validate\n ? gen.scopeValue(\"validate\", { ref: sch.validate })\n : (0, codegen_1._) `${gen.scopeValue(\"wrapper\", { ref: sch })}.validate`;\n}\nexports.getValidate = getValidate;\nfunction callRef(cxt, v, sch, $async) {\n const { gen, it } = cxt;\n const { allErrors, schemaEnv: env, opts } = it;\n const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil;\n if ($async)\n callAsyncRef();\n else\n callSyncRef();\n function callAsyncRef() {\n if (!env.$async)\n throw new Error(\"async schema referenced by sync schema\");\n const valid = gen.let(\"valid\");\n gen.try(() => {\n gen.code((0, codegen_1._) `await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`);\n addEvaluatedFrom(v); // TODO will not work with async, it has to be returned with the result\n if (!allErrors)\n gen.assign(valid, true);\n }, (e) => {\n gen.if((0, codegen_1._) `!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e));\n addErrorsFrom(e);\n if (!allErrors)\n gen.assign(valid, false);\n });\n cxt.ok(valid);\n }\n function callSyncRef() {\n cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v));\n }\n function addErrorsFrom(source) {\n const errs = (0, codegen_1._) `${source}.errors`;\n gen.assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`); // TODO tagged\n gen.assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n }\n function addEvaluatedFrom(source) {\n var _a;\n if (!it.opts.unevaluated)\n return;\n const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated;\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props);\n }\n }\n else {\n const props = gen.var(\"props\", (0, codegen_1._) `${source}.evaluated.props`);\n it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name);\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items);\n }\n }\n else {\n const items = gen.var(\"items\", (0, codegen_1._) `${source}.evaluated.items`);\n it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name);\n }\n }\n }\n}\nexports.callRef = callRef;\nexports.default = def;\n//# sourceMappingURL=ref.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst id_1 = require(\"./id\");\nconst ref_1 = require(\"./ref\");\nconst core = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n { keyword: \"$comment\" },\n \"definitions\",\n id_1.default,\n ref_1.default,\n];\nexports.default = core;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n maximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n minimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n exclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n exclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => (0, codegen_1.str) `must be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n cxt.fail$data((0, codegen_1._) `${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitNumber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must be multiple of ${schemaCode}`,\n params: ({ schemaCode }) => (0, codegen_1._) `{multipleOf: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, it } = cxt;\n // const bdt = bad$DataType(schemaCode, def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision;\n const res = gen.let(\"res\");\n const invalid = prec\n ? (0, codegen_1._) `Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : (0, codegen_1._) `${res} !== parseInt(${res})`;\n cxt.fail$data((0, codegen_1._) `(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=multipleOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nfunction ucs2length(str) {\n const len = str.length;\n let length = 0;\n let pos = 0;\n let value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xfc00) === 0xdc00)\n pos++; // low surrogate\n }\n }\n return length;\n}\nexports.default = ucs2length;\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default';\n//# sourceMappingURL=ucs2length.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst ucs2length_1 = require(\"../../runtime/ucs2length\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} characters`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode, it } = cxt;\n const op = keyword === \"maxLength\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n const len = it.opts.unicode === false ? (0, codegen_1._) `${data}.length` : (0, codegen_1._) `${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`;\n cxt.fail$data((0, codegen_1._) `${len} ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitLength.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match pattern \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{pattern: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n const u = it.opts.unicodeRegExp ? \"u\" : \"\";\n if ($data) {\n const { regExp } = it.opts.code;\n const regExpCode = regExp.code === \"new RegExp\" ? (0, codegen_1._) `new RegExp` : (0, util_1.useFunc)(gen, regExp);\n const valid = gen.let(\"valid\");\n gen.try(() => gen.assign(valid, (0, codegen_1._) `${regExpCode}(${schemaCode}, ${u}).test(${data})`), () => gen.assign(valid, false));\n cxt.fail$data((0, codegen_1._) `!${valid}`);\n }\n else {\n const regExp = (0, code_1.usePattern)(cxt, schema);\n cxt.fail$data((0, codegen_1._) `!${regExp}.test(${data})`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=pattern.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} properties`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxProperties\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `Object.keys(${data}).length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { missingProperty } }) => (0, codegen_1.str) `must have required property '${missingProperty}'`,\n params: ({ params: { missingProperty } }) => (0, codegen_1._) `{missingProperty: ${missingProperty}}`,\n};\nconst def = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, schema, schemaCode, data, $data, it } = cxt;\n const { opts } = it;\n if (!$data && schema.length === 0)\n return;\n const useLoop = schema.length >= opts.loopRequired;\n if (it.allErrors)\n allErrorsMode();\n else\n exitOnErrorMode();\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties;\n const { definedProperties } = cxt.it;\n for (const requiredKey of schema) {\n if ((props === null || props === void 0 ? void 0 : props[requiredKey]) === undefined && !definedProperties.has(requiredKey)) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictRequired);\n }\n }\n }\n function allErrorsMode() {\n if (useLoop || $data) {\n cxt.block$data(codegen_1.nil, loopAllRequired);\n }\n else {\n for (const prop of schema) {\n (0, code_1.checkReportMissingProp)(cxt, prop);\n }\n }\n }\n function exitOnErrorMode() {\n const missing = gen.let(\"missing\");\n if (useLoop || $data) {\n const valid = gen.let(\"valid\", true);\n cxt.block$data(valid, () => loopUntilMissing(missing, valid));\n cxt.ok(valid);\n }\n else {\n gen.if((0, code_1.checkMissingProp)(cxt, schema, missing));\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n function loopAllRequired() {\n gen.forOf(\"prop\", schemaCode, (prop) => {\n cxt.setParams({ missingProperty: prop });\n gen.if((0, code_1.noPropertyInData)(gen, data, prop, opts.ownProperties), () => cxt.error());\n });\n }\n function loopUntilMissing(missing, valid) {\n cxt.setParams({ missingProperty: missing });\n gen.forOf(missing, schemaCode, () => {\n gen.assign(valid, (0, code_1.propertyInData)(gen, data, missing, opts.ownProperties));\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error();\n gen.break();\n });\n }, codegen_1.nil);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=required.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} items`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxItems\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `${data}.length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/ajv-validator/ajv/issues/889\nconst equal = require(\"fast-deep-equal\");\nequal.code = 'require(\"ajv/dist/runtime/equal\").default';\nexports.default = equal;\n//# sourceMappingURL=equal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dataType_1 = require(\"../../compile/validate/dataType\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: ({ params: { i, j } }) => (0, codegen_1.str) `must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({ params: { i, j } }) => (0, codegen_1._) `{i: ${i}, j: ${j}}`,\n};\nconst def = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;\n if (!$data && !schema)\n return;\n const valid = gen.let(\"valid\");\n const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : [];\n cxt.block$data(valid, validateUniqueItems, (0, codegen_1._) `${schemaCode} === false`);\n cxt.ok(valid);\n function validateUniqueItems() {\n const i = gen.let(\"i\", (0, codegen_1._) `${data}.length`);\n const j = gen.let(\"j\");\n cxt.setParams({ i, j });\n gen.assign(valid, true);\n gen.if((0, codegen_1._) `${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));\n }\n function canOptimize() {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\");\n }\n function loopN(i, j) {\n const item = gen.name(\"item\");\n const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong);\n const indices = gen.const(\"indices\", (0, codegen_1._) `{}`);\n gen.for((0, codegen_1._) `;${i}--;`, () => {\n gen.let(item, (0, codegen_1._) `${data}[${i}]`);\n gen.if(wrongType, (0, codegen_1._) `continue`);\n if (itemTypes.length > 1)\n gen.if((0, codegen_1._) `typeof ${item} == \"string\"`, (0, codegen_1._) `${item} += \"_\"`);\n gen\n .if((0, codegen_1._) `typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, (0, codegen_1._) `${indices}[${item}]`);\n cxt.error();\n gen.assign(valid, false).break();\n })\n .code((0, codegen_1._) `${indices}[${item}] = ${i}`);\n });\n }\n function loopN2(i, j) {\n const eql = (0, util_1.useFunc)(gen, equal_1.default);\n const outer = gen.name(\"outer\");\n gen.label(outer).for((0, codegen_1._) `;${i}--;`, () => gen.for((0, codegen_1._) `${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._) `${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error();\n gen.assign(valid, false).break(outer);\n })));\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=uniqueItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to constant\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValue: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schemaCode, schema } = cxt;\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data((0, codegen_1._) `!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`);\n }\n else {\n cxt.fail((0, codegen_1._) `${schema} !== ${data}`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=const.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to one of the allowed values\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValues: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n if (!$data && schema.length === 0)\n throw new Error(\"enum must have non-empty array\");\n const useLoop = schema.length >= it.opts.loopEnum;\n let eql;\n const getEql = () => (eql !== null && eql !== void 0 ? eql : (eql = (0, util_1.useFunc)(gen, equal_1.default)));\n let valid;\n if (useLoop || $data) {\n valid = gen.let(\"valid\");\n cxt.block$data(valid, loopEnum);\n }\n else {\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const vSchema = gen.const(\"vSchema\", schemaCode);\n valid = (0, codegen_1.or)(...schema.map((_x, i) => equalCode(vSchema, i)));\n }\n cxt.pass(valid);\n function loopEnum() {\n gen.assign(valid, false);\n gen.forOf(\"v\", schemaCode, (v) => gen.if((0, codegen_1._) `${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break()));\n }\n function equalCode(vSchema, i) {\n const sch = schema[i];\n return typeof sch === \"object\" && sch !== null\n ? (0, codegen_1._) `${getEql()}(${data}, ${vSchema}[${i}])`\n : (0, codegen_1._) `${data} === ${sch}`;\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=enum.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst limitNumber_1 = require(\"./limitNumber\");\nconst multipleOf_1 = require(\"./multipleOf\");\nconst limitLength_1 = require(\"./limitLength\");\nconst pattern_1 = require(\"./pattern\");\nconst limitProperties_1 = require(\"./limitProperties\");\nconst required_1 = require(\"./required\");\nconst limitItems_1 = require(\"./limitItems\");\nconst uniqueItems_1 = require(\"./uniqueItems\");\nconst const_1 = require(\"./const\");\nconst enum_1 = require(\"./enum\");\nconst validation = [\n // number\n limitNumber_1.default,\n multipleOf_1.default,\n // string\n limitLength_1.default,\n pattern_1.default,\n // object\n limitProperties_1.default,\n required_1.default,\n // array\n limitItems_1.default,\n uniqueItems_1.default,\n // any\n { keyword: \"type\", schemaType: [\"string\", \"array\"] },\n { keyword: \"nullable\", schemaType: \"boolean\" },\n const_1.default,\n enum_1.default,\n];\nexports.default = validation;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateAdditionalItems = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"additionalItems\",\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { parentSchema, it } = cxt;\n const { items } = parentSchema;\n if (!Array.isArray(items)) {\n (0, util_1.checkStrictMode)(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas');\n return;\n }\n validateAdditionalItems(cxt, items);\n },\n};\nfunction validateAdditionalItems(cxt, items) {\n const { gen, schema, data, keyword, it } = cxt;\n it.items = true;\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n if (schema === false) {\n cxt.setParams({ len: items.length });\n cxt.pass((0, codegen_1._) `${len} <= ${items.length}`);\n }\n else if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.var(\"valid\", (0, codegen_1._) `${len} <= ${items.length}`); // TODO var\n gen.if((0, codegen_1.not)(valid), () => validateItems(valid));\n cxt.ok(valid);\n }\n function validateItems(valid) {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid);\n if (!it.allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n });\n }\n}\nexports.validateAdditionalItems = validateAdditionalItems;\nexports.default = def;\n//# sourceMappingURL=additionalItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTuple = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt) {\n const { schema, it } = cxt;\n if (Array.isArray(schema))\n return validateTuple(cxt, \"additionalItems\", schema);\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nfunction validateTuple(cxt, extraItems, schArr = cxt.schema) {\n const { gen, parentSchema, data, keyword, it } = cxt;\n checkStrictTuple(parentSchema);\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = util_1.mergeEvaluated.items(gen, schArr.length, it.items);\n }\n const valid = gen.name(\"valid\");\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n schArr.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n gen.if((0, codegen_1._) `${len} > ${i}`, () => cxt.subschema({\n keyword,\n schemaProp: i,\n dataProp: i,\n }, valid));\n cxt.ok(valid);\n });\n function checkStrictTuple(sch) {\n const { opts, errSchemaPath } = it;\n const l = schArr.length;\n const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false);\n if (opts.strictTuples && !fullTuple) {\n const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`;\n (0, util_1.checkStrictMode)(it, msg, opts.strictTuples);\n }\n }\n}\nexports.validateTuple = validateTuple;\nexports.default = def;\n//# sourceMappingURL=items.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst items_1 = require(\"./items\");\nconst def = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => (0, items_1.validateTuple)(cxt, \"items\"),\n};\nexports.default = def;\n//# sourceMappingURL=prefixItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst additionalItems_1 = require(\"./additionalItems\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { schema, parentSchema, it } = cxt;\n const { prefixItems } = parentSchema;\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n if (prefixItems)\n (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);\n else\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nexports.default = def;\n//# sourceMappingURL=items2020.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { min, max } }) => max === undefined\n ? (0, codegen_1.str) `must contain at least ${min} valid item(s)`\n : (0, codegen_1.str) `must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({ params: { min, max } }) => max === undefined ? (0, codegen_1._) `{minContains: ${min}}` : (0, codegen_1._) `{minContains: ${min}, maxContains: ${max}}`,\n};\nconst def = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n let min;\n let max;\n const { minContains, maxContains } = parentSchema;\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains;\n max = maxContains;\n }\n else {\n min = 1;\n }\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n cxt.setParams({ min, max });\n if (max === undefined && min === 0) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`);\n return;\n }\n if (max !== undefined && min > max) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" > \"maxContains\" is always invalid`);\n cxt.fail();\n return;\n }\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n let cond = (0, codegen_1._) `${len} >= ${min}`;\n if (max !== undefined)\n cond = (0, codegen_1._) `${cond} && ${len} <= ${max}`;\n cxt.pass(cond);\n return;\n }\n it.items = true;\n const valid = gen.name(\"valid\");\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()));\n }\n else if (min === 0) {\n gen.let(valid, true);\n if (max !== undefined)\n gen.if((0, codegen_1._) `${data}.length > 0`, validateItemsWithCount);\n }\n else {\n gen.let(valid, false);\n validateItemsWithCount();\n }\n cxt.result(valid, () => cxt.reset());\n function validateItemsWithCount() {\n const schValid = gen.name(\"_valid\");\n const count = gen.let(\"count\", 0);\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));\n }\n function validateItems(_valid, block) {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword: \"contains\",\n dataProp: i,\n dataPropType: util_1.Type.Num,\n compositeRule: true,\n }, _valid);\n block();\n });\n }\n function checkLimits(count) {\n gen.code((0, codegen_1._) `${count}++`);\n if (max === undefined) {\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true).break());\n }\n else {\n gen.if((0, codegen_1._) `${count} > ${max}`, () => gen.assign(valid, false).break());\n if (min === 1)\n gen.assign(valid, true);\n else\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true));\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=contains.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nexports.error = {\n message: ({ params: { property, depsCount, deps } }) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\";\n return (0, codegen_1.str) `must have ${property_ies} ${deps} when property ${property} is present`;\n },\n params: ({ params: { property, depsCount, deps, missingProperty } }) => (0, codegen_1._) `{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n};\nconst def = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error: exports.error,\n code(cxt) {\n const [propDeps, schDeps] = splitDependencies(cxt);\n validatePropertyDeps(cxt, propDeps);\n validateSchemaDeps(cxt, schDeps);\n },\n};\nfunction splitDependencies({ schema }) {\n const propertyDeps = {};\n const schemaDeps = {};\n for (const key in schema) {\n if (key === \"__proto__\")\n continue;\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps;\n deps[key] = schema[key];\n }\n return [propertyDeps, schemaDeps];\n}\nfunction validatePropertyDeps(cxt, propertyDeps = cxt.schema) {\n const { gen, data, it } = cxt;\n if (Object.keys(propertyDeps).length === 0)\n return;\n const missing = gen.let(\"missing\");\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop];\n if (deps.length === 0)\n continue;\n const hasProperty = (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties);\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n });\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n (0, code_1.checkReportMissingProp)(cxt, depProp);\n }\n });\n }\n else {\n gen.if((0, codegen_1._) `${hasProperty} && (${(0, code_1.checkMissingProp)(cxt, deps, missing)})`);\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n}\nexports.validatePropertyDeps = validatePropertyDeps;\nfunction validateSchemaDeps(cxt, schemaDeps = cxt.schema) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n for (const prop in schemaDeps) {\n if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop]))\n continue;\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties), () => {\n const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid);\n cxt.mergeValidEvaluated(schCxt, valid);\n }, () => gen.var(valid, true) // TODO var\n );\n cxt.ok(valid);\n }\n}\nexports.validateSchemaDeps = validateSchemaDeps;\nexports.default = def;\n//# sourceMappingURL=dependencies.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"property name must be valid\",\n params: ({ params }) => (0, codegen_1._) `{propertyName: ${params.propertyName}}`,\n};\nconst def = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt) {\n const { gen, schema, data, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n const valid = gen.name(\"valid\");\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({ propertyName: key });\n cxt.subschema({\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n }, valid);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error(true);\n if (!it.allErrors)\n gen.break();\n });\n });\n cxt.ok(valid);\n },\n};\nexports.default = def;\n//# sourceMappingURL=propertyNames.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must NOT have additional properties\",\n params: ({ params }) => (0, codegen_1._) `{additionalProperty: ${params.additionalProperty}}`,\n};\nconst def = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, errsCount, it } = cxt;\n /* istanbul ignore if */\n if (!errsCount)\n throw new Error(\"ajv implementation error\");\n const { allErrors, opts } = it;\n it.props = true;\n if (opts.removeAdditional !== \"all\" && (0, util_1.alwaysValidSchema)(it, schema))\n return;\n const props = (0, code_1.allSchemaProperties)(parentSchema.properties);\n const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties);\n checkAdditionalProperties();\n cxt.ok((0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n function checkAdditionalProperties() {\n gen.forIn(\"key\", data, (key) => {\n if (!props.length && !patProps.length)\n additionalPropertyCode(key);\n else\n gen.if(isAdditional(key), () => additionalPropertyCode(key));\n });\n }\n function isAdditional(key) {\n let definedProp;\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, \"properties\");\n definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key);\n }\n else if (props.length) {\n definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._) `${key} === ${p}`));\n }\n else {\n definedProp = codegen_1.nil;\n }\n if (patProps.length) {\n definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._) `${(0, code_1.usePattern)(cxt, p)}.test(${key})`));\n }\n return (0, codegen_1.not)(definedProp);\n }\n function deleteAdditional(key) {\n gen.code((0, codegen_1._) `delete ${data}[${key}]`);\n }\n function additionalPropertyCode(key) {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key);\n return;\n }\n if (schema === false) {\n cxt.setParams({ additionalProperty: key });\n cxt.error();\n if (!allErrors)\n gen.break();\n return;\n }\n if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.name(\"valid\");\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.reset();\n deleteAdditional(key);\n });\n }\n else {\n applyAdditionalSchema(key, valid);\n if (!allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n }\n }\n function applyAdditionalSchema(key, valid, errors) {\n const subschema = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: util_1.Type.Str,\n };\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n });\n }\n cxt.subschema(subschema, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=additionalProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_1 = require(\"../../compile/validate\");\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst def = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, \"additionalProperties\"));\n }\n const allProps = (0, code_1.allSchemaProperties)(schema);\n for (const prop of allProps) {\n it.definedProperties.add(prop);\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);\n }\n const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));\n if (properties.length === 0)\n return;\n const valid = gen.name(\"valid\");\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop);\n }\n else {\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));\n applyPropertySchema(prop);\n if (!it.allErrors)\n gen.else().var(valid, true);\n gen.endIf();\n }\n cxt.it.definedProperties.add(prop);\n cxt.ok(valid);\n }\n function hasDefault(prop) {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;\n }\n function applyPropertySchema(prop) {\n cxt.subschema({\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n }, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=properties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst util_2 = require(\"../../compile/util\");\nconst def = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, data, parentSchema, it } = cxt;\n const { opts } = it;\n const patterns = (0, code_1.allSchemaProperties)(schema);\n const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));\n if (patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))) {\n return;\n }\n const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;\n const valid = gen.name(\"valid\");\n if (it.props !== true && !(it.props instanceof codegen_1.Name)) {\n it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);\n }\n const { props } = it;\n validatePatternProperties();\n function validatePatternProperties() {\n for (const pat of patterns) {\n if (checkProperties)\n checkMatchingProperties(pat);\n if (it.allErrors) {\n validateProperties(pat);\n }\n else {\n gen.var(valid, true); // TODO var\n validateProperties(pat);\n gen.if(valid);\n }\n }\n }\n function checkMatchingProperties(pat) {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);\n }\n }\n }\n function validateProperties(pat) {\n gen.forIn(\"key\", data, (key) => {\n gen.if((0, codegen_1._) `${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat);\n if (!alwaysValid) {\n cxt.subschema({\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: util_2.Type.Str,\n }, valid);\n }\n if (it.opts.unevaluated && props !== true) {\n gen.assign((0, codegen_1._) `${props}[${key}]`, true);\n }\n else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=patternProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt) {\n const { gen, schema, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n cxt.fail();\n return;\n }\n const valid = gen.name(\"valid\");\n cxt.subschema({\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, valid);\n cxt.failResult(valid, () => cxt.reset(), () => cxt.error());\n },\n error: { message: \"must NOT be valid\" },\n};\nexports.default = def;\n//# sourceMappingURL=not.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: code_1.validateUnion,\n error: { message: \"must match a schema in anyOf\" },\n};\nexports.default = def;\n//# sourceMappingURL=anyOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must match exactly one schema in oneOf\",\n params: ({ params }) => (0, codegen_1._) `{passingSchemas: ${params.passing}}`,\n};\nconst def = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n if (it.opts.discriminator && parentSchema.discriminator)\n return;\n const schArr = schema;\n const valid = gen.let(\"valid\", false);\n const passing = gen.let(\"passing\", null);\n const schValid = gen.name(\"_valid\");\n cxt.setParams({ passing });\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n gen.block(validateOneOf);\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n function validateOneOf() {\n schArr.forEach((sch, i) => {\n let schCxt;\n if ((0, util_1.alwaysValidSchema)(it, sch)) {\n gen.var(schValid, true);\n }\n else {\n schCxt = cxt.subschema({\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n }\n if (i > 0) {\n gen\n .if((0, codegen_1._) `${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, (0, codegen_1._) `[${passing}, ${i}]`)\n .else();\n }\n gen.if(schValid, () => {\n gen.assign(valid, true);\n gen.assign(passing, i);\n if (schCxt)\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=oneOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt) {\n const { gen, schema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const valid = gen.name(\"valid\");\n schema.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n const schCxt = cxt.subschema({ keyword: \"allOf\", schemaProp: i }, valid);\n cxt.ok(valid);\n cxt.mergeEvaluated(schCxt);\n });\n },\n};\nexports.default = def;\n//# sourceMappingURL=allOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params }) => (0, codegen_1.str) `must match \"${params.ifClause}\" schema`,\n params: ({ params }) => (0, codegen_1._) `{failingKeyword: ${params.ifClause}}`,\n};\nconst def = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, parentSchema, it } = cxt;\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n (0, util_1.checkStrictMode)(it, '\"if\" without \"then\" and \"else\" is ignored');\n }\n const hasThen = hasSchema(it, \"then\");\n const hasElse = hasSchema(it, \"else\");\n if (!hasThen && !hasElse)\n return;\n const valid = gen.let(\"valid\", true);\n const schValid = gen.name(\"_valid\");\n validateIf();\n cxt.reset();\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\");\n cxt.setParams({ ifClause });\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause));\n }\n else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"));\n }\n else {\n gen.if((0, codegen_1.not)(schValid), validateClause(\"else\"));\n }\n cxt.pass(valid, () => cxt.error(true));\n function validateIf() {\n const schCxt = cxt.subschema({\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, schValid);\n cxt.mergeEvaluated(schCxt);\n }\n function validateClause(keyword, ifClause) {\n return () => {\n const schCxt = cxt.subschema({ keyword }, schValid);\n gen.assign(valid, schValid);\n cxt.mergeValidEvaluated(schCxt, valid);\n if (ifClause)\n gen.assign(ifClause, (0, codegen_1._) `${keyword}`);\n else\n cxt.setParams({ ifClause: keyword });\n };\n }\n },\n};\nfunction hasSchema(it, keyword) {\n const schema = it.schema[keyword];\n return schema !== undefined && !(0, util_1.alwaysValidSchema)(it, schema);\n}\nexports.default = def;\n//# sourceMappingURL=if.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({ keyword, parentSchema, it }) {\n if (parentSchema.if === undefined)\n (0, util_1.checkStrictMode)(it, `\"${keyword}\" without \"if\" is ignored`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=thenElse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst additionalItems_1 = require(\"./additionalItems\");\nconst prefixItems_1 = require(\"./prefixItems\");\nconst items_1 = require(\"./items\");\nconst items2020_1 = require(\"./items2020\");\nconst contains_1 = require(\"./contains\");\nconst dependencies_1 = require(\"./dependencies\");\nconst propertyNames_1 = require(\"./propertyNames\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst properties_1 = require(\"./properties\");\nconst patternProperties_1 = require(\"./patternProperties\");\nconst not_1 = require(\"./not\");\nconst anyOf_1 = require(\"./anyOf\");\nconst oneOf_1 = require(\"./oneOf\");\nconst allOf_1 = require(\"./allOf\");\nconst if_1 = require(\"./if\");\nconst thenElse_1 = require(\"./thenElse\");\nfunction getApplicator(draft2020 = false) {\n const applicator = [\n // any\n not_1.default,\n anyOf_1.default,\n oneOf_1.default,\n allOf_1.default,\n if_1.default,\n thenElse_1.default,\n // object\n propertyNames_1.default,\n additionalProperties_1.default,\n dependencies_1.default,\n properties_1.default,\n patternProperties_1.default,\n ];\n // array\n if (draft2020)\n applicator.push(prefixItems_1.default, items2020_1.default);\n else\n applicator.push(additionalItems_1.default, items_1.default);\n applicator.push(contains_1.default);\n return applicator;\n}\nexports.default = getApplicator;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match format \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{format: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt, ruleType) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n const { opts, errSchemaPath, schemaEnv, self } = it;\n if (!opts.validateFormats)\n return;\n if ($data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fDef = gen.const(\"fDef\", (0, codegen_1._) `${fmts}[${schemaCode}]`);\n const fType = gen.let(\"fType\");\n const format = gen.let(\"format\");\n // TODO simplify\n gen.if((0, codegen_1._) `typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._) `${fDef}.type || \"string\"`).assign(format, (0, codegen_1._) `${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._) `\"string\"`).assign(format, fDef));\n cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt()));\n function unknownFmt() {\n if (opts.strictSchema === false)\n return codegen_1.nil;\n return (0, codegen_1._) `${schemaCode} && !${format}`;\n }\n function invalidFmt() {\n const callFormat = schemaEnv.$async\n ? (0, codegen_1._) `(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : (0, codegen_1._) `${format}(${data})`;\n const validData = (0, codegen_1._) `(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`;\n return (0, codegen_1._) `${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`;\n }\n }\n function validateFormat() {\n const formatDef = self.formats[schema];\n if (!formatDef) {\n unknownFormat();\n return;\n }\n if (formatDef === true)\n return;\n const [fmtType, format, fmtRef] = getFormat(formatDef);\n if (fmtType === ruleType)\n cxt.pass(validCondition());\n function unknownFormat() {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg());\n return;\n }\n throw new Error(unknownMsg());\n function unknownMsg() {\n return `unknown format \"${schema}\" ignored in schema at path \"${errSchemaPath}\"`;\n }\n }\n function getFormat(fmtDef) {\n const code = fmtDef instanceof RegExp\n ? (0, codegen_1.regexpCode)(fmtDef)\n : opts.code.formats\n ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(schema)}`\n : undefined;\n const fmt = gen.scopeValue(\"formats\", { key: schema, ref: fmtDef, code });\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, (0, codegen_1._) `${fmt}.validate`];\n }\n return [\"string\", fmtDef, fmt];\n }\n function validCondition() {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async)\n throw new Error(\"async format in sync schema\");\n return (0, codegen_1._) `await ${fmtRef}(${data})`;\n }\n return typeof format == \"function\" ? (0, codegen_1._) `${fmtRef}(${data})` : (0, codegen_1._) `${fmtRef}.test(${data})`;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=format.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst format_1 = require(\"./format\");\nconst format = [format_1.default];\nexports.default = format;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentVocabulary = exports.metadataVocabulary = void 0;\nexports.metadataVocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n];\nexports.contentVocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n];\n//# sourceMappingURL=metadata.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"./core\");\nconst validation_1 = require(\"./validation\");\nconst applicator_1 = require(\"./applicator\");\nconst format_1 = require(\"./format\");\nconst metadata_1 = require(\"./metadata\");\nconst draft7Vocabularies = [\n core_1.default,\n validation_1.default,\n (0, applicator_1.default)(),\n format_1.default,\n metadata_1.metadataVocabulary,\n metadata_1.contentVocabulary,\n];\nexports.default = draft7Vocabularies;\n//# sourceMappingURL=draft7.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiscrError = void 0;\nvar DiscrError;\n(function (DiscrError) {\n DiscrError[\"Tag\"] = \"tag\";\n DiscrError[\"Mapping\"] = \"mapping\";\n})(DiscrError || (exports.DiscrError = DiscrError = {}));\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst types_1 = require(\"../discriminator/types\");\nconst compile_1 = require(\"../../compile\");\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._) `{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n};\nconst def = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt) {\n const { gen, data, schema, parentSchema, it } = cxt;\n const { oneOf } = parentSchema;\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\");\n }\n const tagName = schema.propertyName;\n if (typeof tagName != \"string\")\n throw new Error(\"discriminator: requires propertyName\");\n if (schema.mapping)\n throw new Error(\"discriminator: mapping is not supported\");\n if (!oneOf)\n throw new Error(\"discriminator: requires oneOf keyword\");\n const valid = gen.let(\"valid\", false);\n const tag = gen.const(\"tag\", (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(tagName)}`);\n gen.if((0, codegen_1._) `typeof ${tag} == \"string\"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName }));\n cxt.ok(valid);\n function validateMapping() {\n const mapping = getMapping();\n gen.if(false);\n for (const tagValue in mapping) {\n gen.elseIf((0, codegen_1._) `${tag} === ${tagValue}`);\n gen.assign(valid, applyTagSchema(mapping[tagValue]));\n }\n gen.else();\n cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName });\n gen.endIf();\n }\n function applyTagSchema(schemaProp) {\n const _valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({ keyword: \"oneOf\", schemaProp }, _valid);\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n return _valid;\n }\n function getMapping() {\n var _a;\n const oneOfMapping = {};\n const topRequired = hasRequired(parentSchema);\n let tagRequired = true;\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i];\n if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {\n const ref = sch.$ref;\n sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref);\n if (sch instanceof compile_1.SchemaEnv)\n sch = sch.schema;\n if (sch === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, it.baseId, ref);\n }\n const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];\n if (typeof propSch != \"object\") {\n throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`);\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch));\n addMappings(propSch, i);\n }\n if (!tagRequired)\n throw new Error(`discriminator: \"${tagName}\" must be required`);\n return oneOfMapping;\n function hasRequired({ required }) {\n return Array.isArray(required) && required.includes(tagName);\n }\n function addMappings(sch, i) {\n if (sch.const) {\n addMapping(sch.const, i);\n }\n else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i);\n }\n }\n else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`);\n }\n }\n function addMapping(tagValue, i) {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`);\n }\n oneOfMapping[tagValue] = i;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0;\nconst core_1 = require(\"./core\");\nconst draft7_1 = require(\"./vocabularies/draft7\");\nconst discriminator_1 = require(\"./vocabularies/discriminator\");\nconst draft7MetaSchema = require(\"./refs/json-schema-draft-07.json\");\nconst META_SUPPORT_DATA = [\"/properties\"];\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\";\nclass Ajv extends core_1.default {\n _addVocabularies() {\n super._addVocabularies();\n draft7_1.default.forEach((v) => this.addVocabulary(v));\n if (this.opts.discriminator)\n this.addKeyword(discriminator_1.default);\n }\n _addDefaultMetaSchema() {\n super._addDefaultMetaSchema();\n if (!this.opts.meta)\n return;\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n : draft7MetaSchema;\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false);\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID;\n }\n defaultMeta() {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined));\n }\n}\nexports.Ajv = Ajv;\nmodule.exports = exports = Ajv;\nmodule.exports.Ajv = Ajv;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Ajv;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nvar validation_error_1 = require(\"./runtime/validation_error\");\nObject.defineProperty(exports, \"ValidationError\", { enumerable: true, get: function () { return validation_error_1.default; } });\nvar ref_error_1 = require(\"./compile/ref_error\");\nObject.defineProperty(exports, \"MissingRefError\", { enumerable: true, get: function () { return ref_error_1.default; } });\n//# sourceMappingURL=ajv.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatLimitDefinition = void 0;\nconst ajv_1 = require(\"ajv\");\nconst codegen_1 = require(\"ajv/dist/compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n formatMaximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n formatMinimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n formatExclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n formatExclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => codegen_1.str `should be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => codegen_1._ `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nexports.formatLimitDefinition = {\n keyword: Object.keys(KWDs),\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, keyword, it } = cxt;\n const { opts, self } = it;\n if (!opts.validateFormats)\n return;\n const fCxt = new ajv_1.KeywordCxt(it, self.RULES.all.format.definition, \"format\");\n if (fCxt.$data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fmt = gen.const(\"fmt\", codegen_1._ `${fmts}[${fCxt.schemaCode}]`);\n cxt.fail$data(codegen_1.or(codegen_1._ `typeof ${fmt} != \"object\"`, codegen_1._ `${fmt} instanceof RegExp`, codegen_1._ `typeof ${fmt}.compare != \"function\"`, compareCode(fmt)));\n }\n function validateFormat() {\n const format = fCxt.schema;\n const fmtDef = self.formats[format];\n if (!fmtDef || fmtDef === true)\n return;\n if (typeof fmtDef != \"object\" ||\n fmtDef instanceof RegExp ||\n typeof fmtDef.compare != \"function\") {\n throw new Error(`\"${keyword}\": format \"${format}\" does not define \"compare\" function`);\n }\n const fmt = gen.scopeValue(\"formats\", {\n key: format,\n ref: fmtDef,\n code: opts.code.formats ? codegen_1._ `${opts.code.formats}${codegen_1.getProperty(format)}` : undefined,\n });\n cxt.fail$data(compareCode(fmt));\n }\n function compareCode(fmt) {\n return codegen_1._ `${fmt}.compare(${data}, ${schemaCode}) ${KWDs[keyword].fail} 0`;\n }\n },\n dependencies: [\"format\"],\n};\nconst formatLimitPlugin = (ajv) => {\n ajv.addKeyword(exports.formatLimitDefinition);\n return ajv;\n};\nexports.default = formatLimitPlugin;\n//# sourceMappingURL=limit.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst formats_1 = require(\"./formats\");\nconst limit_1 = require(\"./limit\");\nconst codegen_1 = require(\"ajv/dist/compile/codegen\");\nconst fullName = new codegen_1.Name(\"fullFormats\");\nconst fastName = new codegen_1.Name(\"fastFormats\");\nconst formatsPlugin = (ajv, opts = { keywords: true }) => {\n if (Array.isArray(opts)) {\n addFormats(ajv, opts, formats_1.fullFormats, fullName);\n return ajv;\n }\n const [formats, exportName] = opts.mode === \"fast\" ? [formats_1.fastFormats, fastName] : [formats_1.fullFormats, fullName];\n const list = opts.formats || formats_1.formatNames;\n addFormats(ajv, list, formats, exportName);\n if (opts.keywords)\n limit_1.default(ajv);\n return ajv;\n};\nformatsPlugin.get = (name, mode = \"full\") => {\n const formats = mode === \"fast\" ? formats_1.fastFormats : formats_1.fullFormats;\n const f = formats[name];\n if (!f)\n throw new Error(`Unknown format \"${name}\"`);\n return f;\n};\nfunction addFormats(ajv, list, fs, exportName) {\n var _a;\n var _b;\n (_a = (_b = ajv.opts.code).formats) !== null && _a !== void 0 ? _a : (_b.formats = codegen_1._ `require(\"ajv-formats/dist/formats\").${exportName}`);\n for (const f of list)\n ajv.addFormat(f, fs[f]);\n}\nmodule.exports = exports = formatsPlugin;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = formatsPlugin;\n//# sourceMappingURL=index.js.map","import { isObject, RJSF_ADDITIONAL_PROPERTIES_FLAG } from '@rjsf/utils';\nimport Ajv from 'ajv';\nimport addFormats from 'ajv-formats';\nexport const AJV_CONFIG = {\n allErrors: true,\n multipleOfPrecision: 8,\n strict: false,\n verbose: true,\n discriminator: false, // TODO enable this in V6\n};\nexport const COLOR_FORMAT_REGEX = /^(#?([0-9A-Fa-f]{3}){1,2}\\b|aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow|(rgb\\(\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*,\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*,\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*\\))|(rgb\\(\\s*(\\d?\\d%|100%)+\\s*,\\s*(\\d?\\d%|100%)+\\s*,\\s*(\\d?\\d%|100%)+\\s*\\)))$/;\nexport const DATA_URL_FORMAT_REGEX = /^data:([a-z]+\\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/;\n/** Creates an Ajv version 8 implementation object with standard support for the 'color` and `data-url` custom formats.\n * If `additionalMetaSchemas` are provided then the Ajv instance is modified to add each of the meta schemas in the\n * list. If `customFormats` are provided then those additional formats are added to the list of supported formats. If\n * `ajvOptionsOverrides` are provided then they are spread on top of the default `AJV_CONFIG` options when constructing\n * the `Ajv` instance. With Ajv v8, the JSON Schema formats are not provided by default, but can be plugged in. By\n * default, all formats from the `ajv-formats` library are added. To disable this capability, set the `ajvFormatOptions`\n * parameter to `false`. Additionally, you can configure the `ajv-formats` by providing a custom set of\n * [format options](https://github.com/ajv-validator/ajv-formats) to the `ajvFormatOptions` parameter.\n *\n * @param [additionalMetaSchemas] - The list of additional meta schemas that the validator can access\n * @param [customFormats] - The set of additional custom formats that the validator will support\n * @param [ajvOptionsOverrides={}] - The set of validator config override options\n * @param [ajvFormatOptions] - The `ajv-format` options to use when adding formats to `ajv`; pass `false` to disable it\n * @param [AjvClass] - The `Ajv` class to use when creating the validator instance\n * @param [extenderFn] - A function to call to extend AJV, such as `ajvErrors()`\n */\nexport default function createAjvInstance(additionalMetaSchemas, customFormats, ajvOptionsOverrides = {}, ajvFormatOptions, AjvClass = Ajv, extenderFn) {\n let ajv = new AjvClass({ ...AJV_CONFIG, ...ajvOptionsOverrides });\n if (ajvFormatOptions) {\n addFormats(ajv, ajvFormatOptions);\n }\n else if (ajvFormatOptions !== false) {\n addFormats(ajv);\n }\n // add custom formats\n ajv.addFormat('data-url', DATA_URL_FORMAT_REGEX);\n ajv.addFormat('color', COLOR_FORMAT_REGEX);\n // Register the remaining string-keyed RJSF property so AJV strict mode doesn't reject it.\n // ADDITIONAL_PROPERTY_FLAG, RJSF_REF_KEY, and RJSF_REF_CYCLE_KEY are now Symbols and\n // invisible to AJV, so they no longer need to be registered as keywords.\n ajv.addKeyword(RJSF_ADDITIONAL_PROPERTIES_FLAG);\n // add more schemas to validate against\n if (Array.isArray(additionalMetaSchemas)) {\n ajv.addMetaSchema(additionalMetaSchemas);\n }\n // add more custom formats to validate against\n if (isObject(customFormats)) {\n Object.keys(customFormats).forEach((formatName) => {\n ajv.addFormat(formatName, customFormats[formatName]);\n });\n }\n if (extenderFn) {\n ajv = extenderFn(ajv);\n }\n return ajv;\n}\n//# sourceMappingURL=createAjvInstance.js.map","import { deepEquals, ID_KEY, ROOT_SCHEMA_PREFIX, withIdRefPrefix, hashForSchema } from '@rjsf/utils';\nimport createAjvInstance from \"./createAjvInstance.js\";\nimport processRawValidationErrors from \"./processRawValidationErrors.js\";\n/** `ValidatorType` implementation that uses the AJV 8 validation mechanism.\n */\nexport default class AJV8Validator {\n /** The AJV instance to use for all validations\n *\n * @private\n */\n ajv;\n /** The Localizer function to use for localizing Ajv errors\n *\n * @private\n */\n localizer;\n /** Controls which duplicate error filtering is suppressed; see `filterDuplicateErrors`\n *\n * @private\n */\n suppressDuplicateFiltering;\n /** Most recent `rootSchema` reference processed by `handleSchemaUpdate`.\n *\n * @private\n */\n lastSeenRootSchema;\n /** True once a `rootSchema` has been registered with Ajv in this lifecycle.\n *\n * @private\n */\n hasRegisteredRootSchema = false;\n /** Constructs an `AJV8Validator` instance using the `options`\n *\n * @param options - The `CustomValidatorOptionsType` options that are used to create the AJV instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\n constructor(options, localizer) {\n const { additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass, extenderFn, suppressDuplicateFiltering, } = options;\n this.ajv = createAjvInstance(additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass, extenderFn);\n this.localizer = localizer;\n this.suppressDuplicateFiltering = suppressDuplicateFiltering;\n }\n /** Resets the internal AJV validator to clear schemas from it. Can be helpful for resetting the validator for tests.\n */\n reset() {\n this.ajv.removeSchema();\n this.lastSeenRootSchema = undefined;\n this.hasRegisteredRootSchema = false;\n }\n /** Runs the pure validation of the `schema` and `formData` without any of the RJSF functionality. Provided for use\n * by the playground. Returns the `errors` from the validation\n *\n * @param schema - The schema against which to validate the form data * @param schema\n * @param formData - The form data to validate\n */\n rawValidation(schema, formData) {\n let compilationError = undefined;\n let compiledValidator;\n try {\n if (schema[ID_KEY]) {\n compiledValidator = this.ajv.getSchema(schema[ID_KEY]);\n }\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schema);\n }\n compiledValidator(formData);\n }\n catch (err) {\n compilationError = err;\n // AJV registers a schema in its internal cache before running meta-schema\n // validation. When that check throws, the broken schema stays cached so\n // subsequent compile() calls skip revalidation and return silently. Remove\n // the entry so every call with an invalid schema consistently produces a\n // compilation error. For schemas with $id the cache key is the id string;\n // for anonymous schemas AJV uses the object reference as the key.\n // Guard with compiledValidator === undefined so that a runtime error thrown\n // by compiledValidator(formData) does not evict a correctly-compiled schema.\n if (compiledValidator === undefined) {\n this.ajv.removeSchema(schema[ID_KEY] !== undefined ? schema[ID_KEY] : schema);\n }\n }\n let errors;\n if (compiledValidator) {\n if (typeof this.localizer === 'function') {\n // Properties need to be enclosed with quotes so that\n // `AJV8Validator#transformRJSFValidationErrors` replaces property names\n // with `title` or `ui:title`. See #4348, #4349, #4387, and #4402.\n (compiledValidator.errors ?? []).forEach((error) => {\n ['missingProperty', 'property'].forEach((key) => {\n if (error.params?.[key]) {\n // oxlint-disable-next-line no-param-reassign\n error.params[key] = `'${error.params[key]}'`;\n }\n });\n if (error.params?.deps) {\n // As `error.params.deps` is the comma+space separated list of missing dependencies, enclose each dependency separately.\n // For example, `A, B` is converted into `'A', 'B'`.\n // oxlint-disable-next-line no-param-reassign\n error.params.deps = error.params.deps\n .split(', ')\n .map((v) => `'${v}'`)\n .join(', ');\n }\n });\n this.localizer(compiledValidator.errors);\n // Revert to originals\n (compiledValidator.errors ?? []).forEach((error) => {\n ['missingProperty', 'property'].forEach((key) => {\n if (error.params?.[key]) {\n // oxlint-disable-next-line no-param-reassign\n error.params[key] = error.params[key].slice(1, -1);\n }\n });\n if (error.params?.deps) {\n // Remove surrounding quotes from each missing dependency. For example, `'A', 'B'` is reverted to `A, B`.\n // oxlint-disable-next-line no-param-reassign\n error.params.deps = error.params.deps\n .split(', ')\n .map((v) => v.slice(1, -1))\n .join(', ');\n }\n });\n }\n errors = compiledValidator.errors || undefined;\n // Clear errors to prevent persistent errors, see #1104\n compiledValidator.errors = null;\n }\n return {\n errors: errors,\n validationError: compilationError,\n };\n }\n /** This function processes the `formData` with an optional user contributed `customValidate` function, which receives\n * the form data and a `errorHandler` function that will be used to add custom validation errors for each field. Also\n * supports a `transformErrors` function that will take the raw AJV validation errors, prior to custom validation and\n * transform them in what ever way it chooses.\n *\n * @param formData - The form data to validate\n * @param schema - The schema against which to validate the form data\n * @param [customValidate] - An optional function that is used to perform custom validation\n * @param [transformErrors] - An optional function that is used to transform errors after AJV validation\n * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`\n */\n validateFormData(formData, schema, customValidate, transformErrors, uiSchema) {\n const rawErrors = this.rawValidation(schema, formData);\n return processRawValidationErrors(this, rawErrors, formData, schema, customValidate, transformErrors, uiSchema, this.suppressDuplicateFiltering);\n }\n /**\n * This function checks if a schema needs to be added and if the root schemas don't match it removes the old root schema from the ajv instance and adds the new one.\n * When called repeatedly with the same `rootSchema` reference the deep-equality check is skipped.\n *\n * @param rootSchema - The root schema used to provide $ref resolutions\n */\n handleSchemaUpdate(rootSchema) {\n if (this.lastSeenRootSchema === rootSchema && this.hasRegisteredRootSchema) {\n return;\n }\n const rootSchemaId = rootSchema[ID_KEY] ?? ROOT_SCHEMA_PREFIX;\n // add the rootSchema ROOT_SCHEMA_PREFIX as id.\n // if schema validator instance doesn't exist, add it.\n // else if the root schemas don't match, we should remove and add the root schema so we don't have to remove and recompile the schema every run.\n if (this.ajv.getSchema(rootSchemaId) === undefined) {\n this.ajv.addSchema(rootSchema, rootSchemaId);\n }\n else if (!deepEquals(rootSchema, this.ajv.getSchema(rootSchemaId)?.schema)) {\n this.ajv.removeSchema(rootSchemaId);\n this.ajv.addSchema(rootSchema, rootSchemaId);\n }\n this.lastSeenRootSchema = rootSchema;\n this.hasRegisteredRootSchema = true;\n }\n /** Validates data against a schema, returning true if the data is valid, or\n * false otherwise. If the schema is invalid, then this function will return\n * false.\n *\n * @param schema - The schema against which to validate the form data\n * @param formData - The form data to validate\n * @param rootSchema - The root schema used to provide $ref resolutions\n */\n isValid(schema, formData, rootSchema) {\n // schemaId and compiled are declared outside the try so the catch block can\n // conditionally remove the broken schema from AJV's registry.\n let schemaId;\n let compiled = false;\n try {\n this.handleSchemaUpdate(rootSchema);\n // then rewrite the schema ref's to point to the rootSchema\n // this accounts for the case where schema have references to models\n // that lives in the rootSchema but not in the schema in question.\n const schemaWithIdRefPrefix = withIdRefPrefix(schema);\n schemaId = schemaWithIdRefPrefix[ID_KEY] ?? hashForSchema(schemaWithIdRefPrefix);\n let compiledValidator;\n compiledValidator = this.ajv.getSchema(schemaId);\n if (compiledValidator === undefined) {\n // Add schema by an explicit ID so it can be fetched later\n // Fall back to using compile if necessary\n // https://ajv.js.org/guide/managing-schemas.html#pre-adding-all-schemas-vs-adding-on-demand\n compiledValidator =\n this.ajv.addSchema(schemaWithIdRefPrefix, schemaId).getSchema(schemaId) ||\n this.ajv.compile(schemaWithIdRefPrefix);\n }\n compiled = true;\n const result = compiledValidator(formData);\n return result;\n }\n catch (e) {\n // oxlint-disable-next-line no-console\n console.warn('Error encountered compiling schema:', e);\n // Remove the broken schema from AJV's registry so a subsequent rawValidation\n // or isValid call does not silently reuse a cached entry that bypassed\n // meta-schema validation. Guard with !compiled so that a runtime error thrown\n // by compiledValidator(formData) does not evict a correctly-compiled schema.\n if (!compiled && schemaId !== undefined) {\n this.ajv.removeSchema(schemaId);\n }\n return false;\n }\n }\n}\n//# sourceMappingURL=validator.js.map","import AJV8Validator from \"./validator.js\";\n/** Creates and returns a customized implementation of the `ValidatorType` with the given customization `options` if\n * provided. If a `localizer` is provided, it is used to translate the messages generated by the underlying AJV\n * validation.\n *\n * @param [options={}] - The `CustomValidatorOptionsType` options that are used to create the `ValidatorType` instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n * @returns - The custom validator implementation resulting from the set of parameters provided\n */\nexport default function customizeValidator(options = {}, localizer) {\n return new AJV8Validator(options, localizer);\n}\n//# sourceMappingURL=customizeValidator.js.map","import createPrecompiledValidator from \"./createPrecompiledValidator.js\";\nimport customizeValidator from \"./customizeValidator.js\";\nexport { customizeValidator, createPrecompiledValidator };\nexport default customizeValidator();\n//# sourceMappingURL=index.js.map","// Schema-Generated Configuration Form\n// Purpose: Renders the server-provided JSON Schema as an ordered, indented tree resembling the configuration's YAML structure.\n// Scope: Defines one generic RJSF presentation; it never names or special-cases an individual service or setting.\nimport { useMemo } from 'react';\nimport Form from '@rjsf/core';\nimport validator from '@rjsf/validator-ajv8';\nimport CardFrame from '../../components/CardFrame/index.jsx';\n\nfunction buildUiSchema(schema, path = '') {\n /*\n `writeOnly` is standard JSON Schema metadata and is the sole reason a field\n needs a special widget. The walk records its dotted path for the existing\n server secret-operation protocol; it contains no service or field names.\n */\n if (!schema || typeof schema !== 'object') return {};\n const firstExample = Array.isArray(schema.examples) ? schema.examples[0] : undefined;\n const placeholder = firstExample === undefined ? {} : { 'ui:placeholder': String(firstExample) };\n\n if (schema.writeOnly === true) {\n return {\n 'ui:widget': 'SecretWidget',\n 'ui:options': { secretPath: path },\n ...placeholder,\n };\n }\n\n if (schema.type === 'boolean') {\n /*\n RJSF's checkbox is unusual: unless it is explicitly selected, it renders\n the schema description and field name inside the widget as well as\n passing them to FieldTemplate. This generic option makes the surrounding\n YAML-like row the sole owner of that text, eliminating duplicates without\n maintaining a list of boolean setting names.\n */\n return {\n 'ui:widget': 'checkbox',\n 'ui:options': { label: false },\n };\n }\n\n if (schema.type === 'array' && schema.items) {\n /*\n Array item schemas need the same generic metadata walk as ordinary object\n properties. Otherwise fields created by Add item would lose their\n schema-owned placeholders even though the backend described them.\n */\n return {\n items: buildUiSchema(schema.items, path ? `${path}[]` : '[]'),\n };\n }\n\n if (schema.type !== 'object' || !schema.properties) return placeholder;\n return Object.fromEntries(Object.entries(schema.properties).map(([key, childSchema]) => [\n key,\n buildUiSchema(childSchema, path ? `${path}.${key}` : key),\n ]));\n}\n\nfunction SecretWidget({ id, disabled, readonly, options, placeholder, registry }) {\n const secretPath = options.secretPath;\n const context = registry.formContext || {};\n const operation = context.secretOperations?.[secretPath];\n const configured = Boolean(context.configuredSecrets?.[secretPath]);\n const replacing = operation?.action === 'replace';\n const clearing = operation?.action === 'clear';\n const unavailable = disabled || readonly;\n\n function setOperation(nextOperation) {\n if (!unavailable) context.setSecretOperation?.(secretPath, nextOperation);\n }\n\n return (\n
\n {/* Secret actions stay beside their status. A wide configuration card\n must not turn related controls into a trip across the screen. */}\n
\n \n {clearing ? 'Will be cleared when saved' : replacing ? 'Replacement pending' : configured ? 'Configured' : 'Not configured'}\n \n
\n \n \n
\n
\n {replacing ? (\n setOperation({ action: 'replace', value: event.target.value })}\n />\n ) : null}\n
\n );\n}\n\nfunction ConfigurationFieldTemplate({\n children,\n classNames,\n description,\n errors,\n help,\n hidden,\n id,\n label,\n required,\n schema,\n style,\n}) {\n if (hidden) return
{children}
;\n\n const containerField = schema?.type === 'object' || schema?.type === 'array';\n if (containerField) {\n // Objects and arrays own their visible boundaries and headings in the\n // templates below. Keeping this wrapper structural avoids duplicated\n // titles while retaining RJSF's useful field-type classes for layout.\n return
{children}{errors}{help}
;\n }\n\n return (\n
\n
\n {/* Boolean widgets deliberately hide their internal duplicate label, so\n every scalar can use this same key column and preserve YAML order. */}\n \n
\n
\n {/* Descriptions belong with the editable value rather than inside the\n narrow key column. This keeps long operational guidance readable\n without weakening the YAML-like key/value alignment. */}\n {description ?
{description}
: null}\n {children}\n {errors}\n {help}\n
\n
\n );\n}\n\nfunction ConfigurationObjectTemplate({ description, fieldPathId, properties, title }) {\n const visibleProperties = properties.filter((property) => !property.hidden);\n const propertyLines = visibleProperties.map((property) => property.content);\n const topLevel = fieldPathId.path.length === 1;\n\n if (fieldPathId.path.length === 0) {\n // The outer configuration card already names the root document. Rendering\n // its properties directly makes their schema order read like YAML lines.\n // The root description remains outside that stack so its introductory\n // text does not accidentally become another configuration section.\n return (\n
\n {description ?
{description}
: null}\n
{propertyLines}
\n
\n );\n }\n\n if (typeof fieldPathId.path.at(-1) === 'number') {\n // Array items receive their numbered heading and action row from the array\n // item CardFrame. Rendering only their description and ordered properties\n // prevents a redundant anonymous card inside that visible item boundary.\n return (\n
\n {description ?
{description}
: null}\n {propertyLines}\n
\n );\n }\n\n return (\n \n {description ?
{description}
: null}\n
{propertyLines}
\n \n );\n}\n\nfunction ConfigurationArrayItemTemplate({ buttonsProps, children, hasToolbar, index }) {\n const unavailable = buttonsProps.disabled || buttonsProps.readonly;\n\n return (\n \n {hasToolbar ? (\n // Actions remain at the beginning of the card body instead of using\n // CardFrame's right-aligned action slot. Even on a wide editor, item\n // controls therefore stay next to the content they affect.\n
\n {(buttonsProps.hasMoveUp || buttonsProps.hasMoveDown) ? (\n \n ) : null}\n {(buttonsProps.hasMoveUp || buttonsProps.hasMoveDown) ? (\n \n ) : null}\n {buttonsProps.hasCopy ? (\n \n ) : null}\n {buttonsProps.hasRemove ? (\n \n ) : null}\n
\n ) : null}\n
{children}
\n \n );\n}\n\nfunction ConfigurationArrayTemplate({ canAdd, disabled, fieldPathId, items, onAddClick, readonly, schema, title }) {\n const topLevel = fieldPathId.path.length === 1;\n\n return (\n \n {schema.description ?
{schema.description}
: null}\n {canAdd ? (\n // Adding belongs to the collection as a whole, but stays left-aligned\n // with that collection's contents rather than at the viewport edge.\n
\n \n
\n ) : null}\n
\n {items.length ? items :

No items configured.

}\n
\n \n );\n}\n\nexport default function SchemaConfigurationForm({ schema, value, onChange, configuredSecrets, secretOperations, setSecretOperation }) {\n const uiSchema = useMemo(() => buildUiSchema(schema), [schema]);\n const widgets = useMemo(() => ({ SecretWidget }), []);\n const templates = useMemo(() => ({\n ArrayFieldItemTemplate: ConfigurationArrayItemTemplate,\n ArrayFieldTemplate: ConfigurationArrayTemplate,\n FieldTemplate: ConfigurationFieldTemplate,\n ObjectFieldTemplate: ConfigurationObjectTemplate,\n }), []);\n const formContext = useMemo(() => ({\n configuredSecrets,\n secretOperations,\n setSecretOperation,\n }), [configuredSecrets, secretOperations, setSecretOperation]);\n\n return (\n
\n onChange(formData)}\n >\n {/* Saving is owned by the sticky revision-aware toolbar above the form. */}\n <>\n \n
\n );\n}\n","// Complete Configuration Editor\n// Purpose: Connects the one hierarchical configuration form to revision, secret, validation, and save behavior.\n// Scope: Edits and saves one complete configuration document as one immutable revision.\nimport { useEffect, useMemo, useState } from 'react';\nimport CardFrame from '../../components/CardFrame/index.jsx';\nimport { updateConfiguration } from '../api.js';\nimport SchemaConfigurationForm from './SchemaConfigurationForm.jsx';\n\nfunction clone(value) {\n return JSON.parse(JSON.stringify(value));\n}\n\nexport default function ConfigurationEditor({ snapshot, socket, runSensitive, onSnapshot, onReload }) {\n const serverValue = snapshot?.configuration?.config;\n const schema = snapshot?.configuration?.schema;\n const revision = snapshot?.configuration?.revision;\n const [draft, setDraft] = useState(() => clone(serverValue));\n const [secretOperations, setSecretOperations] = useState({});\n const [saving, setSaving] = useState(false);\n const [error, setError] = useState('');\n const [validationErrors, setValidationErrors] = useState([]);\n\n useEffect(() => {\n setDraft(clone(serverValue));\n setSecretOperations({});\n setError('');\n setValidationErrors([]);\n }, [revision, serverValue]);\n\n const dirty = useMemo(\n () => JSON.stringify(draft) !== JSON.stringify(serverValue) || Object.keys(secretOperations).length > 0,\n [draft, secretOperations, serverValue],\n );\n\n if (!serverValue || !schema) {\n return

The configuration document is unavailable.

;\n }\n\n const setSecretOperation = (path, operation) => setSecretOperations((current) => {\n const next = { ...current };\n if (operation) next[path] = operation;\n else delete next[path];\n return next;\n });\n\n async function save() {\n setSaving(true);\n setError('');\n setValidationErrors([]);\n try {\n const response = await runSensitive(() => updateConfiguration(socket, {\n value: draft,\n expectedRevision: revision,\n secretOperations,\n }));\n onSnapshot(response.snapshot);\n } catch (saveError) {\n setError(saveError.message);\n setValidationErrors(saveError.validationErrors || []);\n } finally {\n setSaving(false);\n }\n }\n\n return (\n \n
\n

Saved changes apply after an application restart.

\n {/* All document actions stay together at the start of the toolbar. The\n editor may use a wide canvas, but width is never used to separate a\n control from the content that explains it. */}\n
\n \n \n \n
\n
\n {error ?

{error}

: null}\n {validationErrors.length ? (\n
\n

Configuration could not be saved

\n
    \n {validationErrors.map((validationError, index) => (\n
  • {validationError.path}: {validationError.message}
  • \n ))}\n
\n
\n ) : null}\n \n
\n );\n}\n","// Password Confirmation Dialog\n// Purpose: Collects recent password proof for sensitive administrative mutations without storing it in page state longer than necessary.\n// Scope: Handles confirmation presentation only; retry ownership remains in AdminApp.\nimport { useState } from 'react';\n\nexport default function PasswordConfirmationDialog({ open, busy, error, onCancel, onConfirm }) {\n const [password, setPassword] = useState('');\n if (!open) return null;\n\n async function submit(event) {\n event.preventDefault();\n await onConfirm(password);\n setPassword('');\n }\n\n function cancel() {\n // Clear the credential before closing because this component remains\n // mounted beneath the admin shell and would otherwise retain it in memory.\n setPassword('');\n onCancel();\n }\n\n return (\n
\n
\n

Confirm password

\n

This sensitive action requires recent confirmation of your administrator password.

\n setPassword(event.target.value)}\n />\n {error ?

{error}

: null}\n
\n \n \n
\n \n
\n );\n}\n","// Central Administration Application\n// Purpose: Composes authentication, operational controls, users, and one complete configuration editor under /admin.\n// Scope: Reuses existing admin/identity components while shared infrastructure owns revisions and sensitive-action behavior.\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { useSearchParams } from 'react-router-dom';\nimport AuthPanel from '../components/AuthPanel/index.jsx';\nimport AdminPanelContent from '../components/AdminPanel/AdminPanelContent.jsx';\nimport CardFrame from '../components/CardFrame/index.jsx';\nimport SocketConnectionPill from '../components/SocketConnectionPill/index.jsx';\nimport Tabs, { Tab, TabList, TabPanels } from '../components/Tabs/index.jsx';\nimport { useSessionSelector } from '../context/SessionContext.jsx';\nimport { useSocket } from '../context/SocketContext.jsx';\nimport IdentityDatabasePanel from '../database/IdentityDatabasePanel.jsx';\nimport useUserIdentitySync from '../hooks/useUserIdentitySync.js';\nimport { useSettingsNamespace } from '../settings/index.js';\nimport { DEFAULT_PAGE_THEME_KEY, usePageThemeClass } from '../themes/index.js';\nimport { confirmAdminPassword, getAdminSnapshot } from './api.js';\nimport AdministratorAccounts from './components/AdministratorAccounts.jsx';\nimport AdminOverview from './components/AdminOverview.jsx';\nimport ConfigurationEditor from './components/ConfigurationEditor.jsx';\nimport PasswordConfirmationDialog from './components/PasswordConfirmationDialog.jsx';\nimport './styles.css';\n\nconst TOP_LEVEL_SECTIONS = [\n { key: 'overview', label: 'Overview' },\n { key: 'fleet', label: 'Fleet operations' },\n { key: 'users', label: 'Users and administrators', lockdownOnly: true },\n { key: 'configuration', label: 'Configuration', lockdownOnly: true },\n];\n\nexport default function AdminApp() {\n useUserIdentitySync({ identitySurface: 'passive' });\n const socket = useSocket();\n const role = useSessionSelector((state) => state.session?.role || 'user');\n const connected = useSessionSelector((state) => state.connected);\n const [searchParams, setSearchParams] = useSearchParams();\n const selected = searchParams.get('section') || 'overview';\n const [snapshot, setSnapshot] = useState(null);\n const [loadingError, setLoadingError] = useState('');\n const pendingSensitiveAction = useRef(null);\n const [confirmationOpen, setConfirmationOpen] = useState(false);\n const [confirmationBusy, setConfirmationBusy] = useState(false);\n const [confirmationError, setConfirmationError] = useState('');\n const { value: pageSettings } = useSettingsNamespace('page', { backgroundTheme: DEFAULT_PAGE_THEME_KEY });\n const pageBackgroundClass = usePageThemeClass(pageSettings?.backgroundTheme);\n const isAdmin = role === 'admin' || role === 'lockdown';\n const isLockdown = role === 'lockdown';\n\n const loadSnapshot = useCallback(async () => {\n if (!isLockdown) {\n setSnapshot(null);\n return;\n }\n setLoadingError('');\n try {\n setSnapshot(await getAdminSnapshot(socket));\n } catch (error) {\n setLoadingError(error.message);\n }\n }, [isLockdown, socket]);\n\n useEffect(() => {\n loadSnapshot();\n }, [loadSnapshot, connected]);\n\n const runSensitive = useCallback(async (operation) => {\n try {\n return await operation();\n } catch (error) {\n if (error.code !== 'PASSWORD_CONFIRMATION_REQUIRED') throw error;\n /*\n Suspend exactly the rejected operation. After password confirmation the\n same closure reruns with its original revision and payload, so normal\n conflict detection still protects against changes made while waiting.\n */\n return new Promise((resolve, reject) => {\n pendingSensitiveAction.current = { operation, resolve, reject };\n setConfirmationError('');\n setConfirmationOpen(true);\n });\n }\n }, []);\n\n async function submitPasswordConfirmation(password) {\n setConfirmationBusy(true);\n setConfirmationError('');\n try {\n await confirmAdminPassword(socket, password);\n const pending = pendingSensitiveAction.current;\n pendingSensitiveAction.current = null;\n setConfirmationOpen(false);\n if (pending) {\n try {\n pending.resolve(await pending.operation());\n } catch (error) {\n pending.reject(error);\n }\n }\n } catch (error) {\n setConfirmationError(error.message);\n } finally {\n setConfirmationBusy(false);\n }\n }\n\n function cancelPasswordConfirmation() {\n const pending = pendingSensitiveAction.current;\n pendingSensitiveAction.current = null;\n setConfirmationOpen(false);\n if (pending) pending.reject(new Error('Sensitive action cancelled.'));\n }\n\n function selectSection(key) {\n setSearchParams(key === 'overview' ? {} : { section: key });\n }\n\n const navigationOptions = TOP_LEVEL_SECTIONS.filter((entry) => !entry.lockdownOnly || isLockdown);\n const activeSection = navigationOptions.some((entry) => entry.key === selected) ? selected : 'overview';\n\n let content;\n if (!isAdmin) {\n content =
;\n } else if (activeSection === 'fleet') {\n content = ;\n } else if (!isLockdown) {\n content = (\n \n

Routine fleet operations are available. Configuration, users, secrets, and system administration require a lockdown administrator.

\n
\n );\n } else if (!snapshot) {\n content =

{loadingError || 'Loading configuration and audit state…'}

;\n } else if (activeSection === 'users') {\n content = (\n
\n \n \n
\n );\n } else if (activeSection === 'configuration') {\n content = ;\n } else {\n content = ;\n }\n\n return (\n
\n \n \n
\n \n

{snapshot ? `Active configuration revision ${snapshot.configuration.revision}.${snapshot.restartRequired ? ' An application restart is required to apply saved changes.' : ' The running application has loaded this revision.'}` : 'Central server administration and configuration.'}

\n
\n {isAdmin ? (\n \n {/* Reusing the same responsive tab surface as the driver page makes\n administration feel like another MultiRover workspace instead\n of a separate desktop-oriented application. */}\n \n
{content}
\n
\n ) :
{content}
}\n
\n
\n );\n}\n"],"names":["emitIdentityAdmin","socket","eventName","payload","resolve","reject","resp","listUsers","getUser","userId","addSignal","type","value","removeSignal","setVerified","enabled","setDeterrence","reason","setMuted","setPermission","permissionKey","updateFeatureState","namespace","deleteFeatureState","SIGNAL_LABELS","SIGNAL_FIELDS","maskValue","text","formatDateTime","ts","userMatchesQuery","user","query","needle","permission","userMatchesFilter","filter","stringifyJson","parseEditableJson","parsed","FILTERS","StatusPill","active","children","jsx","UserListCard","users","selectedUserId","loading","onQuery","onFilter","onRefresh","onSelect","filtered","useMemo","actions","jsxs","CardFrame","event","entry","UserDetailsCard","SignalEditor","onAdd","onRemove","draft","setDraft","useState","values","submit","SignalsCard","onAddSignal","onRemoveSignal","StatusCard","onVerified","onDeterrence","onMuted","setReason","FeatureStateCard","onSaveFeature","onDeleteFeature","namespaces","initialNamespace","setNamespace","setText","error","setError","save","ns","err","remove","next","RawRecordCard","PermissionsCard","permissions","onPermission","grantedKeys","IdentityDatabasePanel","useSocket","setUsers","setPermissions","selectedUser","setSelectedUser","setQuery","setFilter","setLoading","message","setMessage","refreshUsers","useCallback","updated","selectUser","applyUserUpdate","prev","runMutation","operation","successMessage","useEffect","handleAddSignal","handleRemoveSignal","handleVerified","handleDeterrence","handleMuted","handlePermission","handleSaveFeature","handleDeleteFeature","Fragment","Tabs","TabList","Tab","TabPanels","TabPanel","AdministratorRow","administrator","runSensitive","onSnapshot","busy","setBusy","perform","work","response","actionError","deleteAdministrator","updateAdministrator","AdministratorAccounts","administrators","create","createAdministrator","formatDate","AdminOverview","snapshot","config","restore","revision","restoreConfigurationRevision","Link","isObject","thing","allowAdditionalItems","schema","getDecimalSeparator","languages","locales","part","asNumber","separator","standardValue","ADDITIONAL_PROPERTY_FLAG","ADDITIONAL_PROPERTIES_KEY","ALL_OF_KEY","ANY_OF_KEY","CONST_KEY","DEFAULT_KEY","DEPENDENCIES_KEY","ENUM_KEY","ERRORS_KEY","ID_KEY","IF_KEY","ITEMS_KEY","JUNK_OPTION_ID","NAME_KEY","ONE_OF_KEY","PATTERN_PROPERTIES_KEY","PROPERTIES_KEY","READONLY_KEY","REQUIRED_KEY","SUBMIT_BTN_OPTIONS_KEY","REF_KEY","RJSF_REF_KEY","RJSF_REF_CYCLE_KEY","SCHEMA_KEY","DEFAULT_ID_PREFIX","DEFAULT_ID_SEPARATOR","DISCRIMINATOR_PATH","FORM_CONTEXT_NAME","LOOKUP_MAP_NAME","RJSF_PREFIX_KEY","RJSF_ADDITIONAL_PROPERTIES_FLAG","ROOT_SCHEMA_PREFIX","UI_FIELD_KEY","UI_WIDGET_KEY","UI_OPTIONS_KEY","UI_GLOBAL_OPTIONS_KEY","UI_DEFINITIONS_KEY","JSON_SCHEMA_DRAFT_2019_09","JSON_SCHEMA_DRAFT_2020_12","getUiOptions","uiSchema","globalOptions","key","options","canExpand","formData","expandable","isPlainObject","proto","createErrorHandler","handler","acc","getOwnPropertyNames","getOwnPropertySymbols","hasOwnProperty","combineComparators","comparatorA","comparatorB","a","b","state","createIsCircular","areItemsEqual","cache","cachedA","cachedB","result","getStrictProperties","object","symbols","hasOwn","property","PREACT_VNODE","PREACT_OWNER","REACT_OWNER","HAS_FLOAT_16_ARRAY","getOwnPropertyDescriptor","keys","sameValueEqual","strictEqual","areArrayBuffersEqual","areTypedArraysEqual","areArraysEqual","index","areDataViewsEqual","areDatesEqual","areErrorsEqual","areMapsEqual","size","matchedIndices","aIterable","aResult","bResult","bIterable","hasMatch","matchIndex","aEntry","bEntry","areObjectsEqual","properties","isPropertyEqual","areObjectsEqualStrict","descriptorA","descriptorB","arePrimitiveWrappersEqual","areRegExpsEqual","areSetsEqual","areUrlsEqual","areSearchParamsEqual","serializedA","serializedB","sortSearchParams","serialized","toString","createEqualityComparator","supportedComparatorMap","createSupportedComparatorMap","areFunctionsEqual","areNumbersEqual","getUnsupportedCustomComparator","constructor","tag","supportedComparator","unsupportedCustomComparator","createEqualityComparatorConfig","circular","createCustomConfig","strict","createInternalEqualityComparator","compare","_indexOrKeyA","_indexOrKeyB","_parentA","_parentB","createIsEqual","comparator","createState","equals","meta","createCustomEqual","createCustomInternalComparator","deepEquals","_a","isUUID","isIPv4","isPort","isHexPair","isUnreserved","isPathCharacter","isQueryFragmentCharacter","isUserinfoCharacter","stringArrayToHexStripped","input","code","i","isHextet","isIPvFuture","isZoneCharacter","nonSimpleDomain","nonSimpleDomainChars","numericLastLabel","nonSimpleMailtoDomain","domain","isZoneIdentifier","zone","compressIPv6ZeroRun","hextets","bestStart","bestLength","runStart","runLength","head","tail","normalizeIPv6Address","compression","left","right","parts","hextetCount","expanded","normalizeIPv6","host","bracketed","findToken","zoneIdentifier","zoneSeparator","separatorLength","address","str","token","ind","removeDotSegments","path","output","nextSlash","len","HOST_DELIMS","HOST_DELIM_RE","HOST_DELIM_NO_COLON_RE","reescapeHostDelimiters","isIP","re","ch","normalizePercentEncoding","decodeUnreserved","hex","normalizedHex","decoded","BYTE_HEX","HEX_DIGITS","isEscapeSafe","cp","percentEncodeNonAscii","normalizePathEncoding","low","serializePathEncoding","pathNoScheme","firstSegment","normalizeQueryFragmentEncoding","encodeComponent","isAllowed","encodeUserinfo","encodeQuery","encodeFragment","escapePreservingEscapes","recomposeAuthority","component","uriTokens","ipV6res","port","utils","require$$0","URN_REG","supportedSchemeNames","isValidSchemeName","name","wsIsSecure","wsComponent","httpParse","httpSerialize","secure","wsParse","wsSerialize","queryIndex","urnParse","urnComponent","matches","scheme","urnScheme","schemeHandler","getSchemeHandler","urnSerialize","nid","uriComponent","nss","urnuuidParse","uuidComponent","urnuuidSerialize","http","https","ws","wss","urn","urnuuid","LOCAL_PART_ALLOWED","HFNAME_ALLOWED","DTEXT_ALLOWED","allowSet","chars","allowNonAscii","table","escaped","cls","LOCAL_PART","HFNAME","DTEXT","DTEXT_IRI","HEX_PAIR","MAILTO_DOMAIN_LITERAL","MAILTO_DOMAIN_ERROR","HAS_SURROGATE","decodeHex","replaceLoneSurrogates","encodeWithAllow","set","mailtoNormalizeDomain","normalizedDomain","parsedDomain","mailtoEncodeDomain","mailtoParse","mailtoComponent","rawPath","rawQuery","to","headers","start","end","eqIdx","addrs","j","rawAddr","atIdx","local","mailtoSerialize","addr","rawLocal","rawDomain","decodedDomain","count","SCHEMES","schemes","require$$1","VALID_SCHEME","MALFORMED_SCHEME_ERROR","decodeValidScheme","decodedScheme","normalize","uri","normalizeString","parse","serialize","baseURI","relativeURI","schemelessOptions","baseParsed","baseMalformed","baseMalformedPercentEncoding","baseMalformedSchemeSpecific","baseMalformedHost","baseMalformedScheme","parseWithStatus","relativeParsed","relativeMalformed","relativeMalformedPercentEncoding","relativeMalformedSchemeSpecific","relativeMalformedHost","relativeMalformedScheme","resolved","resolveComponent","resolvedSchemeHandler","resolvedHost","resolvedHostIsIP","canonicalizeHost","encodedASCIIHost","base","relative","skipNormalization","target","equal","uriA","uriB","normalizedA","normalizeComparableURI","normalizedB","cmpts","opts","hasAuthority","authority","s","URI_PARSE","AUTHORITY_PREFIX","AUTHORITY_INTRODUCER_REGION","getParseError","hasMalformedPercentEncoding","percent","isIPLiteral","hasMalformedComponentPercentEncoding","bracketedIPLiteral","e","malformedAuthorityOrPort","malformedPercentEncoding","malformedSchemeSpecific","malformedHost","malformedIPLiteral","malformedScheme","authorityMatch","introducerMatch","region","normalizedRegion","parseError","hasIPLiteralBracket","ipv6result","normalizeStringWithStatus","normalized","fastUri","fastUriModule","hasExcape","escapeMatcher","escapeReplacer","m","untilde","setter","obj","pointer","hasNextPart","p","oldValue","compilePointer","get","compile","compiled","jsonpointer","findEmbeddedSchemaRecursive","ref","UriResolver","subSchema","item","makeAllReferencesAbsolute","currentURI","splitKeyElementFromObject","remaining","findSchemaDefinitionRecursive","$ref","rootSchema","recurseList","current","currentBaseURI","decodedRef","resolvedRef","refId","refAnchor","nextRef","firstRef","restRefs","circularPath","theRef","findSchemaDefinition","reIsIndex","toPath","normalizePath","isUnsafeSegment","segment","isIndex","isSettable","getByPath","defaultValue","setByPath","createIntermediateObjects","segments","existing","hasByPath","unsetByPath","parent","getDiscriminatorFieldFromSchema","discriminator","maybeString","guessType","getSchemaType","t","mergeSchemas","obj1","obj2","accumulator","sym","getPropertySchema","getOptionMatchingSimpleDiscriminator","discriminatorField","option","getFirstMatchingOption","validator","simpleDiscriminatorMatch","requiresAnyOf","augmentedSchema","shallowClone","objProto","isRecordEmpty","rec","JSON_SCHEMA_TYPE_NAMES","RECORDS_OF_SUB_SCHEMAS","ARRAYS_OF_SUB_SCHEMAS","SUB_SCHEMAS","isSchemaObject","schemaDef","isAllowAnySchema","def","ascComparator","union","larger","smaller","ll","sl","tmp","data","intersection","setB","val","isArrayEmpty","arr","createArrayComparator","d","createDeduplicator","threshold","al","rl","outer","sorted","wIndex","rIndex","createIntersector","bl","tmpArr","tmpL","aSorted","bSorted","cmp","memoize","func","arg","ret","weakMemoize","zero","isUndefined","v","isSchemaPrimitiveExceptNull","PRIMITIVE_TYPE_ORDER","compareSchemaPrimitive","ta","tb","insertUniqueValues","mutableTarget","mutableSource","tl","seen","l","createCmpMatcher","isEmpty","compareEmpty","createOptionalComparator","createNarrowingOptionalComparator","createArrayOrItemComparator","compareArray","compareOptionalSameTypeSchemaPrimitives","compareNumbersWithZeroDefault","createComparator","deduplicationCache","sortedKeysCache","getSortedKeys","createRecordsComparator","aKeys","bKeys","createArrayComparatorWithDeduplication","deduplicate","compareArrayOfSameTypePrimitivesWithDeduplication","compareSchemaDefinitions","allKeys","COMPARATORS","compareOptionalSchemaValues","compareSchemaValues","compareNonNullSchemaValue","compareOptionalSchemaDefinitions","compareRecordOfOptionalSchemasWithEmptyRecordDefault","compareOptionalArrayOfSchemasWithDeduplication","compareSchemaDefinitionsWithEmptyDefinitionDefault","isAArr","isBArr","identity","gcd","lcm","simplePatternsMerger","createPairCombinations","r","action","lv","mergeBooleans","createRecordsMerge","merge","createMap","items","map","pair","assignSchemaDefinitionOrRecordOfSchemaDefinitions","PROPERTIES_ASSIGNER_KEYS","compilePatterns","patterns","source","EMPTY_PATTERNS_AND_KEYS","appendKeyConstraints","ITEMS_ASSIGNER_KEYS","CONDITION_ASSIGNER_KEYS","assignCondition","intersectSchemaTypes","check","createChecksMap","checks","fn","k","DEFAULT_CHECKS","createMerger","mergePatterns","isSubRegExp","intersectJson","deduplicateJsonSchemaDef","defaultMerger","assigners","mergers","mergeArrayOfSchemaDefinitions","schemas","mergeSchemaDefinitions","createProperty","constraints","oppositeValue","oppositePatterns","oppositeAdditional","isNotYetAllowed","assignPatternPropertiesAndAdditionalPropertiesMerge","patternKeys","matchedPatterns","isOppositeTruthy","pattern","propertiesAssigner","lProps","lPatterns","lAdditional","rProps","rPatterns","rAdditional","isLAddTruthy","isRAddTruthy","mergeRecordsOfSchemaDefinitions","additionalProperties","lKeys","lKeysLen","lCompiledPatterns","lPatternKeys","rCompiledPatterns","rPatternKeys","lKeysSet","mappedRAdditional","prop","rKeys","rKeysLen","mappedLAdditional","lKey","rKey","itemsAssigner","lItems","rItems","isLArr","isRArr","itemsArray","additional","isAdditionalTruthy","conditionAssigner","cond","mergeArraysOfSchemaDefinition","definitions","ASSIGNERS_MAP","CHECKS_MAP","rv","checkData","assign","MERGERS","x","y","el","factor","getAllOfSchemas","stack","allOf","rest","createShallowAllOfMerge","shallowAllOfMerge","retrieveSchema","rawFormData","experimental_customMergeAllOf","resolveAnyOfOrOneOfRefs","retrieveSchemaInternal","normalizeBooleanSchema","resolveCondition","expandAllBranches","expression","then","otherwise","resolvedSchemaLessConditional","conditionValue","resolvedSchemas","thenSchema","otherwiseSchema","conditionalBranch","conditionalSchema","getAllPermutationsOfXxxOf","listOfLists","permutations","list","element","permutation","getMatchingPatternProperties","patternProperties","resolveSchema","updatedSchemas","resolveReference","resolveDependencies","allOfSchemaElements","allOfSubschema","updatedSchema","resolveAllReferences","markCycleOnDetection","resolvedSchema","localSchema","childrenLists","updatedProps","childList","stubExistingAdditionalProperties","theSchema","aFormData","matchingProperties","mergeAllOf","restOfSchema","withContainsSchemas","withoutContainsSchemas","allOfSymbols","allOfItem","resolvedSchemaWithoutAllOf","resolveAnyOrOneOfSchemas","anyOrOneOf","oneOf","anyOf","relaxed","relaxOptionsForScoring","resolveRefs","dependencies","remainingSchema","processDependencies","dependencyKey","remainingDependencies","dependencyValue","withDependentProperties","withDependentSchema","additionallyRequired","required","dependent","dependentSchema","mergedSchema","resolvedOneOfs","subschema","resolvedOneOf","withExactlyOneSubschema","validSubschemas","conditionPropertySchema","conditionSchema","dependentSubschema","resolvedSubschema","findSelectedOptionInXxxOf","fallbackField","xxx","selectorField","xxxOfs","xxxOf","xxxOfOption","getFromSchemaInternal","fieldSchema","pathList","nestedPath","getFromSchema","NOT_FOUND_SCHEMA","findFieldInSchema","parentField","fieldName","fieldNameKey","subPath","field","requiredArray","isRequired","JUNK_OPTION","calculateIndexScore","totalScore","score","formValue","newSchema","xxxOfKey","getClosestMatchingOption","newScore","selectedOption","resolvedOptions","allValidIndexes","validList","scoreCount","bestIndex","scoreData","bestScore","constIsAjvDataReference","schemaConst","schemaType","isConstant","isFixedItems","mergeDefaultsWithFormData","defaults","mergeExtraArrayDefaults","defaultSupercedesUndefined","overrideFormDataWithDefaults","defaultsArray","overrideArray","overrideOppositeArray","mapped","idx","formDataObj","defaultsObj","keyValue","keyExistsInDefaults","keyExistsInFormData","keyDefault","defaultValueNeedsDeepMerge","keyDefaultIsObject","keyHasFormDataObject","mergeObjects","concatArrays","toMerge","toConstant","applyEnumOrder","order","optionsByValue","opt","orderedKeys","optionsList","enumNames","enumOrder","uiEnumNames","uiEnumOrder","altSchemas","altUiSchemas","optionsSchemaSelector","aSchemaDef","title","aSchema","label","innerSchema","isSelect","altSchema","isMultiSelect","PRIMITIVE_TYPES","AdditionalItemsHandling","getInnerSchemaForArrayItem","additionalItems","hasContent","computeDefaultBasedOnSchemaTypeAndDefaults","computedDefault","schemaDefault","maybeAddDefaultToObject","includeUndefinedValues","isParentRequired","requiredFields","experimental_defaultFormStateBehavior","isConst","isNullType","emptyObjectFields","isSelfOrParentRequired","computeDefaults","rawSchema","computeDefaultsProps","parentDefaults","_recurseList","shouldMergeDefaultsIntoFormData","initialDefaultsGenerated","preferParentDefaults","schemaToCompute","experimental_dfsb_to_compute","updatedRecurseList","refName","hasNoExistingData","defaultFormData","getDefaultBasedOnSchemaType","itemSchema","defaultsWithFormData","arrayMinItems","mergeExtraDefaults","matchingFormData","ensureFormDataMatchingSchema","shouldRetrieveAllOf","schemaToMatch","isSelectField","validFormData","propertySchema","getObjectDefaults","retrievedSchema","parentConst","objectDefaults","hasParentConst","hasConst","additionalPropertiesSchema","formDataRequired","getArrayDefaults","requiredAsRoot","initialDefaults","arrayMinItemsStateBehavior","arrayMinItemsPopulate","arrayMergeExtraDefaults","neverPopulate","ignoreMinItemsFlagSet","isPopulateAll","computeSkipPopulate","emptyDefault","schemaItem","itemFormData","itemDefaults","defaultsLength","arrayDefault","defaultEntries","fillerSchema","fillerDefault","fillerEntries","getDefaultFormState","mergeDefaultsIntoFormData","isCustomWidget","isFilesArray","itemsSchema","getDisplayLabel","uiOptions","displayLabel","addedByAdditionalProperty","getUsedFormData","fields","getFieldNames","pathSchema","formValueHasData","isLeaf","getAllPaths","_obj","paths","objKeys","newPaths","isValueEmpty","doMergeAllOf","omitExtraData","isObjectValue","isSchemaObj","handleObject","childSchema","requiredSet","setProperty","omit","sd","innerRequired","patternPropertiesRest","knownProperties","matched","addlSchema","handleArray","tupleLength","handleConditions","condition","branch","handleOneOf","scoringOptions","winning","handleAnyOf","handleDependencies","deps","useSourceAsFallback","remainingAllOf","afterConditions","knownKeys","NO_VALUE","enumValuesForSchema","replacementForInvalidEnumValue","enumValues","sanitizeDataForNewSchema","oldSchema","newFormData","newProperties","removeOldSchemaData","oldProperties","nestedData","isNewProperty","oldKeyedSchema","newKeyedSchema","oldSchemaTypeForKey","newSchemaTypeForKey","itemData","newOptionDefault","oldOptionDefault","newOptionConst","oldOptionConst","enumReplacement","oldSchemaItems","newSchemaItems","oldSchemaType","newSchemaType","maxItems","newValue","aValue","itemValue","newItemEnumValues","filteredData","toPathSchemaInternal","additionalSchema","definedProperties","schemaItems","schemaAdditionalItems","toPathSchema","SchemaUtils","createSchemaUtils","dataURItoBlob","dataURILike","splitted","media","base64","mime","mediaparams","param","binary","array","pad","num","width","dateRangeOptions","stop","bothRelative","eitherNegative","currentYear","resolvedStart","resolvedStop","replaceStringParameters","inputString","params","partIndex","englishStringTranslator","stringToTranslate","enumOptionsValueForIndex","valueIndex","allEnumOptions","emptyValue","enumOptionsDeselectValue","selected","enumOptionsIsSelected","sel","enumOptionsIndexForValue","multiple","selectedIndexes","enumOptionSelectedValue","enumOptions","format","indexes","enumOptionsSelectValue","all","decodeSingle","match","enumOptionValueDecoder","enumOptionValueEncoder","ErrorSchemaBuilder","initialSchema","pathOfError","errorBlock","errorOrList","errorsList","listToAdd","getChangedDescendants","getChangedFields","descendants","deep","aKeySet","unequalFields","diffFields","getDateElementProps","date","time","yearRange","day","month","year","hour","minute","second","dayObj","monthObj","yearObj","dateElementProp","rangeSpec","spec","getInputProps","defaultType","autoDefaultStepAny","inputProps","getOptionValueFormat","DEFAULT_OPTIONS","getSubmitButtonOptions","getTemplate","registry","templates","testIdCounter","getTestIds","ids","c","f","g","h","n","q","u","reactIs_production_min","reactIsModule","widgetMap","mergeWidgetOptions","AWidget","MergedWidget","defaultOptions","props","_jsx","getWidget","widget","registeredWidgets","ReactIs","createElement","registeredWidget","hashString","string","hash","chr","sortedJSONStringify","shouldIncludeValue","record","hashObject","hashForSchema","hasWidget","idGenerator","id","suffix","descriptionId","errorId","examplesId","helpId","titleId","ariaDescribedByIds","includeExamples","examples","optionId","optionIndex","buttonId","btn","optionalControlsId","isFormDataAvailable","isRootSchema","schemaToCompare","schemaUtils","labelValue","hideLabel","fallback","localToUTC","dateString","logUnsupportedDefaultForEnum","lookupFromFormContext","regOrFc","toLookup","lookupPath","noop","orderProperties","arrayToHash","curr","errorPropList","propertyHash","orderFiltered","orderHash","restIndex","complete","parseDateString","includeTime","resolveUiSchema","localUiSchema","definitionUiSchema","keyword","schemaOptions","currentUiSchemaArray","uiSchemaArray","hasExpanded","optionRef","optionUiSchema","schemaRequiresTrueValue","schemaSome","SelectedOptionDescription","enumValue","description","DescriptionFieldTemplate","shallowEquals","keysA","keysB","shouldRender","nextProps","nextState","updateStrategy","getSchemaTypesForXxxOf","allTypes","shouldRenderOptionalField","enableOptionalDataFieldForType","toDateString","dateObject","utcTime","datetime","toErrorList","errorSchema","fieldPath","errorsFrom","errors","errorList","currentList","toErrorSchema","builder","toFieldPathId","globalFormOptions","parentPath","isMultiValue","basePath","childPath","unwrapErrorHandler","errorHandler","unwrapErrors","readyForChange","DateElement","className","range","select","rootId","disabled","readonly","autofocus","onBlur","onFocus","SelectWidget","onChange","useAltDateWidgetProps","setState","handleChange","handleClear","handleSetNow","useDeepCompareMemo","valueRef","useRef","addNameToDataURL","dataURL","processFile","file","reader","processFiles","files","extractFileInfo","dataURLs","blob","useFileWidgetProps","filesInfo","fileInfo","handleRemove","_","utcToLocal","jsonDate","yyyy","MM","dd","hh","mm","ss","SSS","validationDataMerge","validationData","additionalErrorSchema","preventDuplicates","oldErrors","oldErrorSchema","withIdRefPrefixObject","node","realObj","withIdRefPrefix","withIdRefPrefixArray","schemaNode","TranslatableString","rowIdCounter","generateRowId","generateKeyedFormData","keyedToPlainFormData","keyedFormData","keyedItem","isItemRequired","canAddItem","formItems","addable","computeItemUiSchema","formContext","getNewFormDataRow","ArrayAsMultiSelect","fieldPathId","placeholder","rawErrors","onSelectChange","widgets","globalUiOptions","itemsUiSchema","uiTitle","Widget","multiValueFieldPathId","ArrayAsCustomWidget","hideError","ArrayAsFiles","ArrayFieldItemInner","itemKey","parentUiSchema","canAdd","canRemove","canMoveUp","canMoveDown","rawItemSchema","itemUiSchema","parentFieldPathId","itemErrorSchema","totalItems","handleAddItem","handleCopyItem","handleRemoveItem","handleReorderItems","ArraySchemaField","SchemaField","ItemSchemaField","ArrayFieldItemTemplate","hasDescription","orderable","removable","copyable","has","onAddItem","onCopyItem","onRemoveItem","onMoveUpItem","onMoveDownItem","templateProps","ArrayFieldItem","memo","NormalArray","formDataFromProps","fieldTitle","OptionalDataControlsField","renderOptionalField","hasFormData","actualFormData","extraClass","childFieldPathId","optionalDataControl","arrayProps","itemCast","itemProps","Template","FixedArray","hasAdditionalItems","useKeyedFormData","newHash","formDataHash","nextFormData","previousKeyedFormData","previousKeyedFormDatum","updateKeyedFormData","newData","plainFormData","updatedHash","ArrayField","translateString","keyedFormDataRef","errorSchemaRef","newErrorSchema","newKeyedFormDataRow","newKeyedFormData","newIndex","reOrderArray","lastPathIsItemIndex","arrayAsMultiProps","UnsupportedFieldTemplate","fallbackSchema","BooleanField","schemaTitle","yes","no","o","enums","onWidgetChange","CyclicSchemaField","setExpanded","CyclicSchemaExpandTemplate","getFallbackTypeSelectionSchema","getTypeOfFormData","dataType","castToNewType","newType","castedNumber","FallbackField","setType","typeSelectorInnerFieldPathId","typesOptionSchema","onTypeChange","FallbackFieldTemplate","GridType","Operators","LOOKUP_REGEX","LAYOUT_GRID_UI_OPTION","getNonNullishValue","isNumericIndex","LAYOUT_GRID_FIELD_TEST_IDS","computeFieldUiSchema","uiProps","schemaReadonly","forceReadonly","localUiOptions","fieldUiSchema","uiReadonly","fieldUiOptions","conditionMatches","operator","datum","findChildrenAndProps","layoutGridSchema","schemaKey","gridProps","elements","toMapClassNames","otherProps","ele","computeArraySchemasIfPresent","potentialIndex","resultPathId","getSchemaDetailsForField","dottedPath","initialFieldIdPath","leafPath","innerData","isReadonly","schemaProperties","selectedSchema","optionsInfo","getCustomRenderComponent","render","customRenderer","computeUIComponentPropsFromGridSchema","gridSchema","UIComponent","rendered","innerName","innerProps","lookupName","LayoutGridFieldChildren","childrenLayoutGridSchemaId","layoutGridFieldProps","_createElement","LayoutGridField","LayoutGridCondition","fieldData","LayoutGridCol","GridTemplate","LayoutGridColumns","child","LayoutGridRow","LayoutGridFieldComponent","LayoutMultiSchemaField","uiComponentProps","fieldIdSchema","memoFieldPathId","Field","namePath","LayoutHeaderField","TitleFieldTemplate","getSelectedOption","selector","computeEnumOptions","realOptions","tempSchema","baseType","setEnumOptions","FieldErrorTemplate","FieldTemplate","schemaHash","optionsHash","uiSchemaHash","uiSchemaHideError","optionSchema","hideFieldError","fieldErrorSchema","onOptionChange","newOption","oldOption","widgetOptions","AnyOfField","retrievedOptions","setSelectedOption","skipNextOptionRecalculation","prevFormDataRef","prevFieldIdRef","prevFormData","prevFieldId","matchingOption","fieldId","intOption","SchemaFieldComponent","MultiSchemaFieldTemplate","isOptionalRender","autocomplete","schemaRequired","parentProps","optionsUiSchema","translateEnum","translateParams","optionsSchemaField","NullField","trailingCharMatcherWithPrefix","trailingCharMatcher","NumberField","initialValue","lastValue","setLastValue","StringField","escapedSeparator","normalizedValue","processed","displayValue","defaultWidget","B","z","I","w","v5","Z0","b0","A0","W5","V5","M9","K5","T0","P0","O0","Y0","k9","J5","c0","O9","m0","D9","L5","A9","C5","s5","x9","Y$","c$","l$","r$","j9","t5","Q5","j0","f5","T5","y5","E0","S5","E9","z5","F5","o$","i$","a$","n$","V$","K$","g9","V0","q0","U9","U5","I6","X4","$","t$","Q","Z","X","Y","V","L6","K","P6","w6","R6","U$","Y4","I5","N6","s$","H5","o0","t0","g0","N5","e$","Q9","h5","$4","$9","Z4","b6","M5","k5","V4","K4","J4","e5","U4","G4","f9","q4","T6","W4","Z9","G$","J","z4","G","U","W","y6","Q4","q$","H","F","F4","m5","H4","S6","M4","h9","O4","k6","C9","W$","D4","z$","I9","h4","m4","D$","N9","x6","j4","F$","B4","u4","_4","p4","d4","c4","E6","g6","C6","f6","h6","A$","v4","w5","M","D","A","N","L","O","P","T","G5","m6","l4","p9","C","q9","X5","B9","I4","R$","j$","B$","d9","G0","v9","N4","e0","l5","U0","Q0","L0","u6","p6","W9","d6","d5","P4","w4","R4","c6","b4","l6","r6","S","X0","I0","c5","r4","u5","G9","L4","T4","E","u0","B0","W0","H0","D0","K0","y0","S0","_0","w0","z0","F0","M0","f0","v0","k0","h0","p0","N0","x0","R","J0","a0","q5","$0","C0","d0","n0","$5","l0","s0","r5","x5","R0","o5","w9","b5","i5","E5","j5","Z5","B5","V9","a5","A5","l9","P5","p5","o6","r9","_$","o4","i6","s4","t4","K9","Y5","J9","e4","$6","Z6","Q6","S$","k$","a9","X6","Y6","x$","V6","K6","J6","z9","_5","E$","g$","R9","n9","C$","s9","f$","h$","b9","U6","t9","e9","m$","u$","L9","$$","r0","g5","Z$","p$","T9","n5","F9","G6","y9","S9","q6","W6","z6","F6","H6","M6","O6","D6","Q$","d$","H9","A6","X$","j6","B6","_6","v6","y4","S4","a6","n6","s6","R5","t6","b$","e6","$Z","ZZ","k4","x4","QZ","XZ","m9","E4","v$","g4","I$","C4","N$","H$","O5","YZ","c9","M$","u9","O$","f4","i4","o9","P$","VZ","KZ","JZ","w$","X9","UZ","GZ","qZ","_9","WZ","a4","P9","L$","Y9","i0.createElement","T$","D5","i9","i0.createContext","n4","i0.Fragment","HZ","MZ","OZ","y$","DZ","i0.useRef","AZ","i0.useContext","i0.useMemo","ADDITIONAL_PROPERTY_KEY_REMOVE","IS_RESET","getDefaultValue","isAdditionalPropertySchema","getAdditionalPropertyOrder","ObjectFieldPropertyFn","propertyName","handleKeyRename","handleRemoveProperty","addedByAdditionalProperties","wasPropertyKeyModified","setWasPropertyKeyModified","innerFieldIdPathId","onPropertyChange","onKeyRename","onKeyRenameBlur","onRemoveProperty","ObjectFieldProperty","ObjectField","formDataRef","lastRenamedProperty","additionalPropertyOrder","setAdditionalPropertyOrder","definedPropertyOrder","additionalPropertySet","templateTitle","orderedProperties","getAvailableKey","preferredKey","existingFormData","duplicateKeySuffixSeparator","newKey","onAddProperty","constValue","apSchema","oldKey","currentFormData","actualNewKey","newKeys","keyValues","renamedObj","getStableKey","definedPropertySet","currentAdditionalProperties","_jsxs","Markdown","hidden","OptionalDataControlsTemplate","onAddClick","onRemoveClick","labelEnum","COMPONENT_TYPES","getFieldComponent","schemaId","componentName","SchemaFieldRender","_schema","_uiSchema","_AnyOfField","_OneOfField","handleFieldComponentChange","FieldHelpTemplate","FieldComponent","deprecatedHandling","isReplacingAnyOrOneOf","XxxOfField","XxxOfOptions","fieldPathIdProps","xxxOfSchema","__errors","consumedUiClassNames","consumedClassNames","consumedUiStyle","consumedOptionClassNames","consumedOptionStyle","help","classNames","helpComponent","errorsComponent","fieldProps","_Fragment","prevProps","experimental_componentUpdateStrategy","MultiSchemaField","ArrayFieldDescriptionTemplate","ArrayFieldItemButtonsTemplate","hasCopy","hasMoveDown","hasMoveUp","hasRemove","CopyButton","MoveDownButton","MoveUpButton","RemoveButton","buttonsProps","hasToolbar","btnStyle","margin","containerStyle","toolbarStyle","ArrayFieldTemplate","ArrayFieldTitleTemplate","showOptionalDataControlInTitle","AddButton","SchemaExamples","example","BaseInputTemplate","htmlName","onChangeOverride","ClearButton","inputValue","handleBlur","handleFocus","IconButtonFn","iconType","icon","IconButton","CopyButtonFn","MoveDownButtonFn","MoveUpButtonFn","RemoveButtonFn","ClearButtonFn","onClick","SubmitButton","submitText","norender","submitButtonProps","buttonTemplates","onExpand","TEST_IDS","RichDescription","DescriptionField","ErrorList","typeSelector","schemaField","elem","RichHelp","REQUIRED_FIELD_SYMBOL","Label","WrapIfAdditionalTemplate","isCheckbox","column","optionSchemaField","ObjectFieldTemplate","TitleField","UnsupportedField","style","rawDescription","keyLabel","classNamesList","uiClassNames","ButtonTemplates","AltDateTimeWidget","AltDateWidget","elemProps","CheckboxesWidget","inline","enumDisabled","optionValueFormat","checkboxesValues","checked","itemDisabled","disabledCls","checkbox","CheckboxWidget","trueValueRequired","ColorWidget","DateTimeWidget","DateWidget","EmailWidget","FileInfoPreview","previewLabel","FilesInfo","preview","FileWidget","handleOnChangeEvent","HiddenWidget","PasswordWidget","RadioWidget","radio","RangeWidget","RatingWidget","stars","shape","numStars","min","handleStarClick","starValue","getSymbol","isFilled","getValue","optEmptyVal","selectValue","showPlaceholderOption","enumLabel","isDisabled","TextareaWidget","TextWidget","TimeWidget","hasSecondPrecision","UpDownWidget","URLWidget","getDefaultRegistry","toIChangeEvent","status","edit","Form","Component","baseErrors","propsFormData","initialFormData","createRef","prevState","formDataChangedFields","stateDataChangedFields","isSchemaChanged","isFormDataChanged","isStateDataChanged","shouldUpdate","nextStateDiffersFromProps","wasProcessingUserChange","inputFormData","getFormDataChangedFields","skipLiveValidate","shouldSanitize","isUncontrolled","liveValidate","mustValidate","defaultsFormData","computedRetrievedSchema","wasSanitized","preventInfiniteSanitize","formHash","sanitizedFormData","sanitizedFormHash","getCurrentErrors","schemaValidationErrors","schemaValidationErrorSchema","liveValidation","currentErrors","pathOfField","mergedErrors","newRegistry","altSchemaUtils","customValidate","transformErrors","validationSchema","validationFormData","ErrorListTemplate","schemaValidation","extraErrors","customErrors","merged","originalErrorSchema","mergeIntoOriginalErrorSchema","liveOmit","noValidate","oldFormData","mergeBaseErrorSchema","rootPathId","isRootPath","hasOnlyUndefinedValues","wasPreviouslyNull","inputForDefaults","plainLeafWasCleared","valueForPath","leaf","newState","oldValidationError","pathErrors","hasChanges","oldData","onSubmit","idSeparator","idPrefix","nameGenerator","useFallbackUiForUnsupportedType","customTranslateString","submitCustomEvent","elementId","extraErrorsBlockSubmit","focusOnFirstError","onError","prevErrors","hasError","tagName","method","autoComplete","enctype","acceptCharset","noHtml5Validate","showErrorList","_internalFormWrapper","as","FormTag","submitOptions","submitUiSchema","filterDuplicateErrors","suppressDuplicateFiltering","schemaPath","anyOfIndex","oneOfIndex","schemaPrefix","transformRJSFValidationErrors","instancePath","parentSchema","rawPropertyNames","currentProperty","uiSchemaTitle","uiSchemaPath","propParts","parentSchemaTitle","aSchemaPath","rootSchemaTitle","processRawValidationErrors","invalidSchemaError","userErrorSchema","exports","_CodeOrName","Name","_Code","names","strs","args","addCodeArg","plus","expr","safeStringify","optimize","interpolate","res","mergeExprItems","strConcat","c1","c2","stringify","getProperty","getEsmExportName","regexpCode","rx","code_1","ValueError","UsedValueState","Scope","prefixes","nameOrPrefix","prefix","ng","_b","ValueScopeName","nameStr","itemIndex","line","ValueScope","valueKey","vs","_name","keyOrRef","scopeName","usedValues","getCode","valueCode","nameSet","scope_1","code_2","scope_2","Node","_names","_constants","Def","varKind","rhs","es5","_n","constants","optimizeExpr","Assign","lhs","sideEffects","addExprNames","AssignOp","op","Break","Throw","AnyCode","ParentNode","nodes","subtractNames","addNames","BlockNode","Root","Else","If","not","For","ForLoop","iteration","ForRange","from","ForIter","loop","iterable","Func","async","Return","Try","Catch","Finally","CodeGen","extScope","prefixOrName","constant","_constant","thenBody","elseBody","forBody","tryBody","catchCode","finallyCode","body","nodeCount","toClose","funcBody","N1","N2","replaceName","canOptimize","par","andCode","mappend","and","orCode","or","util","codegen_1","toHash","alwaysValidSchema","it","checkUnknownRules","schemaHasRules","self","rules","checkStrictMode","schemaHasRulesButRef","RULES","schemaRefOrVal","topSchemaRef","$data","unescapeFragment","unescapeJsonPointer","escapeFragment","escapeJsonPointer","eachItem","xs","makeMergeEvaluated","mergeNames","mergeToName","mergeValues","resultToName","gen","toName","setEvaluated","evaluatedPropsToName","ps","snippets","useFunc","Type","getErrorPath","dataProp","dataPropType","jsPropertySyntax","isNumber","msg","mode","names_1","util_1","require$$2","reportError","cxt","errorPaths","overrideAllErrors","compositeRule","allErrors","errObj","errorObjectCode","addError","returnErrors","reportExtraError","resetErrorsCount","errsCount","extendErrors","schemaValue","errs","validateName","schemaEnv","createErrors","errorObject","errorInstancePath","errorSchemaPath","extraErrorProps","errorPath","instPath","errSchemaPath","schPath","boolSchema","errors_1","boolError","topBoolOrEmptySchema","falseSchemaError","boolOrEmptySchema","valid","_jsonTypes","jsonTypes","isJSONType","getRules","groups","applicability","schemaHasRulesForType","group","shouldUseGroup","rule","shouldUseRule","kwd","rules_1","applicability_1","require$$3","require$$4","DataType","getSchemaTypes","types","getJSONTypes","coerceAndCheckDataType","coerceTo","coerceToTypes","checkTypes","wrongType","checkDataTypes","coerceData","reportTypeError","COERCIBLE","coerceTypes","coerced","coerceSpecificType","assignParentData","parentData","parentDataProperty","checkDataType","strictNums","correct","EQ","numCond","_cond","dataTypes","notObj","typeError","getTypeErrorContext","schemaCode","assignDefaults","ty","assignDefault","sch","childData","util_2","checkReportMissingProp","noPropertyInData","checkMissingProp","missing","reportMissingProp","hasPropFunc","isOwnProperty","propertyInData","ownProperties","allSchemaProperties","schemaMap","callValidateCode","context","passSchema","dataAndSchema","valCxt","newRegExp","usePattern","regExp","validateArray","validArr","validateItems","notValid","validateUnion","schValid","_sch","schCxt","macroKeywordCode","macroSchema","schemaRef","useKeyword","funcKeywordCode","checkAsyncKeyword","validate","validateRef","validateKeyword","assignValid","modifyData","reportErrs","ruleErrs","validateAsync","validateSync","addErrs","validateErrs","_await","passCxt","validSchemaType","allowUndefined","st","validateKeywordUsage","getSubschema","schemaProp","extendSubschemaData","dpType","dataPathArr","nextData","dataContextProps","_nextData","extendSubschemaMode","jtdDiscriminator","jtdMetadata","fastDeepEqual","length","traverse","jsonSchemaTraverseModule","cb","pre","post","_traverse","jsonPtr","parentJsonPtr","parentKeyword","keyIndex","escapeJsonPtr","SIMPLE_INLINED","inlineRef","limit","hasRef","countKeys","REF_KEYWORDS","getFullPath","resolver","normalizeId","_getFullPath","TRAILING_SLASH_HASH","resolveUrl","baseId","ANCHOR","getSchemaRefs","uriResolver","schId","baseIds","pathPrefix","localRefs","schemaRefs","fullPath","innerBaseId","addRef","addAnchor","_resolve","ambiguos","schOrRef","checkAmbiguosRef","anchor","sch1","sch2","boolSchema_1","dataType_1","dataType_2","defaults_1","keyword_1","subschema_1","require$$5","require$$6","require$$7","resolve_1","require$$8","require$$9","require$$10","validateFunctionCode","checkKeywords","schemaCxtHasRules","topSchemaObjCode","validateFunction","funcSourceUrl","destructureValCxtES5","destructureValCxt","commentKeyword","checkNoDefault","resetEvaluated","typeAndKeywords","returnResults","subschemaCode","subSchemaObjCode","updateContext","checkAsyncSchema","checkRefsAndKeywords","schemaKeywords","checkedTypes","rootName","ValidationError","assignEvaluated","evaluated","typeErrors","keywordCode","checkStrictTypes","groupKeywords","iterateKeywords","useDefaults","checkContextTypes","checkMultipleTypes","checkKeywordTypes","includesType","strictTypesError","narrowSchemaTypes","hasApplicableType","schTs","kwdT","withTypes","KeywordCxt","getData","successAction","failAction","append","errorParams","codeBlock","$dataValid","wrong$DataType","invalid$DataSchema","validateSchemaRef","appl","nextContext","schemaCxt","ruleType","JSON_POINTER","RELATIVE_JSON_POINTER","dataLevel","dataNames","jsonPointer","up","errorMsg","pointerType","validation_error","ref_error","MissingRefError","validation_error_1","validate_1","SchemaEnv","env","compileSchema","getCompilingSchema","lines","_ValidationError","sourceCode","validateCode","resolveRef","root","schOrFunc","inlineOrCompile","schEnv","sameSchemaEnv","s1","s2","refPath","getJsonPointer","PREVENT_SCOPE_CHANGE","parsedRef","partSchema","uri_1","ref_error_1","compile_1","codegen_2","$dataRefSchema","defaultRegExp","flags","META_IGNORE_OPTIONS","EXT_SCOPE_NAMES","removedOptions","deprecatedOptions","MAX_EXPRESSION","requiredOptions","_c","_d","_e","_f","_g","_h","_j","_k","_l","_m","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","_optz","Ajv","getLogger","formatOpt","checkOptions","getMetaSchemaOptions","addInitialFormats","addInitialKeywords","addInitialSchemas","_dataRefSchema","schemaKeyRef","_meta","loadSchema","runCompileAsync","loadMetaSchema","_compileAsync","checkLoaded","loadMissingSchema","missingRef","_loadSchema","_validateSchema","throwOrLogError","$schema","keyRef","getSchEnv","cacheKey","kwdOrDef","checkKeyword","addRule","keywordMetaschema","definition","dataVar","metaSchema","keywordsJsonPointers","keywords","seg","schemaOrData","regex","validateSchema","addSchema","currentOpts","checkOpts","log","optsSchemas","defs","metaOpts","noLogs","logger","KEYWORD_NAME","ruleGroup","addBeforeRule","before","_rule","$dataRef","callRootRef","schOrEnv","callValidate","inlineRefSchema","callRef","getValidate","schName","$async","callAsyncRef","callSyncRef","addEvaluatedFrom","addErrorsFrom","schEvaluated","core_1","id_1","ref_1","core","limitNumber","ops","KWDs","multipleOf","prec","invalid","ucs2length_1","ucs2length","pos","limitLength","comp","regExpCode","limitProperties","missingProperty","useLoop","allErrorsMode","exitOnErrorMode","requiredKey","loopAllRequired","loopUntilMissing","limitItems","equal_1","uniqueItems","itemTypes","validateUniqueItems","loopN","loopN2","indices","eql","_const","_enum","getEql","loopEnum","vSchema","equalCode","validation_1","limitNumber_1","multipleOf_1","limitLength_1","pattern_1","limitProperties_1","required_1","limitItems_1","uniqueItems_1","const_1","enum_1","validation","validateAdditionalItems","validateTuple","extraItems","schArr","checkStrictTuple","fullTuple","prefixItems","items_1","items2020","additionalItems_1","contains","max","minContains","maxContains","validateItemsWithCount","checkLimits","_valid","block","depsCount","property_ies","propDeps","schDeps","splitDependencies","validatePropertyDeps","validateSchemaDeps","propertyDeps","schemaDeps","hasProperty","depProp","propertyNames","patProps","checkAdditionalProperties","additionalPropertyCode","isAdditional","definedProp","propsSchema","deleteAdditional","applyAdditionalSchema","additionalProperties_1","allProps","hasDefault","applyPropertySchema","alwaysValidPatterns","checkProperties","validatePatternProperties","pat","checkMatchingProperties","validateProperties","alwaysValid","passing","validateOneOf","_if","hasThen","hasSchema","hasElse","validateIf","ifClause","validateClause","thenElse","applicator","prefixItems_1","items2020_1","contains_1","dependencies_1","propertyNames_1","properties_1","patternProperties_1","not_1","anyOf_1","require$$11","oneOf_1","require$$12","allOf_1","require$$13","if_1","require$$14","thenElse_1","require$$15","getApplicator","draft2020","validate$DataFormat","validateFormat","fmts","fDef","fType","unknownFmt","invalidFmt","callFormat","validData","formatDef","unknownFormat","fmtType","fmtRef","getFormat","validCondition","unknownMsg","fmtDef","fmt","format_2","metadata","draft7","applicator_1","format_1","metadata_1","draft7Vocabularies","DiscrError","types_1","discrError","validateMapping","mapping","getMapping","tagValue","applyTagSchema","oneOfMapping","topRequired","hasRequired","tagRequired","propSch","addMappings","addMapping","draft7_1","discriminator_1","draft7MetaSchema","META_SUPPORT_DATA","META_SCHEMA_ID","module","compareDate","compareTime","date_time","compareDateTime","byte","validateInt32","validateInt64","validateNumber","isLeapYear","DATE","DAYS","d1","d2","TIME","withTimeZone","timeZone","t1","t2","a1","a2","DATE_TIME_SEPARATOR","dateTime","dt1","dt2","NOT_URI_FRAGMENT","URI","BYTE","MIN_INT32","MAX_INT32","Z_ANCHOR","ajv_1","fCxt","compareCode","formatLimitPlugin","ajv","formats_1","limit_1","fullName","fastName","formatsPlugin","addFormats","formats","exportName","fs","AJV_CONFIG","COLOR_FORMAT_REGEX","DATA_URL_FORMAT_REGEX","createAjvInstance","additionalMetaSchemas","customFormats","ajvOptionsOverrides","ajvFormatOptions","AjvClass","extenderFn","formatName","AJV8Validator","localizer","compilationError","compiledValidator","rootSchemaId","schemaWithIdRefPrefix","customizeValidator","buildUiSchema","firstExample","SecretWidget","secretPath","configured","replacing","clearing","unavailable","setOperation","nextOperation","ConfigurationFieldTemplate","ConfigurationObjectTemplate","propertyLines","topLevel","ConfigurationArrayItemTemplate","ConfigurationArrayTemplate","SchemaConfigurationForm","configuredSecrets","secretOperations","setSecretOperation","clone","ConfigurationEditor","onReload","serverValue","setSecretOperations","saving","setSaving","validationErrors","setValidationErrors","dirty","updateConfiguration","saveError","validationError","PasswordConfirmationDialog","open","onCancel","onConfirm","password","setPassword","cancel","TOP_LEVEL_SECTIONS","AdminApp","useUserIdentitySync","role","useSessionSelector","connected","searchParams","setSearchParams","useSearchParams","setSnapshot","loadingError","setLoadingError","pendingSensitiveAction","confirmationOpen","setConfirmationOpen","confirmationBusy","setConfirmationBusy","confirmationError","setConfirmationError","pageSettings","useSettingsNamespace","DEFAULT_PAGE_THEME_KEY","pageBackgroundClass","usePageThemeClass","isAdmin","isLockdown","loadSnapshot","getAdminSnapshot","submitPasswordConfirmation","confirmAdminPassword","pending","cancelPasswordConfirmation","selectSection","navigationOptions","activeSection","content","AdminPanelContent","AuthPanel","SocketConnectionPill"],"mappings":"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","x_google_ignoreList":[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326]} \ No newline at end of file +{"version":3,"file":"AdminApp-TTa85DeJ.js","sources":["../../../webui/src/database/identityDatabaseApi.js","../../../webui/src/database/identityDatabaseUtils.js","../../../webui/src/database/IdentityDatabasePanel.jsx","../../../webui/src/admin/components/AdministratorAccounts.jsx","../../../webui/src/admin/components/AdminOverview.jsx","../../../webui/node_modules/@rjsf/utils/lib/isObject.js","../../../webui/node_modules/@rjsf/utils/lib/allowAdditionalItems.js","../../../webui/node_modules/@rjsf/utils/lib/getDecimalSeparator.js","../../../webui/node_modules/@rjsf/utils/lib/asNumber.js","../../../webui/node_modules/@rjsf/utils/lib/constants.js","../../../webui/node_modules/@rjsf/utils/lib/getUiOptions.js","../../../webui/node_modules/@rjsf/utils/lib/canExpand.js","../../../webui/node_modules/@rjsf/utils/lib/isPlainObject.js","../../../webui/node_modules/@rjsf/utils/lib/createErrorHandler.js","../../../webui/node_modules/fast-equals/dist/es/index.mjs","../../../webui/node_modules/@rjsf/utils/lib/deepEquals.js","../../../webui/node_modules/fast-uri/lib/utils.js","../../../webui/node_modules/fast-uri/lib/schemes.js","../../../webui/node_modules/fast-uri/index.js","../../../webui/node_modules/jsonpointer/jsonpointer.js","../../../webui/node_modules/@rjsf/utils/lib/findSchemaDefinition.js","../../../webui/node_modules/@rjsf/utils/lib/pathUtils.js","../../../webui/node_modules/@rjsf/utils/lib/getDiscriminatorFieldFromSchema.js","../../../webui/node_modules/@rjsf/utils/lib/guessType.js","../../../webui/node_modules/@rjsf/utils/lib/getSchemaType.js","../../../webui/node_modules/@rjsf/utils/lib/mergeSchemas.js","../../../webui/node_modules/@rjsf/utils/lib/getPropertySchema.js","../../../webui/node_modules/@rjsf/utils/lib/getOptionMatchingSimpleDiscriminator.js","../../../webui/node_modules/@rjsf/utils/lib/schema/getFirstMatchingOption.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/object.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/json-schema/json-schema.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/ord.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/array.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/memoize.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/json-schema/compare/compare.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/function.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/math.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/json-schema/merge/patterns.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/json-schema/merge/merge.js","../../../webui/node_modules/@x0k/json-schema-merge/dist/lib/json-schema/merge/all-of-merge.js","../../../webui/node_modules/@rjsf/utils/lib/schema/shallowAllOfMerge.js","../../../webui/node_modules/@rjsf/utils/lib/schema/retrieveSchema.js","../../../webui/node_modules/@rjsf/utils/lib/schema/findSelectedOptionInXxxOf.js","../../../webui/node_modules/@rjsf/utils/lib/schema/getFromSchema.js","../../../webui/node_modules/@rjsf/utils/lib/schema/findFieldInSchema.js","../../../webui/node_modules/@rjsf/utils/lib/schema/getClosestMatchingOption.js","../../../webui/node_modules/@rjsf/utils/lib/constIsAjvDataReference.js","../../../webui/node_modules/@rjsf/utils/lib/isConstant.js","../../../webui/node_modules/@rjsf/utils/lib/isFixedItems.js","../../../webui/node_modules/@rjsf/utils/lib/mergeDefaultsWithFormData.js","../../../webui/node_modules/@rjsf/utils/lib/mergeObjects.js","../../../webui/node_modules/@rjsf/utils/lib/toConstant.js","../../../webui/node_modules/@rjsf/utils/lib/optionsList.js","../../../webui/node_modules/@rjsf/utils/lib/schema/isSelect.js","../../../webui/node_modules/@rjsf/utils/lib/schema/isMultiSelect.js","../../../webui/node_modules/@rjsf/utils/lib/schema/getDefaultFormState.js","../../../webui/node_modules/@rjsf/utils/lib/isCustomWidget.js","../../../webui/node_modules/@rjsf/utils/lib/schema/isFilesArray.js","../../../webui/node_modules/@rjsf/utils/lib/schema/getDisplayLabel.js","../../../webui/node_modules/@rjsf/utils/lib/schema/omitExtraData.js","../../../webui/node_modules/@rjsf/utils/lib/schema/sanitizeDataForNewSchema.js","../../../webui/node_modules/@rjsf/utils/lib/schema/toPathSchema.js","../../../webui/node_modules/@rjsf/utils/lib/createSchemaUtils.js","../../../webui/node_modules/@rjsf/utils/lib/dataURItoBlob.js","../../../webui/node_modules/@rjsf/utils/lib/pad.js","../../../webui/node_modules/@rjsf/utils/lib/dateRangeOptions.js","../../../webui/node_modules/@rjsf/utils/lib/replaceStringParameters.js","../../../webui/node_modules/@rjsf/utils/lib/englishStringTranslator.js","../../../webui/node_modules/@rjsf/utils/lib/enumOptionsValueForIndex.js","../../../webui/node_modules/@rjsf/utils/lib/enumOptionsDeselectValue.js","../../../webui/node_modules/@rjsf/utils/lib/enumOptionsIsSelected.js","../../../webui/node_modules/@rjsf/utils/lib/enumOptionsIndexForValue.js","../../../webui/node_modules/@rjsf/utils/lib/enumOptionSelectedValue.js","../../../webui/node_modules/@rjsf/utils/lib/enumOptionsSelectValue.js","../../../webui/node_modules/@rjsf/utils/lib/enumOptionValueDecoder.js","../../../webui/node_modules/@rjsf/utils/lib/enumOptionValueEncoder.js","../../../webui/node_modules/@rjsf/utils/lib/ErrorSchemaBuilder.js","../../../webui/node_modules/@rjsf/utils/lib/getChangedFields.js","../../../webui/node_modules/@rjsf/utils/lib/getDateElementProps.js","../../../webui/node_modules/@rjsf/utils/lib/rangeSpec.js","../../../webui/node_modules/@rjsf/utils/lib/getInputProps.js","../../../webui/node_modules/@rjsf/utils/lib/getOptionValueFormat.js","../../../webui/node_modules/@rjsf/utils/lib/getSubmitButtonOptions.js","../../../webui/node_modules/@rjsf/utils/lib/getTemplate.js","../../../webui/node_modules/@rjsf/utils/lib/getTestIds.js","../../../webui/node_modules/react-is/cjs/react-is.production.min.js","../../../webui/node_modules/react-is/index.js","../../../webui/node_modules/@rjsf/utils/lib/getWidget.js","../../../webui/node_modules/@rjsf/utils/lib/hashForSchema.js","../../../webui/node_modules/@rjsf/utils/lib/hasWidget.js","../../../webui/node_modules/@rjsf/utils/lib/idGenerators.js","../../../webui/node_modules/@rjsf/utils/lib/isFormDataAvailable.js","../../../webui/node_modules/@rjsf/utils/lib/isRootSchema.js","../../../webui/node_modules/@rjsf/utils/lib/labelValue.js","../../../webui/node_modules/@rjsf/utils/lib/localToUTC.js","../../../webui/node_modules/@rjsf/utils/lib/logUnsupportedDefaultForEnum.js","../../../webui/node_modules/@rjsf/utils/lib/lookupFromFormContext.js","../../../webui/node_modules/@rjsf/utils/lib/noop.js","../../../webui/node_modules/@rjsf/utils/lib/orderProperties.js","../../../webui/node_modules/@rjsf/utils/lib/parseDateString.js","../../../webui/node_modules/@rjsf/utils/lib/resolveUiSchema.js","../../../webui/node_modules/@rjsf/utils/lib/schemaRequiresTrueValue.js","../../../webui/node_modules/@rjsf/utils/lib/SelectedOptionDescription.js","../../../webui/node_modules/@rjsf/utils/lib/shallowEquals.js","../../../webui/node_modules/@rjsf/utils/lib/shouldRender.js","../../../webui/node_modules/@rjsf/utils/lib/shouldRenderOptionalField.js","../../../webui/node_modules/@rjsf/utils/lib/toDateString.js","../../../webui/node_modules/@rjsf/utils/lib/toErrorList.js","../../../webui/node_modules/@rjsf/utils/lib/toErrorSchema.js","../../../webui/node_modules/@rjsf/utils/lib/toFieldPathId.js","../../../webui/node_modules/@rjsf/utils/lib/unwrapErrorHandler.js","../../../webui/node_modules/@rjsf/utils/lib/useAltDateWidgetProps.js","../../../webui/node_modules/@rjsf/utils/lib/useDeepCompareMemo.js","../../../webui/node_modules/@rjsf/utils/lib/useFileWidgetProps.js","../../../webui/node_modules/@rjsf/utils/lib/utcToLocal.js","../../../webui/node_modules/@rjsf/utils/lib/validationDataMerge.js","../../../webui/node_modules/@rjsf/utils/lib/withIdRefPrefix.js","../../../webui/node_modules/@rjsf/utils/lib/enums.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/ArrayField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/BooleanField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/CyclicSchemaField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/FallbackField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/LayoutGridField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/LayoutHeaderField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/LayoutMultiSchemaField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/MultiSchemaField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/NullField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/NumberField.js","../../../webui/node_modules/markdown-to-jsx/dist/entities.browser.js","../../../webui/node_modules/markdown-to-jsx/dist/react.js","../../../webui/node_modules/@rjsf/core/lib/components/constants.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/ObjectField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/OptionalDataControlsField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/SchemaField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/StringField.js","../../../webui/node_modules/@rjsf/core/lib/components/fields/index.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ArrayFieldDescriptionTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ArrayFieldItemButtonsTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ArrayFieldItemTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ArrayFieldTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ArrayFieldTitleTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/SchemaExamples.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/BaseInputTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ButtonTemplates/IconButton.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ButtonTemplates/AddButton.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ButtonTemplates/SubmitButton.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ButtonTemplates/index.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/CyclicSchemaExpandTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/RichDescription.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/DescriptionField.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ErrorList.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/FallbackFieldTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/FieldErrorTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/RichHelp.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/FieldHelpTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/FieldTemplate/Label.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/FieldTemplate/FieldTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/GridTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/MultiSchemaFieldTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/ObjectFieldTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/OptionalDataControlsTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/TitleField.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/UnsupportedField.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/WrapIfAdditionalTemplate.js","../../../webui/node_modules/@rjsf/core/lib/components/templates/index.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/AltDateTimeWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/AltDateWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/CheckboxesWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/CheckboxWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/ColorWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/DateTimeWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/DateWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/EmailWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/FileWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/HiddenWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/PasswordWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/RadioWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/RangeWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/RatingWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/SelectWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/TextareaWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/TextWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/TimeWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/UpDownWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/URLWidget.js","../../../webui/node_modules/@rjsf/core/lib/components/widgets/index.js","../../../webui/node_modules/@rjsf/core/lib/getDefaultRegistry.js","../../../webui/node_modules/@rjsf/core/lib/components/Form.js","../../../webui/node_modules/@rjsf/validator-ajv8/lib/processRawValidationErrors.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/codegen/code.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/codegen/scope.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/codegen/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/util.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/names.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/errors.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/validate/boolSchema.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/rules.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/validate/applicability.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/validate/dataType.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/validate/defaults.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/code.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/validate/keyword.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/validate/subschema.js","../../../webui/node_modules/fast-deep-equal/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/json-schema-traverse/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/resolve.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/validate/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/runtime/validation_error.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/ref_error.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/fast-uri/lib/utils.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/fast-uri/lib/schemes.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/fast-uri/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/runtime/uri.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/core.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/core/id.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/core/ref.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/core/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/limitNumber.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/multipleOf.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/runtime/ucs2length.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/limitLength.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/pattern.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/limitProperties.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/required.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/limitItems.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/runtime/equal.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/const.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/enum.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/items.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/items2020.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/contains.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/dependencies.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/properties.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/not.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/anyOf.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/oneOf.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/allOf.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/if.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/thenElse.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/format/format.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/format/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/metadata.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/draft7.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/discriminator/types.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/discriminator/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/ajv.js","../../../webui/node_modules/ajv-formats/dist/formats.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/codegen/code.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/codegen/scope.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/codegen/index.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/util.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/names.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/errors.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/boolSchema.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/rules.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/applicability.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/dataType.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/defaults.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/code.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/keyword.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/subschema.js","../../../webui/node_modules/ajv-formats/node_modules/json-schema-traverse/index.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/resolve.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/index.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/runtime/validation_error.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/ref_error.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/compile/index.js","../../../webui/node_modules/ajv-formats/node_modules/fast-uri/lib/utils.js","../../../webui/node_modules/ajv-formats/node_modules/fast-uri/lib/schemes.js","../../../webui/node_modules/ajv-formats/node_modules/fast-uri/index.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/runtime/uri.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/core.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/core/id.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/core/ref.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/core/index.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitNumber.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/multipleOf.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/runtime/ucs2length.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitLength.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/pattern.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitProperties.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/required.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitItems.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/runtime/equal.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/const.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/enum.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/index.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/items.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/items2020.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/contains.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/dependencies.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/properties.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/not.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/anyOf.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/oneOf.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/allOf.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/if.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/thenElse.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/index.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/format/format.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/format/index.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/metadata.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/draft7.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/discriminator/types.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/discriminator/index.js","../../../webui/node_modules/ajv-formats/node_modules/ajv/dist/ajv.js","../../../webui/node_modules/ajv-formats/dist/limit.js","../../../webui/node_modules/ajv-formats/dist/index.js","../../../webui/node_modules/@rjsf/validator-ajv8/lib/createAjvInstance.js","../../../webui/node_modules/@rjsf/validator-ajv8/lib/validator.js","../../../webui/node_modules/@rjsf/validator-ajv8/lib/customizeValidator.js","../../../webui/node_modules/@rjsf/validator-ajv8/lib/index.js","../../../webui/src/admin/components/SchemaConfigurationForm.jsx","../../../webui/src/admin/components/ConfigurationEditor.jsx","../../../webui/src/admin/components/PasswordConfirmationDialog.jsx","../../../webui/src/admin/AdminApp.jsx"],"sourcesContent":["// Identity Database API\n// Purpose: Keeps identity socket event names and acknowledgement handling local to the administration user editor.\n// Scope: Provides small promise helpers over the shared socket without adding app-wide SessionContext actions.\nexport function emitIdentityAdmin(socket, eventName, payload = {}) {\n return new Promise((resolve, reject) => {\n socket.emit(eventName, payload, (resp = {}) => {\n if (resp.error) {\n reject(new Error(resp.error));\n return;\n }\n resolve(resp);\n });\n });\n}\n\nexport function listUsers(socket) {\n return emitIdentityAdmin(socket, 'identityAdmin:listUsers');\n}\n\nexport function getUser(socket, userId) {\n return emitIdentityAdmin(socket, 'identityAdmin:getUser', { userId });\n}\n\nexport function addSignal(socket, userId, type, value) {\n return emitIdentityAdmin(socket, 'identityAdmin:addSignal', { userId, type, value });\n}\n\nexport function removeSignal(socket, userId, type, value) {\n return emitIdentityAdmin(socket, 'identityAdmin:removeSignal', { userId, type, value });\n}\n\nexport function setVerified(socket, userId, enabled) {\n return emitIdentityAdmin(socket, 'identityAdmin:setVerified', { userId, enabled });\n}\n\nexport function setDeterrence(socket, userId, enabled, reason) {\n return emitIdentityAdmin(socket, 'identityAdmin:setDeterrence', { userId, enabled, reason });\n}\n\nexport function setMuted(socket, userId, enabled) {\n return emitIdentityAdmin(socket, 'identityAdmin:setMuted', { userId, enabled });\n}\n\nexport function setPermission(socket, userId, permissionKey, enabled) {\n return emitIdentityAdmin(socket, 'identityAdmin:setPermission', { userId, permissionKey, enabled });\n}\n\nexport function updateFeatureState(socket, userId, namespace, value) {\n return emitIdentityAdmin(socket, 'identityAdmin:updateFeatureState', { userId, namespace, value });\n}\n\nexport function deleteFeatureState(socket, userId, namespace) {\n return emitIdentityAdmin(socket, 'identityAdmin:deleteFeatureState', { userId, namespace });\n}\n","// Identity Database Utilities\n// Purpose: Provides local formatting, filtering, and JSON helpers for the administration user editor.\n// Scope: Avoids leaking database-editor-specific presentation helpers into shared UI modules.\nexport const SIGNAL_LABELS = {\n cookieUserId: 'Cookie keys',\n fingerprintId: 'Fingerprints',\n nickname: 'Nicknames',\n knownIp: 'Known IPs',\n};\n\nexport const SIGNAL_FIELDS = {\n cookieUserId: 'cookieUserIds',\n fingerprintId: 'fingerprintIds',\n nickname: 'nicknames',\n knownIp: 'knownIps',\n};\n\nexport function maskValue(value) {\n const text = String(value || '').trim();\n if (!text) return 'n/a';\n if (text.length <= 14) return text;\n return `${text.slice(0, 8)}...${text.slice(-6)}`;\n}\n\nexport function formatDateTime(value) {\n const ts = Number(value || 0);\n if (!Number.isFinite(ts) || ts <= 0) return 'never';\n try {\n return new Intl.DateTimeFormat('en-US', {\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n }).format(new Date(ts));\n } catch {\n return new Date(ts).toLocaleString();\n }\n}\n\nexport function userMatchesQuery(user, query) {\n const needle = String(query || '').trim().toLowerCase();\n if (!needle) return true;\n const haystack = [\n user?.id,\n user?.nickname,\n ...(user?.cookieUserIds || []),\n ...(user?.fingerprintIds || []),\n ...(user?.nicknames || []),\n ...(user?.knownIps || []),\n ...(user?.featureNamespaces || []),\n ...(user?.permissions || []).map((permission) => permission.key),\n ].join(' ').toLowerCase();\n return haystack.includes(needle);\n}\n\nexport function userMatchesFilter(user, filter) {\n if (filter === 'verified') return Boolean(user?.verified?.enabled);\n if (filter === 'deterred') return Boolean(user?.deterrence?.enabled);\n if (filter === 'muted') return Boolean(user?.deterrence?.muted);\n if (filter === 'unverified') return !user?.verified?.enabled;\n return true;\n}\n\nexport function stringifyJson(value) {\n return JSON.stringify(value ?? {}, null, 2);\n}\n\nexport function parseEditableJson(text) {\n const parsed = JSON.parse(String(text || '').trim() || '{}');\n if (!parsed || typeof parsed !== 'object') {\n throw new Error('JSON must be an object or array.');\n }\n return parsed;\n}\n","// Identity Database Panel\n// Purpose: Implements the lockdown admin identity database editor UI inside the centralized administration application.\n// Scope: Keeps list, detail, signal, status, feature-state, and raw JSON editing local to this feature.\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport CardFrame from '../components/CardFrame/index.jsx';\nimport Tabs, { Tab, TabList, TabPanel, TabPanels } from '../components/Tabs/index.jsx';\nimport { useSocket } from '../context/SocketContext.jsx';\nimport {\n addSignal,\n deleteFeatureState,\n getUser,\n listUsers,\n removeSignal,\n setDeterrence,\n setMuted,\n setPermission,\n setVerified,\n updateFeatureState,\n} from './identityDatabaseApi.js';\nimport {\n SIGNAL_FIELDS,\n SIGNAL_LABELS,\n formatDateTime,\n maskValue,\n parseEditableJson,\n stringifyJson,\n userMatchesFilter,\n userMatchesQuery,\n} from './identityDatabaseUtils.js';\n\nconst FILTERS = [\n { key: 'all', label: 'All' },\n { key: 'verified', label: 'Verified' },\n { key: 'deterred', label: 'Deterred' },\n { key: 'muted', label: 'Muted' },\n { key: 'unverified', label: 'Unverified' },\n];\n\nfunction StatusPill({ active, children }) {\n return (\n \n {children}\n \n );\n}\n\nfunction UserListCard({ users, selectedUserId, query, filter, loading, onQuery, onFilter, onRefresh, onSelect }) {\n const filtered = useMemo(\n () => users.filter((user) => userMatchesFilter(user, filter) && userMatchesQuery(user, query)),\n [filter, query, users],\n );\n\n const actions = (\n \n );\n\n return (\n \n
\n onQuery(event.target.value)}\n />\n \n
\n
\n {filtered.length ? filtered.map((user) => (\n onSelect(user.id)}\n >\n \n {user.nickname || 'unknown user'}\n {user.id}\n {maskValue(user.cookieUserIds?.[0])} / {maskValue(user.fingerprintIds?.[0])}\n \n \n verified\n deterred\n muted\n \n \n )) : (\n

No users match this view.

\n )}\n
\n
\n );\n}\n\nfunction UserDetailsCard({ user }) {\n return (\n \n
\n

Canonical user id

\n

{user.id}

\n
\n
\n

Primary nickname

\n

{user.nickname || 'unknown user'}

\n
\n
\n

Created

\n

{formatDateTime(user.createdAt)}

\n
\n
\n

Last seen

\n

{formatDateTime(user.lastSeenAt)}

\n
\n
\n );\n}\n\nfunction SignalEditor({ user, type, onAdd, onRemove }) {\n const [draft, setDraft] = useState('');\n const values = user?.[SIGNAL_FIELDS[type]] || [];\n\n const submit = async (event) => {\n event.preventDefault();\n const value = draft.trim();\n if (!value) return;\n await onAdd(type, value);\n setDraft('');\n };\n\n return (\n
\n

{SIGNAL_LABELS[type]}

\n
\n {values.length ? values.map((value) => (\n
\n {value}\n \n
\n )) :

No values.

}\n
\n
\n setDraft(event.target.value)}\n />\n \n \n
\n );\n}\n\nfunction SignalsCard({ user, onAddSignal, onRemoveSignal }) {\n return (\n \n {Object.keys(SIGNAL_LABELS).map((type) => (\n \n ))}\n \n );\n}\n\nfunction StatusCard({ user, onVerified, onDeterrence, onMuted }) {\n const [reason, setReason] = useState(user?.deterrence?.reason || '');\n\n return (\n \n
\n

Verification

\n \n

Updated {formatDateTime(user?.verified?.at)}

\n
\n
\n

Deterrence

\n \n setReason(event.target.value)}\n />\n \n
\n \n {/*\n Mute is intentionally presented inside deterrence status because\n it is a narrower moderation action, while its own timestamp makes\n it clear that toggling mute does not toggle full deterrence.\n */}\n

Updated {formatDateTime(user?.deterrence?.mutedAt)}

\n
\n
\n
\n );\n}\n\nfunction FeatureStateCard({ user, onSaveFeature, onDeleteFeature }) {\n const namespaces = Object.keys(user?.features || {}).sort();\n const initialNamespace = namespaces[0] || '';\n const [namespace, setNamespace] = useState(initialNamespace);\n const [text, setText] = useState(stringifyJson(initialNamespace ? user.features[initialNamespace] : {}));\n const [error, setError] = useState('');\n\n const save = async () => {\n const ns = namespace.trim();\n if (!ns) {\n setError('Namespace required.');\n return;\n }\n try {\n const parsed = parseEditableJson(text);\n await onSaveFeature(ns, parsed);\n setError('');\n } catch (err) {\n setError(err.message || 'Invalid JSON.');\n }\n };\n\n const remove = async () => {\n const ns = namespace.trim();\n if (!ns) return;\n if (!window.confirm(`Delete feature state \"${ns}\" from ${user.id}?`)) return;\n await onDeleteFeature(ns);\n // The selected namespace no longer exists after deletion. Reset the local\n // editor directly instead of mirroring new props through an effect.\n setNamespace('');\n setText('{}');\n setError('');\n };\n\n return (\n \n
\n {\n const next = event.target.value;\n setNamespace(next);\n setText(stringifyJson(user.features?.[next] || {}));\n }}\n />\n \n {namespaces.map((entry) => \n \n \n
\n setText(event.target.value)}\n />\n {error ?

{error}

: null}\n
\n );\n}\n\nfunction RawRecordCard({ user }) {\n return (\n \n
\n        {stringifyJson(user)}\n      
\n
\n );\n}\n\nfunction PermissionsCard({ user, permissions, onPermission }) {\n const grantedKeys = new Set((user?.permissions || []).map((permission) => permission.key));\n return (\n \n {permissions.map((permission) => (\n \n ))}\n \n );\n}\n\nexport default function IdentityDatabasePanel() {\n const socket = useSocket();\n const [users, setUsers] = useState([]);\n const [permissions, setPermissions] = useState([]);\n const [selectedUser, setSelectedUser] = useState(null);\n const [query, setQuery] = useState('');\n const [filter, setFilter] = useState('all');\n const [loading, setLoading] = useState(false);\n const [message, setMessage] = useState('');\n\n const refreshUsers = useCallback(async () => {\n setLoading(true);\n try {\n const resp = await listUsers(socket);\n setUsers(resp.users || []);\n setPermissions(resp.permissions || []);\n if (selectedUser?.id) {\n const updated = await getUser(socket, selectedUser.id);\n setSelectedUser(updated.user || null);\n }\n setMessage('');\n } catch (err) {\n setMessage(err.message || 'Failed to load users.');\n } finally {\n setLoading(false);\n }\n }, [selectedUser?.id, socket]);\n\n const selectUser = useCallback(async (userId) => {\n setLoading(true);\n try {\n const resp = await getUser(socket, userId);\n setSelectedUser(resp.user || null);\n setMessage('');\n } catch (err) {\n setMessage(err.message || 'Failed to load user.');\n } finally {\n setLoading(false);\n }\n }, [socket]);\n\n const applyUserUpdate = useCallback((user) => {\n setSelectedUser(user || null);\n if (!user?.id) return;\n setUsers((prev) => prev.map((entry) => (entry.id === user.id ? { ...entry, ...user } : entry)));\n }, []);\n\n const runMutation = useCallback(async (operation, successMessage) => {\n if (!selectedUser?.id) return;\n setLoading(true);\n try {\n const resp = await operation(selectedUser.id);\n applyUserUpdate(resp.user);\n setMessage(successMessage || 'Saved.');\n } catch (err) {\n setMessage(err.message || 'Save failed.');\n } finally {\n setLoading(false);\n }\n }, [applyUserUpdate, selectedUser?.id]);\n\n useEffect(() => {\n refreshUsers();\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleAddSignal = (type, value) =>\n runMutation((userId) => addSignal(socket, userId, type, value), 'Signal added.');\n const handleRemoveSignal = (type, value) =>\n runMutation((userId) => removeSignal(socket, userId, type, value), 'Signal removed.');\n const handleVerified = (enabled) =>\n runMutation((userId) => setVerified(socket, userId, enabled), 'Verification updated.');\n const handleDeterrence = (enabled, reason) =>\n runMutation((userId) => setDeterrence(socket, userId, enabled, reason), 'Deterrence updated.');\n const handleMuted = (enabled) =>\n runMutation((userId) => setMuted(socket, userId, enabled), 'Mute updated.');\n const handlePermission = (permissionKey, enabled) =>\n runMutation(\n (userId) => setPermission(socket, userId, permissionKey, enabled),\n 'Permission updated.',\n );\n const handleSaveFeature = (namespace, value) =>\n runMutation((userId) => updateFeatureState(socket, userId, namespace, value), 'Feature state saved.');\n const handleDeleteFeature = (namespace) =>\n runMutation((userId) => deleteFeatureState(socket, userId, namespace), 'Feature state deleted.');\n\n return (\n
\n \n
\n {message ?

{message}

: null}\n {selectedUser ? (\n <>\n \n \n \n Signals\n Status\n Permissions\n Feature state\n Raw JSON\n \n \n \n \n \n \n {/* These editors own drafts for one identity. Keys remount them\n when selection changes without effect-driven state mirroring. */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ) : (\n \n Select a user to inspect and edit the identity record.\n \n )}\n
\n
\n );\n}\n","// Administrator Accounts\n// Purpose: Provides lockdown administrators with explicit account creation, editing, password replacement, and deletion controls.\n// Scope: Never receives or displays password hashes; final-lockdown safety is enforced by the server.\nimport { useEffect, useState } from 'react';\nimport CardFrame from '../../components/CardFrame/index.jsx';\nimport { createAdministrator, deleteAdministrator, updateAdministrator } from '../api.js';\n\nfunction AdministratorRow({ administrator, socket, runSensitive, onSnapshot }) {\n const [draft, setDraft] = useState({\n username: administrator.username,\n discordId: administrator.discordId,\n role: administrator.role,\n password: '',\n });\n const [busy, setBusy] = useState(false);\n const [error, setError] = useState('');\n\n useEffect(() => {\n setDraft({ username: administrator.username, discordId: administrator.discordId, role: administrator.role, password: '' });\n }, [administrator]);\n\n async function perform(work) {\n setBusy(true);\n setError('');\n try {\n const response = await runSensitive(work);\n onSnapshot(response.snapshot);\n } catch (actionError) {\n setError(actionError.message);\n } finally {\n setBusy(false);\n }\n }\n\n return (\n
\n
\n setDraft({ ...draft, username: event.target.value })} />\n setDraft({ ...draft, discordId: event.target.value })} />\n \n setDraft({ ...draft, password: event.target.value })} />\n
\n {error ?

{error}

: null}\n
\n \n \n
\n
\n );\n}\n\nexport default function AdministratorAccounts({ administrators, socket, runSensitive, onSnapshot }) {\n const [draft, setDraft] = useState({ username: '', discordId: '', role: 'admin', password: '' });\n const [busy, setBusy] = useState(false);\n const [error, setError] = useState('');\n\n async function create(event) {\n event.preventDefault();\n setBusy(true);\n setError('');\n try {\n const response = await runSensitive(() => createAdministrator(socket, draft));\n onSnapshot(response.snapshot);\n setDraft({ username: '', discordId: '', role: 'admin', password: '' });\n } catch (actionError) {\n setError(actionError.message);\n } finally {\n setBusy(false);\n }\n }\n\n return (\n \n
\n setDraft({ ...draft, username: event.target.value })} />\n setDraft({ ...draft, discordId: event.target.value })} />\n \n setDraft({ ...draft, password: event.target.value })} />\n {error ?

{error}

: }\n \n \n {(administrators || []).map((administrator) => (\n \n ))}\n
\n );\n}\n","// Administration Overview\n// Purpose: Summarizes configuration state, revision history, audit history, and links to existing health/report surfaces.\n// Scope: Presents persisted administration metadata without duplicating operational service implementations.\nimport { Link } from 'react-router-dom';\nimport CardFrame from '../../components/CardFrame/index.jsx';\nimport { restoreConfigurationRevision } from '../api.js';\n\nfunction formatDate(value) {\n return Number.isFinite(Number(value)) ? new Date(Number(value)).toLocaleString() : 'unknown';\n}\n\nexport default function AdminOverview({ snapshot, socket, runSensitive, onSnapshot }) {\n const config = snapshot.configuration;\n\n async function restore(revision) {\n if (!window.confirm(`Restore configuration revision ${revision}? This creates a new active revision and requires a restart.`)) return;\n try {\n const response = await runSensitive(() => restoreConfigurationRevision(socket, {\n revision,\n expectedRevision: config.revision,\n }));\n onSnapshot(response.snapshot);\n } catch (error) {\n window.alert(error.message);\n }\n }\n\n return (\n
\n \n

Active revision

{config.revision}

\n

Administrators

{snapshot.administrators.length}

\n

Last configuration save

{formatDate(config.createdAt)}

\n
\n \n Open fleet reports\n Open driver application\n \n \n {snapshot.revisions.map((revision) => (\n
\n #{revision.revision}{formatDate(revision.createdAt)}{revision.actor}{revision.source}\n \n
\n ))}\n
\n \n {snapshot.auditEvents.map((event) => (\n
\n {formatDate(event.createdAt)}{event.actor}{event.action}\n
\n ))}\n
\n
\n );\n}\n","/** Determines whether a `thing` is an object for the purposes of RJSF. In this case, `thing` is an object if it has\n * the type `object` but is NOT null, an array or a File.\n *\n * @param thing - The thing to check to see whether it is an object\n * @returns - True if it is a non-null, non-array, non-File object\n */\nexport default function isObject(thing) {\n if (typeof thing !== 'object' || thing === null) {\n return false;\n }\n // lastModified is guaranteed to be a number on a File instance\n // as per https://w3c.github.io/FileAPI/#dfn-lastModified\n if ('lastModified' in thing &&\n typeof thing.lastModified === 'number' &&\n typeof File !== 'undefined' &&\n thing instanceof File) {\n return false;\n }\n // getMonth is guaranteed to be a method on a Date instance\n // as per https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-date.prototype.getmonth\n if ('getMonth' in thing &&\n typeof thing.getMonth === 'function' &&\n typeof Date !== 'undefined' &&\n thing instanceof Date) {\n return false;\n }\n return !Array.isArray(thing);\n}\n//# sourceMappingURL=isObject.js.map","import isObject from \"./isObject.js\";\n/** Checks the schema to see if it is allowing additional items, by verifying that `schema.additionalItems` is an\n * object. The user is warned in the console if `schema.additionalItems` has the value `true`.\n *\n * @param schema - The schema object to check\n * @returns - True if additional items is allowed, otherwise false\n */\nexport default function allowAdditionalItems(schema) {\n if (schema.additionalItems === true) {\n // oxlint-disable-next-line no-console\n console.warn('additionalItems=true is currently not supported');\n }\n return isObject(schema.additionalItems);\n}\n//# sourceMappingURL=allowAdditionalItems.js.map","/**\n * Determines the locale-specific decimal separator.\n * It uses the provided locale or the first locale in navigator.languages (if available) and falls back to \"en\".\n *\n * @param languages - Optional array of locales or a single locale string\n * @returns The decimal separator character (typically '.' or ',').\n */\nexport default function getDecimalSeparator(languages) {\n const locales = languages || (typeof navigator !== 'undefined' ? navigator.languages : undefined);\n if (locales) {\n try {\n const formatter = new Intl.NumberFormat(locales);\n const parts = formatter.formatToParts(1.1);\n return parts.find((part) => part.type === 'decimal')?.value || '.';\n }\n catch (e) {\n // Fallback\n }\n }\n return '.';\n}\n//# sourceMappingURL=getDecimalSeparator.js.map","import getDecimalSeparator from \"./getDecimalSeparator.js\";\n/** Attempts to convert the string into a number. If an empty string is provided, then `undefined` is returned.\n * If a `null` is provided, it is returned. If the string ends in a `.` or the locale-specific separator then the\n * string is returned because the user may be in the middle of typing a float number. If a number ends in a pattern\n * like `.0`, `.20`, `.030`, string is returned because the user may be typing number that will end in a non-zero\n * digit. Otherwise, the string is wrapped by `Number()` and if that result is not `NaN`, that number will be\n * returned, otherwise the string `value` will be.\n *\n * @param value - The string or null value to convert to a number\n * @returns - The `value` converted to a number when appropriate, otherwise the `value`\n */\nexport default function asNumber(value) {\n if (value === '') {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n const separator = getDecimalSeparator();\n // Normalize separator to standard '.' for pattern checking and parsing\n const standardValue = typeof value === 'string' && separator !== '.' ? value.replace(separator, '.') : value;\n // oxlint-disable-next-line typescript/prefer-string-starts-ends-with -- regex test() coerces undefined to \"undefined\" safely; endsWith() throws on undefined values passed at runtime\n if (/\\.$/.test(standardValue)) {\n // '3.' can't really be considered a number even if it parses in js. The\n // user is most likely entering a float.\n return value;\n }\n // oxlint-disable-next-line typescript/prefer-string-starts-ends-with -- same as above\n if (/\\.0$/.test(standardValue)) {\n // we need to return this as a string here, to allow for input like 3.07\n return value;\n }\n if (/\\.\\d*0$/.test(standardValue)) {\n // It's a number, that's cool - but we need it as a string so it doesn't screw\n // with the user when entering dollar amounts or other values (such as those with\n // specific precision or number of significant digits)\n return value;\n }\n const n = Number(standardValue);\n const valid = typeof n === 'number' && !Number.isNaN(n);\n return valid ? n : value;\n}\n//# sourceMappingURL=asNumber.js.map","/** Below are the list of all the keys into various elements of a RJSFSchema or UiSchema that are used by the various\n * utility functions. In addition to those keys, there are the special `ADDITIONAL_PROPERTY_FLAG`,\n * `RJSF_REF_KEY`, and `RJSF_REF_CYCLE_KEY` Symbols that are added to a schema under certain conditions by the\n * `retrieveSchema()` utility. Using Symbols keeps these internal markers invisible to JSON serialisation and\n * JSON Schema validators (AJV, ATA, etc.), which only enumerate string-keyed properties.\n */\nexport const ADDITIONAL_PROPERTY_FLAG = Symbol('__additional_property');\nexport const ADDITIONAL_PROPERTIES_KEY = 'additionalProperties';\nexport const ALL_OF_KEY = 'allOf';\nexport const ANY_OF_KEY = 'anyOf';\nexport const CONST_KEY = 'const';\nexport const DEFAULT_KEY = 'default';\nexport const DEFINITIONS_KEY = 'definitions';\nexport const DEPENDENCIES_KEY = 'dependencies';\nexport const ENUM_KEY = 'enum';\nexport const ERRORS_KEY = '__errors';\nexport const ID_KEY = '$id';\nexport const IF_KEY = 'if';\nexport const ITEMS_KEY = 'items';\nexport const JUNK_OPTION_ID = '_$junk_option_schema_id$_';\nexport const NAME_KEY = '$name';\nexport const ONE_OF_KEY = 'oneOf';\nexport const PATTERN_PROPERTIES_KEY = 'patternProperties';\nexport const PROPERTIES_KEY = 'properties';\nexport const READONLY_KEY = 'readonly';\nexport const REQUIRED_KEY = 'required';\nexport const SUBMIT_BTN_OPTIONS_KEY = 'submitButtonOptions';\nexport const REF_KEY = '$ref';\nexport const RJSF_REF_KEY = Symbol('__rjsf_ref');\nexport const RJSF_REF_CYCLE_KEY = Symbol('__rjsf_ref_cycle');\nexport const SCHEMA_KEY = '$schema';\nexport const DEFAULT_ID_PREFIX = 'root';\nexport const DEFAULT_ID_SEPARATOR = '_';\n/** The path of the discriminator value returned by the schema endpoint.\n * The discriminator is the value in a `oneOf` that determines which option is selected.\n */\nexport const DISCRIMINATOR_PATH = ['discriminator', 'propertyName'];\n/** The name of the `formContext` attribute in the React JSON Schema Form Registry\n */\nexport const FORM_CONTEXT_NAME = 'formContext';\n/** The name of the `layoutGridLookupMap` attribute in the form context\n */\nexport const LOOKUP_MAP_NAME = 'layoutGridLookupMap';\nexport const RJSF_PREFIX_KEY = '__rjsf';\nexport const RJSF_ADDITIONAL_PROPERTIES_FLAG = `${RJSF_PREFIX_KEY}_additionalProperties`;\nexport const ROOT_SCHEMA_PREFIX = `${RJSF_PREFIX_KEY}_rootSchema`;\nexport const UI_FIELD_KEY = 'ui:field';\nexport const UI_WIDGET_KEY = 'ui:widget';\nexport const UI_OPTIONS_KEY = 'ui:options';\nexport const UI_GLOBAL_OPTIONS_KEY = 'ui:globalOptions';\nexport const UI_DEFINITIONS_KEY = 'ui:definitions';\n/** The JSON Schema version strings\n */\nexport const JSON_SCHEMA_DRAFT_2019_09 = 'https://json-schema.org/draft/2019-09/schema';\nexport const JSON_SCHEMA_DRAFT_2020_12 = 'https://json-schema.org/draft/2020-12/schema';\n//# sourceMappingURL=constants.js.map","import { UI_OPTIONS_KEY, UI_WIDGET_KEY } from \"./constants.js\";\nimport isObject from \"./isObject.js\";\n/** Get all passed options from ui:options, and ui:, returning them in an object with the `ui:`\n * stripped off. Any `globalOptions` will always be returned, unless they are overridden by options in the `uiSchema`.\n *\n * @param [uiSchema={}] - The UI Schema from which to get any `ui:xxx` options\n * @param [globalOptions={}] - The optional Global UI Schema from which to get any fallback `xxx` options\n * @returns - An object containing all the `ui:xxx` options with the `ui:` stripped off along with all `globalOptions`\n */\nexport default function getUiOptions(uiSchema = {}, globalOptions = {}) {\n // Handle null or undefined uiSchema\n if (!uiSchema) {\n return { ...globalOptions };\n }\n return Object.keys(uiSchema)\n .filter((key) => key.startsWith('ui:'))\n .reduce((options, key) => {\n const value = uiSchema[key];\n if (key === UI_WIDGET_KEY && isObject(value)) {\n // oxlint-disable-next-line no-console\n console.error('Setting options via ui:widget object is no longer supported, use ui:options instead');\n return options;\n }\n if (key === UI_OPTIONS_KEY && isObject(value)) {\n return { ...options, ...value };\n }\n return { ...options, [key.substring(3)]: value };\n }, { ...globalOptions });\n}\n//# sourceMappingURL=getUiOptions.js.map","import getUiOptions from \"./getUiOptions.js\";\n/** Checks whether the field described by `schema`, having the `uiSchema` and `formData` supports expanding. The UI for\n * the field can expand if it has additional properties, is not forced as non-expandable by the `uiSchema` and the\n * `formData` object doesn't already have `schema.maxProperties` elements.\n *\n * @param schema - The schema for the field that is being checked\n * @param [uiSchema={}] - The uiSchema for the field\n * @param [formData] - The formData for the field\n * @returns - True if the schema element has additionalProperties, is expandable, and not at the maxProperties limit\n */\nexport default function canExpand(schema, uiSchema = {}, formData) {\n if (!(schema.additionalProperties || schema.patternProperties)) {\n return false;\n }\n const { expandable = true } = getUiOptions(uiSchema);\n if (expandable === false) {\n return expandable;\n }\n // if ui:options.expandable was not explicitly set to false, we can add\n // another property if we have not exceeded maxProperties yet\n if (schema.maxProperties !== undefined && formData) {\n return Object.keys(formData).length < schema.maxProperties;\n }\n return true;\n}\n//# sourceMappingURL=canExpand.js.map","/** Determines whether `thing` is a plain object, i.e. one created by the `Object` constructor or with a `null`\n * prototype. Unlike `isObject()`, class instances such as `Error` are not plain objects, which matters when\n * recursively walking a structure whose nested values are expected to be plain data.\n *\n * @param thing - The thing to check to see whether it is a plain object\n * @returns - True if it is a plain object, otherwise false\n */\nexport default function isPlainObject(thing) {\n if (typeof thing !== 'object' || thing === null) {\n return false;\n }\n const proto = Object.getPrototypeOf(thing);\n return proto === null || proto === Object.prototype;\n}\n//# sourceMappingURL=isPlainObject.js.map","import { ERRORS_KEY } from \"./constants.js\";\nimport isPlainObject from \"./isPlainObject.js\";\n/** Given a `formData` object, recursively creates a `FormValidation` error handling structure around it\n *\n * @param formData - The form data around which the error handler is created\n * @returns - A `FormValidation` object based on the `formData` structure\n */\nexport default function createErrorHandler(formData) {\n const handler = {\n // We store the list of errors for this node in a property named __errors\n // to avoid name collision with a possible sub schema field named\n // 'errors' (see `utils.toErrorSchema`).\n [ERRORS_KEY]: [],\n addError(message) {\n this[ERRORS_KEY].push(message);\n },\n };\n if (Array.isArray(formData)) {\n return formData.reduce((acc, value, key) => ({ ...acc, [key]: createErrorHandler(value) }), handler);\n }\n if (isPlainObject(formData)) {\n return Object.keys(formData).reduce((acc, key) => ({ ...acc, [key]: createErrorHandler(formData[key]) }), handler);\n }\n return handler;\n}\n//# sourceMappingURL=createErrorHandler.js.map","const { getOwnPropertyNames, getOwnPropertySymbols } = Object;\nconst { hasOwnProperty } = Object.prototype;\n/**\n * Combine two comparators into a single comparators.\n */\nfunction combineComparators(comparatorA, comparatorB) {\n return function isEqual(a, b, state) {\n return comparatorA(a, b, state) && comparatorB(a, b, state);\n };\n}\n/**\n * Wrap the provided `areItemsEqual` method to manage the circular state, allowing\n * for circular references to be safely included in the comparison without creating\n * stack overflows.\n */\nfunction createIsCircular(areItemsEqual) {\n return function isCircular(a, b, state) {\n if (!a || !b || typeof a !== 'object' || typeof b !== 'object') {\n return areItemsEqual(a, b, state);\n }\n const { cache } = state;\n const cachedA = cache.get(a);\n const cachedB = cache.get(b);\n if (cachedA && cachedB) {\n return cachedA === b && cachedB === a;\n }\n cache.set(a, b);\n cache.set(b, a);\n const result = areItemsEqual(a, b, state);\n cache.delete(a);\n cache.delete(b);\n return result;\n };\n}\n/**\n * Get the properties to strictly examine, which include both own properties that are\n * not enumerable and symbol properties.\n */\nfunction getStrictProperties(object) {\n const symbols = getOwnPropertySymbols(object);\n return symbols.length\n ? getOwnPropertyNames(object).concat(symbols)\n : getOwnPropertyNames(object);\n}\n/**\n * Whether the object contains the property passed as an own property.\n */\nconst hasOwn = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nObject.hasOwn || ((object, property) => hasOwnProperty.call(object, property));\n\nconst PREACT_VNODE = '__v';\nconst PREACT_OWNER = '__o';\nconst REACT_OWNER = '_owner';\n// `Float16Array` is recent enough that it cannot be referenced unguarded, and capturing its\n// availability once keeps that detail out of the comparison itself.\nconst HAS_FLOAT_16_ARRAY = typeof Float16Array !== 'undefined';\nconst { getOwnPropertyDescriptor, keys } = Object;\n/**\n * Whether the values passed are equal based on a [SameValue](https://262.ecma-international.org/7.0/#sec-samevalue) basis.\n * Simplified, this maps to if the two values are referentially equal to one another (`a === b`) or both are `NaN`.\n *\n * @note\n * When available in the environment, this is just a re-export of the global\n * [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is) method.\n */\nconst sameValueEqual = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nObject.is\n || function sameValueEqual(a, b) {\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n };\n/**\n * Whether the values passed are equal based on a [SameValue](https://262.ecma-international.org/7.0/#sec-samevaluezero) basis.\n * Simplified, this maps to if the two values are referentially equal to one another (`a === b`), both are `NaN`, or both\n * are either positive or negative zero.\n */\nfunction sameValueZeroEqual(a, b) {\n return a === b || (a !== a && b !== b);\n}\n/**\n * Whether the values passed are equal based on a\n * [Strict Equality Comparison](https://262.ecma-international.org/7.0/#sec-strict-equality-comparison) basis.\n * Simplified, this maps to if the two values are referentially equal to one another (`a === b`).\n *\n * @note\n * This is mainly available as a convenience function, such as being a default when a function to determine equality between\n * two objects is used.\n */\nfunction strictEqual(a, b) {\n return a === b;\n}\n/**\n * Whether the array buffers are equal in value.\n */\nfunction areArrayBuffersEqual(a, b) {\n return a.byteLength === b.byteLength && areTypedArraysEqual(new Uint8Array(a), new Uint8Array(b));\n}\n/**\n * Whether the arrays are equal in value.\n */\nfunction areArraysEqual(a, b, state) {\n let index = a.length;\n if (b.length !== index) {\n return false;\n }\n while (index-- > 0) {\n if (!state.equals(a[index], b[index], index, index, a, b, state)) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the dataviews are equal in value.\n */\nfunction areDataViewsEqual(a, b) {\n return (a.byteLength === b.byteLength\n && areTypedArraysEqual(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)));\n}\n/**\n * Whether the dates passed are equal in value.\n */\nfunction areDatesEqual(a, b) {\n return sameValueEqual(a.getTime(), b.getTime());\n}\n/**\n * Whether the errors passed are equal in value.\n *\n * @note\n * `name`, `message` and `stack` are own properties but are not enumerable, so they are compared\n * explicitly. `cause` is compared by value rather than by reference, matching how every other\n * nested value in the comparison is treated. Own enumerable properties (which custom `Error`\n * subclasses commonly add) are compared by composing this with the object comparator in the\n * comparator config, so that the strict and circular variants apply to them as well.\n */\nfunction areErrorsEqual(a, b, state) {\n return (a.name === b.name\n && a.message === b.message\n && a.stack === b.stack\n && state.equals(a.cause, b.cause, 'cause', 'cause', a, b, state));\n}\n/**\n * Whether the `Map`s are equal in value.\n */\nfunction areMapsEqual(a, b, state) {\n const size = a.size;\n if (size !== b.size) {\n return false;\n }\n if (!size) {\n return true;\n }\n const matchedIndices = new Uint8Array(size);\n const aIterable = a.entries();\n let aResult;\n let bResult;\n let index = 0;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while ((aResult = aIterable.next())) {\n if (aResult.done) {\n break;\n }\n const bIterable = b.entries();\n let hasMatch = 0;\n let matchIndex = 0;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while ((bResult = bIterable.next())) {\n if (bResult.done) {\n break;\n }\n if (matchedIndices[matchIndex]) {\n matchIndex++;\n continue;\n }\n const aEntry = aResult.value;\n const bEntry = bResult.value;\n if (state.equals(aEntry[0], bEntry[0], index, matchIndex, a, b, state)\n && state.equals(aEntry[1], bEntry[1], aEntry[0], bEntry[0], a, b, state)) {\n hasMatch = matchedIndices[matchIndex] = 1;\n break;\n }\n matchIndex++;\n }\n if (!hasMatch) {\n return false;\n }\n index++;\n }\n return true;\n}\n/**\n * Whether the objects are equal in value.\n */\nfunction areObjectsEqual(a, b, state) {\n const properties = keys(a);\n let index = properties.length;\n if (keys(b).length !== index) {\n return false;\n }\n // Decrementing `while` showed faster results than either incrementing or\n // decrementing `for` loop and than an incrementing `while` loop. Declarative\n // methods like `some` / `every` were not used to avoid incurring the garbage\n // cost of anonymous callbacks.\n while (index-- > 0) {\n if (!isPropertyEqual(a, b, state, properties[index])) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the objects are equal in value with strict property checking.\n */\nfunction areObjectsEqualStrict(a, b, state) {\n const properties = getStrictProperties(a);\n let index = properties.length;\n if (getStrictProperties(b).length !== index) {\n return false;\n }\n let property;\n let descriptorA;\n let descriptorB;\n // Decrementing `while` showed faster results than either incrementing or\n // decrementing `for` loop and than an incrementing `while` loop. Declarative\n // methods like `some` / `every` were not used to avoid incurring the garbage\n // cost of anonymous callbacks.\n while (index-- > 0) {\n property = properties[index];\n if (!isPropertyEqual(a, b, state, property)) {\n return false;\n }\n descriptorA = getOwnPropertyDescriptor(a, property);\n descriptorB = getOwnPropertyDescriptor(b, property);\n if ((descriptorA || descriptorB)\n && (!descriptorA\n || !descriptorB\n || descriptorA.configurable !== descriptorB.configurable\n || descriptorA.enumerable !== descriptorB.enumerable\n || descriptorA.writable !== descriptorB.writable)) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the primitive wrappers passed are equal in value.\n */\nfunction arePrimitiveWrappersEqual(a, b) {\n return sameValueEqual(a.valueOf(), b.valueOf());\n}\n/**\n * Whether the regexps passed are equal in value.\n */\nfunction areRegExpsEqual(a, b) {\n return a.source === b.source && a.flags === b.flags;\n}\n/**\n * Whether the `Set`s are equal in value.\n */\nfunction areSetsEqual(a, b, state) {\n const size = a.size;\n if (size !== b.size) {\n return false;\n }\n if (!size) {\n return true;\n }\n const matchedIndices = new Uint8Array(size);\n const aIterable = a.values();\n let aResult;\n let bResult;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while ((aResult = aIterable.next())) {\n if (aResult.done) {\n break;\n }\n const bIterable = b.values();\n let hasMatch = 0;\n let matchIndex = 0;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while ((bResult = bIterable.next())) {\n if (bResult.done) {\n break;\n }\n if (!matchedIndices[matchIndex]\n && state.equals(aResult.value, bResult.value, aResult.value, bResult.value, a, b, state)) {\n hasMatch = matchedIndices[matchIndex] = 1;\n break;\n }\n matchIndex++;\n }\n if (!hasMatch) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the TypedArray instances are equal in value.\n */\nfunction areTypedArraysEqual(a, b) {\n let index = a.length;\n if (b.length !== index || a.byteOffset !== b.byteOffset) {\n return false;\n }\n // Only float-backed views can hold `NaN`, and the additional check needed to treat it as equal\n // to itself measurably slows the loop, so integer views keep the plain comparison. This is\n // hoisted out of the loop so the cost is paid once per call rather than once per element.\n if (a instanceof Float64Array || a instanceof Float32Array || (HAS_FLOAT_16_ARRAY && a instanceof Float16Array)) {\n while (index-- > 0) {\n // `NaN` is the only value not equal to itself, and it is treated as equal here to match\n // the SameValueZero semantics used for every other numeric comparison in the library.\n if (a[index] !== b[index] && (a[index] === a[index] || b[index] === b[index])) {\n return false;\n }\n }\n return true;\n }\n while (index-- > 0) {\n if (a[index] !== b[index]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the URL instances are equal in value.\n */\nfunction areUrlsEqual(a, b) {\n // `href` is the normalized serialization of every component, so matching hrefs are equal without\n // any further work. Only a difference in query parameter ordering can survive a mismatch here.\n if (a.href === b.href) {\n return true;\n }\n return (a.protocol === b.protocol\n && a.username === b.username\n && a.password === b.password\n // `host` covers both the hostname and the port.\n && a.host === b.host\n && a.pathname === b.pathname\n && a.hash === b.hash\n && areSearchParamsEqual(a.searchParams, b.searchParams));\n}\n/**\n * Whether the search params passed are equal in value.\n *\n * @note\n * Order is not significant, matching how the other unordered collections in the library are\n * compared. Repeated keys are, so this is a comparison of multisets rather than of sets:\n * `a=1&a=2` is equal to `a=2&a=1`, but not to `a=1&a=1`.\n */\nfunction areSearchParamsEqual(a, b) {\n const serializedA = a.toString();\n const serializedB = b.toString();\n // Identical serializations are equal under any ordering, and this is by far the common case, so\n // it is worth checking before sorting anything.\n return serializedA === serializedB || sortSearchParams(serializedA) === sortSearchParams(serializedB);\n}\n/**\n * Reorder a serialized query string so that params holding the same pairs compare as equal\n * regardless of the order they appear in.\n *\n * @note\n * The serializer percent-encodes `&` and `=` wherever they appear inside a name or a value, so\n * splitting on `&` recovers exactly the pairs and nothing else.\n */\nfunction sortSearchParams(serialized) {\n return serialized.split('&').sort().join('&');\n}\nfunction isPropertyEqual(a, b, state, property) {\n if ((property === REACT_OWNER || property === PREACT_OWNER || property === PREACT_VNODE)\n && (a.$$typeof || b.$$typeof)) {\n return true;\n }\n return hasOwn(b, property) && state.equals(a[property], b[property], property, property, a, b, state);\n}\n\nconst toString = Object.prototype.toString;\n/**\n * Create a comparator method based on the type-specific equality comparators passed.\n */\nfunction createEqualityComparator(config) {\n const supportedComparatorMap = createSupportedComparatorMap(config);\n const { areArraysEqual, areDatesEqual, areFunctionsEqual, areMapsEqual, areNumbersEqual, areObjectsEqual, areRegExpsEqual, areSetsEqual, getUnsupportedCustomComparator, } = config;\n /**\n * compare the value of the two objects and return true if they are equivalent in values\n */\n return function comparator(a, b, state) {\n // If the items are strictly equal, no need to do a value comparison.\n if (a === b) {\n return true;\n }\n // If either of the items are nullish and fail the strictly equal check\n // above, then they must be unequal.\n if (a == null || b == null) {\n return false;\n }\n const type = typeof a;\n if (type !== typeof b) {\n return false;\n }\n if (type !== 'object') {\n if (type === 'number' || type === 'bigint') {\n return areNumbersEqual(a, b, state);\n }\n if (type === 'function') {\n return areFunctionsEqual(a, b, state);\n }\n // If a primitive value that is not strictly equal, it must be unequal.\n return false;\n }\n const constructor = a.constructor;\n // Checks are listed in order of commonality of use-case:\n // 1. Common complex object types (plain object, array)\n // 2. Common data values (date, regexp)\n // 3. Less-common complex object types (map, set)\n // 4. Less-common data values (promise, primitive wrappers)\n // Inherently this is both subjective and assumptive, however\n // when reviewing comparable libraries in the wild this order\n // appears to be generally consistent.\n // Constructors should match, otherwise there is potential for false positives\n // between class and subclass or custom object and POJO.\n if (constructor !== b.constructor) {\n return false;\n }\n // Try to fast-path equality checks for other complex object types in the\n // same realm to avoid capturing the string tag. Strict equality is used\n // instead of `instanceof` because it is more performant for the common\n // use-case. If someone is creating a subclass from a native class, it will be\n // handled with the string tag comparison.\n if (constructor === Object) {\n return areObjectsEqual(a, b, state);\n }\n if (constructor === Array) {\n return areArraysEqual(a, b, state);\n }\n if (constructor === Date) {\n return areDatesEqual(a, b, state);\n }\n if (constructor === RegExp) {\n return areRegExpsEqual(a, b, state);\n }\n if (constructor === Map) {\n return areMapsEqual(a, b, state);\n }\n if (constructor === Set) {\n return areSetsEqual(a, b, state);\n }\n if (constructor === Promise) {\n // Avoid tag checks for promise values, since we know if they are not referentially equal\n // then they are not equal.\n return false;\n }\n // `isArray()` works on subclasses and is cross-realm, so we can avoid capturing\n // the string tag or doing an `instanceof` in edge cases.\n if (Array.isArray(a)) {\n return areArraysEqual(a, b, state);\n }\n // Since this is a custom object, capture the string tag to determining its type.\n // This is reasonably performant in modern environments like v8 and SpiderMonkey.\n const tag = toString.call(a);\n const supportedComparator = supportedComparatorMap[tag];\n if (supportedComparator) {\n return supportedComparator(a, b, state);\n }\n const unsupportedCustomComparator = getUnsupportedCustomComparator && getUnsupportedCustomComparator(a, b, state, tag);\n if (unsupportedCustomComparator) {\n return unsupportedCustomComparator(a, b, state);\n }\n // If not matching any tags that require a specific type of comparison, then we hard-code false because\n // the only thing remaining is strict equality, which has already been compared. This is for a few reasons:\n // - Certain types that cannot be introspected (e.g., `WeakMap`). For these types, this is the only\n // comparison that can be made.\n // - For types that can be introspected but do not have an objective definition of what\n // equality is (`Error`, etc.), the subjective decision is to be conservative and strictly compare.\n // In all cases, these decisions should be reevaluated based on changes to the language and\n // common development practices.\n return false;\n };\n}\n/**\n * Create the configuration object used for building comparators.\n */\nfunction createEqualityComparatorConfig({ circular, createCustomConfig, strict, }) {\n let config = {\n areArrayBuffersEqual,\n areArraysEqual: strict ? areObjectsEqualStrict : areArraysEqual,\n areDataViewsEqual,\n areDatesEqual: areDatesEqual,\n // `Error` subclasses routinely carry their own enumerable properties (`status`, `code`, ...),\n // which the error comparator alone does not see, so it is composed with the object comparator.\n // `name` / `message` / `stack` are own but not enumerable, which is why errors need a\n // comparator of their own rather than being treated as plain objects in the first place.\n areErrorsEqual: strict\n ? combineComparators(areErrorsEqual, areObjectsEqualStrict)\n : combineComparators(areErrorsEqual, areObjectsEqual),\n areFunctionsEqual: strictEqual,\n areMapsEqual: strict ? combineComparators(areMapsEqual, areObjectsEqualStrict) : areMapsEqual,\n areNumbersEqual: sameValueEqual,\n areObjectsEqual: strict ? areObjectsEqualStrict : areObjectsEqual,\n arePrimitiveWrappersEqual: arePrimitiveWrappersEqual,\n areRegExpsEqual: areRegExpsEqual,\n areSetsEqual: strict ? combineComparators(areSetsEqual, areObjectsEqualStrict) : areSetsEqual,\n areTypedArraysEqual: strict\n ? combineComparators(areTypedArraysEqual, areObjectsEqualStrict)\n : areTypedArraysEqual,\n areUrlsEqual: areUrlsEqual,\n getUnsupportedCustomComparator: undefined,\n };\n if (createCustomConfig) {\n config = Object.assign({}, config, createCustomConfig(config));\n }\n if (circular) {\n const areArraysEqual = createIsCircular(config.areArraysEqual);\n // Errors are included because comparing `cause` and own properties by value means an error\n // that references itself would otherwise recurse without bound.\n const areErrorsEqual = createIsCircular(config.areErrorsEqual);\n const areMapsEqual = createIsCircular(config.areMapsEqual);\n const areObjectsEqual = createIsCircular(config.areObjectsEqual);\n const areSetsEqual = createIsCircular(config.areSetsEqual);\n config = Object.assign({}, config, {\n areArraysEqual,\n areErrorsEqual,\n areMapsEqual,\n areObjectsEqual,\n areSetsEqual,\n });\n }\n return config;\n}\n/**\n * Default equality comparator pass-through, used as the standard `isEqual` creator for\n * use inside the built comparator.\n */\nfunction createInternalEqualityComparator(compare) {\n return function (a, b, _indexOrKeyA, _indexOrKeyB, _parentA, _parentB, state) {\n return compare(a, b, state);\n };\n}\n/**\n * Create the `isEqual` function used by the consuming application.\n */\nfunction createIsEqual({ circular, comparator, createState, equals, strict }) {\n if (createState) {\n return function isEqual(a, b) {\n const { cache = circular ? new WeakMap() : undefined, meta } = createState();\n return comparator(a, b, {\n cache,\n equals,\n meta,\n strict,\n });\n };\n }\n if (circular) {\n return function isEqual(a, b) {\n return comparator(a, b, {\n cache: new WeakMap(),\n equals,\n meta: undefined,\n strict,\n });\n };\n }\n const state = {\n cache: undefined,\n equals,\n meta: undefined,\n strict,\n };\n return function isEqual(a, b) {\n return comparator(a, b, state);\n };\n}\n/**\n * Create a map of `toString()` values to their respective handlers for `tag`-based lookups.\n */\nfunction createSupportedComparatorMap({ areArrayBuffersEqual, areArraysEqual, areDataViewsEqual, areDatesEqual, areErrorsEqual, areFunctionsEqual, areMapsEqual, areObjectsEqual, arePrimitiveWrappersEqual, areRegExpsEqual, areSetsEqual, areTypedArraysEqual, areUrlsEqual, }) {\n return {\n '[object Arguments]': areObjectsEqual,\n '[object Array]': areArraysEqual,\n '[object ArrayBuffer]': areArrayBuffersEqual,\n '[object AsyncGeneratorFunction]': areFunctionsEqual,\n '[object BigInt]': arePrimitiveWrappersEqual,\n '[object BigInt64Array]': areTypedArraysEqual,\n '[object BigUint64Array]': areTypedArraysEqual,\n '[object Boolean]': arePrimitiveWrappersEqual,\n '[object DataView]': areDataViewsEqual,\n '[object Date]': areDatesEqual,\n // If an error tag, it should be tested explicitly. Like RegExp, the properties are not\n // enumerable, and therefore will give false positives if tested like a standard object.\n '[object Error]': areErrorsEqual,\n '[object Float16Array]': areTypedArraysEqual,\n '[object Float32Array]': areTypedArraysEqual,\n '[object Float64Array]': areTypedArraysEqual,\n '[object Function]': areFunctionsEqual,\n '[object GeneratorFunction]': areFunctionsEqual,\n '[object Int8Array]': areTypedArraysEqual,\n '[object Int16Array]': areTypedArraysEqual,\n '[object Int32Array]': areTypedArraysEqual,\n '[object Map]': areMapsEqual,\n '[object Number]': arePrimitiveWrappersEqual,\n '[object Object]': (a, b, state) => \n // The exception for value comparison is custom `Promise`-like class instances. These should\n // be treated the same as standard `Promise` objects, which means strict equality, and if\n // it reaches this point then that strict equality comparison has already failed.\n typeof a.then !== 'function' && typeof b.then !== 'function' && areObjectsEqual(a, b, state),\n // For RegExp, the properties are not enumerable, and therefore will give false positives if\n // tested like a standard object.\n '[object RegExp]': areRegExpsEqual,\n '[object Set]': areSetsEqual,\n '[object String]': arePrimitiveWrappersEqual,\n '[object URL]': areUrlsEqual,\n '[object Uint8Array]': areTypedArraysEqual,\n '[object Uint8ClampedArray]': areTypedArraysEqual,\n '[object Uint16Array]': areTypedArraysEqual,\n '[object Uint32Array]': areTypedArraysEqual,\n };\n}\n\n/**\n * Whether the items passed are deeply-equal in value.\n */\nconst deepEqual = createCustomEqual();\n/**\n * Whether the items passed are deeply-equal in value based on strict comparison.\n */\nconst strictDeepEqual = createCustomEqual({ strict: true });\n/**\n * Whether the items passed are deeply-equal in value, including circular references.\n */\nconst circularDeepEqual = createCustomEqual({ circular: true });\n/**\n * Whether the items passed are deeply-equal in value, including circular references,\n * based on strict comparison.\n */\nconst strictCircularDeepEqual = createCustomEqual({\n circular: true,\n strict: true,\n});\n/**\n * Whether the items passed are shallowly-equal in value.\n */\nconst shallowEqual = createCustomEqual({\n createInternalComparator: () => sameValueEqual,\n});\n/**\n * Whether the items passed are shallowly-equal in value based on strict comparison\n */\nconst strictShallowEqual = createCustomEqual({\n strict: true,\n createInternalComparator: () => sameValueEqual,\n});\n/**\n * Whether the items passed are shallowly-equal in value, including circular references.\n */\nconst circularShallowEqual = createCustomEqual({\n circular: true,\n createInternalComparator: () => sameValueEqual,\n});\n/**\n * Whether the items passed are shallowly-equal in value, including circular references,\n * based on strict comparison.\n */\nconst strictCircularShallowEqual = createCustomEqual({\n circular: true,\n createInternalComparator: () => sameValueEqual,\n strict: true,\n});\n/**\n * Create a custom equality comparison method.\n *\n * This can be done to create very targeted comparisons in extreme hot-path scenarios\n * where the standard methods are not performant enough, but can also be used to provide\n * support for legacy environments that do not support expected features like\n * `RegExp.prototype.flags` out of the box.\n */\nfunction createCustomEqual(options = {}) {\n const { circular = false, createInternalComparator: createCustomInternalComparator, createState, strict = false, } = options;\n const config = createEqualityComparatorConfig(options);\n const comparator = createEqualityComparator(config);\n const equals = createCustomInternalComparator\n ? createCustomInternalComparator(comparator)\n : createInternalEqualityComparator(comparator);\n return createIsEqual({ circular, comparator, createState, equals, strict });\n}\n\nexport { circularDeepEqual, circularShallowEqual, createCustomEqual, deepEqual, sameValueEqual, sameValueZeroEqual, shallowEqual, strictCircularDeepEqual, strictCircularShallowEqual, strictDeepEqual, strictEqual, strictShallowEqual };\n","import { createCustomEqual } from 'fast-equals';\n/** Implements a deep equals using `fast-equals.createCustomEqual`. Functions\n * are always considered equal, and circular references are tracked to avoid\n * infinite recursion on self-referential inputs.\n *\n * @param a - The first element to compare\n * @param b - The second element to compare\n * @returns - True if the `a` and `b` are deeply equal, false otherwise\n */\nconst deepEquals = createCustomEqual({\n circular: true,\n createCustomConfig: () => ({\n areFunctionsEqual(_a, b) {\n return typeof b === 'function';\n },\n }),\n});\nexport default deepEquals;\n//# sourceMappingURL=deepEquals.js.map","'use strict'\n\n/** @type {(value: string) => boolean} */\nconst isUUID = RegExp.prototype.test.bind(/^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)$/u)\n\n/** @type {(value: string) => boolean} */\nconst isPort = RegExp.prototype.test.bind(/^\\d*$/u)\n\n/** @type {(value: string) => boolean} */\nconst isHexPair = RegExp.prototype.test.bind(/^[\\da-f]{2}$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isUnreserved = RegExp.prototype.test.bind(/^[\\da-z\\-._~]$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isPathCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\\-._~!$&'()*+,;=:@/]$/u)\n\n/** @type {(value: string) => boolean} */\nconst isQueryFragmentCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\\-._~!$&'()*+,;=:@/?]$/u)\n\n/** @type {(value: string) => boolean} */\nconst isUserinfoCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\\-._~!$&'()*+,;=:]$/u)\n\n/**\n * @param {Array} input\n * @returns {string}\n */\nfunction stringArrayToHexStripped (input) {\n let acc = ''\n let code = 0\n let i = 0\n\n for (i = 0; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (code === 48) {\n continue\n }\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n break\n }\n\n for (i += 1; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n }\n return acc\n}\n\n/** @type {(value: string) => boolean} */\nconst isHextet = RegExp.prototype.test.bind(/^[\\dA-Fa-f]{1,4}$/)\n\n/** @type {(value: string) => boolean} */\nconst isIPvFuture = RegExp.prototype.test.bind(/^[vV][\\dA-Fa-f]+\\.[A-Za-z\\d\\-._~!$&'()*+,;=:]+$/)\n\n/** @type {(value: string) => boolean} */\nconst isZoneCharacter = RegExp.prototype.test.bind(/^[A-Za-z\\d\\-._~]$/)\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nconst nonSimpleDomain = RegExp.prototype.test.bind(/[^!\"$&'()*+,\\-.;=_`a-z{}~]/u)\n\n/** @type {(value: string) => boolean} */\nconst nonSimpleDomainChars = RegExp.prototype.test.bind(/[^\\d!\"$&'()*+,\\-.;=_`a-z{}~]/u)\n\n/** @type {(value: string) => boolean} */\nconst numericLastLabel = RegExp.prototype.test.bind(/(?:^|\\.)\\d+$/u)\n\n/**\n * True when `new URL('http://' + domain).hostname` may differ from `domain`,\n * i.e. when the caller must fall back to the WHATWG parser.\n *\n * Same purpose as `nonSimpleDomain`, but digits are allowed: for this character\n * set `hostname` is the identity, *except* that an all-numeric final label is\n * read as IPv4 shorthand (\"1.2.3\" -> \"1.2.0.3\", \"127.1\" -> \"127.0.0.1\",\n * \"a.b.1\" throws), which is why `nonSimpleDomain` excludes digits outright.\n * Rejecting that one shape lets the common `mail2.example.org` case stay on the\n * fast path.\n *\n * @param {string} domain - must already be lowercased\n * @returns {boolean}\n */\nfunction nonSimpleMailtoDomain (domain) {\n return nonSimpleDomainChars(domain) || numericLastLabel(domain)\n}\n\n/**\n * @param {string} zone\n * @returns {boolean}\n */\nfunction isZoneIdentifier (zone) {\n if (zone.length === 0) return false\n\n for (let i = 0; i < zone.length; i++) {\n if (isZoneCharacter(zone[i])) continue\n if (zone[i] === '%' && i + 2 < zone.length && isHexPair(zone.slice(i + 1, i + 3))) {\n i += 2\n continue\n }\n return false\n }\n\n return true\n}\n\n/**\n * Compresses the longest run of zero hextets to \"::\" per RFC 5952. A run of a\n * single zero hextet is left uncompressed. On ties the leftmost run wins.\n *\n * @param {string[]} hextets\n * @returns {string}\n */\nfunction compressIPv6ZeroRun (hextets) {\n let bestStart = -1\n let bestLength = 0\n let runStart = -1\n let runLength = 0\n for (let i = 0; i < hextets.length; i++) {\n if (hextets[i] === '0') {\n if (runStart === -1) runStart = i\n runLength++\n if (runLength > bestLength) {\n bestLength = runLength\n bestStart = runStart\n }\n } else {\n runStart = -1\n runLength = 0\n }\n }\n\n if (bestLength < 2) return hextets.join(':')\n\n const head = hextets.slice(0, bestStart).join(':')\n const tail = hextets.slice(bestStart + bestLength).join(':')\n return head + '::' + tail\n}\n\n/**\n * Validates an IPv6 address against the alternatives in RFC 3986 section\n * 3.2.2 and returns the same address with leading hextet zeroes removed.\n * An embedded IPv4 address counts as two hextets and is only valid at the end.\n *\n * @param {string} input\n * @returns {string|undefined}\n */\nfunction normalizeIPv6Address (input) {\n const compression = input.indexOf('::')\n if (compression !== -1 && input.indexOf('::', compression + 1) !== -1) return undefined\n\n const left = compression === -1 ? input.split(':') : input.slice(0, compression).split(':')\n const right = compression === -1 ? [] : input.slice(compression + 2).split(':')\n if (compression !== -1) {\n if (left.length === 1 && left[0] === '') left.length = 0\n if (right.length === 1 && right[0] === '') right.length = 0\n }\n\n const parts = left.concat(right)\n let hextetCount = 0\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i]\n if (part === '') return undefined\n\n if (part.indexOf('.') !== -1) {\n if (i !== parts.length - 1 || (compression !== -1 && right.length === 0) || !isIPv4(part)) return undefined\n hextetCount += 2\n continue\n }\n\n if (!isHextet(part)) return undefined\n parts[i] = parseInt(part, 16).toString(16)\n hextetCount++\n }\n\n if (compression === -1) {\n if (hextetCount !== 8) return undefined\n return compressIPv6ZeroRun(parts)\n }\n if (hextetCount >= 8) return undefined\n\n // expand \"::\" then re-compress the longest run for a canonical result\n const expanded = parts.slice(0, left.length)\n for (let i = hextetCount; i < 8; i++) expanded.push('0')\n for (let i = left.length; i < parts.length; i++) expanded.push(parts[i])\n return compressIPv6ZeroRun(expanded)\n}\n\n/**\n * @typedef {Object} NormalizeIPv6Result\n * @property {string} host - The normalized host.\n * @property {string} [escapedHost] - The escaped host.\n * @property {boolean} isIPV6 - Indicates if the host is an IPv6 address.\n * @property {boolean} [isIPVFuture] - Indicates if the host is an IPvFuture literal.\n * @property {boolean} [error] - Indicates if a bracketed IP literal is malformed.\n */\n\n/**\n * Validates and normalizes a bracketed IP literal. Raw zone separators remain\n * accepted for backwards compatibility, while encoded separators and zone\n * contents follow RFC 6874.\n *\n * @param {string} host\n * @returns {NormalizeIPv6Result}\n */\nfunction normalizeIPv6 (host) {\n const bracketed = host[0] === '[' && host[host.length - 1] === ']'\n const hasBracket = host[0] === '[' || host[host.length - 1] === ']'\n if (hasBracket && !bracketed) return { host, isIPV6: false, error: true }\n\n let input = bracketed ? host.slice(1, -1) : host\n if (bracketed && isIPvFuture(input)) {\n input = input.toLowerCase()\n return { host: `[${input}]`, escapedHost: input, isIPV6: false, isIPVFuture: true }\n }\n\n if (findToken(input, ':') < 2) {\n return { host, isIPV6: false, error: bracketed }\n }\n\n let zoneIdentifier = ''\n const zoneSeparator = input.indexOf('%')\n if (zoneSeparator !== -1) {\n const separatorLength = input.slice(zoneSeparator, zoneSeparator + 3).toLowerCase() === '%25' ? 3 : 1\n zoneIdentifier = input.slice(zoneSeparator + separatorLength)\n if (!isZoneIdentifier(zoneIdentifier)) return { host, isIPV6: false, error: true }\n input = input.slice(0, zoneSeparator)\n }\n\n const address = normalizeIPv6Address(input)\n if (address === undefined) return { host, isIPV6: false, error: true }\n\n return {\n host: address + (zoneIdentifier ? '%' + zoneIdentifier : ''),\n escapedHost: address + (zoneIdentifier ? '%25' + zoneIdentifier : ''),\n isIPV6: true\n }\n}\n\n/**\n * @param {string} str\n * @param {string} token\n * @returns {number}\n */\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\n/**\n * @param {string} path\n * @returns {string}\n *\n * @see https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n */\nfunction removeDotSegments (path) {\n let input = path\n const output = []\n let nextSlash = -1\n let len = 0\n\n // eslint-disable-next-line no-cond-assign\n while (len = input.length) {\n if (len === 1) {\n if (input === '.') {\n break\n } else if (input === '/') {\n output.push('/')\n break\n } else {\n output.push(input)\n break\n }\n } else if (len === 2) {\n if (input[0] === '.') {\n if (input[1] === '.') {\n break\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.') {\n output.push('/')\n break\n }\n }\n } else if (len === 3) {\n if (input === '/..') {\n if (output.length !== 0) {\n output.pop()\n }\n output.push('/')\n break\n }\n }\n if (input[0] === '.') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(3)\n continue\n }\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(2)\n continue\n } else if (input[2] === '.') {\n if (input[3] === '/') {\n input = input.slice(3)\n if (output.length !== 0) {\n output.pop()\n }\n continue\n }\n }\n }\n }\n\n // Rule 2E: Move normal path segment to output\n if ((nextSlash = input.indexOf('/', 1)) === -1) {\n output.push(input)\n break\n } else {\n output.push(input.slice(0, nextSlash))\n input = input.slice(nextSlash)\n }\n }\n\n return output.join('')\n}\n\n/**\n * Re-escape RFC 3986 gen-delims that must not appear literally in the host.\n * After the URI regex parses, these characters cannot be literal in the host\n * field, so any that appear after decoding came from percent-encoding and\n * must be restored to prevent authority structure changes.\n *\n * @param {string} host\n * @param {boolean} isIP - true for IPv4/IPv6 hosts (skip colon re-escaping)\n * @returns {string}\n */\nconst HOST_DELIMS = { '@': '%40', '/': '%2F', '?': '%3F', '#': '%23', ':': '%3A' }\nconst HOST_DELIM_RE = /[@/?#:]/g\nconst HOST_DELIM_NO_COLON_RE = /[@/?#]/g\n\nfunction reescapeHostDelimiters (host, isIP) {\n const re = isIP ? HOST_DELIM_NO_COLON_RE : HOST_DELIM_RE\n re.lastIndex = 0\n return host.replace(re, (ch) => HOST_DELIMS[ch])\n}\n\n/**\n * Normalizes percent escapes and optionally decodes only unreserved ASCII bytes.\n * Reserved delimiters such as `%2F` stay escaped; `%2E` is unreserved.\n *\n * @param {string} input\n * @param {boolean} [decodeUnreserved=false]\n * @returns {string}\n */\nfunction normalizePercentEncoding (input, decodeUnreserved = false) {\n if (input.indexOf('%') === -1) {\n return input\n }\n\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n if (input[i] === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n const normalizedHex = hex.toUpperCase()\n const decoded = String.fromCharCode(parseInt(normalizedHex, 16))\n\n if (decodeUnreserved && isUnreserved(decoded)) {\n output += decoded\n } else {\n output += '%' + normalizedHex\n }\n\n i += 2\n continue\n }\n }\n\n output += input[i]\n }\n\n return output\n}\n\n/** Pre-built `%XX` strings for every byte. Avoids per-call hex math/concat. */\nconst BYTE_HEX = new Array(256)\n{\n const HEX_DIGITS = '0123456789ABCDEF'\n for (let i = 0; i < 256; i++) {\n BYTE_HEX[i] = '%' + HEX_DIGITS[i >> 4] + HEX_DIGITS[i & 0xF]\n }\n}\n\n/**\n * Mirrors the pass-through set of the deprecated `escape()` global:\n * `A-Z a-z 0-9 * + - . / @ _`. Keeps drop-in semantics for ASCII input.\n *\n * @param {number} cp\n * @returns {boolean}\n */\nfunction isEscapeSafe (cp) {\n return (\n (cp >= 0x30 && cp <= 0x39) ||\n (cp >= 0x41 && cp <= 0x5A) ||\n (cp >= 0x61 && cp <= 0x7A) ||\n cp === 0x2A || cp === 0x2B || cp === 0x2D || cp === 0x2E ||\n cp === 0x2F || cp === 0x40 || cp === 0x5F\n )\n}\n\n/**\n * RFC 3986 percent-encode a non-ASCII Unicode code point as UTF-8 bytes.\n * Caller handles the ASCII branch inline for speed.\n *\n * @param {number} cp - Unicode code point (>= 0x80, <= 0x10FFFF)\n * @returns {string}\n */\nfunction percentEncodeNonAscii (cp) {\n if (cp < 0x800) {\n return BYTE_HEX[0xC0 | (cp >> 6)] +\n BYTE_HEX[0x80 | (cp & 0x3F)]\n }\n if (cp < 0x10000) {\n return BYTE_HEX[0xE0 | (cp >> 12)] +\n BYTE_HEX[0x80 | ((cp >> 6) & 0x3F)] +\n BYTE_HEX[0x80 | (cp & 0x3F)]\n }\n return BYTE_HEX[0xF0 | (cp >> 18)] +\n BYTE_HEX[0x80 | ((cp >> 12) & 0x3F)] +\n BYTE_HEX[0x80 | ((cp >> 6) & 0x3F)] +\n BYTE_HEX[0x80 | (cp & 0x3F)]\n}\n\n/**\n * Normalizes path data without turning reserved escapes into live path syntax.\n * Valid escapes are uppercased, raw unsafe characters are escaped, and only\n * unreserved bytes that are not `.` are decoded.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizePathEncoding (input) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n const normalizedHex = hex.toUpperCase()\n const decoded = String.fromCharCode(parseInt(normalizedHex, 16))\n\n if (decoded !== '.' && isUnreserved(decoded)) {\n output += decoded\n } else {\n output += '%' + normalizedHex\n }\n\n i += 2\n continue\n }\n }\n\n if (isPathCharacter(ch)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += isEscapeSafe(code) ? ch : BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Serializes a path without rewriting reserved data. Raw RFC 3986 path\n * characters remain literal, valid escapes are preserved and uppercased, and\n * everything else is UTF-8 percent-encoded. In a path-noscheme, a colon in the\n * first segment must be escaped so the result cannot be parsed as a scheme.\n *\n * @param {string} input\n * @param {boolean} [pathNoScheme=false]\n * @returns {string}\n */\nfunction serializePathEncoding (input, pathNoScheme = false) {\n let output = ''\n let firstSegment = pathNoScheme && input[0] !== '/'\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n output += '%' + hex.toUpperCase()\n i += 2\n continue\n }\n }\n\n if (ch === '/') {\n firstSegment = false\n }\n\n if (isPathCharacter(ch) && (ch !== ':' || !firstSegment)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Normalizes the percent-encoding of a query or fragment component.\n *\n * Like `normalizePathEncoding`, but uses the query/fragment character set\n * (which additionally allows `?`) and decodes `.` since it has no dot-segment\n * meaning outside of a path.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizeQueryFragmentEncoding (input) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n const normalizedHex = hex.toUpperCase()\n const decoded = String.fromCharCode(parseInt(normalizedHex, 16))\n\n if (isUnreserved(decoded)) {\n output += decoded\n } else {\n output += '%' + normalizedHex\n }\n\n i += 2\n continue\n }\n }\n\n if (isQueryFragmentCharacter(ch)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += isEscapeSafe(code) ? ch : BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Percent-encodes a URI component using its RFC 3986 literal character set.\n * Existing valid escapes are preserved and normalized to uppercase hex.\n *\n * @param {string} input\n * @param {(value: string) => boolean} isAllowed\n * @returns {string}\n */\nfunction encodeComponent (input, isAllowed) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n output += '%' + hex.toUpperCase()\n i += 2\n continue\n }\n }\n\n if (isAllowed(ch)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Encodes userinfo while preserving its RFC 3986 §3.2.1 literal characters.\n * In particular, authority delimiters such as `@`, `/`, `?`, and `#` are data.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction encodeUserinfo (input) {\n return encodeComponent(input, isUserinfoCharacter)\n}\n\n/**\n * Encodes query data using the RFC 3986 §3.4 grammar. A literal `#` must be\n * escaped because it would otherwise begin the fragment component.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction encodeQuery (input) {\n return encodeComponent(input, isQueryFragmentCharacter)\n}\n\n/**\n * Encodes fragment data using the RFC 3986 §3.5 grammar.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction encodeFragment (input) {\n return encodeComponent(input, isQueryFragmentCharacter)\n}\n\n/**\n * Escapes a component while preserving existing valid percent escapes.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction escapePreservingEscapes (input) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n output += '%' + hex.toUpperCase()\n i += 2\n continue\n }\n }\n\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += isEscapeSafe(code) ? ch : BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n\n return output\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @returns {string|undefined}\n */\nfunction recomposeAuthority (component) {\n const uriTokens = []\n\n if (component.userinfo !== undefined) {\n uriTokens.push(encodeUserinfo(component.userinfo))\n uriTokens.push('@')\n }\n\n if (component.host !== undefined) {\n let host = component.host\n if (!isIPv4(host)) {\n let ipV6res = normalizeIPv6(host)\n if (ipV6res.isIPV6 !== true && ipV6res.isIPVFuture !== true) {\n // Decode only unreserved bytes, once. In particular, keep %25 encoded\n // so it cannot introduce a second escape during recomposition.\n host = normalizePercentEncoding(host, true)\n ipV6res = normalizeIPv6(host)\n }\n if (ipV6res.isIPV6 === true || ipV6res.isIPVFuture === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = reescapeHostDelimiters(host, false)\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof component.port === 'number' || typeof component.port === 'string') {\n const port = String(component.port)\n if (!isPort(port)) {\n throw new TypeError('URI port is malformed.')\n }\n uriTokens.push(':')\n uriTokens.push(port)\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n BYTE_HEX,\n percentEncodeNonAscii,\n nonSimpleDomain,\n nonSimpleMailtoDomain,\n recomposeAuthority,\n reescapeHostDelimiters,\n normalizePercentEncoding,\n normalizePathEncoding,\n serializePathEncoding,\n normalizeQueryFragmentEncoding,\n encodeUserinfo,\n encodeQuery,\n encodeFragment,\n escapePreservingEscapes,\n removeDotSegments,\n isIPv4,\n isUUID,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n","'use strict'\n\nconst { isUUID, BYTE_HEX, percentEncodeNonAscii, nonSimpleMailtoDomain } = require('./utils')\nconst URN_REG = /^([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-./:;=@]|%[\\da-f]{2})+)$/iu\n\nconst supportedSchemeNames = /** @type {const} */ (['http', 'https', 'ws',\n 'wss', 'urn', 'urn:uuid', 'mailto'])\n\n/** @typedef {supportedSchemeNames[number]} SchemeName */\n\n/**\n * @param {string} name\n * @returns {name is SchemeName}\n */\nfunction isValidSchemeName (name) {\n return supportedSchemeNames.indexOf(/** @type {*} */ (name)) !== -1\n}\n\n/**\n * @callback SchemeFn\n * @param {import('../types/index').URIComponent} component\n * @param {import('../types/index').Options} options\n * @returns {import('../types/index').URIComponent}\n */\n\n/**\n * @typedef {Object} SchemeHandler\n * @property {SchemeName} scheme - The scheme name.\n * @property {boolean} [domainHost] - Indicates if the scheme supports domain hosts.\n * @property {SchemeFn} parse - Function to parse the URI component for this scheme.\n * @property {SchemeFn} serialize - Function to serialize the URI component for this scheme.\n * @property {boolean} [skipNormalize] - Indicates if normalization should be skipped for this scheme.\n * @property {boolean} [absolutePath] - Indicates if the scheme uses absolute paths.\n * @property {boolean} [unicodeSupport] - Indicates if the scheme supports Unicode.\n */\n\n/**\n * @param {import('../types/index').URIComponent} wsComponent\n * @returns {boolean}\n */\nfunction wsIsSecure (wsComponent) {\n if (wsComponent.secure === true) {\n return true\n } else if (wsComponent.secure === false) {\n return false\n } else if (wsComponent.scheme) {\n return (\n wsComponent.scheme.length === 3 &&\n (wsComponent.scheme[0] === 'w' || wsComponent.scheme[0] === 'W') &&\n (wsComponent.scheme[1] === 's' || wsComponent.scheme[1] === 'S') &&\n (wsComponent.scheme[2] === 's' || wsComponent.scheme[2] === 'S')\n )\n } else {\n return false\n }\n}\n\n/** @type {SchemeFn} */\nfunction httpParse (component) {\n if (!component.host) {\n component.error = component.error || 'HTTP URIs must have a host.'\n }\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction httpSerialize (component) {\n const secure = String(component.scheme).toLowerCase() === 'https'\n\n // normalize the default port\n if (component.port === (secure ? 443 : 80) || component.port === '') {\n component.port = undefined\n }\n\n // normalize the empty path\n if (!component.path) {\n component.path = '/'\n }\n\n // NOTE: We do not parse query strings for HTTP URIs\n // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n // and not the HTTP spec.\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction wsParse (wsComponent) {\n// indicate if the secure flag is set\n wsComponent.secure = wsIsSecure(wsComponent)\n\n // construct resouce name\n wsComponent.resourceName = (wsComponent.path || '/') + (wsComponent.query ? '?' + wsComponent.query : '')\n wsComponent.path = undefined\n wsComponent.query = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction wsSerialize (wsComponent) {\n// normalize the default port\n if (wsComponent.port === (wsIsSecure(wsComponent) ? 443 : 80) || wsComponent.port === '') {\n wsComponent.port = undefined\n }\n\n // ensure scheme matches secure flag\n if (typeof wsComponent.secure === 'boolean') {\n wsComponent.scheme = (wsComponent.secure ? 'wss' : 'ws')\n wsComponent.secure = undefined\n }\n\n // reconstruct path from resource name\n if (wsComponent.resourceName) {\n const queryIndex = wsComponent.resourceName.indexOf('?')\n const path = queryIndex === -1\n ? wsComponent.resourceName\n : wsComponent.resourceName.slice(0, queryIndex)\n wsComponent.path = (path && path !== '/' ? path : undefined)\n wsComponent.query = queryIndex === -1\n ? undefined\n : wsComponent.resourceName.slice(queryIndex + 1)\n wsComponent.resourceName = undefined\n }\n\n // forbid fragment component\n wsComponent.fragment = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnParse (urnComponent, options) {\n if (!urnComponent.path) {\n urnComponent.error = 'URN can not be parsed'\n return urnComponent\n }\n const matches = urnComponent.path.match(URN_REG)\n if (matches && matches[0] === urnComponent.path) {\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n urnComponent.nid = matches[1].toLowerCase()\n urnComponent.nss = matches[2]\n const urnScheme = `${scheme}:${options.nid || urnComponent.nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n urnComponent.path = undefined\n\n if (schemeHandler) {\n urnComponent = schemeHandler.parse(urnComponent, options)\n }\n } else {\n urnComponent.error = urnComponent.error || 'URN can not be parsed.'\n }\n\n return urnComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnSerialize (urnComponent, options) {\n if (urnComponent.nid === undefined) {\n throw new Error('URN without nid cannot be serialized')\n }\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n const nid = urnComponent.nid.toLowerCase()\n const urnScheme = `${scheme}:${options.nid || nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n\n if (schemeHandler) {\n urnComponent = schemeHandler.serialize(urnComponent, options)\n }\n\n const uriComponent = urnComponent\n const nss = urnComponent.nss\n uriComponent.path = `${nid || options.nid}:${nss}`\n\n options.skipEscape = true\n return uriComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidParse (urnComponent, options) {\n const uuidComponent = urnComponent\n uuidComponent.uuid = uuidComponent.nss\n uuidComponent.nss = undefined\n\n if (!options.tolerant && (!uuidComponent.uuid || !isUUID(uuidComponent.uuid))) {\n uuidComponent.error = uuidComponent.error || 'UUID is not valid.'\n }\n\n return uuidComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidSerialize (uuidComponent) {\n const urnComponent = uuidComponent\n // normalize UUID\n urnComponent.nss = (uuidComponent.uuid || '').toLowerCase()\n return urnComponent\n}\n\nconst http = /** @type {SchemeHandler} */ ({\n scheme: 'http',\n domainHost: true,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst https = /** @type {SchemeHandler} */ ({\n scheme: 'https',\n domainHost: http.domainHost,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst ws = /** @type {SchemeHandler} */ ({\n scheme: 'ws',\n domainHost: true,\n parse: wsParse,\n serialize: wsSerialize\n})\n\nconst wss = /** @type {SchemeHandler} */ ({\n scheme: 'wss',\n domainHost: ws.domainHost,\n parse: ws.parse,\n serialize: ws.serialize\n})\n\nconst urn = /** @type {SchemeHandler} */ ({\n scheme: 'urn',\n parse: urnParse,\n serialize: urnSerialize,\n skipNormalize: true\n})\n\nconst urnuuid = /** @type {SchemeHandler} */ ({\n scheme: 'urn:uuid',\n parse: urnuuidParse,\n serialize: urnuuidSerialize,\n skipNormalize: true\n})\n\n/**\n * Allow-sets for `encodeWithAllow`, each a `{ all, table, allowNonAscii }`\n * descriptor built by `allowSet`:\n *\n * - `LOCAL_PART` is the intersection of upstream uri-js's VCHAR and\n * NOT_PATH_NOSCHEME, minus \",\": the serializer joins recipients with \",\" and\n * `mailtoParse` splits the path on it, so a comma left literal inside a local\n * part would silently become a recipient delimiter.\n * - `HFNAME` is the qchar allow-set used for header names/values.\n * - `DTEXT` is RFC 6068 dtext-no-obs restricted to characters that are also\n * safe in a URI path; `DTEXT_IRI` additionally permits non-ASCII for\n * `unicodeSupport`.\n */\nconst LOCAL_PART_ALLOWED = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$'()*+=\"\nconst HFNAME_ALLOWED = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$'()*+,;:@\"\nconst DTEXT_ALLOWED = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$'()*+;:\"\n\n/**\n * @typedef {Object} AllowSet\n * @property {RegExp} all - matches a whole string needing no encoding at all.\n * @property {Uint8Array} table - per-ASCII-code allow lookup for the slow path.\n * @property {boolean} allowNonAscii - pass non-ASCII code points through (IRI).\n */\n\n/**\n * `all` deliberately excludes \"%\" and (for the IRI variant) surrogates, so any\n * input needing escape normalization or surrogate repair falls to the slow path.\n *\n * @param {string} chars\n * @param {boolean} [allowNonAscii=false]\n * @returns {AllowSet}\n */\nfunction allowSet (chars, allowNonAscii = false) {\n const table = new Uint8Array(128)\n for (let i = 0; i < chars.length; i++) {\n table[chars.charCodeAt(i)] = 1\n }\n const escaped = chars.replace(/[\\\\\\]^-]/gu, '\\\\$&')\n const cls = allowNonAscii ? `[${escaped}]|[^\\\\0-\\\\x7F\\\\uD800-\\\\uDFFF]` : `[${escaped}]`\n return { all: new RegExp(`^(?:${cls})*$`, 'u'), table, allowNonAscii }\n}\n\nconst LOCAL_PART = allowSet(LOCAL_PART_ALLOWED)\nconst HFNAME = allowSet(HFNAME_ALLOWED)\nconst DTEXT = allowSet(DTEXT_ALLOWED)\nconst DTEXT_IRI = allowSet(DTEXT_ALLOWED, true)\n\nconst HEX_PAIR = /^[\\da-f]{2}$/iu\nconst MAILTO_DOMAIN_LITERAL = /^\\[[\\x21-\\x5A\\x5E-\\x7E]*\\]$/u\nconst MAILTO_DOMAIN_ERROR = 'URI mailto has an invalid recipient domain.'\nconst HAS_SURROGATE = /[\\uD800-\\uDFFF]/u\n\n/**\n * @param {string} str\n * @returns {string}\n */\nfunction decodeHex (str) {\n if (typeof str !== 'string' || str.indexOf('%') === -1) {\n return str\n }\n try {\n return decodeURIComponent(str)\n } catch {\n return str\n }\n}\n\n/**\n * Replaces lone surrogates with U+FFFD, leaving valid pairs intact. Only called\n * when `HAS_SURROGATE` matched, so the scan cost is not on the common path.\n * (`String.prototype.toWellFormed` would do this natively but is Node 20+.)\n *\n * @param {string} input\n * @returns {string}\n */\nfunction replaceLoneSurrogates (input) {\n let result = ''\n for (let i = 0; i < input.length; i++) {\n const code = input.charCodeAt(i)\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n result += input[i] + input[i + 1]\n i++\n continue\n }\n }\n result += (code >= 0xD800 && code <= 0xDFFF) ? '\\uFFFD' : input[i]\n }\n return result\n}\n\n/**\n * Percent-encodes everything outside `set`, preserving existing valid escapes\n * (uppercased) and repairing lone surrogates.\n *\n * ASCII uses `BYTE_HEX` rather than `encodeURIComponent`. That is equivalent\n * only because every character `encodeURIComponent` leaves unescaped\n * (`A-Za-z0-9-_.!~*'()`) is present in all of the allow-sets above, so no such\n * character ever reaches the encode branch. Re-check if a set is narrowed.\n *\n * @param {string} input\n * @param {AllowSet} set\n * @returns {string}\n */\nfunction encodeWithAllow (input, set) {\n if (set.all.test(input)) {\n return input\n }\n\n const table = set.table\n let result = ''\n for (let i = 0; i < input.length; i++) {\n const code = input.charCodeAt(i)\n\n if (code < 0x80) {\n if (table[code] === 1) {\n result += input[i]\n } else if (code === 0x25 && i + 2 < input.length && HEX_PAIR.test(input.slice(i + 1, i + 3))) {\n result += '%' + input.slice(i + 1, i + 3).toUpperCase()\n i += 2\n } else {\n result += BYTE_HEX[code]\n }\n continue\n }\n\n if (code < 0xD800 || code > 0xDFFF) {\n result += set.allowNonAscii ? input[i] : percentEncodeNonAscii(code)\n continue\n }\n\n if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n result += set.allowNonAscii\n ? input[i] + input[i + 1]\n : percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n continue\n }\n }\n\n result += set.allowNonAscii ? '\\uFFFD' : percentEncodeNonAscii(0xFFFD)\n }\n return result\n}\n\n/**\n * @param {string} domain\n * @param {import('../types/index').Options} [options]\n * @param {{error?:string}} [component]\n * @returns {string}\n */\nfunction mailtoNormalizeDomain (domain, options, component) {\n const normalizedDomain = String(domain).toLowerCase()\n\n if (MAILTO_DOMAIN_LITERAL.test(normalizedDomain)) {\n return normalizedDomain\n }\n\n // `hostname` is the identity for these, so skip constructing a WHATWG URL.\n if (normalizedDomain !== '' && !nonSimpleMailtoDomain(normalizedDomain)) {\n return normalizedDomain\n }\n\n try {\n const parsedDomain = new URL('http://' + normalizedDomain)\n if (\n parsedDomain.username ||\n parsedDomain.password ||\n parsedDomain.port ||\n parsedDomain.pathname !== '/' ||\n parsedDomain.search ||\n parsedDomain.hash ||\n !parsedDomain.hostname\n ) {\n throw new Error(MAILTO_DOMAIN_ERROR)\n }\n\n return options && options.unicodeSupport\n ? normalizedDomain\n : parsedDomain.hostname\n } catch {\n if (component) {\n component.error = component.error || MAILTO_DOMAIN_ERROR\n }\n return normalizedDomain\n }\n}\n\n/**\n * Percent-encodes everything in a recipient domain that is not `dtext-no-obs`\n * (RFC 6068). Serialize-only: `mailtoNormalizeDomain` returns the domain\n * verbatim when validation fails, and `MAILTO_DOMAIN_LITERAL` accepts the full\n * RFC 5321 dcontent range (which includes \"?\", \"#\", \"&\" and \"/\"), so without\n * this an attacker-supplied recipient could inject header fields or a fragment\n * into the serialized URI. `mailtoParse` deliberately reports the raw domain\n * instead, so it must not use this.\n * @param {string} domain\n * @param {import('../types/index').Options} [options]\n * @returns {string}\n */\nfunction mailtoEncodeDomain (domain, options) {\n const set = options && options.unicodeSupport ? DTEXT_IRI : DTEXT\n\n // Keep the delimiters of a domain literal, encode its contents.\n if (domain.length > 1 && domain[0] === '[' && domain[domain.length - 1] === ']') {\n return '[' + encodeWithAllow(domain.slice(1, -1), set) + ']'\n }\n\n return encodeWithAllow(domain, set)\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @param {import('../types/index').Options} options\n * @returns {import('../types/index').URIComponent}\n */\nfunction mailtoParse (component, options) {\n const mailtoComponent = component\n\n // The handler sets `skipNormalize`, so path and query arrive raw. Everything\n // here goes through `decodeHex`, which subsumes the generic normalizers --\n // except that they also fold lone surrogates to U+FFFD, so do that here.\n let rawPath = mailtoComponent.path\n let rawQuery = mailtoComponent.query\n if (rawPath && HAS_SURROGATE.test(rawPath)) rawPath = replaceLoneSurrogates(rawPath)\n if (rawQuery && HAS_SURROGATE.test(rawQuery)) rawQuery = replaceLoneSurrogates(rawQuery)\n\n const to = rawPath\n ? (rawPath.indexOf(',') === -1 ? [rawPath] : rawPath.split(','))\n : []\n mailtoComponent.path = undefined\n\n if (rawQuery) {\n // Null prototype: header names come from untrusted input, so `headers[name]`\n // must not resolve to inherited members (\"constructor\", \"toString\", ...),\n // and \"__proto__\" has to land as a plain own property instead of hitting\n // Object.prototype's setter and being silently dropped. Allocated lazily so\n // the common subject/body-only URI does not pay for it.\n /** @type {Record|null} */\n let headers = null\n let start = 0\n while (start <= rawQuery.length) {\n let end = rawQuery.indexOf('&', start)\n if (end === -1) end = rawQuery.length\n const token = rawQuery.slice(start, end)\n start = end + 1\n\n const eqIdx = token.indexOf('=')\n if (eqIdx !== token.lastIndexOf('=')) {\n mailtoComponent.error = mailtoComponent.error || 'URI mailto has malformed header fields.'\n continue\n }\n const name = eqIdx === -1 ? token : token.slice(0, eqIdx)\n const value = eqIdx === -1 ? '' : token.slice(eqIdx + 1)\n if (name === 'to') {\n const addrs = value.split(',')\n for (let j = 0; j < addrs.length; j++) to.push(addrs[j])\n continue\n }\n if (name === 'subject') {\n mailtoComponent.subject = decodeHex(value)\n continue\n }\n if (name === 'body') {\n mailtoComponent.body = decodeHex(value)\n continue\n }\n if (headers === null) headers = /** @type {Record} */ (Object.create(null))\n headers[decodeHex(name)] = decodeHex(value)\n }\n if (headers !== null) mailtoComponent.headers = headers\n }\n\n mailtoComponent.query = undefined\n\n for (let i = 0; i < to.length; i++) {\n const rawAddr = to[i]\n const atIdx = rawAddr.lastIndexOf('@')\n if (atIdx < 0) {\n mailtoComponent.error = mailtoComponent.error || MAILTO_DOMAIN_ERROR\n to[i] = decodeHex(rawAddr)\n continue\n }\n const local = decodeHex(rawAddr.slice(0, atIdx))\n const domain = mailtoNormalizeDomain(decodeHex(rawAddr.slice(atIdx + 1)), options, mailtoComponent)\n to[i] = local + '@' + domain\n }\n\n if (to.length) mailtoComponent.to = to\n\n return mailtoComponent\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @param {import('../types/index').Options} options\n * @returns {import('../types/index').URIComponent}\n */\nfunction mailtoSerialize (component, options) {\n const mailtoComponent = component\n const to = Array.isArray(mailtoComponent.to) ? mailtoComponent.to.slice() : []\n if (to.length) {\n for (let i = 0; i < to.length; i++) {\n const addr = String(to[i])\n const atIdx = addr.lastIndexOf('@')\n const rawLocal = atIdx >= 0 ? addr.slice(0, atIdx) : addr\n const rawDomain = atIdx >= 0 ? addr.slice(atIdx + 1) : ''\n const local = encodeWithAllow(rawLocal, LOCAL_PART)\n const decodedDomain = decodeHex(rawDomain)\n // `component` is intentionally not passed: index.js's `serialize` writes\n // the error onto a private copy and returns only a string, so an error\n // recorded here would be unreachable. Safety comes from encoding instead.\n const normalizedDomain = mailtoNormalizeDomain(decodedDomain, options)\n to[i] = local + '@' + mailtoEncodeDomain(normalizedDomain, options)\n }\n // Every recipient is now fully encoded and only the joining commas are\n // literal, so bypass index.js's generic encoder, whose allow-set is\n // narrower than upstream's and would over-encode.\n mailtoComponent.path = to.join(',')\n options.skipEscape = true\n } else {\n // No recipients: drop any caller-supplied path, matching upstream uri-js.\n // `to` is the only recipient source, and `mailtoParse` always moves the\n // path into it, so a mailto component never legitimately carries one.\n mailtoComponent.path = undefined\n }\n\n const headers = mailtoComponent.headers && typeof mailtoComponent.headers === 'object'\n ? Object.assign(Object.create(null), mailtoComponent.headers)\n : Object.create(null)\n\n if (mailtoComponent.subject) headers.subject = mailtoComponent.subject\n if (mailtoComponent.body) headers.body = mailtoComponent.body\n mailtoComponent.headers = headers\n\n // `headers` has a null prototype and was filled via Object.assign, so every\n // enumerable key is an own property and no hasOwnProperty guard is needed.\n let query = ''\n let count = 0\n for (const name in headers) {\n if (count++ !== 0) query += '&'\n query += encodeWithAllow(name, HFNAME) + '=' + encodeWithAllow(String(headers[name]), HFNAME)\n }\n\n if (count !== 0) {\n mailtoComponent.query = query\n } else {\n mailtoComponent.headers = undefined\n }\n\n return mailtoComponent\n}\n\nconst mailto = /** @type {SchemeHandler} */ ({\n scheme: 'mailto',\n parse: mailtoParse,\n serialize: mailtoSerialize,\n domainHost: false,\n unicodeSupport: true,\n // `mailtoParse` re-derives every component from the raw path/query via\n // `decodeHex`, which subsumes the generic normalizers, so running them first\n // is wasted work (~28% of parsing a URI with header fields).\n skipNormalize: true,\n // A recipient list has no dot segments to remove, and `removeDotSegments`\n // would rewrite a \"./\"-prefixed local part.\n absolutePath: true\n})\n\nconst SCHEMES = /** @type {Record} */ ({\n http,\n https,\n ws,\n wss,\n urn,\n 'urn:uuid': urnuuid,\n mailto\n})\n\nObject.setPrototypeOf(SCHEMES, null)\n\n/**\n * @param {string|undefined} scheme\n * @returns {SchemeHandler|undefined}\n */\nfunction getSchemeHandler (scheme) {\n return (\n scheme && (\n SCHEMES[/** @type {SchemeName} */ (scheme)] ||\n SCHEMES[/** @type {SchemeName} */(scheme.toLowerCase())])\n ) ||\n undefined\n}\n\nmodule.exports = {\n wsIsSecure,\n SCHEMES,\n isValidSchemeName,\n getSchemeHandler,\n}\n","'use strict'\n\nconst { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, serializePathEncoding, normalizeQueryFragmentEncoding, encodeQuery, encodeFragment, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require('./lib/utils')\nconst { SCHEMES, getSchemeHandler } = require('./lib/schemes')\n\nconst VALID_SCHEME = /^[A-Za-z][A-Za-z0-9+.-]*$/u\nconst MALFORMED_SCHEME_ERROR = 'URI scheme is malformed.'\n\n/**\n * @param {string} scheme\n * @returns {string}\n */\nfunction decodeValidScheme (scheme) {\n const decodedScheme = unescape(String(scheme))\n if (!VALID_SCHEME.test(decodedScheme)) {\n throw new TypeError(MALFORMED_SCHEME_ERROR)\n }\n return decodedScheme\n}\n\n/**\n * @template {import('./types/index').URIComponent|string} T\n * @param {T} uri\n * @param {import('./types/index').Options} [options]\n * @returns {T}\n */\nfunction normalize (uri, options) {\n if (typeof uri === 'string') {\n uri = /** @type {T} */ (normalizeString(uri, options))\n } else if (typeof uri === 'object') {\n uri = /** @type {T} */ (parse(serialize(uri, options), options))\n }\n return uri\n}\n\n/**\n * @param {string} baseURI\n * @param {string} relativeURI\n * @param {import('./types/index').Options} [options]\n * @returns {string}\n */\nfunction resolve (baseURI, relativeURI, options) {\n const schemelessOptions = options ? Object.assign({ scheme: 'null' }, options) : { scheme: 'null' }\n const {\n parsed: baseParsed,\n malformedAuthorityOrPort: baseMalformed,\n malformedPercentEncoding: baseMalformedPercentEncoding,\n malformedSchemeSpecific: baseMalformedSchemeSpecific,\n malformedHost: baseMalformedHost,\n malformedScheme: baseMalformedScheme\n } = parseWithStatus(baseURI, schemelessOptions)\n const {\n parsed: relativeParsed,\n malformedAuthorityOrPort: relativeMalformed,\n malformedPercentEncoding: relativeMalformedPercentEncoding,\n malformedSchemeSpecific: relativeMalformedSchemeSpecific,\n malformedHost: relativeMalformedHost,\n malformedScheme: relativeMalformedScheme\n } = parseWithStatus(relativeURI, schemelessOptions)\n if (\n baseMalformed ||\n relativeMalformed ||\n baseMalformedPercentEncoding ||\n relativeMalformedPercentEncoding ||\n baseMalformedSchemeSpecific ||\n relativeMalformedSchemeSpecific ||\n baseMalformedHost ||\n relativeMalformedHost ||\n baseMalformedScheme ||\n relativeMalformedScheme\n ) {\n throw new Error(baseParsed.error || relativeParsed.error || 'URI is malformed.')\n }\n const resolved = resolveComponent(baseParsed, relativeParsed, schemelessOptions, true)\n const resolvedSchemeHandler = getSchemeHandler((options && options.scheme) || resolved.scheme)\n const resolvedHost = resolved.host\n const resolvedHostIsIP = resolvedHost !== undefined && resolvedHost !== '' &&\n (isIPv4(resolvedHost) || normalizeIPv6(resolvedHost).isIPV6)\n canonicalizeHost(resolved, options || {}, resolvedSchemeHandler, resolvedHostIsIP)\n // Percent escapes in an ASCII reg-name are encoded data. The WHATWG hostname\n // parser can reject them even though fast-uri preserves them safely as RFC\n // 3986 data. A raw non-ASCII host must still fail closed if conversion fails.\n const encodedASCIIHost = resolvedHost && resolvedHost.indexOf('%') !== -1 &&\n !/\\P{ASCII}/u.test(resolvedHost)\n if (resolved.error && !encodedASCIIHost) {\n throw new Error(resolved.error)\n }\n schemelessOptions.skipEscape = true\n return serialize(resolved, schemelessOptions)\n}\n\n/**\n * @param {import ('./types/index').URIComponent} base\n * @param {import ('./types/index').URIComponent} relative\n * @param {import('./types/index').Options} [options]\n * @param {boolean} [skipNormalization=false]\n * @returns {import ('./types/index').URIComponent}\n */\nfunction resolveComponent (base, relative, options, skipNormalization) {\n /** @type {import('./types/index').URIComponent} */\n const target = {}\n if (!skipNormalization) {\n base = parse(serialize(base, options), options) // normalize base component\n relative = parse(serialize(relative, options), options) // normalize relative component\n }\n options = options || {}\n\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (!relative.path) {\n target.path = base.path\n if (relative.query !== undefined) {\n target.query = relative.query\n } else {\n target.query = base.query\n }\n } else {\n if (relative.path[0] === '/') {\n target.path = removeDotSegments(relative.path)\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = '/' + relative.path\n } else if (!base.path) {\n target.path = relative.path\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf('/') + 1) + relative.path\n }\n target.path = removeDotSegments(target.path)\n }\n target.query = relative.query\n }\n // target.authority = base.authority;\n target.userinfo = base.userinfo\n target.host = base.host\n target.port = base.port\n }\n target.scheme = base.scheme\n }\n\n target.fragment = relative.fragment\n\n return target\n}\n\n/**\n * @param {import ('./types/index').URIComponent|string} uriA\n * @param {import ('./types/index').URIComponent|string} uriB\n * @param {import ('./types/index').Options} options\n * @returns {boolean}\n */\nfunction equal (uriA, uriB, options) {\n const normalizedA = normalizeComparableURI(uriA, options)\n const normalizedB = normalizeComparableURI(uriB, options)\n\n return normalizedA !== undefined && normalizedB !== undefined && normalizedA === normalizedB\n}\n\n/**\n * @param {Readonly} cmpts\n * @param {import('./types/index').Options} [opts]\n * @returns {string}\n */\nfunction serialize (cmpts, opts) {\n const component = {\n host: cmpts.host,\n scheme: cmpts.scheme,\n userinfo: cmpts.userinfo,\n port: cmpts.port,\n path: cmpts.path,\n query: cmpts.query,\n nid: cmpts.nid,\n nss: cmpts.nss,\n uuid: cmpts.uuid,\n fragment: cmpts.fragment,\n reference: cmpts.reference,\n resourceName: cmpts.resourceName,\n secure: cmpts.secure,\n to: cmpts.to,\n subject: cmpts.subject,\n body: cmpts.body,\n headers: cmpts.headers,\n error: ''\n }\n const options = Object.assign({}, opts)\n const uriTokens = []\n\n if (component.scheme) {\n component.scheme = decodeValidScheme(component.scheme)\n }\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || component.scheme)\n\n // perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options)\n\n const hasAuthority = component.userinfo !== undefined || component.host !== undefined || component.port !== undefined\n const pathNoScheme = !options.skipEscape && component.scheme === undefined && !hasAuthority\n\n if (component.path !== undefined) {\n if (!options.skipEscape) {\n component.path = serializePathEncoding(component.path, pathNoScheme)\n } else {\n component.path = normalizePercentEncoding(component.path)\n }\n }\n\n if (options.reference !== 'suffix' && component.scheme) {\n // Scheme handlers may replace the scheme during serialization.\n component.scheme = decodeValidScheme(component.scheme)\n uriTokens.push(component.scheme, ':')\n }\n\n const authority = recomposeAuthority(component)\n if (authority !== undefined) {\n if (options.reference !== 'suffix') {\n uriTokens.push('//')\n }\n\n uriTokens.push(authority)\n\n if (component.path && component.path[0] !== '/') {\n uriTokens.push('/')\n }\n }\n if (component.path !== undefined) {\n let s = component.path\n\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s)\n }\n\n // Dot-segment removal can expose a colon that was not originally in the\n // first segment (for example, \"./a:b\"). Reapply path-noscheme encoding so\n // the serialized relative reference cannot be reparsed as a URI scheme.\n if (pathNoScheme) {\n s = serializePathEncoding(s, true)\n }\n\n if (\n authority === undefined &&\n s[0] === '/' &&\n s[1] === '/'\n ) {\n // don't allow the path to start with \"//\"\n s = '/%2F' + s.slice(2)\n }\n\n uriTokens.push(s)\n }\n\n if (component.query !== undefined) {\n uriTokens.push('?', encodeQuery(component.query))\n }\n\n if (component.fragment !== undefined) {\n uriTokens.push('#', encodeFragment(component.fragment))\n }\n return uriTokens.join('')\n}\n\nconst URI_PARSE = /^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u\n\n// Captures the authority component (between \"//\" and the next \"/\", \"?\" or \"#\"),\n// with or without a scheme prefix, for the literal-backslash rejection below.\nconst AUTHORITY_PREFIX = /^(?:[^#/:?]+:)?\\/\\/([^/?#]*)/\n\n// Captures the leading authority-introducer region after an optional scheme: a\n// run of forward slashes, backslashes, and the characters the WHATWG URL parser\n// removes before parsing (TAB U+0009, LF U+000A, CR U+000D). A valid introducer\n// is exactly \"//\". Node treats \"\\\" as \"/\" on special schemes and strips those\n// characters first, so forms like \"\\\\\", \"/\\\", \"\\/\", \"//\", or a leading\n// \"//\" reach an authority in Node while fast-uri's URI_PARSE folds them into\n// the path group (host confusion / SSRF / redirect bypass).\nconst AUTHORITY_INTRODUCER_REGION = /^(?:[^#/:?]+:)?([/\\\\\\t\\n\\r]*)/\n\n/**\n * @param {import('./types/index').URIComponent} parsed\n * @param {RegExpMatchArray} matches\n * @returns {string|undefined}\n */\nfunction getParseError (parsed, matches) {\n if (matches[2] !== undefined && parsed.path && parsed.path[0] !== '/') {\n return 'URI path must start with \"/\" when authority is present.'\n }\n\n if (typeof parsed.port === 'number' && (parsed.port < 0 || parsed.port > 65535)) {\n return 'URI port is malformed.'\n }\n\n return undefined\n}\n\n/**\n * Checks percent syntax without decoding the represented octets. RFC 3986\n * percent-encoding is byte-oriented, so sequences such as `%FF` are valid even\n * though they are not independently valid UTF-8.\n *\n * @param {string|undefined} component\n * @returns {boolean}\n */\nfunction hasMalformedPercentEncoding (component) {\n if (component === undefined) return false\n\n let percent = component.indexOf('%')\n while (percent !== -1) {\n if (percent + 2 >= component.length || !/^[\\da-f]{2}$/iu.test(component.slice(percent + 1, percent + 3))) {\n return true\n }\n percent = component.indexOf('%', percent + 3)\n }\n\n return false\n}\n\n/**\n * Whether the host is a bracketed IP literal (RFC 3986 `IP-literal`).\n * An unterminated `[` is not a literal, so it must still be validated as a\n * reg-name instead of being waved through as an IP.\n *\n * @param {string} host\n * @returns {boolean}\n */\nfunction isIPLiteral (host) {\n return host[0] === '[' && host[host.length - 1] === ']'\n}\n\n/**\n * @param {RegExpMatchArray} matches\n * @returns {boolean}\n */\nfunction hasMalformedComponentPercentEncoding (matches) {\n // Bracketed IP literals use a raw \"%\" as the zone separator for historical\n // compatibility. Their parsing is intentionally left to normalizeIPv6.\n const host = matches[4]\n return hasMalformedPercentEncoding(matches[3]) ||\n (host !== undefined && !isIPLiteral(host) && hasMalformedPercentEncoding(host)) ||\n hasMalformedPercentEncoding(matches[6]) ||\n hasMalformedPercentEncoding(matches[7]) ||\n hasMalformedPercentEncoding(matches[8])\n}\n\n/**\n * @param {import('./types/index').URIComponent} parsed\n * @param {import('./types/index').Options} options\n * @param {{ domainHost?: boolean, unicodeSupport?: boolean }|undefined} schemeHandler\n * @param {boolean} isIP\n * @returns {boolean} whether host conversion failed\n */\nfunction canonicalizeHost (parsed, options, schemeHandler, isIP) {\n const bracketedIPLiteral =\n parsed.host &&\n parsed.host[0] === '[' &&\n parsed.host[parsed.host.length - 1] === ']'\n\n if (\n !options.unicodeSupport &&\n (!schemeHandler || !schemeHandler.unicodeSupport) &&\n parsed.host &&\n !isIPLiteral(parsed.host) &&\n (options.domainHost || (schemeHandler && schemeHandler.domainHost)) &&\n isIP === false &&\n !bracketedIPLiteral &&\n nonSimpleDomain(parsed.host)\n ) {\n try {\n parsed.host = new URL('http://' + parsed.host).hostname\n } catch (e) {\n parsed.error = parsed.error || \"Host's domain name can not be converted to ASCII: \" + e\n return true\n }\n }\n\n return false\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {{ parsed: import('./types/index').URIComponent, malformedAuthorityOrPort: boolean, malformedPercentEncoding: boolean, malformedSchemeSpecific: boolean, malformedHost: boolean, malformedScheme: boolean }}\n */\nfunction parseWithStatus (uri, opts) {\n const options = Object.assign({}, opts)\n /** @type {import('./types/index').URIComponent} */\n const parsed = {\n scheme: undefined,\n userinfo: undefined,\n host: '',\n port: undefined,\n path: '',\n query: undefined,\n fragment: undefined\n }\n\n let malformedAuthorityOrPort = false\n let malformedPercentEncoding = false\n let malformedSchemeSpecific = false\n let malformedHost = false\n let malformedIPLiteral = false\n let malformedScheme = false\n\n let isIP = false\n if (options.reference === 'suffix') {\n if (options.scheme) {\n uri = options.scheme + ':' + uri\n } else {\n uri = '//' + uri\n }\n }\n\n // A literal backslash (U+005C) is not a valid RFC 3986 URI character and is\n // not an authority delimiter. Reject it in the authority rather than\n // rewriting it: normalizing \"\\\" -> \"/\" (WHATWG error recovery) could silently\n // change the resource identified by an otherwise-invalid input, and lets \"\\\"\n // act as a host delimiter here while Node's native URL parses a different\n // host (SSRF / redirect / origin-allowlist bypass). Percent-encoded %5C is\n // untouched and remains valid encoded data.\n const authorityMatch = uri.match(AUTHORITY_PREFIX)\n if (authorityMatch !== null && authorityMatch[1].indexOf('\\\\') !== -1) {\n parsed.error = 'URI authority must not contain a literal backslash.'\n malformedAuthorityOrPort = true\n }\n\n // Reject a malformed or whitespace-smuggled authority introducer. fast-uri\n // only recognizes a literal \"//\"; anything else in the leading separator run\n // (a backslash, or a \"//\" that appears only after removing the TAB/LF/CR that\n // Node strips) means the authority fast-uri parses differs from the one Node's\n // URL resolves. Reject rather than rewrite, mirroring the literal-backslash\n // guard above. Percent-encoded forms (%5C, %09) are untouched, valid data.\n const introducerMatch = uri.match(AUTHORITY_INTRODUCER_REGION)\n if (introducerMatch !== null) {\n const region = introducerMatch[1]\n const normalizedRegion = region.replace(/[\\t\\n\\r]/g, '')\n // Two or more leading separators introduce an authority.\n if (normalizedRegion.length >= 2) {\n if (normalizedRegion.slice(0, 2) !== '//') {\n parsed.error = parsed.error || 'URI authority must not contain a literal backslash.'\n malformedAuthorityOrPort = true\n } else if (region.length !== normalizedRegion.length) {\n parsed.error = parsed.error || 'URI authority introducer must not contain whitespace.'\n malformedAuthorityOrPort = true\n }\n }\n }\n\n const matches = uri.match(URI_PARSE)\n\n if (matches) {\n // store each component\n parsed.scheme = matches[1]\n parsed.userinfo = matches[3]\n parsed.host = matches[4]\n parsed.port = parseInt(matches[5], 10)\n parsed.path = matches[6] || ''\n parsed.query = matches[7]\n parsed.fragment = matches[8]\n\n if (parsed.scheme !== undefined) {\n const decodedScheme = unescape(parsed.scheme)\n if (VALID_SCHEME.test(decodedScheme)) {\n parsed.scheme = decodedScheme.toLowerCase()\n } else {\n parsed.error = parsed.error || MALFORMED_SCHEME_ERROR\n malformedScheme = true\n }\n }\n\n malformedPercentEncoding = hasMalformedComponentPercentEncoding(matches)\n if (malformedPercentEncoding) {\n parsed.error = parsed.error || 'URI contains malformed percent-encoding.'\n }\n\n // fix port number\n if (isNaN(parsed.port)) {\n parsed.port = matches[5]\n }\n\n const parseError = getParseError(parsed, matches)\n if (parseError !== undefined) {\n parsed.error = parsed.error || parseError\n malformedAuthorityOrPort = true\n }\n\n if (parsed.host) {\n const ipv4result = isIPv4(parsed.host)\n if (ipv4result === false) {\n const bracketedIPLiteral = isIPLiteral(parsed.host)\n const hasIPLiteralBracket = parsed.host.indexOf('[') !== -1 || parsed.host.indexOf(']') !== -1\n const ipv6result = normalizeIPv6(parsed.host)\n isIP = ipv6result.isIPV6 || ipv6result.isIPVFuture === true\n malformedIPLiteral = hasIPLiteralBracket && (!bracketedIPLiteral || ipv6result.error === true)\n parsed.host = isIP ? ipv6result.host : ipv6result.host.toLowerCase()\n\n if (malformedIPLiteral) {\n parsed.error = parsed.error || 'URI host is malformed.'\n malformedAuthorityOrPort = true\n }\n } else {\n isIP = true\n }\n }\n if (parsed.scheme === undefined && parsed.userinfo === undefined && parsed.host === undefined && parsed.port === undefined && parsed.query === undefined && !parsed.path) {\n parsed.reference = 'same-document'\n } else if (parsed.scheme === undefined) {\n parsed.reference = 'relative'\n } else if (parsed.fragment === undefined) {\n parsed.reference = 'absolute'\n } else {\n parsed.reference = 'uri'\n }\n\n // check for reference errors\n if (options.reference && options.reference !== 'suffix' && options.reference !== parsed.reference) {\n parsed.error = parsed.error || 'URI is not a ' + options.reference + ' reference.'\n }\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme)\n\n // convert Unicode IDN -> ASCII IDN when the effective scheme uses domain hosts\n if (!malformedIPLiteral) {\n malformedHost = canonicalizeHost(parsed, options, schemeHandler, isIP)\n }\n\n if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {\n if (uri.indexOf('%') !== -1) {\n if (parsed.host !== undefined && !malformedIPLiteral) {\n const host = isIP ? parsed.host : normalizePercentEncoding(parsed.host, true)\n parsed.host = reescapeHostDelimiters(host, isIP)\n }\n }\n if (parsed.path) {\n parsed.path = normalizePathEncoding(parsed.path)\n }\n if (parsed.query) {\n parsed.query = normalizeQueryFragmentEncoding(parsed.query)\n }\n if (parsed.fragment) {\n parsed.fragment = normalizeQueryFragmentEncoding(parsed.fragment)\n }\n }\n\n // perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(parsed, options)\n if (schemeHandler === SCHEMES.urn && parsed.nid === undefined) {\n malformedSchemeSpecific = true\n }\n }\n } else {\n parsed.error = parsed.error || 'URI can not be parsed.'\n }\n return { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme }\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns\n */\nfunction parse (uri, opts) {\n return parseWithStatus(uri, opts).parsed\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {string}\n */\nfunction normalizeString (uri, opts) {\n return normalizeStringWithStatus(uri, opts).normalized\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {{ normalized: string, malformedAuthorityOrPort: boolean, malformedPercentEncoding: boolean, malformedSchemeSpecific: boolean, malformedHost: boolean, malformedScheme: boolean }}\n */\nfunction normalizeStringWithStatus (uri, opts) {\n const { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = parseWithStatus(uri, opts)\n return {\n normalized: malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? uri : serialize(parsed, opts),\n malformedAuthorityOrPort,\n malformedPercentEncoding,\n malformedSchemeSpecific,\n malformedHost,\n malformedScheme\n }\n}\n\n/**\n * @param {import ('./types/index').URIComponent|string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {string|undefined}\n */\nfunction normalizeComparableURI (uri, opts) {\n if (typeof uri !== 'string' && typeof uri !== 'object') {\n return undefined\n }\n\n let value\n try {\n value = typeof uri === 'string' ? uri : serialize(uri, opts)\n } catch {\n return undefined\n }\n const { normalized, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = normalizeStringWithStatus(value, opts)\n return malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? undefined : normalized\n}\n\nconst fastUri = {\n SCHEMES,\n normalize,\n resolve,\n resolveComponent,\n equal,\n serialize,\n parse\n}\n\nmodule.exports = fastUri\nmodule.exports.default = fastUri\nmodule.exports.fastUri = fastUri\n","var hasExcape = /~/\nvar escapeMatcher = /~[01]/g\nfunction escapeReplacer (m) {\n switch (m) {\n case '~1': return '/'\n case '~0': return '~'\n }\n throw new Error('Invalid tilde escape: ' + m)\n}\n\nfunction untilde (str) {\n if (!hasExcape.test(str)) return str\n return str.replace(escapeMatcher, escapeReplacer)\n}\n\nfunction setter (obj, pointer, value) {\n var part\n var hasNextPart\n\n for (var p = 1, len = pointer.length; p < len;) {\n if (pointer[p] === 'constructor' || pointer[p] === 'prototype' || pointer[p] === '__proto__') return obj\n\n part = untilde(pointer[p++])\n hasNextPart = len > p\n\n if (typeof obj[part] === 'undefined') {\n // support setting of /-\n if (Array.isArray(obj) && part === '-') {\n part = obj.length\n }\n\n // support nested objects/array when setting values\n if (hasNextPart) {\n if ((pointer[p] !== '' && pointer[p] < Infinity) || pointer[p] === '-') obj[part] = []\n else obj[part] = {}\n }\n }\n\n if (!hasNextPart) break\n obj = obj[part]\n }\n\n var oldValue = obj[part]\n if (value === undefined) delete obj[part]\n else obj[part] = value\n return oldValue\n}\n\nfunction compilePointer (pointer) {\n if (typeof pointer === 'string') {\n pointer = pointer.split('/')\n if (pointer[0] === '') return pointer\n throw new Error('Invalid JSON pointer.')\n } else if (Array.isArray(pointer)) {\n for (const part of pointer) {\n if (typeof part !== 'string' && typeof part !== 'number') {\n throw new Error('Invalid JSON pointer. Must be of type string or number.')\n }\n }\n return pointer\n }\n\n throw new Error('Invalid JSON pointer.')\n}\n\nfunction get (obj, pointer) {\n if (typeof obj !== 'object') throw new Error('Invalid input object.')\n pointer = compilePointer(pointer)\n var len = pointer.length\n if (len === 1) return obj\n\n for (var p = 1; p < len;) {\n obj = obj[untilde(pointer[p++])]\n if (len === p) return obj\n if (typeof obj !== 'object' || obj === null) return undefined\n }\n}\n\nfunction set (obj, pointer, value) {\n if (typeof obj !== 'object') throw new Error('Invalid input object.')\n pointer = compilePointer(pointer)\n if (pointer.length === 0) throw new Error('Invalid JSON pointer for set.')\n return setter(obj, pointer, value)\n}\n\nfunction compile (pointer) {\n var compiled = compilePointer(pointer)\n return {\n get: function (object) {\n return get(object, compiled)\n },\n set: function (object, value) {\n return set(object, compiled, value)\n }\n }\n}\n\nexports.get = get\nexports.set = set\nexports.compile = compile\n","import UriResolver from 'fast-uri';\nimport jsonpointer from 'jsonpointer';\nimport { ALL_OF_KEY, ID_KEY, JSON_SCHEMA_DRAFT_2019_09, JSON_SCHEMA_DRAFT_2020_12, REF_KEY, SCHEMA_KEY, } from \"./constants.js\";\nimport isObject from \"./isObject.js\";\n/** Looks for the `$id` pointed by `ref` in the schema definitions embedded in\n * a JSON Schema bundle\n *\n * @param schema - The schema wherein `ref` should be searched\n * @param ref - The `$id` of the reference to search for\n * @returns - The schema matching the reference, or `undefined` if no match is found\n */\nfunction findEmbeddedSchemaRecursive(schema, ref) {\n if (ID_KEY in schema && UriResolver.equal(schema[ID_KEY], ref)) {\n return schema;\n }\n for (const subSchema of Object.values(schema)) {\n if (Array.isArray(subSchema)) {\n for (const item of subSchema) {\n if (isObject(item)) {\n const result = findEmbeddedSchemaRecursive(item, ref);\n if (result !== undefined) {\n return result;\n }\n }\n }\n }\n else if (isObject(subSchema)) {\n const result = findEmbeddedSchemaRecursive(subSchema, ref);\n if (result !== undefined) {\n return result;\n }\n }\n }\n return undefined;\n}\n/** Parses a JSONSchema and makes all references absolute with respect to\n * the `baseURI` argument\n * @param schema - The schema to be processed\n * @param baseURI - The base URI to be used for resolving relative references\n */\nexport function makeAllReferencesAbsolute(schema, baseURI) {\n const currentURI = schema[ID_KEY] ?? baseURI;\n let result = schema;\n // Make all other references absolute\n if (REF_KEY in result) {\n result = { ...result, [REF_KEY]: UriResolver.resolve(currentURI, result[REF_KEY]) };\n }\n // Look for references in nested subschemas\n for (const [key, subSchema] of Object.entries(result)) {\n if (Array.isArray(subSchema)) {\n result = {\n ...result,\n [key]: subSchema.map((item) => (isObject(item) ? makeAllReferencesAbsolute(item, currentURI) : item)),\n };\n }\n else if (isObject(subSchema)) {\n result = { ...result, [key]: makeAllReferencesAbsolute(subSchema, currentURI) };\n }\n }\n return result;\n}\n/** Splits out the value at the `key` in `object` from the `object`, returning an array that contains in the first\n * location, the `object` minus the `key: value` and in the second location the `value`.\n *\n * @param key - The key from the object to extract\n * @param object - The object from which to extract the element\n * @returns - An array with the first value being the object minus the `key` element and the second element being the\n * value from `object[key]`\n */\nexport function splitKeyElementFromObject(key, object) {\n const { [key]: value, ...remaining } = object;\n return [remaining, value];\n}\n/** Given the name of a `$ref` from within a schema, using the `rootSchema`, recursively look up and return the\n * sub-schema using the path provided by that reference. If `#` is not the first character of the reference, the path\n * does not exist in the schema, or the reference resolves circularly back to itself, then throw an Error.\n * Otherwise return the sub-schema. Also deals with nested `$ref`s in the sub-schema.\n *\n * @param $ref - The ref string for which the schema definition is desired\n * @param [rootSchema={}] - The root schema in which to search for the definition\n * @param recurseList - List of $refs already resolved to prevent recursion\n * @param [baseURI=rootSchema['$id']] - The base URI to be used for resolving relative references\n * @returns - The sub-schema within the `rootSchema` which matches the `$ref` if it exists\n * @throws - Error indicating that no schema for that reference could be resolved\n */\nexport function findSchemaDefinitionRecursive($ref, rootSchema = {}, recurseList = [], baseURI = rootSchema[ID_KEY]) {\n const ref = $ref || '';\n let current = undefined;\n let currentBaseURI = baseURI;\n if (ref.startsWith('#')) {\n // Decode URI fragment representation.\n const decodedRef = decodeURIComponent(ref.substring(1));\n if (currentBaseURI === undefined || (ID_KEY in rootSchema && rootSchema[ID_KEY] === currentBaseURI)) {\n current = jsonpointer.get(rootSchema, decodedRef);\n }\n else if (rootSchema[SCHEMA_KEY] === JSON_SCHEMA_DRAFT_2020_12) {\n current = findEmbeddedSchemaRecursive(rootSchema, currentBaseURI.replace(/\\/$/, ''));\n if (current !== undefined) {\n current = jsonpointer.get(current, decodedRef);\n }\n }\n }\n else if (rootSchema[SCHEMA_KEY] === JSON_SCHEMA_DRAFT_2020_12) {\n const resolvedRef = currentBaseURI ? UriResolver.resolve(currentBaseURI, ref) : ref;\n const [refId, ...refAnchor] = resolvedRef.replace(/#\\/?$/, '').split('#');\n current = findEmbeddedSchemaRecursive(rootSchema, refId.replace(/\\/$/, ''));\n if (current !== undefined) {\n currentBaseURI = current[ID_KEY];\n if (refAnchor.length > 0) {\n current = jsonpointer.get(current, decodeURIComponent(refAnchor.join('#')));\n }\n }\n }\n if (current === undefined) {\n throw new Error(`Could not find a definition for ${$ref}.`);\n }\n const nextRef = current[REF_KEY];\n if (nextRef) {\n // Check for circular references.\n if (recurseList.includes(nextRef)) {\n if (recurseList.length === 1) {\n throw new Error(`Definition for ${$ref} is a circular reference`);\n }\n const [firstRef, ...restRefs] = recurseList;\n const circularPath = [...restRefs, ref, firstRef].join(' -> ');\n throw new Error(`Definition for ${firstRef} contains a circular reference through ${circularPath}`);\n }\n const [remaining, theRef] = splitKeyElementFromObject(REF_KEY, current);\n const subSchema = findSchemaDefinitionRecursive(theRef, rootSchema, [...recurseList, ref], currentBaseURI);\n if (Object.keys(remaining).length > 0) {\n if (rootSchema[SCHEMA_KEY] === JSON_SCHEMA_DRAFT_2019_09 ||\n rootSchema[SCHEMA_KEY] === JSON_SCHEMA_DRAFT_2020_12) {\n return { [ALL_OF_KEY]: [remaining, subSchema] };\n }\n return { ...remaining, ...subSchema };\n }\n return subSchema;\n }\n return current;\n}\n/** Given the name of a `$ref` from within a schema, using the `rootSchema`, look up and return the sub-schema using the\n * path provided by that reference. If `#` is not the first character of the reference, the path does not exist in\n * the schema, or the reference resolves circularly back to itself, then throw an Error. Otherwise return the\n * sub-schema. Also deals with nested `$ref`s in the sub-schema.\n *\n * @param $ref - The ref string for which the schema definition is desired\n * @param [rootSchema={}] - The root schema in which to search for the definition\n * @param [baseURI=rootSchema['$id']] - The base URI to be used for resolving relative references\n * @returns - The sub-schema within the `rootSchema` which matches the `$ref` if it exists\n * @throws - Error indicating that no schema for that reference could be resolved\n */\nexport default function findSchemaDefinition($ref, rootSchema = {}, baseURI = rootSchema[ID_KEY]) {\n const recurseList = [];\n return findSchemaDefinitionRecursive($ref, rootSchema, recurseList, baseURI);\n}\n//# sourceMappingURL=findSchemaDefinition.js.map","/** Matches unsigned integer strings that represent valid array indexes */\nconst reIsIndex = /^(?:0|[1-9]\\d*)$/;\n/** Converts a dotted path string, such as produced for validation error properties, into its list of\n * path segments. Array indexes may be written bracketed (`'a[0].b'`) or dotted (`'a.0.b'`), and empty\n * segments — from a leading `.`, a trailing `.` or a `..` run — are dropped.\n *\n * Only the grammar RJSF itself produces is supported: dots and brackets are always separators, so\n * quoted keys are not recognized and keys containing dots must be addressed with a segment list\n * instead of a string.\n *\n * @param path - The string path to convert, such as `'.level1.level2[2].level3'`\n * @returns - The list of path segments, such as `['level1', 'level2', '2', 'level3']`\n */\nexport function toPath(path) {\n return path.split(/[.[\\]]+/).filter(Boolean);\n}\n/** Normalizes an `ObjectPath` into a list of path segments, wrapping a single key into a one-element list */\nfunction normalizePath(path) {\n return Array.isArray(path) ? path : [path];\n}\n/** Determines whether a path segment could mutate the prototype chain. Only `__proto__` can: assigning to it\n * invokes the prototype setter rather than creating an own property. `constructor` and `prototype` are safe\n * here — and are legal JSON Schema property names — because both reads and writes below are own-property-only,\n * so `['constructor', 'prototype', 'polluted']` shadows `constructor` with a fresh object instead of walking\n * into `Object.prototype`. Only writes need this check; reads are already own-property-only\n */\nfunction isUnsafeSegment(segment) {\n return segment === '__proto__';\n}\n/** Determines whether a path segment represents a valid array index */\nfunction isIndex(segment) {\n return typeof segment === 'number' ? Number.isInteger(segment) && segment >= 0 : reIsIndex.test(segment);\n}\n/** Determines whether `value` can hold properties, i.e. is an object (arrays included) or a function */\nfunction isSettable(value) {\n return value != null && (typeof value === 'object' || typeof value === 'function');\n}\n/** Gets the value at `path` of `obj`, returning `defaultValue` when the resolved value is `undefined`\n *\n * Every segment must be an OWN property, matching {@link hasByPath}, so the two can be used as a\n * guard/read pair. Inherited members are never resolved: `getByPath({}, 'toString')` returns\n * `defaultValue`, not `Function.prototype.toString`. For the plain form data and schemas RJSF navigates,\n * an inherited member is never data, and the own-property rule also makes prototype internals such as\n * `__proto__` unreachable unless they are genuine own data keys\n *\n * An empty segment list resolves to nothing, so `defaultValue` is returned. This matches {@link hasByPath},\n * which is `false` for an empty path, and keeps a computed-but-empty path (`toPath('')` for a root-level\n * validation error, say) from resolving to the whole object\n *\n * The value at a runtime-computed path cannot be known statically, so `R` is the CALLER'S declaration of\n * the expected type (like `Map.get()`); it defaults to `unknown`, which forces narrowing when no type is given\n *\n * @param obj - The object to query\n * @param path - The single key or list of path segments at which to get the value\n * @param [defaultValue] - The value returned when the resolved value is `undefined`\n * @returns - The resolved value, otherwise `defaultValue`\n */\nexport function getByPath(obj, path, defaultValue) {\n let current;\n if (!Array.isArray(path)) {\n // Fast path for the most common call shape, a single constant key, avoiding the segment-list allocation\n current = isSettable(obj) && Object.hasOwn(obj, path) ? obj[path] : undefined;\n }\n else if (path.length === 0) {\n // An empty path resolves to nothing, mirroring `hasByPath()`\n current = undefined;\n }\n else {\n current = obj;\n for (let i = 0; i < path.length; i++) {\n const segment = path[i];\n // Only own data keys resolve, so inherited members and prototype internals are never read\n if (!isSettable(current) || !Object.hasOwn(current, segment)) {\n current = undefined;\n break;\n }\n current = current[segment];\n }\n }\n // The single deliberate cast in these utilities: the resolved value is trusted to be the `R` the caller declared\n return (current === undefined ? defaultValue : current);\n}\n/** Sets `value` at `path` of `obj`, mutating and returning `obj`. Missing intermediate containers are\n * created: arrays when the next segment is a valid array index, plain objects otherwise (or always plain\n * objects when `createIntermediateObjects` is true)\n *\n * A `__proto__` segment is refused in any position — assigning to it would mutate the prototype chain rather\n * than create an own property — and the write is silently skipped. Every other key, `constructor` and\n * `prototype` included, is written as an own property\n *\n * @param obj - The object to modify\n * @param path - The single key or list of path segments at which to set the value\n * @param value - The value to set\n * @param [createIntermediateObjects] - When true, always create plain objects for missing intermediate\n * containers, even for numeric path segments\n * @returns - The mutated `obj`\n */\nexport function setByPath(obj, path, value, createIntermediateObjects = false) {\n if (!isSettable(obj)) {\n return obj;\n }\n // Fast path for a single constant key, avoiding the segment-list allocation\n if (!Array.isArray(path)) {\n // Refuse a segment that could mutate the prototype chain (prototype pollution)\n if (!isUnsafeSegment(path)) {\n const target = obj;\n target[path] = value;\n }\n return obj;\n }\n const segments = path;\n // Refuse paths that could mutate the prototype chain (prototype pollution)\n if (segments.some(isUnsafeSegment)) {\n return obj;\n }\n let current = obj;\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n if (i === segments.length - 1) {\n current[segment] = value;\n }\n else {\n // Own properties only, so an inherited member is never traversed into\n const existing = Object.hasOwn(current, segment) ? current[segment] : undefined;\n if (isSettable(existing)) {\n current = existing;\n }\n else {\n const next = createIntermediateObjects || !isIndex(segments[i + 1]) ? {} : [];\n current[segment] = next;\n /* v8 ignore next -- a fresh {} or [] is always settable; the guard exists only to narrow the type */\n if (isSettable(next)) {\n current = next;\n }\n }\n }\n }\n return obj;\n}\n/** Determines whether `obj` has an own property at `path`\n *\n * Every segment is checked with `Object.hasOwn()`, so inherited properties report `false` —\n * `hasByPath({}, 'toString')` is `false`. {@link getByPath} applies the same own-property rule, so the\n * two can be used as a guard/read pair\n *\n * @param obj - The object to query\n * @param path - The single key or list of path segments to check for\n * @returns - True if the own property exists at `path`, otherwise false\n */\nexport function hasByPath(obj, path) {\n // Fast path for a single constant key, avoiding the segment-list allocation\n if (!Array.isArray(path)) {\n return isSettable(obj) && Object.hasOwn(obj, path);\n }\n let current = obj;\n for (let i = 0; i < path.length; i++) {\n if (!isSettable(current) || !Object.hasOwn(current, path[i])) {\n return false;\n }\n current = current[path[i]];\n }\n return path.length > 0;\n}\n/** Removes the own property at `path` of `obj`, mutating `obj`\n *\n * Both the parent lookup and the delete are own-property-only, so no segment can reach the prototype chain and\n * no `UNSAFE_SEGMENTS`-style guard is needed: deleting a `__proto__` that is not an own property is a no-op\n *\n * @param obj - The object to modify\n * @param path - The single key or list of path segments at which to remove the property\n * @returns - True if the property was removed or did not exist, otherwise false\n */\nexport function unsetByPath(obj, path) {\n const segments = normalizePath(path);\n // An empty path names no property, so there is nothing to remove\n if (segments.length === 0) {\n return true;\n }\n const parent = segments.length > 1 ? getByPath(obj, segments.slice(0, -1)) : obj;\n if (parent == null) {\n return true;\n }\n try {\n // Returns false for a non-configurable property instead of throwing like `delete` in strict mode\n return Reflect.deleteProperty(parent, segments[segments.length - 1]);\n }\n catch {\n // Reflect.deleteProperty throws when the target is a primitive\n return false;\n }\n}\n//# sourceMappingURL=pathUtils.js.map","import { DISCRIMINATOR_PATH } from \"./constants.js\";\nimport { getByPath } from \"./pathUtils.js\";\n/** Returns the `discriminator.propertyName` when defined in the `schema` if it is a string. A warning is generated when\n * it is not a string. Returns `undefined` when a valid discriminator is not present.\n *\n * @param schema - The schema from which the discriminator is potentially obtained\n * @returns - The `discriminator.propertyName` if it exists in the schema, otherwise `undefined`\n */\nexport default function getDiscriminatorFieldFromSchema(schema) {\n let discriminator;\n const maybeString = getByPath(schema, DISCRIMINATOR_PATH);\n if (typeof maybeString === 'string') {\n discriminator = maybeString;\n }\n else if (maybeString !== undefined) {\n // oxlint-disable-next-line no-console\n console.warn(`Expecting discriminator to be a string, got \"${typeof maybeString}\" instead`);\n }\n return discriminator;\n}\n//# sourceMappingURL=getDiscriminatorFieldFromSchema.js.map","/** Given a specific `value` attempts to guess the type of a schema element. In the case where we have to implicitly\n * create a schema, it is useful to know what type to use based on the data we are defining.\n *\n * @param value - The value from which to guess the type\n * @returns - The best guess for the object type\n */\nexport default function guessType(value) {\n if (Array.isArray(value)) {\n return 'array';\n }\n if (typeof value === 'string') {\n return 'string';\n }\n if (value == null) {\n return 'null';\n }\n if (typeof value === 'boolean') {\n return 'boolean';\n }\n if (typeof value === 'number' && !Number.isNaN(value)) {\n return 'number';\n }\n if (typeof value === 'object') {\n return 'object';\n }\n // Default to string if we can't figure it out\n return 'string';\n}\n//# sourceMappingURL=guessType.js.map","import guessType from \"./guessType.js\";\n/** Gets the type of a given `schema`. If the type is not explicitly defined, then an attempt is made to infer it from\n * other elements of the schema as follows:\n * - schema.const: Returns the `guessType()` of that value\n * - schema.enum: Returns `string`\n * - schema.properties: Returns `object`\n * - schema.additionalProperties: Returns `object`\n * - schema.patternProperties: Returns `object`\n * - type is an array with a length of 2 and one type is 'null': Returns the other type\n *\n * @param schema - The schema for which to get the type\n * @returns - The type of the schema\n */\nexport default function getSchemaType(schema) {\n let { type } = schema;\n if (!type && schema.const) {\n return guessType(schema.const);\n }\n if (!type && schema.enum) {\n return 'string';\n }\n if (!type && (schema.properties || schema.additionalProperties || schema.patternProperties)) {\n return 'object';\n }\n if (Array.isArray(type)) {\n if (type.length === 2 && type.includes('null')) {\n type = type.find((t) => t !== 'null');\n }\n else {\n // oxlint-disable-next-line prefer-destructuring\n type = type[0];\n }\n }\n return type;\n}\n//# sourceMappingURL=getSchemaType.js.map","import { REQUIRED_KEY } from \"./constants.js\";\nimport getSchemaType from \"./getSchemaType.js\";\nimport isObject from \"./isObject.js\";\n/** Recursively merge deeply nested schemas. The difference between `mergeSchemas` and `mergeObjects` is that\n * `mergeSchemas` only concats arrays for values under the 'required' keyword, and when it does, it doesn't include\n * duplicate values.\n *\n * @param obj1 - The first schema object to merge\n * @param obj2 - The second schema object to merge\n * @returns - The merged schema object\n */\nexport default function mergeSchemas(obj1, obj2) {\n const acc = { ...obj1 }; // Prevent mutation of source object.\n const result = Object.keys(obj2).reduce((accumulator, key) => {\n const left = obj1 ? obj1[key] : {}, right = obj2[key];\n if (obj1 && key in obj1 && isObject(right)) {\n accumulator[key] = mergeSchemas(left, right);\n }\n else if (obj1 &&\n obj2 &&\n (getSchemaType(obj1) === 'object' || getSchemaType(obj2) === 'object') &&\n key === REQUIRED_KEY &&\n Array.isArray(left) &&\n Array.isArray(right)) {\n // Don't include duplicate values when merging 'required' fields.\n accumulator[key] = [...new Set([...left, ...right])];\n }\n else {\n accumulator[key] = right;\n }\n return accumulator;\n }, acc);\n // Copy own Symbol-keyed properties from obj2 (Object.keys skips them).\n for (const sym of Object.getOwnPropertySymbols(obj2)) {\n // To avoid issues with symbols, we cast them to GenericSymbolObjectType. If we make the mergeSchema function take\n // in GenericSymbolObjectType rather than GenericObjectType, it causes a bunch of type errors downstream\n result[sym] = obj2[sym];\n }\n return result;\n}\n//# sourceMappingURL=mergeSchemas.js.map","import { PROPERTIES_KEY } from \"./constants.js\";\n/** Returns the sub-schema declared for `property` in the `properties` of `schema`, falling back to an empty schema\n * when the schema has no such property. Callers treat the properties of a schema as schemas of the same type `S`,\n * which the `JSONSchema7` typing of `properties` cannot express, so this function owns that single assertion rather\n * than repeating it at every lookup.\n *\n * @param schema - The schema, if any, from which to read the property sub-schema\n * @param property - The name of the property whose sub-schema is desired\n * @returns - The sub-schema for `property`, or an empty schema when it is not declared\n */\nexport default function getPropertySchema(schema, property) {\n return (schema?.[PROPERTIES_KEY]?.[property] ?? {});\n}\n//# sourceMappingURL=getPropertySchema.js.map","import getPropertySchema from \"./getPropertySchema.js\";\nimport { getByPath } from \"./pathUtils.js\";\n/** Compares the value of `discriminatorField` within `formData` against the value of `discriminatorField` within schema for each `option`.\n * Returns index of first `option` whose discriminator matches formData. Returns `undefined` if there is no match.\n * This function does not work with discriminators of `\"type\": \"object\"` and `\"type\": \"array\"`\n *\n * @param formData - The current formData, if any, used to figure out a match\n * @param options - The list of options to find a matching options from\n * @param [discriminatorField] - The optional name of the field within the options object whose value is used to\n * determine which option is selected\n * @returns - The index of the matched option or undefined if there is no match\n */\nexport default function getOptionMatchingSimpleDiscriminator(formData, options, discriminatorField) {\n if (formData && discriminatorField) {\n const value = getByPath(formData, discriminatorField);\n if (value === undefined) {\n return undefined;\n }\n for (let i = 0; i < options.length; i += 1) {\n const option = options[i];\n const discriminator = getPropertySchema(option, discriminatorField);\n if (discriminator.type !== 'object' && discriminator.type !== 'array') {\n if (discriminator.const === value) {\n return i;\n }\n const enumValues = discriminator.enum;\n if (enumValues?.includes(value)) {\n return i;\n }\n }\n }\n }\n return undefined;\n}\n//# sourceMappingURL=getOptionMatchingSimpleDiscriminator.js.map","import { PROPERTIES_KEY } from \"../constants.js\";\nimport getOptionMatchingSimpleDiscriminator from \"../getOptionMatchingSimpleDiscriminator.js\";\nimport { getByPath } from \"../pathUtils.js\";\n/** Given the `formData` and list of `options`, attempts to find the index of the first option that matches the data.\n * Always returns the first option if there is nothing that matches.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param formData - The current formData, if any, used to figure out a match\n * @param options - The list of options to find a matching options from\n * @param rootSchema - The root schema, used to primarily to look up `$ref`s\n * @param [discriminatorField] - The optional name of the field within the options object whose value is used to\n * determine which option is selected\n * @returns - The index of the first matched option or 0 if none is available\n */\nexport default function getFirstMatchingOption(validator, formData, options, rootSchema, discriminatorField) {\n // For performance, skip validating subschemas if formData is undefined. We just\n // want to get the first option in that case.\n if (formData === undefined) {\n return 0;\n }\n const simpleDiscriminatorMatch = getOptionMatchingSimpleDiscriminator(formData, options, discriminatorField);\n if (typeof simpleDiscriminatorMatch === 'number') {\n return simpleDiscriminatorMatch;\n }\n for (let i = 0; i < options.length; i += 1) {\n const option = options[i];\n // If we have a discriminator field, then we will use this to make the determination\n const discriminator = discriminatorField\n ? option[PROPERTIES_KEY]?.[discriminatorField]\n : undefined;\n if (discriminatorField && discriminator !== undefined) {\n const value = getByPath(formData, discriminatorField);\n if (validator.isValid(discriminator, value, rootSchema)) {\n return i;\n }\n }\n else if (option[PROPERTIES_KEY]) {\n // If the schema describes an object then we need to add slightly more\n // strict matching to the schema, because unless the schema uses the\n // \"requires\" keyword, an object will match the schema as long as it\n // doesn't have matching keys with a conflicting type. To do this we use an\n // \"anyOf\" with an array of requires. This augmentation expresses that the\n // schema should match if any of the keys in the schema are present on the\n // object and pass validation.\n //\n // Create an \"anyOf\" schema that requires at least one of the keys in the\n // \"properties\" object\n const requiresAnyOf = {\n anyOf: Object.keys(option[PROPERTIES_KEY]).map((key) => ({\n required: [key],\n })),\n };\n let augmentedSchema;\n // If the \"anyOf\" keyword already exists, wrap the augmentation in an \"allOf\"\n if (option.anyOf) {\n // Create a shallow clone of the option\n const { ...shallowClone } = option;\n if (!shallowClone.allOf) {\n shallowClone.allOf = [];\n }\n else {\n // If \"allOf\" already exists, shallow clone the array\n shallowClone.allOf = shallowClone.allOf.slice();\n }\n shallowClone.allOf.push(requiresAnyOf);\n augmentedSchema = shallowClone;\n }\n else {\n augmentedSchema = { ...option, ...requiresAnyOf };\n }\n // Remove the \"required\" field as it's likely that not all fields have\n // been filled in yet, which will mean that the schema is not valid\n delete augmentedSchema.required;\n if (validator.isValid(augmentedSchema, formData, rootSchema)) {\n return i;\n }\n }\n else if (validator.isValid(option, formData, rootSchema)) {\n return i;\n }\n }\n return 0;\n}\n//# sourceMappingURL=getFirstMatchingOption.js.map","export function isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nconst objProto = Object.prototype;\nexport function isRecordEmpty(rec) {\n for (const key in rec) {\n if (objProto.hasOwnProperty.call(rec, key)) {\n return false;\n }\n }\n return true;\n}\n//# sourceMappingURL=object.js.map","import { isRecordEmpty } from \"../object.js\";\nexport const JSON_SCHEMA_TYPE_NAMES = [\n \"array\",\n \"boolean\",\n \"integer\",\n \"null\",\n \"number\",\n \"object\",\n \"string\",\n];\nexport const SET_OF_JSON_SCHEMA_TYPE_NAMES = new Set(JSON_SCHEMA_TYPE_NAMES);\nexport function isJsonSchemaType(type) {\n return SET_OF_JSON_SCHEMA_TYPE_NAMES.has(type);\n}\n// WARN: Order is important\nexport const RECORDS_OF_SUB_SCHEMAS = [\n \"$defs\",\n \"definitions\",\n \"properties\",\n \"patternProperties\",\n \"dependencies\",\n];\nexport const SET_OF_RECORDS_OF_SUB_SCHEMAS = new Set(RECORDS_OF_SUB_SCHEMAS);\n// WARN: Order is important\nexport const ARRAYS_OF_SUB_SCHEMAS = [\n \"items\",\n \"allOf\",\n \"oneOf\",\n \"anyOf\",\n];\nexport const SET_OF_ARRAYS_OF_SUB_SCHEMAS = new Set(ARRAYS_OF_SUB_SCHEMAS);\n// WARN: Order is important\nexport const SUB_SCHEMAS = [\n \"items\",\n \"additionalItems\",\n \"additionalProperties\",\n \"propertyNames\",\n \"contains\",\n \"if\",\n \"then\",\n \"else\",\n \"not\",\n];\nexport const SET_OF_SUB_SCHEMAS = new Set(SUB_SCHEMAS);\n// WARN: Order is important\nexport const ALL_SUB_SCHEMA_KEYS = [\n ...RECORDS_OF_SUB_SCHEMAS,\n ...ARRAYS_OF_SUB_SCHEMAS,\n ...SUB_SCHEMAS,\n];\nexport function isSchemaObject(schemaDef) {\n return typeof schemaDef === \"object\";\n}\nexport function isAllowAnySchema(def) {\n return isSchemaObject(def) ? isRecordEmpty(def) : def === true;\n}\n//# sourceMappingURL=json-schema.js.map","export function ascComparator(a, b) {\n if (a < b)\n return -1;\n if (a > b)\n return 1;\n return 0;\n}\n//# sourceMappingURL=ord.js.map","export function union(larger, smaller) {\n const ll = larger.length;\n if (ll === 0) {\n return smaller;\n }\n let sl = smaller.length;\n if (sl === 0) {\n return larger;\n }\n if (ll < sl) {\n const tmp = larger;\n larger = smaller;\n smaller = tmp;\n sl = ll;\n }\n const data = new Set(larger);\n for (let i = 0; i < sl; i++) {\n data.add(smaller[i]);\n }\n return Array.from(data);\n}\nexport function intersection(a, b) {\n const result = [];\n if (a.length === 0 || b.length === 0) {\n return result;\n }\n if (a.length > b.length) {\n const tmp = a;\n a = b;\n b = tmp;\n }\n const setB = new Set(b);\n for (let i = 0; i < a.length && setB.size > 0; i++) {\n const val = a[i];\n if (setB.delete(val)) {\n result.push(val);\n }\n }\n return result;\n}\nexport function isArrayEmpty(arr) {\n return arr.length === 0;\n}\nexport function createArrayComparator(compare) {\n return (a, b) => {\n const d = a.length - b.length;\n if (d !== 0) {\n return d;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n const d = compare(a[i], b[i]);\n if (d !== 0) {\n return d;\n }\n }\n }\n return 0;\n };\n}\nexport function createDeduplicator(compare, { threshold = 12 } = {}) {\n return (arr) => {\n const al = arr.length;\n if (al === 0) {\n return arr;\n }\n if (al <= threshold) {\n const result = [];\n let rl = 0;\n outer: for (let i = 0; i < al; i++) {\n const item = arr[i];\n for (let j = 0; j < rl; j++) {\n if (compare(item, result[j]) === 0) {\n continue outer;\n }\n }\n rl = result.push(item);\n }\n return result;\n }\n const sorted = arr.slice().sort(compare);\n let wIndex = 0;\n for (let rIndex = 1; rIndex < al; rIndex++) {\n if (compare(sorted[wIndex], sorted[rIndex]) !== 0) {\n if (++wIndex !== rIndex) {\n sorted[wIndex] = sorted[rIndex];\n }\n }\n }\n sorted.length = wIndex + 1;\n return sorted;\n };\n}\nexport function createIntersector(compare) {\n return (a, b) => {\n const result = [];\n let al = a.length;\n let bl = b.length;\n if (al === 0 || bl === 0) {\n return result;\n }\n if (al > bl) {\n const tmpArr = a;\n a = b;\n b = tmpArr;\n const tmpL = al;\n al = bl;\n bl = tmpL;\n }\n const aSorted = [...a].sort(compare);\n const bSorted = [...b].sort(compare);\n let i = 0, j = 0;\n while (i < al && j < bl) {\n const cmp = compare(aSorted[i], bSorted[j]);\n if (cmp === 0) {\n // Only push if result is empty OR last pushed value is different\n if (result.length === 0 ||\n compare(result[result.length - 1], aSorted[i]) !== 0) {\n result.push(aSorted[i]);\n }\n i++;\n j++;\n }\n else if (cmp < 0) {\n i++;\n }\n else {\n j++;\n }\n }\n return result;\n };\n}\n//# sourceMappingURL=array.js.map","export function memoize(cache, func) {\n return (arg) => {\n if (cache.has(arg)) {\n return cache.get(arg);\n }\n const ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n}\nexport const weakMemoize = memoize;\n//# sourceMappingURL=memoize.js.map","import { ascComparator } from \"../../ord.js\";\nimport { createArrayComparator, createDeduplicator, isArrayEmpty, } from \"../../array.js\";\nimport { isRecordEmpty } from \"../../object.js\";\nimport { weakMemoize } from \"../../memoize.js\";\nimport { isAllowAnySchema, isSchemaObject } from \"../json-schema.js\";\nconst zero = () => 0;\nconst isUndefined = (v) => v === undefined;\nconst isSchemaPrimitiveExceptNull = (value) => typeof value !== \"object\";\nconst PRIMITIVE_TYPE_ORDER = {\n boolean: 0,\n number: 1,\n string: 2,\n};\nfunction compareSchemaPrimitive(a, b) {\n const ta = typeof a;\n const tb = typeof b;\n return ta === tb\n ? ascComparator(a, b)\n : PRIMITIVE_TYPE_ORDER[ta] - PRIMITIVE_TYPE_ORDER[tb];\n}\nfunction insertUniqueValues(mutableTarget, mutableSource) {\n const tl = mutableTarget.length;\n if (tl === 0)\n return mutableSource;\n const sl = mutableSource.length;\n if (sl === 0)\n return mutableTarget;\n if (sl > tl) {\n const t = mutableTarget;\n mutableTarget = mutableSource;\n mutableSource = t;\n }\n const seen = new Set(mutableTarget);\n const l = mutableSource.length;\n for (let i = 0; i < l; i++) {\n const key = mutableSource[i];\n if (!seen.has(key)) {\n mutableTarget.push(key);\n }\n }\n return mutableTarget;\n}\nfunction createCmpMatcher(isEmpty, compare, compareEmpty = zero) {\n return (a, b) => {\n if (isEmpty(a)) {\n if (isEmpty(b)) {\n return compareEmpty(a, b);\n }\n return -1;\n }\n if (isEmpty(b)) {\n return 1;\n }\n return compare(a, b);\n };\n}\nfunction createOptionalComparator(compare) {\n return createCmpMatcher(isUndefined, compare);\n}\nfunction createNarrowingOptionalComparator(isEmpty, compare) {\n return createCmpMatcher((v) => v === undefined || isEmpty(v), compare);\n}\nfunction createArrayOrItemComparator(compare, compareArray) {\n return createCmpMatcher(Array.isArray, compare, compareArray);\n}\nconst compareOptionalSameTypeSchemaPrimitives = createOptionalComparator(ascComparator);\nconst compareNumbersWithZeroDefault = createNarrowingOptionalComparator((v) => v === 0, (a, b) => a - b);\nexport function createComparator({ deduplicationCache = new WeakMap(), sortedKeysCache = new WeakMap(), } = {}) {\n const getSortedKeys = weakMemoize(sortedKeysCache, (obj) => Object.keys(obj).sort());\n function createRecordsComparator(compare) {\n return (a, b) => {\n const aKeys = getSortedKeys(a);\n const bKeys = getSortedKeys(b);\n const l = Math.min(aKeys.length, bKeys.length);\n for (let i = 0; i < l; i++) {\n const cmp = ascComparator(aKeys[i], bKeys[i]);\n if (cmp !== 0) {\n return cmp;\n }\n }\n if (aKeys.length !== bKeys.length) {\n return aKeys.length - bKeys.length;\n }\n for (let i = 0; i < l; i++) {\n const key = aKeys[i];\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n const cmp = compare(a[key], b[key]);\n if (cmp !== 0) {\n return cmp;\n }\n }\n return 0;\n };\n }\n function createArrayComparatorWithDeduplication(compare) {\n const cmp = createArrayComparator(compare);\n const deduplicate = weakMemoize(deduplicationCache, \n // NOTE: Always sort output\n createDeduplicator(compare, { threshold: 0 }));\n return (a, b) => cmp(deduplicate(a), deduplicate(b));\n }\n const compareArrayOfSameTypePrimitivesWithDeduplication = createArrayComparatorWithDeduplication(ascComparator);\n function compareSchemaDefinitions(a, b) {\n if (isSchemaObject(a)) {\n if (isSchemaObject(b)) {\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n const allKeys = insertUniqueValues(aKeys, bKeys);\n const l = allKeys.length;\n for (let i = 0; i < l; i++) {\n const key = allKeys[i];\n if (a[key] === b[key]) {\n continue;\n }\n const cmp = COMPARATORS[key] ?? compareOptionalSchemaValues;\n const d = cmp(a[key], b[key]);\n if (d !== 0) {\n return d;\n }\n }\n return 0;\n }\n return b === true && isRecordEmpty(a) ? 0 : 1;\n }\n if (isSchemaObject(b)) {\n return a === true && isRecordEmpty(b) ? 0 : -1;\n }\n return ascComparator(a, b);\n }\n const compareOptionalSchemaValues = createOptionalComparator(compareSchemaValues);\n const compareNonNullSchemaValue = createCmpMatcher(isSchemaPrimitiveExceptNull, createArrayOrItemComparator(createRecordsComparator(compareOptionalSchemaValues), createArrayComparator(compareSchemaValues)), compareSchemaPrimitive);\n function compareSchemaValues(a, b) {\n if (a === null) {\n return -1;\n }\n if (b === null) {\n return 1;\n }\n return compareNonNullSchemaValue(a, b);\n }\n const compareOptionalSchemaDefinitions = createOptionalComparator(compareSchemaDefinitions);\n const compareRecordOfOptionalSchemasWithEmptyRecordDefault = createNarrowingOptionalComparator(isRecordEmpty, createRecordsComparator(compareOptionalSchemaDefinitions));\n const compareOptionalArrayOfSchemasWithDeduplication = createOptionalComparator(createArrayComparatorWithDeduplication(compareSchemaDefinitions));\n const compareSchemaDefinitionsWithEmptyDefinitionDefault = createNarrowingOptionalComparator(isAllowAnySchema, compareSchemaDefinitions);\n const COMPARATORS = {\n $id: compareOptionalSameTypeSchemaPrimitives,\n $comment: compareOptionalSameTypeSchemaPrimitives,\n $defs: compareRecordOfOptionalSchemasWithEmptyRecordDefault,\n $ref: compareOptionalSameTypeSchemaPrimitives,\n $schema: compareOptionalSameTypeSchemaPrimitives,\n const: compareOptionalSchemaValues,\n contains: compareOptionalSchemaDefinitions,\n contentEncoding: compareOptionalSameTypeSchemaPrimitives,\n contentMediaType: compareOptionalSameTypeSchemaPrimitives,\n default: compareOptionalSchemaValues,\n definitions: compareRecordOfOptionalSchemasWithEmptyRecordDefault,\n description: compareOptionalSameTypeSchemaPrimitives,\n else: compareOptionalSchemaDefinitions,\n examples: compareOptionalSchemaValues,\n exclusiveMaximum: compareOptionalSameTypeSchemaPrimitives,\n exclusiveMinimum: compareOptionalSameTypeSchemaPrimitives,\n format: compareOptionalSameTypeSchemaPrimitives,\n if: compareOptionalSchemaDefinitions,\n maximum: compareOptionalSameTypeSchemaPrimitives,\n maxItems: compareOptionalSameTypeSchemaPrimitives,\n maxLength: compareOptionalSameTypeSchemaPrimitives,\n maxProperties: compareOptionalSameTypeSchemaPrimitives,\n minimum: compareOptionalSameTypeSchemaPrimitives,\n multipleOf: compareOptionalSameTypeSchemaPrimitives,\n not: compareOptionalSchemaDefinitions,\n pattern: compareOptionalSameTypeSchemaPrimitives,\n propertyNames: compareOptionalSchemaDefinitions,\n readOnly: compareOptionalSameTypeSchemaPrimitives,\n then: compareOptionalSchemaDefinitions,\n title: compareOptionalSameTypeSchemaPrimitives,\n writeOnly: compareOptionalSameTypeSchemaPrimitives,\n uniqueItems: createNarrowingOptionalComparator((v) => v === false, zero),\n minLength: compareNumbersWithZeroDefault,\n minItems: compareNumbersWithZeroDefault,\n minProperties: compareNumbersWithZeroDefault,\n required: createNarrowingOptionalComparator(isArrayEmpty, compareArrayOfSameTypePrimitivesWithDeduplication),\n enum: createNarrowingOptionalComparator(isArrayEmpty, createArrayComparatorWithDeduplication(compareSchemaValues)),\n type: createOptionalComparator((a, b) => {\n const isAArr = Array.isArray(a);\n const isBArr = Array.isArray(b);\n if (!isAArr && !isBArr) {\n return ascComparator(a, b);\n }\n return compareArrayOfSameTypePrimitivesWithDeduplication(isAArr ? a : [a], isBArr ? b : [b]);\n }),\n items: createNarrowingOptionalComparator((v) => !Array.isArray(v) && isAllowAnySchema(v), createArrayOrItemComparator(compareSchemaDefinitions, createArrayComparator(compareSchemaDefinitions))),\n anyOf: compareOptionalArrayOfSchemasWithDeduplication,\n allOf: compareOptionalArrayOfSchemasWithDeduplication,\n oneOf: compareOptionalArrayOfSchemasWithDeduplication,\n properties: compareRecordOfOptionalSchemasWithEmptyRecordDefault,\n patternProperties: compareRecordOfOptionalSchemasWithEmptyRecordDefault,\n additionalProperties: compareSchemaDefinitionsWithEmptyDefinitionDefault,\n additionalItems: compareSchemaDefinitionsWithEmptyDefinitionDefault,\n dependencies: createNarrowingOptionalComparator(isRecordEmpty, createRecordsComparator(createOptionalComparator(createArrayOrItemComparator(compareSchemaDefinitions, compareArrayOfSameTypePrimitivesWithDeduplication)))),\n };\n return {\n compareSchemaValues,\n compareSchemaDefinitions,\n };\n}\n//# sourceMappingURL=compare.js.map","export function identity(v) {\n return v;\n}\n//# sourceMappingURL=function.js.map","export const gcd = (a, b) => (a ? gcd(b % a, a) : b);\nexport const lcm = (a, b) => Math.abs(a * b) / gcd(a, b);\n//# sourceMappingURL=math.js.map","export function legacyPatternsMerger(a, b) {\n return a === b ? a : `(?=${a})(?=${b})`;\n}\nexport function simplePatternsMerger(a, b) {\n return a === b ? a : `(?=.*(?:${a}))(?=.*(?:${b}))`;\n}\n//# sourceMappingURL=patterns.js.map","import { intersection, union, } from \"../../array.js\";\nimport { identity } from \"../../function.js\";\nimport { lcm } from \"../../math.js\";\nimport { isAllowAnySchema } from \"../json-schema.js\";\nimport { simplePatternsMerger } from \"./patterns.js\";\nfunction createPairCombinations(l, r, action) {\n const ll = l.length;\n const rl = r.length;\n if (ll > 0 && rl > 0) {\n for (let i = 0; i < ll; i++) {\n const lv = l[i];\n for (let j = 0; j < rl; j++) {\n action(lv, r[j]);\n }\n }\n }\n}\nfunction mergeBooleans(l, r) {\n return l || r;\n}\nfunction createRecordsMerge(merge) {\n return (left, right) => {\n const target = { ...left };\n const keys = Object.keys(right);\n const l = keys.length;\n for (let i = 0; i < l; i++) {\n const key = keys[i];\n target[key] =\n left[key] === undefined ? right[key] : merge(left[key], right[key]);\n }\n return target;\n };\n}\nfunction createMap(items) {\n const map = new Map();\n for (const pair of items) {\n for (const key of pair[0]) {\n map.set(key, pair[1]);\n }\n }\n return map;\n}\nfunction assignSchemaDefinitionOrRecordOfSchemaDefinitions(target, key, value) {\n if (value === undefined || isAllowAnySchema(value)) {\n delete target[key];\n }\n else {\n target[key] = value;\n }\n}\nconst PROPERTIES_ASSIGNER_KEYS = [\n \"properties\",\n \"patternProperties\",\n \"additionalProperties\",\n];\nfunction compilePatterns(patterns) {\n const keys = Object.keys(patterns);\n const l = keys.length;\n const result = [];\n for (let i = 0; i < l; i++) {\n const source = keys[i];\n result.push({\n regExp: new RegExp(source),\n schema: patterns[source],\n });\n }\n return [result, keys];\n}\nconst EMPTY_PATTERNS_AND_KEYS = [[], []];\n/**\n * @returns `true` when `false` schema occurred\n */\nfunction appendKeyConstraints(target, key, patterns) {\n const l = patterns.length;\n for (let i = 0; i < l; i++) {\n const p = patterns[i];\n if (!p.regExp.test(key)) {\n continue;\n }\n const s = p.schema;\n if (s === false) {\n return true;\n }\n target.push(s);\n }\n return false;\n}\nconst ITEMS_ASSIGNER_KEYS = [\n \"items\",\n \"additionalItems\",\n];\nconst CONDITION_ASSIGNER_KEYS = [\n \"if\",\n \"then\",\n \"else\",\n];\nfunction assignCondition(target, source) {\n if (source.if !== undefined) {\n target.if = source.if;\n }\n if (source.then !== undefined) {\n target.then = source.then;\n }\n if (source.else !== undefined) {\n target.else = source.else;\n }\n return target;\n}\nfunction intersectSchemaTypes(a, b) {\n if (a === b) {\n return a;\n }\n switch (a) {\n case \"number\": {\n if (b === \"integer\") {\n return \"integer\";\n }\n }\n // eslint-disable-next-line no-fallthrough\n case \"integer\": {\n if (b === \"number\") {\n return \"integer\";\n }\n }\n // eslint-disable-next-line no-fallthrough\n default:\n return undefined;\n }\n}\nexport function check(a, b, check) {\n return [a, b, check];\n}\nfunction createChecksMap(checks) {\n const map = new Map();\n for (const [a, b, check] of checks) {\n const fn = (target) => {\n if (!check(target)) {\n throw new Error(`Schema keys '${a}' and '${b}' are conflicting (${a}: ${JSON.stringify(target[a])}, ${b}: ${JSON.stringify(target[b])})`);\n }\n };\n for (const k of [\n [a, b],\n [b, a],\n ]) {\n let arr = map.get(k[0]);\n if (arr === undefined) {\n arr = [];\n map.set(k[0], arr);\n }\n arr.push({ oppositeKey: k[1], check: fn });\n }\n }\n return map;\n}\nexport const DEFAULT_CHECKS = [\n check(\"minimum\", \"maximum\", (t) => t.maximum >= t.minimum),\n check(\"exclusiveMinimum\", \"maximum\", (t) => t.maximum > t.exclusiveMinimum),\n check(\"minimum\", \"exclusiveMaximum\", (t) => t.exclusiveMaximum > t.minimum),\n check(\"exclusiveMinimum\", \"exclusiveMaximum\", (t) => t.exclusiveMaximum > t.exclusiveMinimum),\n check(\"minLength\", \"maxLength\", (t) => t.maxLength >= t.minLength),\n check(\"minItems\", \"maxItems\", (t) => t.maxItems >= t.minItems),\n check(\"minProperties\", \"maxProperties\", (t) => t.maxProperties >= t.minProperties),\n];\nexport function createMerger({ mergePatterns = simplePatternsMerger, isSubRegExp = Object.is, intersectJson = intersection, deduplicateJsonSchemaDef = identity, defaultMerger = identity, assigners = [], checks = DEFAULT_CHECKS, mergers, } = {}) {\n function mergeArrayOfSchemaDefinitions(schemas) {\n const l = schemas.length;\n let result = schemas[0];\n for (let i = 1; i < l; i++) {\n const r = mergeSchemaDefinitions(result, schemas[i]);\n if (r === false) {\n return false;\n }\n if (isAllowAnySchema(r)) {\n continue;\n }\n result = r;\n }\n return result;\n }\n function createProperty(constraints, key, value, patterns, oppositeValue, oppositePatterns, oppositeAdditional) {\n constraints.length = 0;\n if (value === false) {\n return false;\n }\n constraints.push(value);\n const isOppositeValueDefined = oppositeValue !== undefined;\n if (isOppositeValueDefined) {\n if (oppositeValue === false) {\n return false;\n }\n constraints.push(oppositeValue);\n }\n if (appendKeyConstraints(constraints, key, oppositePatterns)) {\n return false;\n }\n const isNotYetAllowed = constraints.length < 2;\n if (oppositeAdditional === false) {\n // There are no allowing constraints from opposite side -> drop property\n if (isNotYetAllowed) {\n return undefined;\n }\n // Applying patterns of current schema cause they may disappear\n if (appendKeyConstraints(constraints, key, patterns)) {\n return false;\n }\n }\n else if (isNotYetAllowed && oppositeAdditional !== undefined) {\n constraints.push(oppositeAdditional);\n }\n const l = constraints.length;\n if (l === 1) {\n return constraints[0];\n }\n return mergeArrayOfSchemaDefinitions(constraints);\n }\n function assignPatternPropertiesAndAdditionalPropertiesMerge(target, patterns, patternKeys, matchedPatterns, oppositeAdditional, isOppositeTruthy) {\n const l = patternKeys.length;\n if (l > 0 && oppositeAdditional !== false) {\n if (isOppositeTruthy) {\n // TODO: in some cases we can just assign new value instead of copying\n Object.assign(target, patterns);\n }\n else {\n for (let i = 0; i < l; i++) {\n const pattern = patternKeys[i];\n if (matchedPatterns.has(pattern)) {\n continue;\n }\n target[pattern] = mergeSchemaDefinitions(patterns[pattern], oppositeAdditional);\n }\n }\n }\n return target;\n }\n const propertiesAssigner = (target, { properties: lProps = {}, patternProperties: lPatterns, additionalProperties: lAdditional = true, }, { properties: rProps = {}, patternProperties: rPatterns, additionalProperties: rAdditional = true, }) => {\n // Special case\n const isLAddTruthy = isAllowAnySchema(lAdditional);\n const isRAddTruthy = isAllowAnySchema(rAdditional);\n if (isLAddTruthy && isRAddTruthy) {\n assignSchemaDefinitionOrRecordOfSchemaDefinitions(target, \"properties\", mergeRecordsOfSchemaDefinitions(lProps, rProps));\n assignSchemaDefinitionOrRecordOfSchemaDefinitions(target, \"patternProperties\", lPatterns && rPatterns\n ? mergeRecordsOfSchemaDefinitions(lPatterns, rPatterns)\n : (lPatterns ?? rPatterns));\n delete target.additionalProperties;\n return target;\n }\n // Additional Properties\n const additionalProperties = mergeSchemaDefinitions(lAdditional, rAdditional);\n assignSchemaDefinitionOrRecordOfSchemaDefinitions(target, \"additionalProperties\", additionalProperties);\n // Properties\n const properties = {};\n const lKeys = Object.keys(lProps);\n const lKeysLen = lKeys.length;\n const [lCompiledPatterns, lPatternKeys] = lPatterns\n ? compilePatterns(lPatterns)\n : EMPTY_PATTERNS_AND_KEYS;\n const [rCompiledPatterns, rPatternKeys] = rPatterns\n ? compilePatterns(rPatterns)\n : EMPTY_PATTERNS_AND_KEYS;\n const constraints = [];\n const lKeysSet = new Set();\n const mappedRAdditional = isRAddTruthy ? undefined : rAdditional;\n for (let i = 0; i < lKeysLen; i++) {\n const key = lKeys[i];\n lKeysSet.add(key);\n const prop = createProperty(constraints, key, lProps[key], lCompiledPatterns, rProps[key], rCompiledPatterns, mappedRAdditional);\n if (prop !== undefined) {\n properties[key] = prop;\n }\n }\n const rKeys = Object.keys(rProps);\n const rKeysLen = rKeys.length;\n const mappedLAdditional = isLAddTruthy ? undefined : lAdditional;\n for (let i = 0; i < rKeysLen; i++) {\n const key = rKeys[i];\n if (lKeysSet.has(key)) {\n continue;\n }\n const prop = createProperty(constraints, key, rProps[key], rCompiledPatterns, undefined, lCompiledPatterns, mappedLAdditional);\n if (prop !== undefined) {\n properties[key] = prop;\n }\n }\n assignSchemaDefinitionOrRecordOfSchemaDefinitions(target, \"properties\", properties);\n // Pattern Properties\n // (lPatterns and rPatterns) or (lPatterns and rAdditional) or (rPatterns and lAdditional)\n let patterns = {};\n const matchedPatterns = new Set();\n if (lPatternKeys.length > 0 && rPatternKeys.length > 0) {\n createPairCombinations(lPatternKeys, rPatternKeys, (lKey, rKey) => {\n if (isSubRegExp(lKey, rKey)) {\n matchedPatterns.add(lKey);\n }\n if (isSubRegExp(rKey, lKey)) {\n matchedPatterns.add(rKey);\n }\n patterns[mergePatterns(lKey, rKey)] = mergeSchemaDefinitions(lPatterns[lKey], rPatterns[rKey]);\n });\n }\n patterns = assignPatternPropertiesAndAdditionalPropertiesMerge(patterns, lPatterns, lPatternKeys, matchedPatterns, rAdditional, isRAddTruthy);\n patterns = assignPatternPropertiesAndAdditionalPropertiesMerge(patterns, rPatterns, rPatternKeys, matchedPatterns, lAdditional, isLAddTruthy);\n assignSchemaDefinitionOrRecordOfSchemaDefinitions(target, \"patternProperties\", patterns);\n return target;\n };\n const itemsAssigner = (target, \n // NOTE: Schema that has `additionalItems` without an `items` keyword is invalid\n // so the assigner should be triggered only be colliding `items` properties\n // so default values are used only for type narrowing\n { items: lItems = [], additionalItems: lAdditional }, { items: rItems = [], additionalItems: rAdditional }) => {\n const isLArr = Array.isArray(lItems);\n const isRArr = Array.isArray(rItems);\n const itemsArray = [];\n target.items = itemsArray;\n if (isLArr && isRArr) {\n const [l, additional, tail] = lItems.length < rItems.length\n ? [lItems.length, lAdditional, rItems]\n : [rItems.length, rAdditional, lItems];\n let i = 0;\n for (; i < l; i++) {\n itemsArray.push(mergeSchemaDefinitions(lItems[i], rItems[i]));\n }\n if (additional === false) {\n target.additionalItems = false;\n }\n else {\n const isAdditionalTruthy = additional === undefined || isAllowAnySchema(additional);\n for (; i < tail.length; i++) {\n itemsArray.push(isAdditionalTruthy\n ? tail[i]\n : mergeSchemaDefinitions(tail[i], additional));\n }\n assignSchemaDefinitionOrRecordOfSchemaDefinitions(target, \"additionalItems\", lAdditional !== undefined && rAdditional !== undefined\n ? mergeSchemaDefinitions(lAdditional, rAdditional)\n : (lAdditional ?? rAdditional));\n }\n }\n else if (isLArr || isRArr) {\n const [arr, item, additional] = (isLArr ? [lItems, rItems, lAdditional] : [rItems, lItems, rAdditional]);\n assignSchemaDefinitionOrRecordOfSchemaDefinitions(target, \"additionalItems\", additional && mergeSchemaDefinitions(additional, item));\n for (let i = 0; i < arr.length; i++) {\n itemsArray.push(mergeSchemaDefinitions(arr[i], item));\n }\n }\n else {\n delete target.additionalItems;\n target.items = mergeSchemaDefinitions(lItems, rItems);\n }\n return target;\n };\n const conditionAssigner = (target, l, r) => {\n assignCondition(target, l);\n const cond = assignCondition({}, r);\n if (target.allOf === undefined) {\n target.allOf = [cond];\n }\n else {\n target.allOf = target.allOf.concat(cond);\n }\n return target;\n };\n function mergeArraysOfSchemaDefinition(l, r) {\n const definitions = [];\n createPairCombinations(l, r, (a, b) => {\n try {\n definitions.push(mergeSchemaDefinitions(a, b));\n }\n catch { }\n });\n if (definitions.length === 0) {\n throw new Error(`No valid schema combinations could be produced for \"${JSON.stringify(l)}\" and \"${JSON.stringify(r)}\"; the merged result is empty`);\n }\n return deduplicateJsonSchemaDef(definitions);\n }\n const ASSIGNERS_MAP = createMap([\n [PROPERTIES_ASSIGNER_KEYS, propertiesAssigner],\n [ITEMS_ASSIGNER_KEYS, itemsAssigner],\n [CONDITION_ASSIGNER_KEYS, conditionAssigner],\n ...assigners,\n ]);\n const CHECKS_MAP = createChecksMap(checks);\n function mergeSchemaDefinitions(left, right) {\n if (left === false || right === false) {\n return false;\n }\n if (isAllowAnySchema(left)) {\n if (isAllowAnySchema(right)) {\n return true;\n }\n return right;\n }\n if (isAllowAnySchema(right)) {\n return left;\n }\n let target = { ...left };\n const assigners = new Set();\n const checks = new Set();\n const rKeys = Reflect.ownKeys(right);\n const l = rKeys.length;\n for (let i = 0; i < l; i++) {\n const rKey = rKeys[i];\n const rv = right[rKey];\n if (rv === undefined) {\n continue;\n }\n const checkData = CHECKS_MAP.get(rKey);\n if (checkData !== undefined) {\n const l = checkData.length;\n for (let j = 0; j < l; j++) {\n const item = checkData[j];\n if (left[item.oppositeKey] !== undefined) {\n checks.add(item.check);\n }\n }\n }\n const lv = left[rKey];\n if (lv === undefined) {\n // @ts-expect-error too complex\n target[rKey] = rv;\n continue;\n }\n const assign = ASSIGNERS_MAP.get(rKey);\n if (assign) {\n assigners.add(assign);\n continue;\n }\n const merge = MERGERS[rKey] ?? defaultMerger;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n target[rKey] = merge(lv, rv);\n }\n for (const assign of assigners) {\n target = assign(target, left, right);\n }\n for (const check of checks) {\n check(target);\n }\n return target;\n }\n const mergeRecordsOfSchemaDefinitions = createRecordsMerge(mergeSchemaDefinitions);\n const MERGERS = {\n $id: defaultMerger,\n $ref: defaultMerger,\n $schema: defaultMerger,\n $comment: defaultMerger,\n $defs: mergeRecordsOfSchemaDefinitions,\n definitions: mergeRecordsOfSchemaDefinitions,\n type: (a, b) => {\n if (a === b) {\n return a;\n }\n const isAArr = Array.isArray(a);\n const isBArr = Array.isArray(b);\n if (!isAArr && !isBArr) {\n const intersection = intersectSchemaTypes(a, b);\n if (intersection !== undefined) {\n return intersection;\n }\n }\n else if (isAArr || isBArr) {\n const r = new Set();\n if (isAArr && isBArr) {\n createPairCombinations(a, b, (x, y) => {\n const type = intersectSchemaTypes(x, y);\n if (type !== undefined) {\n r.add(type);\n }\n });\n }\n else {\n const arr = (isAArr ? a : b);\n const el = (isAArr ? b : a);\n const l = arr.length;\n for (let i = 0; i < l; i++) {\n const intersection = intersectSchemaTypes(el, arr[i]);\n if (intersection !== undefined) {\n r.add(intersection);\n }\n }\n }\n const s = r.size;\n if (s === 1) {\n return r.values().next().value;\n }\n if (s > 1) {\n return Array.from(r);\n }\n }\n throw new Error(`It is not possible to create an intersection of the following incompatible types: ${a.toString()}, ${b.toString()}`);\n },\n default: defaultMerger,\n description: defaultMerger,\n title: defaultMerger,\n const: defaultMerger,\n format: defaultMerger,\n contentEncoding: defaultMerger,\n contentMediaType: defaultMerger,\n not: (a, b) => {\n const items = deduplicateJsonSchemaDef([a, b]);\n return items.length === 1 ? items[0] : { anyOf: items };\n },\n pattern: mergePatterns,\n readOnly: mergeBooleans,\n writeOnly: mergeBooleans,\n enum: (a, b) => {\n const data = intersectJson(a, b);\n if (data.length === 0) {\n throw new Error(`Intersection of the following enums is empty: \"${JSON.stringify(a)}\", \"${JSON.stringify(b)}\"`);\n }\n return data;\n },\n anyOf: mergeArraysOfSchemaDefinition,\n oneOf: mergeArraysOfSchemaDefinition,\n allOf: (l, r) => deduplicateJsonSchemaDef(l.concat(r)),\n propertyNames: mergeSchemaDefinitions,\n contains: mergeSchemaDefinitions,\n dependencies: createRecordsMerge((a, b) => {\n if (Array.isArray(a)) {\n if (Array.isArray(b)) {\n return union(a, b);\n }\n return mergeSchemaDefinitions(b, { required: a });\n }\n if (Array.isArray(b)) {\n return mergeSchemaDefinitions(a, { required: b });\n }\n return mergeSchemaDefinitions(a, b);\n }),\n examples: (l, r) => {\n // https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-validation-01#section-10.4\n if (!Array.isArray(l) || !Array.isArray(r)) {\n throw new Error(`Value of the 'examples' field should be an array, but got \"${JSON.stringify(l)}\" and \"${JSON.stringify(r)}\"`);\n }\n // TODO: Proper deduplication\n return union(l, r);\n },\n multipleOf: (a, b) => {\n let factor = 1;\n while (!Number.isInteger(a) || !Number.isInteger(b)) {\n factor *= 10;\n a *= 10;\n b *= 10;\n }\n return lcm(a, b) / factor;\n },\n exclusiveMaximum: Math.min,\n maximum: Math.min,\n maxItems: Math.min,\n maxLength: Math.min,\n maxProperties: Math.min,\n exclusiveMinimum: Math.max,\n minimum: Math.max,\n minItems: Math.max,\n minLength: Math.max,\n minProperties: Math.max,\n uniqueItems: mergeBooleans,\n required: union,\n ...mergers,\n };\n return {\n mergeSchemaDefinitions,\n mergeArrayOfSchemaDefinitions,\n };\n}\n//# sourceMappingURL=merge.js.map","import { transformSchemaDefinition } from \"../transform.js\";\nfunction getAllOfSchemas(schema) {\n const result = [];\n const stack = [schema];\n while (stack.length > 0) {\n const current = stack.pop();\n if (typeof current === \"boolean\" || current.allOf === undefined) {\n result.push(current);\n continue;\n }\n const { allOf, ...rest } = current;\n result.push(rest);\n for (let i = allOf.length - 1; i >= 0; i--) {\n stack.push(allOf[i]);\n }\n }\n return result;\n}\nexport function createShallowAllOfMerge(mergeArrayOfSchemaDefinitions) {\n return (schema) => mergeArrayOfSchemaDefinitions(getAllOfSchemas(schema));\n}\nexport function createDeepAllOfMerge(shallowMerge) {\n return (schemaDef) => transformSchemaDefinition(schemaDef, (def) => {\n if (typeof def === \"boolean\" || def.allOf === undefined) {\n return def;\n }\n return shallowMerge(def);\n });\n}\n//# sourceMappingURL=all-of-merge.js.map","import { createComparator, createMerger, createShallowAllOfMerge } from '@x0k/json-schema-merge';\nimport { createDeduplicator, createIntersector } from '@x0k/json-schema-merge/lib/array';\nconst { compareSchemaDefinitions, compareSchemaValues } = createComparator();\nconst { mergeArrayOfSchemaDefinitions } = createMerger({\n intersectJson: createIntersector(compareSchemaValues),\n deduplicateJsonSchemaDef: createDeduplicator(compareSchemaDefinitions),\n});\n/** Shared `@x0k/json-schema-merge` shallow-allOf merge function used by `retrieveSchema` and\n * `omitExtraData`. Constructed once from a single comparator/merger/intersector/deduplicator\n * pipeline so both consumers share the same configuration without duplicating setup code.\n *\n * Usage: pass a schema that contains an `allOf` keyword and receive the merged result.\n *\n * @example\n * const merged = shallowAllOfMerge(schema); // schema.allOf is merged into the parent schema\n */\nexport default createShallowAllOfMerge(mergeArrayOfSchemaDefinitions);\n//# sourceMappingURL=shallowAllOfMerge.js.map","import { ADDITIONAL_PROPERTIES_KEY, ADDITIONAL_PROPERTY_FLAG, ALL_OF_KEY, ANY_OF_KEY, DEPENDENCIES_KEY, ID_KEY, IF_KEY, ITEMS_KEY, ONE_OF_KEY, PATTERN_PROPERTIES_KEY, PROPERTIES_KEY, REF_KEY, RJSF_REF_CYCLE_KEY, RJSF_REF_KEY, } from \"../constants.js\";\nimport deepEquals from \"../deepEquals.js\";\nimport findSchemaDefinition, { splitKeyElementFromObject } from \"../findSchemaDefinition.js\";\nimport getDiscriminatorFieldFromSchema from \"../getDiscriminatorFieldFromSchema.js\";\nimport guessType from \"../guessType.js\";\nimport isObject from \"../isObject.js\";\nimport mergeSchemas from \"../mergeSchemas.js\";\nimport { getByPath } from \"../pathUtils.js\";\nimport getFirstMatchingOption from \"./getFirstMatchingOption.js\";\nimport shallowAllOfMerge from \"./shallowAllOfMerge.js\";\n/** Retrieves an expanded schema that has had all of its conditions, additional properties, references and dependencies\n * resolved and merged into the `schema` given a `validator`, `rootSchema` and `rawFormData` that is used to do the\n * potentially recursive resolution.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param schema - The schema for which retrieving a schema is desired\n * @param [rootSchema={}] - The root schema that will be forwarded to all the APIs\n * @param [rawFormData] - The current formData, if any, to assist retrieving a schema\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @param [resolveAnyOfOrOneOfRefs = false] - Optional flag indicating whether to resolved refs in anyOf/oneOf lists\n * @returns - The schema having its conditions, additional properties, references and dependencies resolved\n */\nexport default function retrieveSchema(validator, schema, rootSchema = {}, rawFormData, experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs = false) {\n return retrieveSchemaInternal(validator, schema, rootSchema, rawFormData, undefined, undefined, experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs)[0];\n}\n/** Converts boolean schemas to equivalent object schemas for APIs that operate on `StrictRJSFSchema` objects.\n *\n * @param schema - The schema or boolean schema to normalize\n * @returns - The original schema or an equivalent object schema\n */\nfunction normalizeBooleanSchema(schema) {\n if (typeof schema !== 'boolean') {\n return schema;\n }\n return (schema ? {} : { not: {} });\n}\n/** Resolves a conditional block (if/else/then) by removing the condition and merging the appropriate conditional branch\n * with the rest of the schema. If `expandAllBranches` is true, then the `retrieveSchemaInteral()` results for both\n * conditions will be returned.\n *\n * @param validator - An implementation of the `ValidatorType` interface that is used to detect valid schema conditions\n * @param schema - The schema for which resolving a condition is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and\n * dependencies as a list of schemas\n * @param recurseList - The list of recursive references already processed\n * @param [formData] - The current formData to assist retrieving a schema\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - A list of schemas with the appropriate conditions resolved, possibly with all branches expanded\n */\nexport function resolveCondition(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {\n const { if: expression, then, else: otherwise, ...resolvedSchemaLessConditional } = schema;\n const conditionValue = validator.isValid(expression, formData || {}, rootSchema);\n let resolvedSchemas = [resolvedSchemaLessConditional];\n let schemas = [];\n if (expandAllBranches) {\n if (then && typeof then !== 'boolean') {\n const thenSchema = then;\n schemas = schemas.concat(retrieveSchemaInternal(validator, thenSchema, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf));\n }\n if (otherwise && typeof otherwise !== 'boolean') {\n const otherwiseSchema = otherwise;\n schemas = schemas.concat(retrieveSchemaInternal(validator, otherwiseSchema, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf));\n }\n }\n else {\n const conditionalBranch = (conditionValue ? then : otherwise);\n if (conditionalBranch !== undefined) {\n const conditionalSchema = normalizeBooleanSchema(conditionalBranch);\n schemas = schemas.concat(retrieveSchemaInternal(validator, conditionalSchema, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf));\n }\n }\n if (schemas.length) {\n resolvedSchemas = schemas.map((s) => mergeSchemas(resolvedSchemaLessConditional, s));\n }\n return resolvedSchemas.flatMap((s) => retrieveSchemaInternal(validator, s, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf));\n}\n/** Given a list of lists of allOf, anyOf or oneOf values, create a list of lists of all permutations of the values. The\n * `listOfLists` is expected to be all resolved values of the 1st...nth schemas within an `allOf`, `anyOf` or `oneOf`.\n * From those lists, build a matrix for each `xxxOf` where there is more than one schema for a row in the list of lists.\n *\n * For example:\n * - If there are three xxxOf rows (A, B, C) and they have been resolved such that there is only one A, two B and three\n * C schemas then:\n * - The permutation for the first row is `[[A]]`\n * - The permutations for the second row are `[[A,B1], [A,B2]]`\n * - The permutations for the third row are `[[A,B1,C1], [A,B1,C2], [A,B1,C3], [A,B2,C1], [A,B2,C2], [A,B2,C3]]`\n *\n * @param listOfLists - The list of lists of elements that represent the allOf, anyOf or oneOf resolved values in order\n * @returns - The list of all permutations of schemas for a set of `xxxOf`s\n */\nexport function getAllPermutationsOfXxxOf(listOfLists) {\n const allPermutations = listOfLists.reduce((permutations, list) => {\n // When there are more than one set of schemas for a row, duplicate the set of permutations and add in the values\n if (list.length > 1) {\n return list.flatMap((element) => permutations.map((permutation) => [...permutation, element]));\n }\n // Otherwise just push in the single value into the current set of permutations\n permutations.forEach((permutation) => permutation.push(list[0]));\n return permutations;\n }, [[]]);\n return allPermutations;\n}\n/** Returns the subset of 'patternProperties' specifications that match the given 'key'\n *\n * @param schema - The schema whose 'patternProperties' are to be filtered\n * @param key - The key to match against the 'patternProperties' specifications\n * @returns - The subset of 'patternProperties' specifications that match the given 'key'\n */\nexport function getMatchingPatternProperties(schema, key) {\n const patternProperties = schema.patternProperties ?? {};\n return Object.fromEntries(Object.entries(patternProperties).filter(([pattern]) => RegExp(pattern).test(key)));\n}\n/** Resolves references and dependencies within a schema and its 'allOf' children. Passes the `expandAllBranches` flag\n * down to the `retrieveSchemaInternal()`, `resolveReference()` and `resolveDependencies()` helper calls. If\n * `expandAllBranches` is true, then all possible dependencies and/or allOf branches are returned.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param schema - The schema for which resolving a schema is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies\n * as a list of schemas\n * @param recurseList - The list of recursive references already processed\n * @param [formData] - The current formData, if any, to assist retrieving a schema\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @param [resolveAnyOfOrOneOfRefs] - Optional flag indicating whether to resolved refs in anyOf/oneOf lists\n * @returns - The list of schemas having its references, dependencies and allOf schemas resolved\n */\nexport function resolveSchema(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs) {\n const updatedSchemas = resolveReference(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs);\n if (updatedSchemas.length > 1 || updatedSchemas[0] !== schema) {\n // return the updatedSchemas array if it has either multiple schemas within it\n // OR the first schema is not the same as the original schema\n return updatedSchemas;\n }\n if (DEPENDENCIES_KEY in schema) {\n const resolvedSchemas = resolveDependencies(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf);\n return resolvedSchemas.flatMap((s) => retrieveSchemaInternal(validator, s, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf));\n }\n if (ALL_OF_KEY in schema && Array.isArray(schema[ALL_OF_KEY])) {\n const allOfSchemaElements = schema.allOf.map((allOfSubschema) => retrieveSchemaInternal(validator, allOfSubschema, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf));\n const allPermutations = getAllPermutationsOfXxxOf(allOfSchemaElements);\n return allPermutations.map((permutation) => ({\n ...schema,\n allOf: permutation,\n }));\n }\n // No $ref or dependencies or allOf attribute was found, returning the original schema.\n return [schema];\n}\n/** Resolves all references within a schema and then returns the `retrieveSchemaInternal()` if the resolved schema is\n * actually different than the original. Passes the `expandAllBranches` flag down to the `retrieveSchemaInternal()`\n * helper call.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param schema - The schema for which resolving a reference is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies\n * as a list of schemas\n * @param recurseList - The list of recursive references already processed\n * @param [formData] - The current formData, if any, to assist retrieving a schema\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @param [resolveAnyOfOrOneOfRefs] - Optional flag indicating whether to resolved refs in anyOf/oneOf lists\n * @returns - The list schemas retrieved after having all references resolved\n */\nexport function resolveReference(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs) {\n const updatedSchema = resolveAllReferences(schema, rootSchema, recurseList, undefined, resolveAnyOfOrOneOfRefs);\n if (updatedSchema !== schema) {\n // Only call this if the schema was actually changed by the `resolveAllReferences()` function\n return retrieveSchemaInternal(validator, updatedSchema, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs);\n }\n return [schema];\n}\n/** Resolves all references within the schema itself as well as any of its properties and array items.\n *\n * @param schema - The schema for which resolving all references is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param recurseList - List of $refs already resolved to prevent recursion\n * @param [baseURI] - The base URI to be used for resolving relative references\n * @param [resolveAnyOfOrOneOfRefs] - Optional flag indicating whether to resolved refs in anyOf/oneOf lists\n * @param [markCycleOnDetection=false] - When true and a recursive $ref is detected, the returned schema is tagged\n * with `__rjsf_ref_cycle: true` so that `SchemaField` can render a cycle indicator instead of recursing.\n * Should only be `true` when called from an **object-property** context, because object properties are always\n * rendered (creating an infinite loop), whereas array items and anyOf/oneOf branches are data-driven.\n * @returns - given schema will all references resolved or the original schema if no internal `$refs` were resolved\n */\nexport function resolveAllReferences(schema, rootSchema, recurseList, baseURI, resolveAnyOfOrOneOfRefs, markCycleOnDetection = false) {\n if (!isObject(schema)) {\n return schema;\n }\n let resolvedSchema = schema;\n let currentBaseURI = baseURI;\n // resolve top level ref\n if (REF_KEY in resolvedSchema) {\n const { $ref, ...localSchema } = resolvedSchema;\n // Check for a recursive reference and stop the loop\n if (recurseList.includes($ref)) {\n return markCycleOnDetection ? { ...resolvedSchema, [RJSF_REF_CYCLE_KEY]: true } : resolvedSchema;\n }\n recurseList.push($ref);\n // Retrieve the referenced schema definition.\n const refSchema = findSchemaDefinition($ref, rootSchema, currentBaseURI);\n resolvedSchema = { ...refSchema, ...localSchema, [RJSF_REF_KEY]: $ref };\n if (ID_KEY in resolvedSchema) {\n currentBaseURI = resolvedSchema[ID_KEY];\n }\n }\n if (PROPERTIES_KEY in resolvedSchema) {\n const childrenLists = [];\n const updatedProps = {};\n for (const [key, value] of Object.entries(resolvedSchema[PROPERTIES_KEY] ?? {})) {\n const childList = [...recurseList];\n // Mark cycles only when NOT in resolveAnyOfOrOneOfRefs mode. When resolveAnyOfOrOneOfRefs=true\n // (e.g. from ObjectField), options are resolved against a shared recurseList that accumulates\n // refs across branches, causing false positives. In simple (non-anyOf) resolution, a $ref cycle\n // in an object property always causes an infinite render loop and must be caught.\n updatedProps[key] = resolveAllReferences(value, rootSchema, childList, currentBaseURI, resolveAnyOfOrOneOfRefs, !resolveAnyOfOrOneOfRefs);\n childrenLists.push(childList);\n }\n for (const ref of new Set(childrenLists.flat())) {\n if (!recurseList.includes(ref)) {\n recurseList.push(ref);\n }\n }\n resolvedSchema = { ...resolvedSchema, [PROPERTIES_KEY]: updatedProps };\n }\n if (ITEMS_KEY in resolvedSchema &&\n !Array.isArray(resolvedSchema.items) &&\n typeof resolvedSchema.items !== 'boolean') {\n resolvedSchema = {\n ...resolvedSchema,\n // Array items are only rendered when data exists, so a $ref cycle here does NOT cause an infinite render.\n items: resolveAllReferences(resolvedSchema.items, rootSchema, recurseList, currentBaseURI, resolveAnyOfOrOneOfRefs),\n };\n }\n if (resolveAnyOfOrOneOfRefs) {\n let key;\n let schemas;\n if (ANY_OF_KEY in schema && Array.isArray(schema[ANY_OF_KEY])) {\n key = ANY_OF_KEY;\n schemas = resolvedSchema[ANY_OF_KEY];\n }\n else if (ONE_OF_KEY in schema && Array.isArray(schema[ONE_OF_KEY])) {\n key = ONE_OF_KEY;\n schemas = resolvedSchema[ONE_OF_KEY];\n }\n if (key && schemas) {\n resolvedSchema = {\n ...resolvedSchema,\n [key]: schemas.map((s) => resolveAllReferences(s, rootSchema, recurseList, currentBaseURI, resolveAnyOfOrOneOfRefs)),\n };\n }\n }\n return deepEquals(schema, resolvedSchema) ? schema : resolvedSchema;\n}\n/** Creates new 'properties' items for each key in the `formData`\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param theSchema - The schema for which the existing additional properties is desired\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s * @param validator\n * @param [aFormData] - The current formData, if any, to assist retrieving a schema\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The updated schema with additional properties stubbed\n */\nexport function stubExistingAdditionalProperties(validator, theSchema, rootSchema, aFormData, experimental_customMergeAllOf) {\n // Clone the schema so that we don't ruin the consumer's original\n const schema = {\n ...theSchema,\n properties: { ...theSchema.properties },\n };\n // make sure formData is an object\n const formData = aFormData && isObject(aFormData) ? aFormData : {};\n Object.keys(formData).forEach((key) => {\n if (key in schema.properties) {\n // No need to stub, our schema already has the property\n return;\n }\n if (PATTERN_PROPERTIES_KEY in schema) {\n const matchingProperties = getMatchingPatternProperties(schema, key);\n if (Object.keys(matchingProperties).length > 0) {\n schema.properties[key] = retrieveSchema(validator, { [ALL_OF_KEY]: Object.values(matchingProperties) }, rootSchema, formData[key], experimental_customMergeAllOf);\n schema.properties[key][ADDITIONAL_PROPERTY_FLAG] = true;\n return;\n }\n }\n if (ADDITIONAL_PROPERTIES_KEY in schema && schema.additionalProperties !== false) {\n let additionalProperties;\n if (typeof schema.additionalProperties !== 'boolean') {\n if (REF_KEY in schema.additionalProperties) {\n additionalProperties = retrieveSchema(validator, { [REF_KEY]: schema.additionalProperties[REF_KEY] }, rootSchema, formData[key], experimental_customMergeAllOf);\n }\n else if ('type' in schema.additionalProperties) {\n additionalProperties = { ...schema.additionalProperties };\n }\n else if (ANY_OF_KEY in schema.additionalProperties || ONE_OF_KEY in schema.additionalProperties) {\n additionalProperties = {\n type: 'object',\n ...schema.additionalProperties,\n };\n }\n else {\n additionalProperties = { type: guessType(formData[key]) };\n }\n }\n else {\n additionalProperties = { type: guessType(formData[key]) };\n }\n // The type of our new key should match the additionalProperties value;\n schema.properties[key] = additionalProperties;\n // Set our additional property flag so we know it was dynamically added\n schema.properties[key][ADDITIONAL_PROPERTY_FLAG] = true;\n }\n else {\n // Invalid property\n schema.properties[key] = { type: 'null' };\n // Set our additional property flag so we know it was dynamically added\n schema.properties[key][ADDITIONAL_PROPERTY_FLAG] = true;\n }\n });\n return schema;\n}\n/**\n * Internal helper that merges allOf schemas using @x0k/json-schema-merge's shallow allOf merge\n * @param schema - The schema containing an `allOf` keyword\n * @returns The schema with allOf schemas merged\n */\nfunction mergeAllOf(schema) {\n return shallowAllOfMerge(schema);\n}\n/** Internal handler that retrieves an expanded schema that has had all of its conditions, additional properties,\n * references and dependencies resolved and merged into the `schema` given a `validator`, `rootSchema` and `rawFormData`\n * that is used to do the potentially recursive resolution. If `expandAllBranches` is true, then all possible branches\n * of the schema and its references, conditions and dependencies are returned.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param schema - The schema for which retrieving a schema is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param [rawFormData] - The current formData, if any, to assist retrieving a schema\n * @param [expandAllBranches=false] - Flag, if true, will return all possible branches of conditions, any/oneOf and\n * dependencies as a list of schemas\n * @param [recurseList=[]] - The optional, list of recursive references already processed\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @param [resolveAnyOfOrOneOfRefs] - Optional flag indicating whether to resolved refs in anyOf/oneOf lists\n * @returns - The schema(s) resulting from having its conditions, additional properties, references and dependencies\n * resolved. Multiple schemas may be returned if `expandAllBranches` is true.\n */\nexport function retrieveSchemaInternal(validator, schema, rootSchema, rawFormData, expandAllBranches = false, recurseList = [], experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs) {\n if (!isObject(schema)) {\n return [{}];\n }\n const resolvedSchemas = resolveSchema(validator, schema, rootSchema, expandAllBranches, recurseList, rawFormData, experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs);\n return resolvedSchemas.flatMap((s) => {\n let resolvedSchema = s;\n if (IF_KEY in resolvedSchema) {\n return resolveCondition(validator, resolvedSchema, rootSchema, expandAllBranches, recurseList, rawFormData, experimental_customMergeAllOf);\n }\n if (ALL_OF_KEY in resolvedSchema) {\n // resolve allOf schemas\n if (expandAllBranches) {\n const { allOf, ...restOfSchema } = resolvedSchema;\n return [...allOf, restOfSchema];\n }\n try {\n const withContainsSchemas = [];\n const withoutContainsSchemas = [];\n // Collect Symbol-keyed properties from allOf subschemas before merging; shallowAllOfMerge\n // (external library) only operates on string keys and will drop them.\n const allOfSymbols = {};\n resolvedSchema.allOf?.forEach((allOfItem) => {\n if (typeof allOfItem === 'object' && allOfItem.contains) {\n withContainsSchemas.push(allOfItem);\n }\n else {\n withoutContainsSchemas.push(allOfItem);\n for (const sym of Object.getOwnPropertySymbols(allOfItem)) {\n if (!(sym in allOfSymbols)) {\n allOfSymbols[sym] = allOfItem[sym];\n }\n }\n }\n });\n if (withContainsSchemas.length) {\n resolvedSchema = { ...resolvedSchema, allOf: withoutContainsSchemas };\n }\n resolvedSchema = experimental_customMergeAllOf\n ? experimental_customMergeAllOf(resolvedSchema)\n : mergeAllOf(resolvedSchema);\n // Re-apply collected Symbol properties that the merge dropped.\n for (const sym of Object.getOwnPropertySymbols(allOfSymbols)) {\n resolvedSchema[sym] = allOfSymbols[sym];\n }\n if (withContainsSchemas.length) {\n resolvedSchema.allOf = withContainsSchemas;\n }\n }\n catch (e) {\n // oxlint-disable-next-line no-console\n console.warn('could not merge subschemas in allOf:\\n', e);\n const { allOf, ...resolvedSchemaWithoutAllOf } = resolvedSchema;\n return resolvedSchemaWithoutAllOf;\n }\n }\n if (PROPERTIES_KEY in resolvedSchema && PATTERN_PROPERTIES_KEY in resolvedSchema) {\n resolvedSchema = Object.keys(resolvedSchema.properties).reduce((acc, key) => {\n const matchingProperties = getMatchingPatternProperties(acc, key);\n if (Object.keys(matchingProperties).length > 0) {\n acc.properties[key] = retrieveSchema(validator, { allOf: [acc.properties[key], ...Object.values(matchingProperties)] }, rootSchema, getByPath(rawFormData, key), experimental_customMergeAllOf);\n }\n return acc;\n }, {\n ...resolvedSchema,\n properties: { ...resolvedSchema.properties },\n });\n }\n const hasAdditionalProperties = PATTERN_PROPERTIES_KEY in resolvedSchema ||\n (ADDITIONAL_PROPERTIES_KEY in resolvedSchema && resolvedSchema.additionalProperties !== false);\n if (hasAdditionalProperties) {\n return stubExistingAdditionalProperties(validator, resolvedSchema, rootSchema, rawFormData, experimental_customMergeAllOf);\n }\n return resolvedSchema;\n });\n}\n/** Resolves an `anyOf` or `oneOf` within a schema (if present) to the list of schemas returned from\n * `retrieveSchemaInternal()` for the best matching option. If `expandAllBranches` is true, then a list of schemas for ALL\n * options are retrieved and returned.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param schema - The schema for which retrieving a schema is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies\n * as a list of schemas\n * @param [rawFormData] - The current formData, if any, to assist retrieving a schema, defaults to an empty object\n * @returns - Either an array containing the best matching option or all options if `expandAllBranches` is true\n */\nexport function resolveAnyOrOneOfSchemas(validator, schema, rootSchema, expandAllBranches, rawFormData) {\n let anyOrOneOf;\n const { oneOf, anyOf, ...remaining } = schema;\n if (Array.isArray(oneOf)) {\n anyOrOneOf = oneOf;\n }\n else if (Array.isArray(anyOf)) {\n anyOrOneOf = anyOf;\n }\n if (anyOrOneOf) {\n // Ensure that during expand all branches we pass an object rather than undefined so that all options are interrogated\n const formData = rawFormData === undefined && expandAllBranches ? {} : rawFormData;\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n anyOrOneOf = anyOrOneOf.map((s) => resolveAllReferences(s, rootSchema, []));\n // Call this to trigger the set of isValid() calls that the schema parser will need\n const option = getFirstMatchingOption(validator, formData, anyOrOneOf, rootSchema, discriminator);\n if (expandAllBranches) {\n // Also trigger isValid() for the relaxed variants so that precompiled validators capture their hashes.\n // omitExtraData's handleOneOf relaxes additionalProperties:false → true before scoring; those mutated\n // schemas must be present in a precompiled validator's compiled set or isValid() will throw at runtime.\n // Using getFirstMatchingOption (rather than calling isValid directly) ensures that the augmented forms\n // of each option (as constructed internally by getFirstMatchingOption for options with properties) are\n // also captured. The return value is discarded — the call is purely for ParserValidator's side effect.\n const relaxed = relaxOptionsForScoring(anyOrOneOf, false, rootSchema);\n getFirstMatchingOption(validator, formData, relaxed, rootSchema, discriminator);\n return anyOrOneOf.map((item) => mergeSchemas(remaining, item));\n }\n return [mergeSchemas(remaining, anyOrOneOf[option])];\n }\n return [schema];\n}\n/** Normalises a list of `oneOf`/`anyOf` options for use in option-scoring only (not for filtering).\n * Boolean schemas are converted to their object equivalents (`true` → `{}`, `false` → `{not:{}}`).\n * When `resolveRefs` is `true`, each object option is first passed through `resolveAllReferences`\n * so that `$ref`-based options expose their `additionalProperties` constraint before relaxation.\n * Any option whose `additionalProperties` is `false` is widened to `true` so that\n * `getClosestMatchingOption` / `validator.isValid()` does not produce false negatives when the\n * form data contains keys not listed in `properties`.\n *\n * @param options - The raw `oneOf`/`anyOf` array, which may contain boolean schemas\n * @param [resolveRefs=false] - When `true`, resolve `$ref`s in each option before relaxing; pass\n * `rootSchema` as well. Set `false` (default) when refs are already resolved at the call site.\n * @param [rootSchema] - Required when `resolveRefs` is `true`; the root schema used to look up `$ref`s\n * @returns - A new array of plain schema objects with `additionalProperties` relaxed where needed\n */\nexport function relaxOptionsForScoring(options, resolveRefs = false, rootSchema) {\n return options.map((d) => {\n if (!isObject(d)) {\n return normalizeBooleanSchema(d);\n }\n const schema = resolveRefs && rootSchema ? resolveAllReferences(d, rootSchema, []) : d;\n return schema.additionalProperties === false ? { ...schema, additionalProperties: true } : schema;\n });\n}\n/** Resolves dependencies within a schema and its 'anyOf/oneOf' children. Passes the `expandAllBranches` flag down to\n * the `resolveAnyOrOneOfSchema()` and `processDependencies()` helper calls.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param schema - The schema for which resolving a dependency is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies\n * as a list of schemas\n * @param recurseList - The list of recursive references already processed\n * @param [formData] - The current formData, if any, to assist retrieving a schema\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The list of schemas with their dependencies resolved\n */\nexport function resolveDependencies(validator, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {\n // Drop the dependencies from the source schema.\n const { dependencies, ...remainingSchema } = schema;\n const resolvedSchemas = resolveAnyOrOneOfSchemas(validator, remainingSchema, rootSchema, expandAllBranches, formData);\n return resolvedSchemas.flatMap((resolvedSchema) => processDependencies(validator, dependencies, resolvedSchema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf));\n}\n/** Processes all the `dependencies` recursively into the list of `resolvedSchema`s as needed. Passes the\n * `expandAllBranches` flag down to the `withDependentSchema()` and the recursive `processDependencies()` helper calls.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param dependencies - The set of dependencies that needs to be processed\n * @param resolvedSchema - The schema for which processing dependencies is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies\n * as a list of schemas\n * @param recurseList - The list of recursive references already processed\n * @param [formData] - The current formData, if any, to assist retrieving a schema\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The schema with the `dependencies` resolved into it\n */\nexport function processDependencies(validator, dependencies, resolvedSchema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {\n let schemas = [resolvedSchema];\n // Process dependencies updating the local schema properties as appropriate.\n for (const dependencyKey in dependencies) {\n if ((expandAllBranches || getByPath(formData, dependencyKey) !== undefined) &&\n (!resolvedSchema.properties || dependencyKey in resolvedSchema.properties)) {\n const [remainingDependencies, dependencyValue] = splitKeyElementFromObject(dependencyKey, dependencies);\n if (Array.isArray(dependencyValue)) {\n schemas[0] = withDependentProperties(resolvedSchema, dependencyValue);\n }\n else if (isObject(dependencyValue)) {\n schemas = withDependentSchema(validator, resolvedSchema, rootSchema, dependencyKey, dependencyValue, expandAllBranches, recurseList, formData, experimental_customMergeAllOf);\n }\n return schemas.flatMap((schema) => processDependencies(validator, remainingDependencies, schema, rootSchema, expandAllBranches, recurseList, formData, experimental_customMergeAllOf));\n }\n }\n return schemas;\n}\n/** Updates a schema with additionally required properties added\n *\n * @param schema - The schema for which resolving a dependent properties is desired\n * @param [additionallyRequired] - An optional array of additionally required names\n * @returns - The schema with the additional required values merged in\n */\nexport function withDependentProperties(schema, additionallyRequired) {\n if (!additionallyRequired) {\n return schema;\n }\n const required = Array.isArray(schema.required)\n ? Array.from(new Set([...schema.required, ...additionallyRequired]))\n : additionallyRequired;\n return { ...schema, required };\n}\n/** Merges a dependent schema into the `schema` dealing with oneOfs and references. Passes the `expandAllBranches` flag\n * down to the `retrieveSchemaInternal()`, `resolveReference()` and `withExactlyOneSubschema()` helper calls.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param schema - The schema for which resolving a dependent schema is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param dependencyKey - The key name of the dependency\n * @param dependencyValue - The potentially dependent schema\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies\n * as a list of schemas\n * @param recurseList - The list of recursive references already processed\n * @param [formData]- The current formData to assist retrieving a schema\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The list of schemas with the dependent schema resolved into them\n */\nexport function withDependentSchema(validator, schema, rootSchema, dependencyKey, dependencyValue, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {\n const dependentSchemas = retrieveSchemaInternal(validator, dependencyValue, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf);\n return dependentSchemas.flatMap((dependent) => {\n const { oneOf, ...dependentSchema } = dependent;\n const mergedSchema = mergeSchemas(schema, dependentSchema);\n // Since it does not contain oneOf, we return the original schema.\n if (oneOf === undefined) {\n return mergedSchema;\n }\n // Resolve $refs inside oneOf.\n const resolvedOneOfs = oneOf.map((subschema) => {\n if (typeof subschema === 'boolean' || !(REF_KEY in subschema)) {\n return [subschema];\n }\n return resolveReference(validator, subschema, rootSchema, expandAllBranches, recurseList, formData);\n });\n const allPermutations = getAllPermutationsOfXxxOf(resolvedOneOfs);\n return allPermutations.flatMap((resolvedOneOf) => withExactlyOneSubschema(validator, mergedSchema, rootSchema, dependencyKey, resolvedOneOf, expandAllBranches, recurseList, formData, experimental_customMergeAllOf));\n });\n}\n/** Returns a list of `schema`s with the best choice from the `oneOf` options merged into it. If `expandAllBranches` is\n * true, then a list of schemas for ALL options are retrieved and returned. Passes the `expandAllBranches` flag down to\n * the `retrieveSchemaInternal()` helper call.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used to validate oneOf options\n * @param schema - The schema for which resolving a oneOf subschema is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param dependencyKey - The key name of the oneOf dependency\n * @param oneOf - The list of schemas representing the oneOf options\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies\n * as a list of schemas\n * @param recurseList - The list of recursive references already processed\n * @param [formData] - The current formData to assist retrieving a schema\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - Either an array containing the best matching option or all options if `expandAllBranches` is true\n */\nexport function withExactlyOneSubschema(validator, schema, rootSchema, dependencyKey, oneOf, expandAllBranches, recurseList, formData, experimental_customMergeAllOf) {\n const validSubschemas = oneOf.filter((subschema) => {\n if (typeof subschema === 'boolean' || !subschema?.properties) {\n return false;\n }\n const { [dependencyKey]: conditionPropertySchema } = subschema.properties;\n if (conditionPropertySchema) {\n const conditionSchema = {\n type: 'object',\n properties: {\n [dependencyKey]: conditionPropertySchema,\n },\n };\n return validator.isValid(conditionSchema, formData, rootSchema) || expandAllBranches;\n }\n return false;\n });\n if (!expandAllBranches && validSubschemas.length !== 1) {\n // oxlint-disable-next-line no-console\n console.warn(\"ignoring oneOf in dependencies because there isn't exactly one subschema that is valid\");\n return [schema];\n }\n return validSubschemas.flatMap((s) => {\n const subschema = s;\n const [dependentSubschema] = splitKeyElementFromObject(dependencyKey, subschema.properties);\n const dependentSchema = { ...subschema, properties: dependentSubschema };\n const schemas = retrieveSchemaInternal(validator, dependentSchema, rootSchema, formData, expandAllBranches, recurseList, experimental_customMergeAllOf);\n return schemas.map((resolvedSubschema) => mergeSchemas(schema, resolvedSubschema));\n });\n}\n//# sourceMappingURL=retrieveSchema.js.map","import { CONST_KEY, DEFAULT_KEY, PROPERTIES_KEY } from \"../constants.js\";\nimport deepEquals from \"../deepEquals.js\";\nimport getDiscriminatorFieldFromSchema from \"../getDiscriminatorFieldFromSchema.js\";\nimport { getByPath } from \"../pathUtils.js\";\nimport retrieveSchema from \"./retrieveSchema.js\";\n/** Finds the option inside the `schema['any/oneOf']` list which has the `properties[selectorField].default` or\n * `properties[selectorField].const` that matches the `formData[selectorField]` value. For the purposes of this\n * function, `selectorField` is either `schema.discriminator.propertyName` or `fallbackField`. The `LayoutGridField`\n * works directly with schemas in a recursive manner, making this faster than `getFirstMatchingOption()`.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param schema - The schema element in which to search for the selected anyOf/oneOf option\n * @param fallbackField - The field to use as a backup selector field if the schema does not have a required field\n * @param xxx - Either `anyOf` or `oneOf`, defines which value is being sought\n * @param [formData={}] - The form data that is used to determine which anyOf/oneOf option to descend\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The anyOf/oneOf option that matches the selector field in the schema or undefined if nothing is selected\n */\nexport default function findSelectedOptionInXxxOf(validator, rootSchema, schema, fallbackField, xxx, formData = {}, experimental_customMergeAllOf) {\n if (Array.isArray(schema[xxx])) {\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n const selectorField = discriminator || fallbackField;\n const xxxOfs = schema[xxx].map((xxxOf) => retrieveSchema(validator, xxxOf, rootSchema, formData, experimental_customMergeAllOf));\n const data = getByPath(formData, selectorField);\n if (data !== undefined) {\n return xxxOfs.find((xxxOfOption) => deepEquals(getByPath(xxxOfOption, [PROPERTIES_KEY, selectorField, DEFAULT_KEY], getByPath(xxxOfOption, [PROPERTIES_KEY, selectorField, CONST_KEY])), data));\n }\n }\n return undefined;\n}\n//# sourceMappingURL=findSelectedOptionInXxxOf.js.map","import { REF_KEY } from \"../constants.js\";\nimport { getByPath, hasByPath, toPath } from \"../pathUtils.js\";\nimport retrieveSchema from \"./retrieveSchema.js\";\n/** Internal helper function that acts like `getByPath` but additionally retrieves `$ref`s as needed to get the path\n * for schemas containing potentially nested `$ref`s.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param schema - The current node within the JSON schema recursion\n * @param path - The remaining keys in the path to the desired property\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The internal schema from the `schema` for the given `path` or undefined if not found\n */\nfunction getFromSchemaInternal(validator, rootSchema, schema, path, experimental_customMergeAllOf) {\n let fieldSchema = schema;\n // hasByPath instead of `in` because `schema` can be undefined at runtime when drilling past a non-matching xxxOf\n if (hasByPath(schema, REF_KEY)) {\n fieldSchema = retrieveSchema(validator, schema, rootSchema, undefined, experimental_customMergeAllOf);\n }\n if (path.length === 0) {\n return fieldSchema;\n }\n const pathList = Array.isArray(path) ? [...path] : toPath(path);\n const [part, ...nestedPath] = pathList;\n if (part !== undefined && part !== '' && hasByPath(fieldSchema, part)) {\n fieldSchema = getByPath(fieldSchema, part);\n return getFromSchemaInternal(validator, rootSchema, fieldSchema, nestedPath, experimental_customMergeAllOf);\n }\n return undefined;\n}\nexport default function getFromSchema(validator, rootSchema, schema, path, defaultValue, experimental_customMergeAllOf) {\n const result = getFromSchemaInternal(validator, rootSchema, schema, path, experimental_customMergeAllOf);\n if (result === undefined) {\n return defaultValue;\n }\n return result;\n}\n//# sourceMappingURL=getFromSchema.js.map","import { ANY_OF_KEY, ONE_OF_KEY, PROPERTIES_KEY, REQUIRED_KEY } from \"../constants.js\";\nimport { getByPath, hasByPath } from \"../pathUtils.js\";\nimport findSelectedOptionInXxxOf from \"./findSelectedOptionInXxxOf.js\";\nimport getFromSchema from \"./getFromSchema.js\";\n/** Unique schema that represents no schema was found, exported for testing purposes */\nexport const NOT_FOUND_SCHEMA = { title: '!@#$_UNKNOWN_$#@!' };\n/** Finds the field specified by the `path` within the root or recursed `schema`. If there is no field for the specified\n * `path`, then the default `{ field: undefined, isRequired: undefined }` is returned. It determines whether a leaf\n * field is in the `required` list for its parent and if so, it is marked as required on return.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param schema - The node within the JSON schema in which to search\n * @param path - The keys in the path to the desired field\n * @param [formData={}] - The form data that is used to determine which anyOf/oneOf option to descend\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - An object that contains the field and its required state. If no field can be found then\n * `{ field: undefined, isRequired: undefined }` is returned.\n */\nexport default function findFieldInSchema(validator, rootSchema, schema, path, formData = {}, experimental_customMergeAllOf) {\n const pathList = Array.isArray(path) ? [...path] : path.split('.');\n let parentField = schema;\n // store the desired field into a variable and removing it from the `pathList`\n const fieldName = pathList.pop();\n const fieldNameKey = String(fieldName);\n if (pathList.length) {\n // drilling into the schema for each sub-path and taking into account of the any/oneOfs\n pathList.forEach((subPath) => {\n parentField = getFromSchema(validator, rootSchema, parentField, [PROPERTIES_KEY, subPath], {}, experimental_customMergeAllOf);\n if (hasByPath(parentField, ONE_OF_KEY)) {\n // if this sub-path has a `oneOf` then use the formData to drill into the schema with the selected option\n parentField = findSelectedOptionInXxxOf(validator, rootSchema, parentField, fieldNameKey, ONE_OF_KEY, getByPath(formData, subPath), experimental_customMergeAllOf);\n }\n else if (hasByPath(parentField, ANY_OF_KEY)) {\n // if this sub-path has a `anyOf` then use the formData to drill into the schema with the selected option\n parentField = findSelectedOptionInXxxOf(validator, rootSchema, parentField, fieldNameKey, ANY_OF_KEY, getByPath(formData, subPath), experimental_customMergeAllOf);\n }\n });\n }\n if (hasByPath(parentField, ONE_OF_KEY)) {\n // When oneOf is in the root schema, use the formData to drill into the schema with the selected option\n parentField = findSelectedOptionInXxxOf(validator, rootSchema, parentField, fieldNameKey, ONE_OF_KEY, formData, experimental_customMergeAllOf);\n }\n else if (hasByPath(parentField, ANY_OF_KEY)) {\n // When anyOf is in the root schema, use the formData to drill into the schema with the selected option\n parentField = findSelectedOptionInXxxOf(validator, rootSchema, parentField, fieldNameKey, ANY_OF_KEY, formData, experimental_customMergeAllOf);\n }\n // taking the most updated `parentField`, get our desired field\n let field = getFromSchema(validator, rootSchema, parentField, [PROPERTIES_KEY, fieldName], NOT_FOUND_SCHEMA, experimental_customMergeAllOf);\n if (field === NOT_FOUND_SCHEMA) {\n field = undefined;\n }\n // check to see if our desired field is in the `required` list for its parent\n const requiredArray = getFromSchema(validator, rootSchema, parentField, REQUIRED_KEY, [], experimental_customMergeAllOf);\n let isRequired;\n if (field && Array.isArray(requiredArray)) {\n isRequired = requiredArray.includes(fieldNameKey);\n }\n return { field, isRequired };\n}\n//# sourceMappingURL=findFieldInSchema.js.map","import { ONE_OF_KEY, REF_KEY, JUNK_OPTION_ID, ANY_OF_KEY } from \"../constants.js\";\nimport getDiscriminatorFieldFromSchema from \"../getDiscriminatorFieldFromSchema.js\";\nimport getOptionMatchingSimpleDiscriminator from \"../getOptionMatchingSimpleDiscriminator.js\";\nimport guessType from \"../guessType.js\";\nimport isObject from \"../isObject.js\";\nimport { getByPath, hasByPath } from \"../pathUtils.js\";\nimport getFirstMatchingOption from \"./getFirstMatchingOption.js\";\nimport retrieveSchema, { resolveAllReferences } from \"./retrieveSchema.js\";\n/** A junk option used to determine when the getFirstMatchingOption call really matches an option rather than returning\n * the first item\n */\nexport const JUNK_OPTION = {\n type: 'object',\n $id: JUNK_OPTION_ID,\n properties: {\n __not_really_there__: {\n type: 'number',\n },\n },\n};\n/** Recursive function that calculates the score of a `formData` against the given `schema`. The computation is fairly\n * simple. Initially the total score is 0. When `schema.properties` object exists, then all the `key/value` pairs within\n * the object are processed as follows after obtaining the formValue from `formData` using the `key`:\n * - If the `value` contains a `$ref`, `calculateIndexScore()` is called recursively with the formValue and the new\n * schema that is the result of the ref in the schema being resolved and that sub-schema's resulting score is added to\n * the total.\n * - If the `value` contains a `oneOf` and there is a formValue, then score based on the index returned from calling\n * `getClosestMatchingOption()` of that oneOf.\n * - If the type of the `value` is 'object', `calculateIndexScore()` is called recursively with the formValue and the\n * `value` itself as the sub-schema, and the score is added to the total.\n * - If the type of the `value` matches the guessed-type of the `formValue`, the score is incremented by 1, UNLESS the\n * value has a `default` or `const`. In those case, if the `default` or `const` and the `formValue` match, the score\n * is incremented by another 1 otherwise it is decremented by 1.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param rootSchema - The root JSON schema of the entire form\n * @param schema - The schema for which the score is being calculated\n * @param formData - The form data associated with the schema, used to calculate the score\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The score a schema against the formData\n */\nexport function calculateIndexScore(validator, rootSchema, schema, formData, experimental_customMergeAllOf) {\n let totalScore = 0;\n if (schema) {\n if (isObject(schema.properties)) {\n totalScore += Object.entries(schema.properties).reduce((score, [key, value]) => {\n const formValue = formData?.[key];\n if (typeof value === 'boolean') {\n return score;\n }\n if (hasByPath(value, REF_KEY)) {\n const newSchema = retrieveSchema(validator, value, rootSchema, formValue, experimental_customMergeAllOf);\n return (score +\n calculateIndexScore(validator, rootSchema, newSchema, formValue || {}, experimental_customMergeAllOf));\n }\n if ((hasByPath(value, ONE_OF_KEY) || hasByPath(value, ANY_OF_KEY)) && formValue) {\n const xxxOfKey = hasByPath(value, ONE_OF_KEY) ? ONE_OF_KEY : ANY_OF_KEY;\n const discriminator = getDiscriminatorFieldFromSchema(value);\n return (score +\n getClosestMatchingOption(validator, rootSchema, formValue, getByPath(value, xxxOfKey), -1, discriminator, experimental_customMergeAllOf));\n }\n if (value.type === 'object') {\n // If the structure is matching then give it a little boost in score\n const structureBoost = typeof formValue === 'object' && formValue !== null ? 1 : 0;\n return (score +\n structureBoost +\n calculateIndexScore(validator, rootSchema, value, formValue, experimental_customMergeAllOf));\n }\n if (value.type === guessType(formValue)) {\n // If the types match, then we bump the score by one\n let newScore = score + 1;\n if (value.default) {\n // If the schema contains a readonly default value score the value that matches the default higher and\n // any non-matching value lower\n newScore += formValue === value.default ? 1 : -1;\n }\n else if (value.const) {\n // If the schema contains a const value score the value that matches the default higher and\n // any non-matching value lower\n newScore += formValue === value.const ? 1 : -1;\n }\n // TODO eventually, deal with enums/arrays\n return newScore;\n }\n return score;\n }, 0);\n }\n else if (typeof schema.type === 'string' && schema.type === guessType(formData)) {\n totalScore += 1;\n }\n }\n return totalScore;\n}\n/** Determines which of the given `options` provided most closely matches the `formData`. Using\n * `getFirstMatchingOption()` to match two schemas that differ only by the readOnly, default or const value of a field\n * based on the `formData` and returns 0 when there is no match. Rather than passing in all the `options` at once to\n * this utility, instead an array of valid option indexes is created by iterating over the list of options, call\n * `getFirstMatchingOptions` with a list of one junk option and one good option, seeing if the good option is considered\n * matched.\n *\n * Once the list of valid indexes is created, if there is only one valid index, just return it. Otherwise, if there are\n * no valid indexes, then fill the valid indexes array with the indexes of all the options. Next, the index of the\n * option with the highest score is determined by iterating over the list of valid options, calling\n * `calculateIndexScore()` on each, comparing it against the current best score, and returning the index of the one that\n * eventually has the best score.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param rootSchema - The root JSON schema of the entire form\n * @param formData - The form data associated with the schema\n * @param options - The list of options that can be selected from\n * @param [selectedOption=-1] - The index of the currently selected option, defaulted to -1 if not specified\n * @param [discriminatorField] - The optional name of the field within the options object whose value is used to\n * determine which option is selected\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The index of the option that is the closest match to the `formData` or the `selectedOption` if no match\n */\nexport default function getClosestMatchingOption(validator, rootSchema, formData, options, selectedOption = -1, discriminatorField, experimental_customMergeAllOf) {\n // First resolve any refs in the options\n const resolvedOptions = options.map((option) => resolveAllReferences(option, rootSchema, []));\n const simpleDiscriminatorMatch = getOptionMatchingSimpleDiscriminator(formData, options, discriminatorField);\n if (typeof simpleDiscriminatorMatch === 'number') {\n return simpleDiscriminatorMatch;\n }\n // Reduce the array of options down to a list of the indexes that are considered matching options\n const allValidIndexes = resolvedOptions.reduce((validList, option, index) => {\n const testOptions = [JUNK_OPTION, option];\n const match = getFirstMatchingOption(validator, formData, testOptions, rootSchema, discriminatorField);\n // The match is the real option, so add its index to list of valid indexes\n if (match === 1) {\n validList.push(index);\n }\n return validList;\n }, []);\n // There is only one valid index, so return it!\n if (allValidIndexes.length === 1) {\n return allValidIndexes[0];\n }\n if (!allValidIndexes.length) {\n // No indexes were valid, so we'll score all the options, add all the indexes\n allValidIndexes.push(...resolvedOptions.keys());\n }\n const scoreCount = new Set();\n // Score all the options in the list of valid indexes and return the index with the best score\n const { bestIndex } = allValidIndexes.reduce((scoreData, index) => {\n const { bestScore } = scoreData;\n const option = resolvedOptions[index];\n const score = calculateIndexScore(validator, rootSchema, option, formData, experimental_customMergeAllOf);\n scoreCount.add(score);\n if (score > bestScore) {\n return { bestIndex: index, bestScore: score };\n }\n return scoreData;\n }, { bestIndex: selectedOption, bestScore: 0 });\n // if all scores are the same go with selectedOption\n if (scoreCount.size === 1 && selectedOption >= 0) {\n return selectedOption;\n }\n return bestIndex;\n}\n//# sourceMappingURL=getClosestMatchingOption.js.map","import { CONST_KEY, getSchemaType, isObject } from \"./index.js\";\n/**\n * Checks if the schema const property value is an AJV $data reference\n * and the current schema is not an object or array\n *\n * @param schema - The schema to check if the const is an AJV $data reference\n * @returns - true if the schema const property value is an AJV $data reference otherwise false.\n */\nexport default function constIsAjvDataReference(schema) {\n const schemaConst = schema[CONST_KEY];\n const schemaType = getSchemaType(schema);\n return (isObject(schemaConst) && typeof schemaConst?.$data === 'string' && schemaType !== 'object' && schemaType !== 'array');\n}\n//# sourceMappingURL=constIsAjvDataReference.js.map","import { CONST_KEY } from \"./constants.js\";\n/** This function checks if the given `schema` matches a single constant value. This happens when either the schema has\n * an `enum` array with a single value or there is a `const` defined.\n *\n * @param schema - The schema for a field\n * @returns - True if the `schema` has a single constant value, false otherwise\n */\nexport default function isConstant(schema) {\n return (Array.isArray(schema.enum) && schema.enum.length === 1) || CONST_KEY in schema;\n}\n//# sourceMappingURL=isConstant.js.map","import isObject from \"./isObject.js\";\n/** Detects whether the given `schema` contains fixed items. This is the case when `schema.items` is an array that only\n * contains objects.\n *\n * @param schema - The schema in which to check for fixed items\n * @returns - True if there are fixed items in the schema, false otherwise\n */\nexport default function isFixedItems(schema) {\n return Array.isArray(schema.items) && schema.items.every((item) => isObject(item));\n}\n//# sourceMappingURL=isFixedItems.js.map","import isObject from \"./isObject.js\";\n/** Merges the `defaults` object of type `T` into the `formData` of type `T`\n *\n * When merging defaults and form data, we want to merge in this specific way:\n * - objects are deeply merged\n * - arrays are merged in such a way that:\n * - when the array is set in form data, only array entries set in form data\n * are deeply merged; additional entries from the defaults are ignored unless `mergeExtraArrayDefaults` is true, in\n * which case the extras are appended onto the end of the form data\n * - when the array is not set in form data, the default is copied over\n * - scalars are overwritten/set by form data unless undefined and there is a default AND `defaultSupercedesUndefined`\n * is true\n *\n * @param [defaults] - The defaults to merge\n * @param [formData] - The form data into which the defaults will be merged\n * @param [mergeExtraArrayDefaults=false] - If true, any additional default array entries are appended onto the formData\n * @param [defaultSupercedesUndefined=false] - If true, an explicit undefined value will be overwritten by the default value\n * @param [overrideFormDataWithDefaults=false] - If true, the default value will overwrite the form data value. If the value\n * doesn't exist in the default, we take it from formData and in the case where the value is set to undefined in formData.\n * This is useful when we have already merged formData with defaults and want to add an additional field from formData\n * that does not exist in defaults.\n * @returns - The resulting merged form data with defaults\n */\nexport default function mergeDefaultsWithFormData(defaults, formData, mergeExtraArrayDefaults = false, defaultSupercedesUndefined = false, overrideFormDataWithDefaults = false) {\n if (Array.isArray(formData)) {\n const defaultsArray = Array.isArray(defaults) ? defaults : [];\n // If overrideFormDataWithDefaults is true, we want to override the formData with the defaults\n const overrideArray = overrideFormDataWithDefaults ? defaultsArray : formData;\n const overrideOppositeArray = overrideFormDataWithDefaults ? formData : defaultsArray;\n const mapped = overrideArray.map((value, idx) => {\n // We want to explicitly make sure that the value is NOT undefined since null, 0 and empty space are valid values\n if (overrideOppositeArray[idx] !== undefined) {\n return mergeDefaultsWithFormData(defaultsArray[idx], formData[idx], mergeExtraArrayDefaults, defaultSupercedesUndefined, overrideFormDataWithDefaults);\n }\n return value;\n });\n // Merge any extra defaults when mergeExtraArrayDefaults is true\n // Or when overrideFormDataWithDefaults is true and the default array is shorter than the formData array\n if ((mergeExtraArrayDefaults || overrideFormDataWithDefaults) && mapped.length < overrideOppositeArray.length) {\n mapped.push(...overrideOppositeArray.slice(mapped.length));\n }\n return mapped;\n }\n if (isObject(formData)) {\n // oxlint-disable-next-line prefer-object-spread -- spread loses T type, Object.assign preserves it\n const acc = Object.assign({}, defaults); // Prevent mutation of source object.\n const formDataObj = formData;\n const defaultsObj = isObject(defaults) ? defaults : undefined;\n return Object.keys(formDataObj).reduce((accumulator, key) => {\n const keyValue = formDataObj[key];\n const keyExistsInDefaults = defaultsObj !== undefined && key in defaultsObj;\n const keyExistsInFormData = key in formDataObj;\n const keyDefault = defaultsObj?.[key] ?? {};\n // If any direct child of this key's default is itself an object or array,\n // the shallow spread below would bypass its merge rules. Route those cases\n // to the recursive path; the recursive call repeats this check one level deeper.\n const defaultValueNeedsDeepMerge = keyExistsInDefaults &&\n isObject(keyDefault) &&\n Object.values(keyDefault).some((v) => isObject(v) || Array.isArray(v));\n const keyDefaultIsObject = keyExistsInDefaults && isObject(defaultsObj?.[key]);\n const keyHasFormDataObject = keyExistsInFormData && isObject(keyValue);\n if (keyDefaultIsObject && keyHasFormDataObject && !defaultValueNeedsDeepMerge) {\n accumulator[key] = {\n ...defaultsObj?.[key],\n ...keyValue,\n };\n return accumulator;\n }\n accumulator[key] = mergeDefaultsWithFormData(defaultsObj?.[key], keyValue, mergeExtraArrayDefaults, defaultSupercedesUndefined, \n // overrideFormDataWithDefaults can be true only when the key value exists in defaults\n // Or if the key value doesn't exist in formData\n overrideFormDataWithDefaults && (keyExistsInDefaults || !keyExistsInFormData));\n return acc;\n }, acc);\n }\n /**\n * If the defaultSupercedesUndefined flag is true\n * And formData is set to undefined or null and defaults are defined\n * Or if formData is a number and is NaN return defaults\n * Or if overrideFormDataWithDefaults flag is true and formData is set to not undefined/null return defaults\n */\n if ((defaultSupercedesUndefined &&\n ((!(defaults === undefined) && formData == null) || (typeof formData === 'number' && Number.isNaN(formData)))) ||\n (overrideFormDataWithDefaults && formData != null)) {\n return defaults;\n }\n return formData;\n}\n//# sourceMappingURL=mergeDefaultsWithFormData.js.map","import isObject from \"./isObject.js\";\n/** Recursively merge deeply nested objects.\n *\n * @param obj1 - The first object to merge\n * @param obj2 - The second object to merge\n * @param [concatArrays=false] - Optional flag that, when true, will cause arrays to be concatenated. Use\n * \"preventDuplicates\" to merge arrays in a manner that prevents any duplicate entries from being merged.\n * NOTE: Uses shallow comparison for the duplicate checking.\n * @returns - A new object that is the merge of the two given objects\n */\nexport default function mergeObjects(obj1, obj2, concatArrays = false) {\n return Object.keys(obj2).reduce((acc, key) => {\n const left = obj1 ? obj1[key] : {}, right = obj2[key];\n if (obj1 && key in obj1 && isObject(right)) {\n acc[key] = mergeObjects(left, right, concatArrays);\n }\n else if (concatArrays && Array.isArray(left) && Array.isArray(right)) {\n let toMerge = right;\n if (concatArrays === 'preventDuplicates') {\n toMerge = right.reduce((result, value) => {\n if (!left.includes(value)) {\n result.push(value);\n }\n return result;\n }, []);\n }\n acc[key] = left.concat(toMerge);\n }\n else {\n acc[key] = right;\n }\n return acc;\n }, { ...obj1 }); // Prevent mutation of source object.\n}\n//# sourceMappingURL=mergeObjects.js.map","import { CONST_KEY, ENUM_KEY } from \"./constants.js\";\n/** Returns the constant value from the schema when it is either a single value enum or has a const key. Otherwise\n * throws an error.\n *\n * @param schema - The schema from which to obtain the constant value\n * @returns - The constant value for the schema\n * @throws - Error when the schema does not have a constant value\n */\nexport default function toConstant(schema) {\n if (ENUM_KEY in schema && Array.isArray(schema.enum) && schema.enum.length === 1) {\n return schema.enum[0];\n }\n if (CONST_KEY in schema) {\n return schema.const;\n }\n throw new Error('schema cannot be inferred as a constant');\n}\n//# sourceMappingURL=toConstant.js.map","import { CONST_KEY, DEFAULT_KEY } from \"./constants.js\";\nimport getDiscriminatorFieldFromSchema from \"./getDiscriminatorFieldFromSchema.js\";\nimport getPropertySchema from \"./getPropertySchema.js\";\nimport getUiOptions from \"./getUiOptions.js\";\nimport { getByPath } from \"./pathUtils.js\";\nimport toConstant from \"./toConstant.js\";\n/** Reorders `options` according to `order`, which may contain a `'*'` wildcard representing all\n * remaining options in their original order. Options not listed in `order` (and not covered by\n * a wildcard) are dropped.\n */\nfunction applyEnumOrder(options, order) {\n const optionsByValue = new Map(options.map((opt) => [String(opt.value), opt]));\n const orderedKeys = new Set(order.filter((v) => v !== '*').map(String));\n const rest = options.filter((opt) => !orderedKeys.has(String(opt.value)));\n return order.flatMap((entry) => {\n if (entry === '*') {\n return rest;\n }\n const opt = optionsByValue.get(String(entry));\n return opt ? [opt] : [];\n });\n}\n/** Gets the list of options from the `schema`. If the schema has an enum list, then those enum values are returned. The\n * label will be the same as the `value`.\n *\n * If the schema has a `oneOf` or `anyOf`, then the value is the list of either:\n * - The `const` values from the schema if present\n * - If the schema has a discriminator and the label using either the `schema.title` or the value. If a `uiSchema` is\n * provided, and it has the `ui:enumNames` matched with `enum` or it has an associated `oneOf` or `anyOf` with a list of\n * objects containing `ui:title` then the UI schema values will replace the values from the schema.\n *\n * @param schema - The schema from which to extract the options list\n * @param [uiSchema] - The optional uiSchema from which to get alternate labels for the options\n * @returns - The list of options from the schema\n */\nexport default function optionsList(schema, uiSchema) {\n if (schema.enum) {\n let enumNames;\n let enumOrder;\n if (uiSchema) {\n const { enumNames: uiEnumNames, enumOrder: uiEnumOrder } = getUiOptions(uiSchema);\n enumNames = uiEnumNames;\n enumOrder = uiEnumOrder;\n }\n let options = schema.enum.map((value, i) => {\n const label = Array.isArray(enumNames)\n ? enumNames[i] || String(value)\n : enumNames?.[String(value)] || String(value);\n return { label, value };\n });\n if (enumOrder) {\n options = applyEnumOrder(options, enumOrder);\n }\n return options;\n }\n let altSchemas = undefined;\n let altUiSchemas = undefined;\n if (schema.anyOf) {\n altSchemas = schema.anyOf;\n altUiSchemas = uiSchema?.anyOf;\n }\n else if (schema.oneOf) {\n altSchemas = schema.oneOf;\n altUiSchemas = uiSchema?.oneOf;\n }\n // See if there is a discriminator path specified in the schema, and if so, use it as the selectorField, otherwise\n // pull one from the uiSchema\n let selectorField = getDiscriminatorFieldFromSchema(schema);\n if (uiSchema) {\n const { optionsSchemaSelector = selectorField } = getUiOptions(uiSchema);\n selectorField = optionsSchemaSelector;\n }\n return altSchemas?.map((aSchemaDef, index) => {\n const { title } = getUiOptions(altUiSchemas?.[index]);\n const aSchema = aSchemaDef;\n let value;\n let label = title;\n if (selectorField) {\n const innerSchema = getPropertySchema(aSchema, selectorField);\n value = getByPath(innerSchema, DEFAULT_KEY, getByPath(innerSchema, CONST_KEY));\n // Use nullish coalescing so that an explicitly empty string title is preserved\n label = label ?? innerSchema?.title ?? aSchema.title ?? String(value);\n }\n else {\n value = toConstant(aSchema);\n label = label ?? aSchema.title ?? String(value);\n }\n return {\n schema: aSchema,\n label,\n value,\n };\n });\n}\n//# sourceMappingURL=optionsList.js.map","import isConstant from \"../isConstant.js\";\nimport retrieveSchema from \"./retrieveSchema.js\";\n/** Checks to see if the `schema` combination represents a select\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param theSchema - The schema for which check for a select flag is desired\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - True if schema contains a select, otherwise false\n */\nexport default function isSelect(validator, theSchema, rootSchema = {}, experimental_customMergeAllOf) {\n const schema = retrieveSchema(validator, theSchema, rootSchema, undefined, experimental_customMergeAllOf);\n const altSchemas = schema.oneOf || schema.anyOf;\n if (Array.isArray(schema.enum)) {\n return true;\n }\n if (Array.isArray(altSchemas)) {\n return altSchemas.every((altSchema) => typeof altSchema !== 'boolean' && isConstant(altSchema));\n }\n return false;\n}\n//# sourceMappingURL=isSelect.js.map","import isSelect from \"./isSelect.js\";\n/** Checks to see if the `schema` combination represents a multi-select\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param schema - The schema for which check for a multi-select flag is desired\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - True if schema contains a multi-select, otherwise false\n */\nexport default function isMultiSelect(validator, schema, rootSchema, experimental_customMergeAllOf) {\n if (!schema.uniqueItems || !schema.items || typeof schema.items === 'boolean') {\n return false;\n }\n return isSelect(validator, schema.items, rootSchema, experimental_customMergeAllOf);\n}\n//# sourceMappingURL=isMultiSelect.js.map","import { ALL_OF_KEY, ANY_OF_KEY, CONST_KEY, DEFAULT_KEY, DEPENDENCIES_KEY, IF_KEY, ONE_OF_KEY, REF_KEY, } from \"../constants.js\";\nimport constIsAjvDataReference from \"../constIsAjvDataReference.js\";\nimport deepEquals from \"../deepEquals.js\";\nimport findSchemaDefinition from \"../findSchemaDefinition.js\";\nimport getDiscriminatorFieldFromSchema from \"../getDiscriminatorFieldFromSchema.js\";\nimport getPropertySchema from \"../getPropertySchema.js\";\nimport getSchemaType from \"../getSchemaType.js\";\nimport isConstant from \"../isConstant.js\";\nimport isFixedItems from \"../isFixedItems.js\";\nimport isObject from \"../isObject.js\";\nimport mergeDefaultsWithFormData from \"../mergeDefaultsWithFormData.js\";\nimport mergeObjects from \"../mergeObjects.js\";\nimport mergeSchemas from \"../mergeSchemas.js\";\nimport optionsList from \"../optionsList.js\";\nimport { getByPath } from \"../pathUtils.js\";\nimport getClosestMatchingOption from \"./getClosestMatchingOption.js\";\nimport isMultiSelect from \"./isMultiSelect.js\";\nimport isSelect from \"./isSelect.js\";\nimport retrieveSchema, { resolveDependencies } from \"./retrieveSchema.js\";\nconst PRIMITIVE_TYPES = ['string', 'number', 'integer', 'boolean', 'null'];\n/** Enum that indicates how `schema.additionalItems` should be handled by the `getInnerSchemaForArrayItem()` function.\n */\nexport var AdditionalItemsHandling;\n(function (AdditionalItemsHandling) {\n AdditionalItemsHandling[AdditionalItemsHandling[\"Ignore\"] = 0] = \"Ignore\";\n AdditionalItemsHandling[AdditionalItemsHandling[\"Invert\"] = 1] = \"Invert\";\n AdditionalItemsHandling[AdditionalItemsHandling[\"Fallback\"] = 2] = \"Fallback\";\n})(AdditionalItemsHandling || (AdditionalItemsHandling = {}));\n/** Given a `schema` will return an inner schema that for an array item. This is computed differently based on the\n * `additionalItems` enum and the value of `idx`. There are four possible returns:\n * 1. If `idx` is >= 0, then if `schema.items` is an array the `idx`th element of the array is returned if it is a valid\n * index and not a boolean, otherwise it falls through to 3.\n * 2. If `schema.items` is not an array AND truthy and not a boolean, then `schema.items` is returned since it actually\n * is a schema, otherwise it falls through to 3.\n * 3. If `additionalItems` is not `AdditionalItemsHandling.Ignore` and `schema.additionalItems` is an object, then\n * `schema.additionalItems` is returned since it actually is a schema, otherwise it falls through to 4.\n * 4. {} is returned representing an empty schema\n *\n * @param schema - The schema from which to get the particular item\n * @param [additionalItems=AdditionalItemsHandling.Ignore] - How do we want to handle additional items?\n * @param [idx=-1] - Index, if non-negative, will be used to return the idx-th element in a `schema.items` array\n * @returns - The best fit schema object from the `schema` given the `additionalItems` and `idx` modifiers\n */\nexport function getInnerSchemaForArrayItem(schema, additionalItems = AdditionalItemsHandling.Ignore, idx = -1) {\n if (idx >= 0) {\n if (Array.isArray(schema.items) && idx < schema.items.length) {\n const item = schema.items[idx];\n if (typeof item !== 'boolean') {\n return item;\n }\n }\n }\n else if (schema.items && !Array.isArray(schema.items) && typeof schema.items !== 'boolean') {\n return schema.items;\n }\n if (additionalItems !== AdditionalItemsHandling.Ignore && isObject(schema.additionalItems)) {\n return schema.additionalItems;\n }\n return {};\n}\n/** Determines whether `value` holds anything: a non-empty string or array, or an object with at least one own key.\n * Everything else — including numbers, booleans, `null` and `undefined` — has no content.\n *\n * @param value - The value to inspect\n * @returns - True if the value holds content, otherwise false\n */\nfunction hasContent(value) {\n if (typeof value === 'string' || Array.isArray(value)) {\n return value.length > 0;\n }\n if (typeof value === 'object' && value !== null) {\n return Object.keys(value).length > 0;\n }\n return false;\n}\n/** Checks if the given `schema` contains the `null` type along with another type AND if the `default` contained within\n * the schema is `null` AND the `computedDefault` is empty. If all of those conditions are true, then the `schema`'s\n * default should be `null` rather than `computedDefault`.\n *\n * @param schema - The schema to inspect\n * @param computedDefault - The computed default for the schema\n * @returns - Flag indicating whether a null should be returned instead of the computedDefault\n */\nexport function computeDefaultBasedOnSchemaTypeAndDefaults(schema, computedDefault) {\n const { default: schemaDefault, type } = schema;\n const shouldReturnNullAsDefault = Array.isArray(type) && type.includes('null') && !hasContent(computedDefault) && schemaDefault === null;\n return shouldReturnNullAsDefault ? null : computedDefault;\n}\n/** Either add `computedDefault` at `key` into `obj` or not add it based on its value, the value of\n * `includeUndefinedValues`, the value of `emptyObjectFields` and if its parent field is required. Generally undefined\n * `computedDefault` values are added only when `includeUndefinedValues` is either true/\"excludeObjectChildren\". If `\n * includeUndefinedValues` is false and `emptyObjectFields` is not \"skipDefaults\", then non-undefined and non-empty-object\n * values will be added based on certain conditions.\n *\n * @param acc - The object into which the computed default may be added\n * @param key - The key into the object at which the computed default may be added\n * @param computedDefault - The computed default value that maybe should be added to the obj\n * @param includeUndefinedValues - Optional flag, if true, cause undefined values to be added as defaults.\n * If \"excludeObjectChildren\", cause undefined values for this object and pass `includeUndefinedValues` as\n * false when computing defaults for any nested object properties. If \"allowEmptyObject\", prevents undefined\n * values in this object while allow the object itself to be empty and passing `includeUndefinedValues` as\n * false when computing defaults for any nested object properties.\n * @param isParentRequired - The optional boolean that indicates whether the parent field is required\n * @param requiredFields - The list of fields that are required\n * @param experimental_defaultFormStateBehavior - Optional configuration object, if provided, allows users to override\n * default form state behavior\n * @param isConst - Optional flag, if true, indicates that the schema has a const property defined, thus we should always return the computedDefault since it's coming from the const.\n * @param isNullType - The type of the schema is null\n */\nfunction maybeAddDefaultToObject(acc, key, computedDefault, includeUndefinedValues, isParentRequired, requiredFields = [], experimental_defaultFormStateBehavior = {}, isConst = false, isNullType = false) {\n const { emptyObjectFields = 'populateAllDefaults' } = experimental_defaultFormStateBehavior;\n if (includeUndefinedValues === true || isConst) {\n // If includeUndefinedValues is explicitly true\n // Or if the schema has a const property defined, then we should always return the computedDefault since it's coming from the const.\n acc[key] = computedDefault;\n }\n else if (includeUndefinedValues === 'excludeObjectChildren') {\n // Fix for Issue #4709: When in 'excludeObjectChildren' mode, don't set primitive fields to empty objects\n // Only add the computed default if it's not an empty object placeholder for a primitive field\n if ((isNullType && computedDefault !== undefined) ||\n !isObject(computedDefault) ||\n Object.keys(computedDefault).length > 0) {\n acc[key] = computedDefault;\n }\n // If computedDefault is an empty object {}, don't add it - let the field stay undefined\n }\n else if (emptyObjectFields !== 'skipDefaults') {\n // If isParentRequired is undefined, then we are at the root level of the schema so defer to the requiredness of\n // the field key itself in the `requiredField` list\n const isSelfOrParentRequired = isParentRequired === undefined ? requiredFields.includes(key) : isParentRequired;\n if (isObject(computedDefault)) {\n // If emptyObjectFields 'skipEmptyDefaults' store computedDefault if it's a non-empty object(e.g. not {})\n if (emptyObjectFields === 'skipEmptyDefaults') {\n if (Object.keys(computedDefault).length > 0) {\n acc[key] = computedDefault;\n }\n } // Else store computedDefault if it's a non-empty object(e.g. not {}) and satisfies certain conditions\n // Condition 1: If computedDefault is not empty or if the key is a required field\n // Condition 2: If the parent object is required or emptyObjectFields is not 'populateRequiredDefaults'\n else if ((Object.keys(computedDefault).length > 0 || requiredFields.includes(key)) &&\n (isSelfOrParentRequired || emptyObjectFields !== 'populateRequiredDefaults')) {\n acc[key] = computedDefault;\n }\n }\n else if (\n // Store computedDefault if it's a defined primitive (e.g., true) and satisfies certain conditions\n // Condition 1: computedDefault is not undefined\n // Condition 2: If emptyObjectFields is 'populateAllDefaults' or 'skipEmptyDefaults)\n // Or if isSelfOrParentRequired is 'true' and the key is a required field\n computedDefault !== undefined &&\n (emptyObjectFields === 'populateAllDefaults' ||\n emptyObjectFields === 'skipEmptyDefaults' ||\n (isSelfOrParentRequired && requiredFields.includes(key)))) {\n acc[key] = computedDefault;\n }\n }\n}\n/** Computes the defaults for the current `schema` given the `rawFormData` and `parentDefaults` if any. This drills into\n * each level of the schema, recursively, to fill out every level of defaults provided by the schema.\n *\n * @param validator - an implementation of the `ValidatorType` interface that will be used when necessary\n * @param rawSchema - The schema for which the default state is desired\n * @param computeDefaultsProps - Optional props for this function\n * @returns - The resulting `formData` with all the defaults provided\n */\nexport function computeDefaults(validator, rawSchema, computeDefaultsProps = {}) {\n const { parentDefaults, rawFormData, rootSchema = {}, includeUndefinedValues = false, _recurseList = [], experimental_defaultFormStateBehavior, experimental_customMergeAllOf, required, shouldMergeDefaultsIntoFormData = false, initialDefaultsGenerated, } = computeDefaultsProps;\n let formData = (isObject(rawFormData) ? rawFormData : {});\n const schema = isObject(rawSchema) ? rawSchema : {};\n // Compute the defaults recursively: give highest priority to deepest nodes unless nestedDefaultsPrecedence is ancestorWins.\n let defaults = parentDefaults;\n const preferParentDefaults = defaults && experimental_defaultFormStateBehavior?.nestedDefaultsPrecedence === 'ancestorWins';\n // If we get a new schema, then we need to recompute defaults again for the new schema found.\n let schemaToCompute = null;\n let experimental_dfsb_to_compute = experimental_defaultFormStateBehavior;\n let updatedRecurseList = _recurseList;\n if (schema[CONST_KEY] !== undefined &&\n experimental_defaultFormStateBehavior?.constAsDefaults !== 'never' &&\n !constIsAjvDataReference(schema)) {\n defaults = schema[CONST_KEY];\n }\n else if (isObject(defaults) &&\n isObject(schema.default) &&\n !schema[ANY_OF_KEY] &&\n !schema[ONE_OF_KEY] &&\n !schema[REF_KEY]) {\n // For object defaults, merge defaults by precedence setting.\n // Skip this for anyOf/oneOf/$ref schemas - they need special handling.\n if (preferParentDefaults) {\n // Use schema.default as the base and only override values that are defined in parent defaults.\n defaults = mergeObjects(schema.default, defaults);\n }\n else {\n // Only override parent defaults that are defined in schema.default.\n defaults = mergeObjects(defaults, schema.default);\n }\n }\n else if (DEFAULT_KEY in schema &&\n !preferParentDefaults &&\n !schema[ANY_OF_KEY] &&\n !schema[ONE_OF_KEY] &&\n !schema[REF_KEY]) {\n // If the schema has a default value and parentDefaults does not have precedence\n // And if the schema does not have anyOf or oneOf (since we need to merge the defaults with the formData)\n // Then we should use it as the default.\n defaults = schema.default;\n }\n else if (REF_KEY in schema) {\n const refName = schema[REF_KEY];\n // Use referenced schema defaults for this node.\n if (!_recurseList.includes(refName)) {\n updatedRecurseList = _recurseList.concat(refName);\n schemaToCompute = findSchemaDefinition(refName, rootSchema);\n }\n // If the referenced schema exists and parentDefaults is not set\n // Then set the defaults from the current schema for the referenced schema.\n // Only do this if rawFormData has no meaningful data - we don't want to override user's existing values.\n // Check for undefined OR empty object - rawFormData may be coerced to {} when not an object.\n const hasNoExistingData = rawFormData === undefined || (isObject(rawFormData) && Object.keys(rawFormData).length === 0);\n if (schemaToCompute && !defaults && hasNoExistingData) {\n defaults = schema.default;\n }\n // If shouldMergeDefaultsIntoFormData is true\n // And the schemaToCompute is set and the rawFormData is not an object\n // Then set the formData to the rawFormData\n if (shouldMergeDefaultsIntoFormData && schemaToCompute && !isObject(rawFormData)) {\n formData = rawFormData;\n }\n }\n else if (DEPENDENCIES_KEY in schema) {\n // Get the default if set from properties to ensure the dependencies conditions are resolved based on it\n const defaultFormData = {\n ...getDefaultBasedOnSchemaType(validator, schema, computeDefaultsProps, defaults),\n ...formData,\n };\n const resolvedSchema = resolveDependencies(validator, schema, rootSchema, false, [], defaultFormData, experimental_customMergeAllOf);\n [schemaToCompute] = resolvedSchema; // pick the first element from resolve dependencies\n }\n else if (isFixedItems(schema) && !preferParentDefaults) {\n // If the schema contains fixed items and parentDefaults does not have precedence\n // Then construct defaults from defaults of array items.\n defaults = schema.items.map((itemSchema, idx) => computeDefaults(validator, itemSchema, {\n rootSchema,\n includeUndefinedValues,\n _recurseList,\n experimental_defaultFormStateBehavior,\n experimental_customMergeAllOf,\n parentDefaults: Array.isArray(parentDefaults) ? parentDefaults[idx] : undefined,\n rawFormData: formData,\n required,\n shouldMergeDefaultsIntoFormData,\n }));\n }\n else if (ONE_OF_KEY in schema) {\n const { oneOf, ...remaining } = schema;\n if (oneOf.length === 0) {\n return undefined;\n }\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n const { type = 'null' } = remaining;\n if (!Array.isArray(type) &&\n PRIMITIVE_TYPES.includes(type) &&\n experimental_dfsb_to_compute?.constAsDefaults === 'skipOneOf') {\n // If we are in a oneOf of a primitive type, then we want to pass constAsDefaults as 'never' for the recursion\n experimental_dfsb_to_compute = {\n ...experimental_dfsb_to_compute,\n constAsDefaults: 'never',\n };\n }\n schemaToCompute = oneOf[getClosestMatchingOption(validator, rootSchema, rawFormData ?? schema.default, oneOf, 0, discriminator, experimental_customMergeAllOf)];\n schemaToCompute = mergeSchemas(remaining, schemaToCompute);\n }\n else if (ANY_OF_KEY in schema) {\n const { anyOf, ...remaining } = schema;\n if (anyOf.length === 0) {\n return undefined;\n }\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n schemaToCompute = anyOf[getClosestMatchingOption(validator, rootSchema, rawFormData ?? schema.default, anyOf, 0, discriminator, experimental_customMergeAllOf)];\n schemaToCompute = mergeSchemas(remaining, schemaToCompute);\n }\n if (schemaToCompute) {\n return computeDefaults(validator, schemaToCompute, {\n rootSchema,\n includeUndefinedValues,\n _recurseList: updatedRecurseList,\n experimental_defaultFormStateBehavior: experimental_dfsb_to_compute,\n experimental_customMergeAllOf,\n parentDefaults: defaults,\n rawFormData: rawFormData ?? formData,\n required,\n shouldMergeDefaultsIntoFormData,\n initialDefaultsGenerated,\n });\n }\n // No defaults defined for this node, fallback to generic typed ones.\n if (defaults === undefined) {\n defaults = schema.default;\n }\n const defaultBasedOnSchemaType = getDefaultBasedOnSchemaType(validator, schema, computeDefaultsProps, defaults);\n let defaultsWithFormData = defaultBasedOnSchemaType ?? defaults;\n // if shouldMergeDefaultsIntoFormData is true, then merge the defaults into the formData.\n if (shouldMergeDefaultsIntoFormData) {\n const { arrayMinItems = {} } = experimental_defaultFormStateBehavior || {};\n const { mergeExtraDefaults } = arrayMinItems;\n const matchingFormData = ensureFormDataMatchingSchema(validator, schema, rootSchema, rawFormData, experimental_defaultFormStateBehavior, experimental_customMergeAllOf);\n if (!isObject(rawFormData) || ALL_OF_KEY in schema) {\n // If the formData is not an object which means it's a primitive field, then we need to merge the defaults into the formData.\n // Or if the schema has allOf, we need to merge the defaults into the formData because we don't compute the defaults for allOf.\n defaultsWithFormData = mergeDefaultsWithFormData(defaultsWithFormData, matchingFormData, mergeExtraDefaults, true);\n }\n }\n return defaultsWithFormData;\n}\n/**\n * Ensure that the formData matches the given schema. If it's not matching in the case of a selectField, we change it to match the schema.\n *\n * @param validator - an implementation of the `ValidatorType` interface that will be used when necessary\n * @param schema - The schema for which the formData state is desired\n * @param rootSchema - The root schema, used to primarily to look up `$ref`s\n * @param formData - The current formData\n * @param [experimental_defaultFormStateBehavior] - Optional configuration object, if provided, allows users to override default form state behavior\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - valid formData that matches schema\n */\nexport function ensureFormDataMatchingSchema(validator, schema, rootSchema, formData, experimental_defaultFormStateBehavior, experimental_customMergeAllOf) {\n const shouldRetrieveAllOf = experimental_defaultFormStateBehavior?.allOf === 'populateDefaults' && ALL_OF_KEY in schema;\n const schemaToMatch = shouldRetrieveAllOf\n ? retrieveSchema(validator, schema, rootSchema, formData, experimental_customMergeAllOf)\n : schema;\n const isSelectField = !isConstant(schemaToMatch) &&\n isSelect(validator, schemaToMatch, rootSchema, experimental_customMergeAllOf);\n let validFormData = formData;\n if (isSelectField) {\n const getOptionsList = optionsList(schemaToMatch);\n const isValid = getOptionsList?.some((option) => deepEquals(option.value, formData));\n validFormData = isValid ? formData : undefined;\n }\n // Override the formData with the const if the constAsDefaults is set to always\n const constTakesPrecedence = schemaToMatch[CONST_KEY] && experimental_defaultFormStateBehavior?.constAsDefaults === 'always';\n if (constTakesPrecedence) {\n validFormData = schemaToMatch.const;\n }\n else if (isObject(validFormData) && isObject(schemaToMatch.properties)) {\n validFormData = Object.keys(schemaToMatch.properties).reduce((acc, key) => {\n const propertySchema = getPropertySchema(schemaToMatch, key);\n if (key in acc && (shouldRetrieveAllOf || (isObject(propertySchema) && ALL_OF_KEY in propertySchema))) {\n acc[key] = ensureFormDataMatchingSchema(validator, propertySchema, rootSchema, acc[key], experimental_defaultFormStateBehavior, experimental_customMergeAllOf);\n }\n return acc;\n }, { ...validFormData });\n }\n return validFormData;\n}\n/** Computes the default value for objects.\n *\n * @param validator - an implementation of the `ValidatorType` interface that will be used when necessary\n * @param rawSchema - The schema for which the default state is desired\n * @param computeDefaultsProps - Optional props for this function\n * @param defaults - Optional props for this function\n * @returns - The default value based on the schema type if they are defined for object or array schemas.\n */\nexport function getObjectDefaults(validator, rawSchema, { rawFormData, rootSchema = {}, includeUndefinedValues = false, _recurseList = [], experimental_defaultFormStateBehavior, experimental_customMergeAllOf, required, shouldMergeDefaultsIntoFormData, initialDefaultsGenerated, } = {}, defaults) {\n {\n const formData = (isObject(rawFormData) ? rawFormData : {});\n const schema = rawSchema;\n // Retrieve the schema:\n // - If schema contains `allOf` AND `experimental_defaultFormStateBehavior.allOf` is set to `populateDefaults`\n // - OR if schema contains an 'if' AND `emptyObjectFields` is not set to `skipEmptyDefaults`\n // This ensures we compute defaults correctly for schemas with these keywords.\n const shouldRetrieveSchema = (experimental_defaultFormStateBehavior?.allOf === 'populateDefaults' && ALL_OF_KEY in schema) ||\n (experimental_defaultFormStateBehavior?.emptyObjectFields !== 'skipEmptyDefaults' && IF_KEY in schema);\n const retrievedSchema = shouldRetrieveSchema\n ? retrieveSchema(validator, schema, rootSchema, formData, experimental_customMergeAllOf)\n : schema;\n const parentConst = retrievedSchema[CONST_KEY];\n const objectDefaults = Object.keys(retrievedSchema.properties || {}).reduce((acc, key) => {\n const propertySchema = getPropertySchema(retrievedSchema, key);\n // Check if the parent schema has a const property defined AND we are supporting const as defaults, then we\n // should always return the computedDefault since it's coming from the const.\n const hasParentConst = isObject(parentConst) && parentConst[key] !== undefined;\n const hasConst = ((isObject(propertySchema) && CONST_KEY in propertySchema) || hasParentConst) &&\n experimental_defaultFormStateBehavior?.constAsDefaults !== 'never' &&\n !constIsAjvDataReference(propertySchema);\n // Compute the defaults for this node, with the parent defaults we might\n // have from a previous run: defaults[key].\n const computedDefault = computeDefaults(validator, propertySchema, {\n rootSchema,\n _recurseList,\n experimental_defaultFormStateBehavior,\n experimental_customMergeAllOf,\n includeUndefinedValues: includeUndefinedValues === true,\n parentDefaults: getByPath(defaults, key),\n rawFormData: getByPath(formData, key),\n required: retrievedSchema.required?.includes(key),\n shouldMergeDefaultsIntoFormData,\n initialDefaultsGenerated,\n });\n maybeAddDefaultToObject(acc, key, computedDefault, includeUndefinedValues, required, retrievedSchema.required, experimental_defaultFormStateBehavior, hasConst, propertySchema?.type === 'null');\n return acc;\n }, {});\n if (retrievedSchema.additionalProperties && !initialDefaultsGenerated) {\n // as per spec additionalProperties may be either schema or boolean\n const additionalPropertiesSchema = isObject(retrievedSchema.additionalProperties)\n ? retrievedSchema.additionalProperties\n : {};\n const keys = new Set();\n const formDataRequired = [];\n Object.keys(formData)\n .filter((key) => !retrievedSchema.properties || !retrievedSchema.properties[key])\n .forEach((key) => {\n keys.add(key);\n formDataRequired.push(key);\n });\n // Only seed keys from schema defaults when formData has no additionalProperties of its own.\n // If the user already has data (e.g. after a key rename), injecting default keys would\n // re-add stale entries that no longer exist in formData.\n if (isObject(defaults) && formDataRequired.length === 0) {\n Object.keys(defaults)\n .filter((key) => !retrievedSchema.properties || !retrievedSchema.properties[key])\n .forEach((key) => keys.add(key));\n }\n keys.forEach((key) => {\n const computedDefault = computeDefaults(validator, additionalPropertiesSchema, {\n rootSchema,\n _recurseList,\n experimental_defaultFormStateBehavior,\n experimental_customMergeAllOf,\n includeUndefinedValues: includeUndefinedValues === true,\n parentDefaults: getByPath(defaults, key),\n rawFormData: getByPath(formData, key),\n required: retrievedSchema.required?.includes(key),\n shouldMergeDefaultsIntoFormData,\n initialDefaultsGenerated,\n });\n // Since these are additional properties we don't need to add the `experimental_defaultFormStateBehavior` prop\n maybeAddDefaultToObject(objectDefaults, key, computedDefault, includeUndefinedValues, required, formDataRequired);\n });\n }\n return computeDefaultBasedOnSchemaTypeAndDefaults(rawSchema, objectDefaults);\n }\n}\n/** Computes the default value for arrays.\n *\n * @param validator - an implementation of the `ValidatorType` interface that will be used when necessary\n * @param rawSchema - The schema for which the default state is desired\n * @param computeDefaultsProps - Optional props for this function\n * @param initialDefaults - Optional props for this function\n * @returns - The default value based on the schema type if they are defined for object or array schemas.\n */\nexport function getArrayDefaults(validator, rawSchema, { rawFormData, rootSchema = {}, _recurseList = [], experimental_defaultFormStateBehavior, experimental_customMergeAllOf, required, requiredAsRoot = false, shouldMergeDefaultsIntoFormData, initialDefaultsGenerated, } = {}, initialDefaults) {\n let defaults = initialDefaults;\n const schema = rawSchema;\n const arrayMinItemsStateBehavior = experimental_defaultFormStateBehavior?.arrayMinItems ?? {};\n const { populate: arrayMinItemsPopulate, mergeExtraDefaults: arrayMergeExtraDefaults } = arrayMinItemsStateBehavior;\n const neverPopulate = arrayMinItemsPopulate === 'never';\n const ignoreMinItemsFlagSet = arrayMinItemsPopulate === 'requiredOnly';\n const isPopulateAll = arrayMinItemsPopulate === 'all' || (!neverPopulate && !ignoreMinItemsFlagSet);\n const computeSkipPopulate = arrayMinItemsStateBehavior?.computeSkipPopulate ?? (() => false);\n const isSkipEmptyDefaults = experimental_defaultFormStateBehavior?.emptyObjectFields === 'skipEmptyDefaults';\n const emptyDefault = isSkipEmptyDefaults ? undefined : [];\n // Inject defaults into existing array defaults\n if (Array.isArray(defaults)) {\n defaults = defaults.map((item, idx) => {\n const schemaItem = getInnerSchemaForArrayItem(schema, AdditionalItemsHandling.Fallback, idx);\n const itemFormData = Array.isArray(rawFormData) ? rawFormData[idx] : undefined;\n return computeDefaults(validator, schemaItem, {\n rootSchema,\n _recurseList,\n experimental_defaultFormStateBehavior,\n experimental_customMergeAllOf,\n parentDefaults: item,\n rawFormData: itemFormData,\n required,\n shouldMergeDefaultsIntoFormData,\n initialDefaultsGenerated,\n });\n });\n }\n // Deeply inject defaults into already existing form data\n if (Array.isArray(rawFormData)) {\n const schemaItem = getInnerSchemaForArrayItem(schema);\n if (neverPopulate) {\n defaults = rawFormData;\n }\n else {\n const itemDefaults = rawFormData.map((item, idx) => computeDefaults(validator, schemaItem, {\n rootSchema,\n _recurseList,\n experimental_defaultFormStateBehavior,\n experimental_customMergeAllOf,\n rawFormData: item,\n parentDefaults: getByPath(defaults, idx),\n required,\n shouldMergeDefaultsIntoFormData,\n initialDefaultsGenerated,\n }));\n // If the populate 'requiredOnly' flag is set then we only merge and include extra defaults if they are required.\n // Or if populate 'all' is set we merge and include extra defaults.\n const mergeExtraDefaults = ((ignoreMinItemsFlagSet && required) || isPopulateAll) && arrayMergeExtraDefaults;\n defaults = mergeDefaultsWithFormData(defaults, itemDefaults, mergeExtraDefaults);\n }\n }\n const defaultsLength = Array.isArray(defaults) ? defaults.length : 0;\n if (neverPopulate) {\n if (shouldMergeDefaultsIntoFormData && !required) {\n // Optional arrays with no existing data should be omitted entirely rather than defaulted to `[]`.\n // Required arrays still fall through to `defaults ?? emptyDefault` below so that `[]` is surfaced,\n // letting the validator report `minItems` violations instead of a missing-required-property error.\n return defaults;\n }\n return defaults ?? emptyDefault;\n }\n if (ignoreMinItemsFlagSet && !required) {\n // If no form data exists or defaults are set leave the field empty/non-existent, otherwise\n // return form data/defaults\n return defaults || undefined;\n }\n let arrayDefault;\n if (!schema.minItems ||\n isMultiSelect(validator, schema, rootSchema, experimental_customMergeAllOf) ||\n computeSkipPopulate(validator, schema, rootSchema) ||\n schema.minItems <= defaultsLength) {\n // we don't want undefined defaults unless it is both not required or not required as root\n arrayDefault = defaults || (!required && !requiredAsRoot) ? defaults : emptyDefault;\n }\n else {\n const defaultEntries = defaults || [];\n const fillerSchema = getInnerSchemaForArrayItem(schema, AdditionalItemsHandling.Invert);\n const fillerDefault = fillerSchema.default;\n // Calculate filler entries for remaining items (minItems - existing raw data/defaults)\n const fillerEntries = Array.from({ length: schema.minItems - defaultsLength }, () => computeDefaults(validator, fillerSchema, {\n parentDefaults: fillerDefault,\n rootSchema,\n _recurseList,\n experimental_defaultFormStateBehavior,\n experimental_customMergeAllOf,\n required,\n shouldMergeDefaultsIntoFormData,\n }));\n // then fill up the rest with either the item default or empty, up to minItems\n arrayDefault = defaultEntries.concat(fillerEntries);\n }\n return computeDefaultBasedOnSchemaTypeAndDefaults(rawSchema, arrayDefault);\n}\n/** Computes the default value based on the schema type.\n *\n * @param validator - an implementation of the `ValidatorType` interface that will be used when necessary\n * @param rawSchema - The schema for which the default state is desired\n * @param computeDefaultsProps - Optional props for this function\n * @param defaults - Optional props for this function\n * @returns - The default value based on the schema type if they are defined for object or array schemas.\n */\nexport function getDefaultBasedOnSchemaType(validator, rawSchema, computeDefaultsProps = {}, defaults) {\n switch (getSchemaType(rawSchema)) {\n // We need to recurse for object schema inner default values.\n case 'object': {\n return getObjectDefaults(validator, rawSchema, computeDefaultsProps, defaults);\n }\n case 'array': {\n return getArrayDefaults(validator, rawSchema, computeDefaultsProps, defaults);\n }\n case 'boolean': {\n // A required boolean with no explicit default gets false — it must be\n // present in the submitted data, and false is the natural zero-value.\n if (computeDefaultsProps.required && defaults === undefined) {\n return false;\n }\n return undefined;\n }\n default:\n return undefined;\n }\n}\n/** Returns the superset of `formData` that includes the given set updated to include any missing fields that have\n * computed to have defaults provided in the `schema`.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param theSchema - The schema for which the default state is desired\n * @param [formData] - The current formData, if any, onto which to provide any missing defaults\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @param [includeUndefinedValues=false] - Optional flag, if true, cause undefined values to be added as defaults.\n * If \"excludeObjectChildren\", cause undefined values for this object and pass `includeUndefinedValues` as\n * false when computing defaults for any nested object properties.\n * @param [experimental_defaultFormStateBehavior] Optional configuration object, if provided, allows users to override default form state behavior\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @param initialDefaultsGenerated - Optional flag, indicates whether or not initial defaults have been generated\n * @returns - The resulting `formData` with all the defaults provided\n */\nexport default function getDefaultFormState(validator, theSchema, formData, rootSchema, includeUndefinedValues = false, experimental_defaultFormStateBehavior, experimental_customMergeAllOf, initialDefaultsGenerated) {\n if (!isObject(theSchema)) {\n throw new Error(`Invalid schema: ${theSchema}`);\n }\n const schema = retrieveSchema(validator, theSchema, rootSchema, formData, experimental_customMergeAllOf);\n // Get the computed defaults with 'shouldMergeDefaultsIntoFormData' set to true to merge defaults into formData.\n // This is done when for example the value from formData does not exist in the schema 'enum' property, in such\n // cases we take the value from the defaults because the value from the formData is not valid.\n const defaults = computeDefaults(validator, schema, {\n rootSchema,\n includeUndefinedValues,\n experimental_defaultFormStateBehavior,\n experimental_customMergeAllOf,\n rawFormData: formData,\n shouldMergeDefaultsIntoFormData: true,\n initialDefaultsGenerated,\n requiredAsRoot: true,\n });\n if (schema.type !== 'object' && isObject(schema.default)) {\n return {\n ...defaults,\n ...formData,\n };\n }\n // If the formData is an object or an array, add additional properties from formData and override formData with\n // defaults since the defaults are already merged with formData.\n if (isObject(formData) || Array.isArray(formData)) {\n const { mergeDefaultsIntoFormData } = experimental_defaultFormStateBehavior || {};\n const defaultSupercedesUndefined = mergeDefaultsIntoFormData === 'useDefaultIfFormDataUndefined';\n const matchingFormData = ensureFormDataMatchingSchema(validator, schema, rootSchema ?? schema, formData, experimental_defaultFormStateBehavior, experimental_customMergeAllOf);\n const result = mergeDefaultsWithFormData(defaults, matchingFormData, true, // set to true to add any additional default array entries.\n defaultSupercedesUndefined, true);\n return result;\n }\n return defaults;\n}\n//# sourceMappingURL=getDefaultFormState.js.map","import getUiOptions from \"./getUiOptions.js\";\n/** Checks to see if the `uiSchema` contains the `widget` field and that the widget is not `hidden`\n *\n * @param uiSchema - The UI Schema from which to detect if it is customized\n * @returns - True if the `uiSchema` describes a custom widget, false otherwise\n */\nexport default function isCustomWidget(uiSchema = {}) {\n return (\n // TODO: Remove the `&& uiSchema['ui:widget'] !== 'hidden'` once we support hidden widgets for arrays.\n // https://rjsf-team.github.io/react-jsonschema-form/docs/usage/widgets/#hidden-widgets\n 'widget' in getUiOptions(uiSchema) && getUiOptions(uiSchema).widget !== 'hidden');\n}\n//# sourceMappingURL=isCustomWidget.js.map","import { UI_WIDGET_KEY } from \"../constants.js\";\nimport retrieveSchema from \"./retrieveSchema.js\";\n/** Checks to see if the `schema` and `uiSchema` combination represents an array of files\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param schema - The schema for which check for array of files flag is desired\n * @param [uiSchema={}] - The UI schema from which to check the widget\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - True if schema/uiSchema contains an array of files, otherwise false\n */\nexport default function isFilesArray(validator, schema, uiSchema = {}, rootSchema, experimental_customMergeAllOf) {\n if (uiSchema[UI_WIDGET_KEY] === 'files') {\n return true;\n }\n if (schema.items) {\n const itemsSchema = retrieveSchema(validator, schema.items, rootSchema, undefined, experimental_customMergeAllOf);\n return itemsSchema.type === 'string' && itemsSchema.format === 'data-url';\n }\n return false;\n}\n//# sourceMappingURL=isFilesArray.js.map","import { ADDITIONAL_PROPERTY_FLAG, UI_FIELD_KEY, UI_WIDGET_KEY } from \"../constants.js\";\nimport getSchemaType from \"../getSchemaType.js\";\nimport getUiOptions from \"../getUiOptions.js\";\nimport isCustomWidget from \"../isCustomWidget.js\";\nimport isFilesArray from \"./isFilesArray.js\";\nimport isMultiSelect from \"./isMultiSelect.js\";\n/** Determines whether the combination of `schema` and `uiSchema` properties indicates that the label for the `schema`\n * should be displayed in a UI.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param schema - The schema for which the display label flag is desired\n * @param [uiSchema={}] - The UI schema from which to derive potentially displayable information\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @param [globalOptions={}] - The optional Global UI Schema from which to get any fallback `xxx` options\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - True if the label should be displayed or false if it should not\n */\nexport default function getDisplayLabel(validator, schema, uiSchema = {}, rootSchema, globalOptions, experimental_customMergeAllOf) {\n const uiOptions = getUiOptions(uiSchema, globalOptions);\n const { label = true } = uiOptions;\n let displayLabel = Boolean(label);\n if (displayLabel) {\n const schemaType = getSchemaType(schema);\n const addedByAdditionalProperty = Boolean(schema[ADDITIONAL_PROPERTY_FLAG]);\n if (schemaType === 'array') {\n displayLabel =\n addedByAdditionalProperty ||\n isMultiSelect(validator, schema, rootSchema, experimental_customMergeAllOf) ||\n isFilesArray(validator, schema, uiSchema, rootSchema, experimental_customMergeAllOf) ||\n isCustomWidget(uiSchema);\n }\n if (schemaType === 'object') {\n displayLabel = addedByAdditionalProperty;\n }\n if (schemaType === 'boolean' && uiSchema && !uiSchema[UI_WIDGET_KEY]) {\n displayLabel = false;\n }\n if (uiSchema?.[UI_FIELD_KEY]) {\n displayLabel = false;\n }\n }\n return displayLabel;\n}\n//# sourceMappingURL=getDisplayLabel.js.map","import { NAME_KEY, RJSF_ADDITIONAL_PROPERTIES_FLAG } from \"../constants.js\";\nimport findSchemaDefinition from \"../findSchemaDefinition.js\";\nimport getDiscriminatorFieldFromSchema from \"../getDiscriminatorFieldFromSchema.js\";\nimport getSchemaType from \"../getSchemaType.js\";\nimport isObject from \"../isObject.js\";\nimport { getByPath, hasByPath, setByPath, toPath } from \"../pathUtils.js\";\nimport getClosestMatchingOption from \"./getClosestMatchingOption.js\";\nimport isSelect from \"./isSelect.js\";\nimport { relaxOptionsForScoring, resolveAllReferences } from \"./retrieveSchema.js\";\nimport shallowAllOfMerge from \"./shallowAllOfMerge.js\";\n/** Returns the `formData` with only the elements specified in the `fields` list\n *\n * @param formData - The data for the `Form`\n * @param fields - The fields to keep while filtering\n * @deprecated - To be removed as an exported `@rjsf/utils` function in a future release\n */\nexport function getUsedFormData(formData, fields) {\n // For the case of a single input form\n if (fields.length === 0 && typeof formData !== 'object') {\n return formData;\n }\n // Keep only the values at the given field paths; `fields` contains either dotted strings or the\n // deep path lists produced by `getFieldNames()`\n const data = {};\n fields.forEach((field) => {\n const path = Array.isArray(field) ? field : toPath(field);\n if (hasByPath(formData, path)) {\n setByPath(data, path, getByPath(formData, path));\n }\n });\n if (Array.isArray(formData)) {\n return Object.keys(data).map((key) => data[key]);\n }\n return data;\n}\n/** Returns the list of field names from inspecting the `pathSchema` as well as using the `formData`\n *\n * @param pathSchema - The `PathSchema` object for the form\n * @param [formData] - The form data to use while checking for empty objects/arrays\n * @deprecated - To be removed as an exported `@rjsf/utils` function in a future release\n */\n// oxlint-disable-next-line typescript/no-deprecated\nexport function getFieldNames(pathSchema, formData) {\n const formValueHasData = (value, isLeaf) => {\n if (typeof value !== 'object' || value === null) {\n return true;\n }\n const isEmptyValue = Array.isArray(value) ? value.length === 0 : Object.keys(value).length === 0;\n return isEmptyValue || isLeaf;\n };\n const getAllPaths = (_obj, acc = [], paths = [[]]) => {\n const objKeys = Object.keys(_obj);\n objKeys.forEach((key) => {\n const data = _obj[key];\n if (typeof data === 'object') {\n const newPaths = paths.map((path) => [...path, key]);\n // If an object is marked with additionalProperties, all its keys are valid\n if (data[RJSF_ADDITIONAL_PROPERTIES_FLAG] && data[NAME_KEY] !== '') {\n acc.push(data[NAME_KEY]);\n }\n else {\n getAllPaths(data, acc, newPaths);\n }\n }\n else if (key === NAME_KEY && data !== '') {\n paths.forEach((path) => {\n const formValue = getByPath(formData, path);\n const isLeaf = objKeys.length === 1;\n // adds path to fieldNames if it points to a value or an empty object/array which is not a leaf\n if (formValueHasData(formValue, isLeaf) ||\n (Array.isArray(formValue) && formValue.every((val) => formValueHasData(val, isLeaf)))) {\n acc.push(path);\n }\n });\n }\n });\n return acc;\n };\n return getAllPaths(pathSchema);\n}\n/** Returns true when a form value is considered empty: null/undefined/'', an empty array, or a plain\n * object whose every own value is itself empty (recursive). Scalars like `0` and `false` are not empty.\n *\n * @param value - The value to check\n * @returns - True if the value is considered empty, false otherwise\n */\nexport function isValueEmpty(value) {\n if (value == null || value === '') {\n return true;\n }\n if (Array.isArray(value)) {\n return value.length === 0;\n }\n if (isObject(value)) {\n return Object.values(value).every(isValueEmpty);\n }\n return false;\n}\n/** Merges an `allOf` schema into a single flat schema, delegating to `experimental_customMergeAllOf`\n * when provided or falling back to the module-level `shallowAllOfMerge` otherwise.\n *\n * @param schema - A schema containing an `allOf` array to be merged\n * @param [experimental_customMergeAllOf] - Optional custom merge function; see `Form` documentation\n * @returns - The merged schema with `allOf` resolved into a single schema object\n */\nfunction doMergeAllOf(schema, experimental_customMergeAllOf) {\n return experimental_customMergeAllOf ? experimental_customMergeAllOf(schema) : shallowAllOfMerge(schema);\n}\n/** A recursive, schema-driven filter that walks `schema` and `formData` in lockstep, keeping only\n * values that are described by the schema. Handles `$ref`, `allOf`, `anyOf`, `oneOf`, `if/then/else`,\n * `patternProperties`, `additionalProperties`, `propertyNames`, and `dependencies`. Optional object\n * properties whose schema-filtered content is entirely empty (per `isValueEmpty`) are pruned; required\n * properties and scalar values are always kept when schema-defined.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param schema - The schema for which to filter the formData\n * @param [rootSchema] - The root schema, used primarily to look up `$ref`s\n * @param [formData] - The data for the `Form`\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The `formData` after omitting extra data, or `undefined` when `formData` is undefined\n */\nexport default function omitExtraData(validator, schema, rootSchema = {}, formData, experimental_customMergeAllOf) {\n /** Type predicate that narrows `value` to `GenericObjectType` — true when `value` is a plain,\n * non-array object (i.e. a JSON object). Used to distinguish JSON objects from arrays and primitives.\n *\n * @param value - The value to check\n * @returns - True if `value` is a plain non-array object\n */\n function isObjectValue(value) {\n return isObject(value);\n }\n /** Type predicate that narrows a `S | boolean` schema definition to `S` — true when `schemaDef` is\n * a schema object rather than a JSON Schema boolean shorthand (`true` meaning allow-all, `false`\n * meaning deny-all).\n *\n * @param schemaDef - The schema definition to check\n * @returns - True if `schemaDef` is a schema object\n */\n function isSchemaObj(schemaDef) {\n return isObject(schemaDef);\n }\n /** Copies schema-defined properties from `source` into `target`, applying `omit` recursively for\n * each value. Handles `properties`, `patternProperties`, and `additionalProperties`.\n * Optional object-valued properties are pruned when every key in the filtered result is both\n * optional (per the inner schema's `required`) and empty (per `isValueEmpty`). This preserves\n * optional objects whose required children have empty values, while still dropping objects whose\n * schema-filtered content is entirely optional-and-empty. Required properties and scalar values\n * are always written when defined. Always returns `target` — pruning of the object itself is\n * the caller's responsibility.\n *\n * @param childSchema - The object schema describing which properties are allowed\n * @param source - The source form data object to read values from\n * @param target - The accumulator object to write filtered values into\n * @returns - `target` after all schema-defined properties have been processed\n */\n function handleObject(childSchema, source, target) {\n const { properties, additionalProperties, patternProperties } = childSchema;\n const requiredSet = new Set(childSchema.required ?? []);\n /** Recursively omits extra data from `value` via `omit`, then conditionally writes the result to\n * `target[key]`. Optional object-valued properties are dropped when every key in the filtered\n * result is both optional (within the inner schema's `required` list) and has an empty value per\n * `isValueEmpty`. This per-key approach prevents required-but-empty child properties — kept by\n * inner `setProperty` calls — from inadvertently causing the parent optional object to be dropped,\n * while still pruning optional objects whose schema-filtered content is entirely empty. Vacuously\n * true for `{}`, so empty results are always dropped. Scalar and array values are not pruned here.\n *\n * @param key - The property key to write on `target`\n * @param schemaDef - The schema (or boolean shorthand) that governs the value at `key`\n * @param value - The raw source value to filter\n * @param [required=false] - When true the property is never pruned regardless of its filtered value\n */\n function setProperty(key, schemaDef, value, required = false) {\n const v = omit(schemaDef, value, target[key]);\n if (!required && isObject(v)) {\n // Resolve $ref so we can inspect the effective required list for the inner schema.\n let sd = isSchemaObj(schemaDef) ? schemaDef : {};\n if (sd.$ref !== undefined) {\n sd = findSchemaDefinition(sd.$ref, rootSchema);\n }\n const innerRequired = new Set(sd.required ?? []);\n // Drop this optional object when every key in v is both optional in the inner schema\n // and has an empty value. Vacuously true for {} so empty objects are always dropped.\n const shouldDrop = Object.entries(v).every(([k, val]) => !innerRequired.has(k) && isValueEmpty(val));\n if (shouldDrop) {\n return;\n }\n }\n if (v !== undefined) {\n // oxlint-disable-next-line no-param-reassign\n target[key] = v;\n }\n }\n if (properties !== undefined) {\n for (const [key, schemaDef] of Object.entries(properties)) {\n setProperty(key, schemaDef, source[key], requiredSet.has(key));\n }\n }\n // Track keys not handled by properties/patterns so additionalProperties can pick them up.\n let patternPropertiesRest;\n if (patternProperties !== undefined) {\n patternPropertiesRest = [];\n const patterns = Object.entries(patternProperties).map(([pattern, schemaDef]) => [\n new RegExp(pattern),\n schemaDef,\n ]);\n const knownProperties = new Set(Object.keys(properties ?? {}));\n for (const [key, value] of Object.entries(source)) {\n if (!knownProperties.has(key)) {\n const matched = patterns.find(([re]) => re.test(key));\n if (matched === undefined) {\n patternPropertiesRest.push(key);\n }\n else {\n setProperty(key, matched[1], value);\n }\n }\n }\n }\n // JSON Schema spec: absent additionalProperties defaults to true (allow all extra keys). Here\n // we treat it as false so omitExtraData never inadvertently passes through undescribed keys.\n if (additionalProperties !== undefined && additionalProperties !== false) {\n const addlSchema = additionalProperties;\n if (patternPropertiesRest !== undefined) {\n for (const key of patternPropertiesRest) {\n setProperty(key, addlSchema, source[key]);\n }\n }\n else {\n const knownProperties = new Set(Object.keys(properties ?? {}));\n for (const [key, value] of Object.entries(source)) {\n if (!knownProperties.has(key)) {\n setProperty(key, addlSchema, value);\n }\n }\n }\n }\n return target;\n }\n /** Filters array elements from `source` into `target` according to `schema.items` and\n * `schema.additionalItems`. Only called when `items` is defined (guarded in `omit`). Uses index\n * assignment (not push) so a pre-populated `target` from a prior branch is overwritten rather than\n * appended to, preventing item duplication. For tuple schemas (`items` is an array) elements up to\n * `min(items.length, source.length)` are filtered by their per-index schema; elements beyond the\n * tuple are covered by `additionalItems` when present, or the target is truncated when absent.\n * For list schemas (`items` is a single schema) every source element is filtered and `target.length`\n * is set to `source.length`.\n *\n * @param childSchema - The array schema describing `items` and optionally `additionalItems`\n * @param source - The source array to read elements from\n * @param target - The accumulator array to write filtered elements into\n * @returns - `target` after all applicable source elements have been written\n */\n function handleArray(childSchema, source, target) {\n const { items, additionalItems } = childSchema;\n if (Array.isArray(items)) {\n const tupleLength = Math.min(items.length, source.length);\n let i = 0;\n for (; i < tupleLength; i += 1) {\n // oxlint-disable-next-line no-param-reassign\n target[i] = omit(items[i], source[i]);\n }\n // Without additionalItems, truncate at the tuple boundary to drop any pre-existing items.\n if (!additionalItems) {\n // oxlint-disable-next-line no-param-reassign\n target.length = tupleLength;\n return target;\n }\n for (; i < source.length; i += 1) {\n // oxlint-disable-next-line no-param-reassign\n target[i] = omit(additionalItems, source[i]);\n }\n }\n else {\n for (let i = 0; i < source.length; i += 1) {\n // oxlint-disable-next-line no-param-reassign\n target[i] = omit(items, source[i]);\n }\n }\n // Truncate any pre-existing items beyond the source length.\n // oxlint-disable-next-line no-param-reassign\n target.length = source.length;\n return target;\n }\n /** Applies the `if/then/else` conditional keywords from `schema` to `target`. When `schema.if` is\n * absent the original `target` is returned unchanged. Otherwise the condition is evaluated — using\n * `validator.isValid` for schema conditions or the boolean value directly — and the matching branch\n * (`then` or `else`) is applied via `omit`. When the selected branch is absent, `target` is returned\n * unchanged.\n *\n * @param childSchema - The schema potentially containing `if`, `then`, and `else` keywords\n * @param source - The current form data value, passed to `validator.isValid` and the branch `omit`\n * @param target - The already-filtered value to merge the branch result into\n * @returns - The result of applying the matched branch, or `target` when no branch applies\n */\n function handleConditions(childSchema, source, target) {\n const { if: condition, then, else: otherwise } = childSchema;\n if (condition === undefined) {\n return target;\n }\n // validator.isValid signature: (schema, formData, rootSchema)\n const isThenBranch = isSchemaObj(condition)\n ? validator.isValid(condition, source, rootSchema)\n : condition;\n const branch = isThenBranch ? then : otherwise;\n return branch === undefined ? target : omit(branch, source, target, false);\n }\n /** Applies the best-matching `oneOf` option to `source`, merging the result into `target`. When\n * `oneOf` is not an array or the schema represents a select widget (enum-driven), `target` is\n * returned unchanged. `additionalProperties: false` is relaxed on each option before scoring so that\n * `getClosestMatchingOption` can validate freely, but the original option schema is used for the\n * actual `omit` call.\n *\n * @param oneOf - The `oneOf` array from the schema, or `undefined`\n * @param childSchema - The parent schema containing the `oneOf` keyword\n * @param source - The current form data value used to score each option\n * @param target - The already-filtered value to merge the winning option's result into\n * @returns - The result of applying the best-matching option, or `target` when no matching applies\n */\n function handleOneOf(oneOf, childSchema, source, target) {\n if (!Array.isArray(oneOf) || isSelect(validator, childSchema, rootSchema, experimental_customMergeAllOf)) {\n return target;\n }\n // Resolve $refs and relax additionalProperties:false → true in one pass for scoring only.\n // The unrelaxed resolved schema is re-derived for the winning option so that omit() still\n // respects additionalProperties:false during filtering.\n const scoringOptions = relaxOptionsForScoring(oneOf, true, rootSchema);\n const bestIndex = getClosestMatchingOption(validator, rootSchema, source, scoringOptions, 0, getDiscriminatorFieldFromSchema(childSchema), experimental_customMergeAllOf);\n const winning = oneOf[bestIndex];\n // For object options, re-resolve without relaxation so additionalProperties:false is respected.\n // For boolean options, scoringOptions already holds the converted schema (true→{}, false→{not:{}}).\n const resolved = isObject(winning)\n ? resolveAllReferences(winning, rootSchema, [])\n : scoringOptions[bestIndex];\n return omit(resolved, source, target, false);\n }\n /** Applies `anyOf` branches from `schema` to `source`, merging results into `target`. When `anyOf`\n * is absent or not an array, `target` is returned unchanged. For undefined or empty sources (so that\n * defaults can flow through all branches) every branch is applied in sequence. For non-empty sources\n * the best-matching branch is selected via `handleOneOf`.\n *\n * @param childSchema - The schema potentially containing an `anyOf` keyword\n * @param source - The current form data value; empty or undefined triggers all-branch application\n * @param target - The already-filtered value to merge branch results into\n * @returns - The result after applying the relevant `anyOf` branch(es), or `target` when inapplicable\n */\n function handleAnyOf(childSchema, source, target) {\n const { anyOf } = childSchema;\n if (!Array.isArray(anyOf)) {\n return target;\n }\n // For undefined or empty collections, apply every branch so defaults flow through.\n if (source === undefined ||\n (Array.isArray(source) && source.length === 0) ||\n (isObject(source) && Object.keys(source).length === 0)) {\n let result = target;\n for (const branch of anyOf) {\n result = omit(branch, source, result, false);\n }\n return result;\n }\n return handleOneOf(anyOf, childSchema, source, target);\n }\n /** Applies schema-based `dependencies` from `schema` to `source`, merging each active dependency's\n * schema into `target` via `omit`. Property dependencies (plain string arrays) are skipped — only\n * schema dependencies are processed. A dependency is considered active when its trigger key is\n * present on `source`.\n *\n * @param childSchema - The schema potentially containing a `dependencies` keyword\n * @param source - The current form data value; must be a plain object for dependencies to apply\n * @param target - The already-filtered value to merge dependency results into\n * @returns - The result after applying all active schema dependencies, or `target` when inapplicable\n */\n function handleDependencies(childSchema, source, target) {\n const { dependencies } = childSchema;\n if (dependencies === undefined || !isObjectValue(source)) {\n return target;\n }\n let result = target;\n for (const [key, deps] of Object.entries(dependencies)) {\n // Skip property dependencies (string arrays); only process schema dependencies.\n if (key in source && !Array.isArray(deps)) {\n result = omit(deps, source, result, false);\n }\n }\n return result;\n }\n /** Core recursive filter. Resolves `$ref`s, merges `allOf`, then delegates to the type-specific\n * handlers (`handleObject`, `handleArray`) and keyword handlers (`handleAnyOf`, `handleOneOf`,\n * `handleConditions`, `handleDependencies`). Returns `undefined` when `source` is undefined or\n * `schemaDef` is `false`; when `schemaDef` is `true` or empty returns `target ?? source` (when\n * `useSourceAsFallback` is true) or `target` (when false) to avoid aliasing `source` as the\n * accumulator across multiple compositional branches.\n *\n * @param schemaDef - The schema (or boolean shorthand) to filter `source` against\n * @param source - The raw form data value to filter\n * @param [target] - An optional accumulator carrying results from prior oneOf/anyOf processing\n * @param [useSourceAsFallback=true] - When false a permissive schema (`true`/`{}`) returns `target`\n * rather than `source`, preventing compositional branches from aliasing the accumulator to `source`\n * @returns - The filtered value, or `undefined` when the schema rejects the value\n */\n function omit(schemaDef, source, target, useSourceAsFallback = true) {\n if (source === undefined || schemaDef === false) {\n return undefined;\n }\n if (schemaDef === true || !schemaDef || Object.keys(schemaDef).length === 0) {\n return target ?? (useSourceAsFallback ? source : undefined);\n }\n let localSchema = schemaDef;\n const { $ref: ref, allOf } = localSchema;\n if (ref !== undefined) {\n return omit(findSchemaDefinition(ref, rootSchema), source, target, useSourceAsFallback);\n }\n if (allOf) {\n localSchema = doMergeAllOf(localSchema, experimental_customMergeAllOf);\n // Schemas whose allOf entries contain if/then/else keywords may not fully merge: the merger\n // can only hoist one if/then/else triple to the parent level, so additional entries stay in\n // allOf. Process any that remain so their conditional properties are not silently dropped.\n // See: https://github.com/rjsf-team/react-jsonschema-form/issues/5142\n const remainingAllOf = localSchema.allOf;\n if (remainingAllOf) {\n for (let i = 0; i < remainingAllOf.length; i++) {\n // oxlint-disable-next-line no-param-reassign\n target = omit(remainingAllOf[i], source, target, false);\n }\n }\n }\n let filtered = handleAnyOf(localSchema, source, handleOneOf(localSchema.oneOf, localSchema, source, target));\n const type = getSchemaType(localSchema);\n if (type === 'object') {\n if (!isObjectValue(source)) {\n return undefined;\n }\n filtered = handleObject(localSchema, source, isObjectValue(filtered) ? filtered : {});\n }\n else if (type === 'array') {\n if (!Array.isArray(source)) {\n return undefined;\n }\n if (localSchema.items !== undefined) {\n filtered = handleArray(localSchema, source, Array.isArray(filtered) ? filtered : []);\n }\n }\n // Post-prune after conditions (oneOf/anyOf/if-then) but BEFORE dependencies: keys added by\n // dependency sub-schemas are legitimate extensions of the allowed property set and must not be\n // pruned. Keys added only by winning conditional branches are still removed here so the result\n // honours additionalProperties:false.\n const afterConditions = handleConditions(localSchema, source, filtered);\n if (localSchema.additionalProperties === false && isObjectValue(afterConditions)) {\n const knownKeys = new Set(Object.keys(localSchema.properties ?? {}));\n const patterns = localSchema.patternProperties\n ? Object.keys(localSchema.patternProperties).map((p) => new RegExp(p))\n : [];\n for (const key of Object.keys(afterConditions)) {\n if (!knownKeys.has(key) && !patterns.some((re) => re.test(key))) {\n // oxlint-disable-next-line no-param-reassign\n delete afterConditions[key];\n }\n }\n }\n const result = handleDependencies(localSchema, source, afterConditions);\n return result ?? (useSourceAsFallback ? source : undefined);\n }\n return omit(schema, formData);\n}\n//# sourceMappingURL=omitExtraData.js.map","import { CONST_KEY, DEFAULT_KEY, PROPERTIES_KEY, REF_KEY } from \"../constants.js\";\nimport deepEquals from \"../deepEquals.js\";\nimport getPropertySchema from \"../getPropertySchema.js\";\nimport { getByPath, hasByPath } from \"../pathUtils.js\";\nimport retrieveSchema from \"./retrieveSchema.js\";\nconst NO_VALUE = Symbol('no Value');\nfunction enumValuesForSchema(schema) {\n if (Array.isArray(schema.enum)) {\n return schema.enum;\n }\n const options = (schema.oneOf || schema.anyOf);\n if (!Array.isArray(options)) {\n return undefined;\n }\n const values = options\n .map((option) => {\n if (CONST_KEY in option) {\n return option[CONST_KEY];\n }\n return Array.isArray(option.enum) && option.enum.length === 1 ? option.enum[0] : NO_VALUE;\n })\n .filter((value) => value !== NO_VALUE);\n return values.length > 0 ? values : undefined;\n}\nfunction replacementForInvalidEnumValue(schema, formValue) {\n const enumValues = enumValuesForSchema(schema);\n if (!enumValues || enumValues.some((value) => deepEquals(value, formValue))) {\n return NO_VALUE;\n }\n const defaultValue = getByPath(schema, DEFAULT_KEY, NO_VALUE);\n if (defaultValue !== NO_VALUE && enumValues.some((value) => deepEquals(value, defaultValue))) {\n return defaultValue;\n }\n return enumValues.length === 1 ? enumValues[0] : undefined;\n}\n/** Sanitize the `data` associated with the `oldSchema` so it is considered appropriate for the `newSchema`. If the new\n * schema does not contain any properties, then `undefined` is returned to clear all the form data. Due to the nature\n * of schemas, this sanitization happens recursively for nested objects of data. Also, any properties in the old schema\n * that are non-existent in the new schema are set to `undefined`. The data sanitization process has the following flow:\n *\n * - If the new schema is an object that contains a `properties` object then:\n * - Create a `removeOldSchemaData` object, setting each key in the `oldSchema.properties` having `data` to undefined\n * - Create an empty `nestedData` object for use in the key filtering below:\n * - Iterate over each key in the `newSchema.properties` as follows:\n * - Get the `formValue` of the key from the `data`\n * - Get the `oldKeySchema` and `newKeyedSchema` for the key, defaulting to `{}` when it doesn't exist\n * - Retrieve the schema for any refs within each `oldKeySchema` and/or `newKeySchema`\n * - Get the types of the old and new keyed schemas and if the old doesn't exist or the old & new are the same then:\n * - If `removeOldSchemaData` has an entry for the key, delete it since the new schema has the same property\n * - If type of the key in the new schema is `object`:\n * - Store the value from the recursive `sanitizeDataForNewSchema` call in `nestedData[key]`\n * - Otherwise, check for default or const values:\n * - Get the old and new `default` values from the schema and check:\n * - If the new `default` value does not match the form value:\n * - If the key is new and its form value is undefined, or the old `default` matches the form value, then:\n * - Replace `removeOldSchemaData[key]` with the new `default`\n * - Otherwise, if the new schema is `readOnly` then replace `removeOldSchemaData[key]` with undefined\n * - Get the old and new `const` values from the schema and check:\n * - If the new `const` value does not match the form value:\n * - If the old `const` value DOES match the form value, then:\n * - Replace `removeOldSchemaData[key]` with the new `const`\n * - Otherwise, replace `removeOldSchemaData[key]` with undefined\n * - Once all keys have been processed, return an object built as follows:\n * - `{ ...data, ...removeOldSchemaData, ...nestedData }`\n * - If the new and old schema types are array and the `data` is an array then:\n * - If the type of the old and new schema `items` are a non-array objects:\n * - Retrieve the schema for any refs within each `oldKeySchema.items` and/or `newKeySchema.items`\n * - If the `type`s of both items are the same (or the old does not have a type):\n * - If the type is \"object\", then:\n * - For each element in the `data` recursively sanitize the data, stopping at `maxItems` if specified\n * - Otherwise, just return the `data` removing any values after `maxItems` if it is set\n * - If the type of the old and new schema `items` are booleans of the same value, return `data` as is\n * - Otherwise return `undefined`\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param rootSchema - The root JSON schema of the entire form\n * @param [newSchema] - The new schema for which the data is being sanitized\n * @param [oldSchema] - The old schema from which the data originated\n * @param [data={}] - The form data associated with the schema, defaulting to an empty object when undefined\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The new form data, with all the fields uniquely associated with the old schema set\n * to `undefined`. Will return `undefined` if the new schema is not an object containing properties.\n */\nexport default function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, data = {}, experimental_customMergeAllOf) {\n // By default, we will clear the form data\n let newFormData;\n const newProperties = newSchema?.[PROPERTIES_KEY];\n // If the new schema is of type object and that object contains a list of properties\n if (newProperties) {\n // Create an object containing root-level keys in the old schema, setting each key to undefined to remove the data\n const removeOldSchemaData = {};\n const oldProperties = oldSchema?.[PROPERTIES_KEY];\n if (oldProperties) {\n Object.keys(oldProperties).forEach((key) => {\n if (hasByPath(data, key)) {\n removeOldSchemaData[key] = undefined;\n }\n });\n }\n const keys = Object.keys(newProperties);\n // Create a place to store nested data that will be a side-effect of the filter\n const nestedData = {};\n keys.forEach((key) => {\n const formValue = data?.[key];\n const isNewProperty = !hasByPath(oldSchema, [PROPERTIES_KEY, key]);\n let oldKeyedSchema = getPropertySchema(oldSchema, key);\n let newKeyedSchema = getPropertySchema(newSchema, key);\n // Resolve the refs if they exist\n if (hasByPath(oldKeyedSchema, REF_KEY)) {\n oldKeyedSchema = retrieveSchema(validator, oldKeyedSchema, rootSchema, formValue, experimental_customMergeAllOf);\n }\n if (hasByPath(newKeyedSchema, REF_KEY)) {\n newKeyedSchema = retrieveSchema(validator, newKeyedSchema, rootSchema, formValue, experimental_customMergeAllOf);\n }\n // Now get types and see if they are the same\n const oldSchemaTypeForKey = oldKeyedSchema.type;\n const newSchemaTypeForKey = newKeyedSchema.type;\n // Check if the old option has the same key with the same type\n if (!oldSchemaTypeForKey || oldSchemaTypeForKey === newSchemaTypeForKey) {\n if (key in removeOldSchemaData) {\n // SIDE-EFFECT: remove the undefined value for a key that has the same type between the old and new schemas\n delete removeOldSchemaData[key];\n }\n // If it is an object, we'll recurse and store the resulting sanitized data for the key\n if (newSchemaTypeForKey === 'object' || (newSchemaTypeForKey === 'array' && Array.isArray(formValue))) {\n // SIDE-EFFECT: process the new schema type of object recursively to save iterations\n const itemData = sanitizeDataForNewSchema(validator, rootSchema, newKeyedSchema, isNewProperty && newSchemaTypeForKey === 'array' ? newKeyedSchema : oldKeyedSchema, formValue, experimental_customMergeAllOf);\n if (itemData !== undefined || newSchemaTypeForKey === 'array') {\n // only put undefined values for the array type and not the object type\n nestedData[key] = itemData;\n }\n }\n else {\n // Ok, the non-object types match, let's make sure that a default or a const of a different value is replaced\n // with the new default or const. This allows the case where two schemas differ that only by the default/const\n // value to be properly selected\n const newOptionDefault = getByPath(newKeyedSchema, DEFAULT_KEY, NO_VALUE);\n const oldOptionDefault = getByPath(oldKeyedSchema, DEFAULT_KEY, NO_VALUE);\n if (newOptionDefault !== NO_VALUE && newOptionDefault !== formValue) {\n if ((isNewProperty && formValue === undefined) || oldOptionDefault === formValue) {\n // Initialize a newly entered property or replace an old default with the new default.\n removeOldSchemaData[key] = newOptionDefault;\n }\n else if (newKeyedSchema.readOnly === true) {\n // If the new schema has the default set to read-only, treat it like a const and remove the value\n removeOldSchemaData[key] = undefined;\n }\n }\n const newOptionConst = getByPath(newKeyedSchema, CONST_KEY, NO_VALUE);\n const oldOptionConst = getByPath(oldKeyedSchema, CONST_KEY, NO_VALUE);\n if (newOptionConst !== NO_VALUE && newOptionConst !== formValue) {\n // Since this is a const, if the old value matches, replace the value with the new const otherwise clear it\n removeOldSchemaData[key] = oldOptionConst === formValue ? newOptionConst : undefined;\n }\n if (hasByPath(data, key)) {\n const enumReplacement = replacementForInvalidEnumValue(newKeyedSchema, formValue);\n if (enumReplacement !== NO_VALUE) {\n removeOldSchemaData[key] = enumReplacement;\n }\n }\n }\n }\n });\n newFormData = {\n ...(typeof data === 'string' || Array.isArray(data) ? undefined : data),\n ...removeOldSchemaData,\n ...nestedData,\n };\n // First apply removing the old schema data, then apply the nested data, then apply the old data keys to keep\n }\n else if (oldSchema?.type === 'array' && newSchema?.type === 'array' && Array.isArray(data)) {\n let oldSchemaItems = oldSchema.items;\n let newSchemaItems = newSchema.items;\n // If any of the array types `items` are arrays (remember arrays are objects) then we'll just drop the data\n // Eventually, we may want to deal with when either of the `items` are arrays since those tuple validations\n if (typeof oldSchemaItems === 'object' &&\n typeof newSchemaItems === 'object' &&\n !Array.isArray(oldSchemaItems) &&\n !Array.isArray(newSchemaItems)) {\n if (hasByPath(oldSchemaItems, REF_KEY)) {\n oldSchemaItems = retrieveSchema(validator, oldSchemaItems, rootSchema, data, experimental_customMergeAllOf);\n }\n if (hasByPath(newSchemaItems, REF_KEY)) {\n newSchemaItems = retrieveSchema(validator, newSchemaItems, rootSchema, data, experimental_customMergeAllOf);\n }\n // Now get types and see if they are the same\n const oldSchemaType = getByPath(oldSchemaItems, 'type');\n const newSchemaType = getByPath(newSchemaItems, 'type');\n // Check if the old option has the same key with the same type\n if (!oldSchemaType || oldSchemaType === newSchemaType) {\n const maxItems = newSchema.maxItems ?? -1;\n if (newSchemaType === 'object') {\n newFormData = data.reduce((newValue, aValue) => {\n const itemValue = sanitizeDataForNewSchema(validator, rootSchema, newSchemaItems, oldSchemaItems, aValue, experimental_customMergeAllOf);\n if (itemValue !== undefined && (maxItems < 0 || newValue.length < maxItems)) {\n newValue.push(itemValue);\n }\n return newValue;\n }, []);\n }\n else {\n // Filter out items that are no longer valid in the new items schema (e.g., enum values that changed)\n const newItemEnumValues = enumValuesForSchema(newSchemaItems);\n const filteredData = newItemEnumValues\n ? data.filter((item) => newItemEnumValues.some((v) => deepEquals(v, item)))\n : data;\n newFormData = maxItems > 0 && filteredData.length > maxItems ? filteredData.slice(0, maxItems) : filteredData;\n }\n }\n }\n else if (typeof oldSchemaItems === 'boolean' &&\n typeof newSchemaItems === 'boolean' &&\n oldSchemaItems === newSchemaItems) {\n // If they are both booleans and have the same value just return the data as is otherwise fall-thru to undefined\n newFormData = data;\n }\n // Also probably want to deal with `prefixItems` as tuples with the latest 2020 draft\n }\n return newFormData;\n}\n//# sourceMappingURL=sanitizeDataForNewSchema.js.map","// oxlint-disable typescript/no-deprecated\nimport { ADDITIONAL_PROPERTIES_KEY, ALL_OF_KEY, ANY_OF_KEY, DEPENDENCIES_KEY, IF_KEY, ITEMS_KEY, NAME_KEY, ONE_OF_KEY, PROPERTIES_KEY, REF_KEY, RJSF_ADDITIONAL_PROPERTIES_FLAG, } from \"../constants.js\";\nimport deepEquals from \"../deepEquals.js\";\nimport getDiscriminatorFieldFromSchema from \"../getDiscriminatorFieldFromSchema.js\";\nimport getPropertySchema from \"../getPropertySchema.js\";\nimport isObject from \"../isObject.js\";\nimport { getByPath, setByPath } from \"../pathUtils.js\";\nimport getClosestMatchingOption from \"./getClosestMatchingOption.js\";\nimport retrieveSchema from \"./retrieveSchema.js\";\n/** An internal helper that generates an `PathSchema` object for the `schema`, recursively with protection against\n * infinite recursion\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param schema - The schema for which the `PathSchema` is desired\n * @param [name=''] - The base name for the schema\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @param [formData] - The current formData, if any, to assist retrieving a schema\n * @param [_recurseList=[]] - The list of retrieved schemas currently being recursed, used to prevent infinite recursion\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The `PathSchema` object for the `schema`\n */\nfunction toPathSchemaInternal(validator, schema, name, rootSchema, formData, _recurseList = [], experimental_customMergeAllOf) {\n if (REF_KEY in schema || DEPENDENCIES_KEY in schema || ALL_OF_KEY in schema || IF_KEY in schema) {\n const innerSchema = retrieveSchema(validator, schema, rootSchema, formData, experimental_customMergeAllOf);\n const sameSchemaIndex = _recurseList.findIndex((item) => deepEquals(item, innerSchema));\n if (sameSchemaIndex === -1) {\n return toPathSchemaInternal(validator, innerSchema, name, rootSchema, formData, _recurseList.concat(innerSchema), experimental_customMergeAllOf);\n }\n }\n let pathSchema = {\n [NAME_KEY]: name.replace(/^\\./, ''),\n };\n if (ONE_OF_KEY in schema || ANY_OF_KEY in schema) {\n const xxxOf = ONE_OF_KEY in schema ? schema.oneOf : schema.anyOf;\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n const index = getClosestMatchingOption(validator, rootSchema, formData, xxxOf, 0, discriminator, experimental_customMergeAllOf);\n const innerSchema = xxxOf[index];\n pathSchema = {\n ...pathSchema,\n ...toPathSchemaInternal(validator, innerSchema, name, rootSchema, formData, _recurseList, experimental_customMergeAllOf),\n };\n }\n if (ADDITIONAL_PROPERTIES_KEY in schema && schema[ADDITIONAL_PROPERTIES_KEY] !== false) {\n setByPath(pathSchema, RJSF_ADDITIONAL_PROPERTIES_FLAG, true);\n const additionalSchema = (isObject(schema[ADDITIONAL_PROPERTIES_KEY]) ? schema[ADDITIONAL_PROPERTIES_KEY] : {});\n const definedProperties = schema[PROPERTIES_KEY] ?? {};\n for (const key of Object.keys((formData ?? {}))) {\n if (!(key in definedProperties)) {\n pathSchema[key] = toPathSchemaInternal(validator, additionalSchema, `${name}.${key}`, rootSchema, getByPath(formData, key), _recurseList, experimental_customMergeAllOf);\n }\n }\n }\n if (ITEMS_KEY in schema && Array.isArray(formData)) {\n const { items: schemaItems, additionalItems: schemaAdditionalItems } = schema;\n if (Array.isArray(schemaItems)) {\n formData.forEach((element, i) => {\n if (schemaItems[i]) {\n pathSchema[i] = toPathSchemaInternal(validator, schemaItems[i], `${name}.${i}`, rootSchema, element, _recurseList, experimental_customMergeAllOf);\n }\n else if (schemaAdditionalItems) {\n pathSchema[i] = toPathSchemaInternal(validator, schemaAdditionalItems, `${name}.${i}`, rootSchema, element, _recurseList, experimental_customMergeAllOf);\n }\n else {\n // oxlint-disable-next-line no-console\n console.warn(`Unable to generate path schema for \"${name}.${i}\". No schema defined for it`);\n }\n });\n }\n else {\n formData.forEach((element, i) => {\n pathSchema[i] = toPathSchemaInternal(validator, schemaItems, `${name}.${i}`, rootSchema, element, _recurseList, experimental_customMergeAllOf);\n });\n }\n }\n else if (PROPERTIES_KEY in schema) {\n // This is a deprecated function that is no longer used by RJSF\n // oxlint-disable-next-line guard-for-in\n for (const property in schema.properties) {\n const field = getPropertySchema(schema, property);\n pathSchema[property] = toPathSchemaInternal(validator, field, `${name}.${property}`, rootSchema, \n // It's possible that formData is not an object -- this can happen if an\n // array item has just been added, but not populated with data yet\n getByPath(formData, property), _recurseList, experimental_customMergeAllOf);\n }\n }\n return pathSchema;\n}\n/** Generates an `PathSchema` object for the `schema`, recursively\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param schema - The schema for which the `PathSchema` is desired\n * @param [name=''] - The base name for the schema\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @param [formData] - The current formData, if any, to assist retrieving a schema\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - The `PathSchema` object for the `schema`\n * @deprecated - To be removed as an exported `@rjsf/utils` function in a future release\n */\nexport default function toPathSchema(validator, schema, name = '', rootSchema, formData, experimental_customMergeAllOf) {\n return toPathSchemaInternal(validator, schema, name, rootSchema, formData, undefined, experimental_customMergeAllOf);\n}\n//# sourceMappingURL=toPathSchema.js.map","import { ID_KEY, JSON_SCHEMA_DRAFT_2020_12, SCHEMA_KEY } from \"./constants.js\";\nimport deepEquals from \"./deepEquals.js\";\nimport { makeAllReferencesAbsolute } from \"./findSchemaDefinition.js\";\nimport { findFieldInSchema, findSelectedOptionInXxxOf, getDefaultFormState, getDisplayLabel, getClosestMatchingOption, getFirstMatchingOption, getFromSchema, isFilesArray, isMultiSelect, isSelect, omitExtraData, retrieveSchema, sanitizeDataForNewSchema, toPathSchema, } from \"./schema/index.js\";\n/** The `SchemaUtils` class provides a wrapper around the publicly exported APIs in the `utils/schema` directory such\n * that one does not have to explicitly pass the `validator`, `rootSchema`, `experimental_defaultFormStateBehavior` or\n * `experimental_customMergeAllOf` to each method. Since these generally do not change across a `Form`, this allows for\n * providing a simplified set of APIs to the `@rjsf/core` components and the various themes as well. This class\n * implements the `SchemaUtilsType` interface.\n */\nclass SchemaUtils {\n rootSchema;\n validator;\n experimental_defaultFormStateBehavior;\n experimental_customMergeAllOf;\n /** Constructs the `SchemaUtils` instance with the given `validator` and `rootSchema` stored as instance variables\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param experimental_defaultFormStateBehavior - Configuration flags to allow users to override default form state behavior\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n */\n constructor(validator, rootSchema, experimental_defaultFormStateBehavior, experimental_customMergeAllOf) {\n if (rootSchema?.[SCHEMA_KEY] === JSON_SCHEMA_DRAFT_2020_12) {\n this.rootSchema = makeAllReferencesAbsolute(rootSchema, rootSchema[ID_KEY] ?? '#');\n }\n else {\n this.rootSchema = rootSchema;\n }\n this.validator = validator;\n this.experimental_defaultFormStateBehavior = experimental_defaultFormStateBehavior;\n this.experimental_customMergeAllOf = experimental_customMergeAllOf;\n }\n /** Returns the `rootSchema` in the `SchemaUtilsType`\n *\n * @returns - The `rootSchema`\n */\n getRootSchema() {\n return this.rootSchema;\n }\n /** Returns the `ValidatorType` in the `SchemaUtilsType`\n *\n * @returns - The `ValidatorType`\n */\n getValidator() {\n return this.validator;\n }\n /** Determines whether either the `validator` and `rootSchema` differ from the ones associated with this instance of\n * the `SchemaUtilsType`. If either `validator` or `rootSchema` are falsy, then return false to prevent the creation\n * of a new `SchemaUtilsType` with incomplete properties.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be compared against the current one\n * @param rootSchema - The root schema that will be compared against the current one\n * @param [experimental_defaultFormStateBehavior] Optional configuration object, if provided, allows users to override default form state behavior\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - True if the `SchemaUtilsType` differs from the given `validator` or `rootSchema`\n */\n doesSchemaUtilsDiffer(validator, rootSchema, experimental_defaultFormStateBehavior = {}, experimental_customMergeAllOf) {\n // If either validator or rootSchema are falsy, return false to prevent the creation\n // of a new SchemaUtilsType with incomplete properties.\n if (!validator || !rootSchema) {\n return false;\n }\n return (this.validator !== validator ||\n !deepEquals(this.rootSchema, rootSchema) ||\n !deepEquals(this.experimental_defaultFormStateBehavior, experimental_defaultFormStateBehavior) ||\n this.experimental_customMergeAllOf !== experimental_customMergeAllOf);\n }\n /** Finds the field specified by the `path` within the root or recursed `schema`. If there is no field for the specified\n * `path`, then the default `{ field: undefined, isRequired: undefined }` is returned. It determines whether a leaf\n * field is in the `required` list for its parent and if so, it is marked as required on return.\n *\n * @param schema - The current node within the JSON schema\n * @param path - The remaining keys in the path to the desired field\n * @param [formData] - The form data that is used to determine which oneOf option\n * @returns - An object that contains the field and its required state. If no field can be found then\n * `{ field: undefined, isRequired: undefined }` is returned.\n */\n findFieldInSchema(schema, path, formData) {\n return findFieldInSchema(this.validator, this.rootSchema, schema, path, formData, this.experimental_customMergeAllOf);\n }\n /** Finds the oneOf option inside the `schema['any/oneOf']` list which has the `properties[selectorField].default` that\n * matches the `formData[selectorField]` value. For the purposes of this function, `selectorField` is either\n * `schema.discriminator.propertyName` or `fallbackField`.\n *\n * @param schema - The schema element in which to search for the selected oneOf option\n * @param fallbackField - The field to use as a backup selector field if the schema does not have a required field\n * @param xxx - Either `oneOf` or `anyOf`, defines which value is being sought\n * @param [formData={}] - The form data that is used to determine which oneOf option\n * @returns - The anyOf/oneOf option that matches the selector field in the schema or undefined if nothing is selected\n */\n findSelectedOptionInXxxOf(schema, fallbackField, xxx, formData) {\n return findSelectedOptionInXxxOf(this.validator, this.rootSchema, schema, fallbackField, xxx, formData, this.experimental_customMergeAllOf);\n }\n /** Returns the superset of `formData` that includes the given set updated to include any missing fields that have\n * computed to have defaults provided in the `schema`.\n *\n * @param schema - The schema for which the default state is desired\n * @param [formData] - The current formData, if any, onto which to provide any missing defaults\n * @param [includeUndefinedValues=false] - Optional flag, if true, cause undefined values to be added as defaults.\n * If \"excludeObjectChildren\", pass `includeUndefinedValues` as false when computing defaults for any nested\n * object properties.\n * @param initialDefaultsGenerated - Indicates whether or not initial defaults have been generated\n * @returns - The resulting `formData` with all the defaults provided\n */\n getDefaultFormState(schema, formData, includeUndefinedValues = false, initialDefaultsGenerated) {\n return getDefaultFormState(this.validator, schema, formData, this.rootSchema, includeUndefinedValues, this.experimental_defaultFormStateBehavior, this.experimental_customMergeAllOf, initialDefaultsGenerated);\n }\n /** Determines whether the combination of `schema` and `uiSchema` properties indicates that the label for the `schema`\n * should be displayed in a UI.\n *\n * @param schema - The schema for which the display label flag is desired\n * @param [uiSchema] - The UI schema from which to derive potentially displayable information\n * @param [globalOptions={}] - The optional Global UI Schema from which to get any fallback `xxx` options\n * @returns - True if the label should be displayed or false if it should not\n */\n getDisplayLabel(schema, uiSchema, globalOptions) {\n return getDisplayLabel(this.validator, schema, uiSchema, this.rootSchema, globalOptions, this.experimental_customMergeAllOf);\n }\n /** Determines which of the given `options` provided most closely matches the `formData`.\n * Returns the index of the option that is valid and is the closest match, or 0 if there is no match.\n *\n * The closest match is determined using the number of matching properties, and more heavily favors options with\n * matching readOnly, default, or const values.\n *\n * @param formData - The form data associated with the schema\n * @param options - The list of options that can be selected from\n * @param [selectedOption] - The index of the currently selected option, defaulted to -1 if not specified\n * @param [discriminatorField] - The optional name of the field within the options object whose value is used to\n * determine which option is selected\n * @returns - The index of the option that is the closest match to the `formData` or the `selectedOption` if no match\n */\n getClosestMatchingOption(formData, options, selectedOption, discriminatorField) {\n return getClosestMatchingOption(this.validator, this.rootSchema, formData, options, selectedOption, discriminatorField, this.experimental_customMergeAllOf);\n }\n /** Given the `formData` and list of `options`, attempts to find the index of the first option that matches the data.\n * Always returns the first option if there is nothing that matches.\n *\n * @param formData - The current formData, if any, used to figure out a match\n * @param options - The list of options to find a matching options from\n * @param [discriminatorField] - The optional name of the field within the options object whose value is used to\n * determine which option is selected\n * @returns - The firstindex of the matched option or 0 if none is available\n */\n getFirstMatchingOption(formData, options, discriminatorField) {\n return getFirstMatchingOption(this.validator, formData, options, this.rootSchema, discriminatorField);\n }\n getFromSchema(schema, path, defaultValue) {\n return getFromSchema(this.validator, this.rootSchema, schema, path, \n // @ts-expect-error TS2769: No overload matches this call\n defaultValue, this.experimental_customMergeAllOf);\n }\n /** Checks to see if the `schema` and `uiSchema` combination represents an array of files\n *\n * @param schema - The schema for which check for array of files flag is desired\n * @param [uiSchema] - The UI schema from which to check the widget\n * @returns - True if schema/uiSchema contains an array of files, otherwise false\n */\n isFilesArray(schema, uiSchema) {\n return isFilesArray(this.validator, schema, uiSchema, this.rootSchema, this.experimental_customMergeAllOf);\n }\n /** Checks to see if the `schema` combination represents a multi-select\n *\n * @param schema - The schema for which check for a multi-select flag is desired\n * @returns - True if schema contains a multi-select, otherwise false\n */\n isMultiSelect(schema) {\n return isMultiSelect(this.validator, schema, this.rootSchema, this.experimental_customMergeAllOf);\n }\n /** Checks to see if the `schema` combination represents a select\n *\n * @param schema - The schema for which check for a select flag is desired\n * @returns - True if schema contains a select, otherwise false\n */\n isSelect(schema) {\n return isSelect(this.validator, schema, this.rootSchema, this.experimental_customMergeAllOf);\n }\n /**\n * The function takes a `schema` and `formData` and returns a copy of the formData with any fields not defined in the schema removed.\n * This is useful for ensuring that only data that is relevant to the schema is preserved. Objects with `additionalProperties`\n * keyword set to `true` will not have their extra fields removed.\n *\n * @param schema - The schema to use for filtering the `formData`\n * @param [formData] - The formData to filter\n * @returns The new form data, with any fields not defined in the schema removed\n */\n omitExtraData(schema, formData) {\n return omitExtraData(this.validator, schema, this.rootSchema, formData);\n }\n /** Retrieves an expanded schema that has had all of its conditions, additional properties, references and\n * dependencies resolved and merged into the `schema` given a `rawFormData` that is used to do the potentially\n * recursive resolution.\n *\n * @param schema - The schema for which retrieving a schema is desired\n * @param [rawFormData] - The current formData, if any, to assist retrieving a schema\n * @param [resolveAnyOfOrOneOfRefs] - Optional flag indicating whether to resolved refs in anyOf/oneOf lists\n * @returns - The schema having its conditions, additional properties, references and dependencies resolved\n */\n retrieveSchema(schema, rawFormData, resolveAnyOfOrOneOfRefs) {\n return retrieveSchema(this.validator, schema, this.rootSchema, rawFormData, this.experimental_customMergeAllOf, resolveAnyOfOrOneOfRefs);\n }\n /** Sanitize the `data` associated with the `oldSchema` so it is considered appropriate for the `newSchema`. If the\n * new schema does not contain any properties, then `undefined` is returned to clear all the form data. Due to the\n * nature of schemas, this sanitization happens recursively for nested objects of data. Also, any properties in the\n * old schemas that are non-existent in the new schema are set to `undefined`.\n *\n * @param [newSchema] - The new schema for which the data is being sanitized\n * @param [oldSchema] - The old schema from which the data originated\n * @param [data={}] - The form data associated with the schema, defaulting to an empty object when undefined\n * @returns - The new form data, with all the fields uniquely associated with the old schema set\n * to `undefined`. Will return `undefined` if the new schema is not an object containing properties.\n */\n sanitizeDataForNewSchema(newSchema, oldSchema, data) {\n return sanitizeDataForNewSchema(this.validator, this.rootSchema, newSchema, oldSchema, data, this.experimental_customMergeAllOf);\n }\n /** Generates an `PathSchema` object for the `schema`, recursively\n *\n * @param schema - The schema for which the display label flag is desired\n * @param [name] - The base name for the schema\n * @param [formData] - The current formData, if any, onto which to provide any missing defaults\n * @returns - The `PathSchema` object for the `schema`\n */\n // oxlint-disable-next-line typescript/no-deprecated\n toPathSchema(schema, name, formData) {\n // oxlint-disable-next-line typescript/no-deprecated\n return toPathSchema(this.validator, schema, name, this.rootSchema, formData, this.experimental_customMergeAllOf);\n }\n}\n/** Creates a `SchemaUtilsType` interface that is based around the given `validator` and `rootSchema` parameters. The\n * resulting interface implementation will forward the `validator` and `rootSchema` to all the wrapped APIs.\n *\n * @param validator - an implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param [experimental_defaultFormStateBehavior] Optional configuration object, if provided, allows users to override default form state behavior\n * @param [experimental_customMergeAllOf] - Optional function that allows for custom merging of `allOf` schemas\n * @returns - An implementation of a `SchemaUtilsType` interface\n */\nexport default function createSchemaUtils(validator, rootSchema, experimental_defaultFormStateBehavior = {}, experimental_customMergeAllOf) {\n return new SchemaUtils(validator, rootSchema, experimental_defaultFormStateBehavior, experimental_customMergeAllOf);\n}\n//# sourceMappingURL=createSchemaUtils.js.map","/** Given the `FileReader.readAsDataURL()` based `dataURI` extracts that data into an actual Blob along with the name\n * of that Blob if provided in the URL. If no name is provided, then the name falls back to `unknown`.\n *\n * @param dataURI - The `DataUrl` potentially containing name and raw data to be converted to a Blob\n * @returns - an object containing a Blob and its name, extracted from the URI\n */\nexport default function dataURItoBlob(dataURILike) {\n // check if is dataURI\n if (!dataURILike.includes('data:')) {\n throw new Error('File is invalid: URI must be a dataURI');\n }\n const dataURI = dataURILike.slice(5);\n // split the dataURI into media and base64, with the base64 signature\n const splitted = dataURI.split(';base64,');\n // if the base64 signature is not present, the latter part will become empty\n if (splitted.length !== 2) {\n throw new Error('File is invalid: dataURI must be base64');\n }\n // extract the mime type, media parameters including the name, and the base64 string\n const [media, base64] = splitted;\n const [mime, ...mediaparams] = media.split(';');\n const type = mime || '';\n // extract the name from the parameters\n const name = decodeURI(\n // parse the parameters into key-value pairs, find a key, and extract a value\n // if no key is found, then the name is unknown\n mediaparams.map((param) => param.split('=')).find(([key]) => key === 'name')?.[1] || 'unknown');\n // Built the Uint8Array Blob parameter from the base64 string.\n try {\n const binary = atob(base64);\n const array = new Array(binary.length);\n for (let i = 0; i < binary.length; i += 1) {\n array[i] = binary.charCodeAt(i);\n }\n // Create the blob object\n const blob = new window.Blob([new Uint8Array(array)], { type });\n return { blob, name };\n }\n catch (error) {\n throw new Error(`File is invalid: ${error.message}`);\n }\n}\n//# sourceMappingURL=dataURItoBlob.js.map","/** Returns a string representation of the `num` that is padded with leading \"0\"s if necessary\n *\n * @param num - The number to pad\n * @param width - The width of the string at which no lead padding is necessary\n * @returns - The number converted to a string with leading zero padding if the number of digits is less than `width`\n */\nexport default function pad(num, width) {\n let s = String(num);\n while (s.length < width) {\n s = `0${s}`;\n }\n return s;\n}\n//# sourceMappingURL=pad.js.map","import pad from \"./pad.js\";\n/** Returns a list of options for a date range between `start` and `stop`. If the start date is greater than the end\n * date, then the date range is reversed. If `start` and `stop` are negative numbers (or zero), then they will be\n * treated as relative to the current year.\n *\n * @param start - The starting point of the date range\n * @param stop - The ending point of the date range\n * @returns - The list of EnumOptionsType for the date range between `start` and `stop`\n * @throws - Error when `start` and `stop` aren't both <= 0 or > 0\n */\nexport default function dateRangeOptions(start, stop) {\n const bothRelative = start <= 0 && stop <= 0;\n const eitherNegative = start < 0 || stop < 0;\n if (!bothRelative && eitherNegative) {\n throw new Error(`Both start (${start}) and stop (${stop}) must both be <= 0 or > 0, got one of each`);\n }\n const currentYear = new Date().getFullYear();\n const resolvedStart = bothRelative ? currentYear + start : start;\n const resolvedStop = bothRelative ? currentYear + stop : stop;\n if (resolvedStart > resolvedStop) {\n return dateRangeOptions(stop, start).reverse();\n }\n const options = [];\n for (let i = resolvedStart; i <= resolvedStop; i += 1) {\n options.push({ value: i, label: pad(i, 2) });\n }\n return options;\n}\n//# sourceMappingURL=dateRangeOptions.js.map","/** Potentially substitutes all replaceable parameters with the associated value(s) from the `params` if available. When\n * a `params` array is provided, each value in the array is used to replace any of the replaceable parameters in the\n * `inputString` using the `%1`, `%2`, etc. replacement specifiers.\n *\n * @param inputString - The string which will be potentially updated with replacement parameters\n * @param params - The optional list of replaceable parameter values to substitute into the english string\n * @returns - The updated string with any replacement specifiers replaced\n */\nexport default function replaceStringParameters(inputString, params) {\n let output = inputString;\n if (Array.isArray(params)) {\n const parts = output.split(/(%\\d)/);\n params.forEach((param, index) => {\n const partIndex = parts.findIndex((part) => part === `%${index + 1}`);\n if (partIndex >= 0) {\n parts[partIndex] = param;\n }\n });\n output = parts.join('');\n }\n return output;\n}\n//# sourceMappingURL=replaceStringParameters.js.map","import replaceStringParameters from \"./replaceStringParameters.js\";\n/** Translates a `TranslatableString` value `stringToTranslate` into english. When a `params` array is provided, each\n * value in the array is used to replace any of the replaceable parameters in the `stringToTranslate` using the `%1`,\n * `%2`, etc. replacement specifiers.\n *\n * @param stringToTranslate - The `TranslatableString` value to convert to english\n * @param params - The optional list of replaceable parameter values to substitute into the english string\n * @returns - The `stringToTranslate` itself with any replaceable parameter values substituted\n */\nexport default function englishStringTranslator(stringToTranslate, params) {\n return replaceStringParameters(stringToTranslate, params);\n}\n//# sourceMappingURL=englishStringTranslator.js.map","/** Returns the value(s) from `allEnumOptions` at the index(es) provided by `valueIndex`. If `valueIndex` is not an\n * array AND the index is not valid for `allEnumOptions`, `emptyValue` is returned. If `valueIndex` is an array, AND it\n * contains an invalid index, the returned array will have the resulting undefined values filtered out, leaving only\n * valid values or in the worst case, an empty array.\n *\n * @param valueIndex - The index(es) of the value(s) that should be returned\n * @param [allEnumOptions=[]] - The list of all the known enumOptions\n * @param [emptyValue] - The value to return when the non-array `valueIndex` does not refer to a real option\n * @returns - The single or list of values specified by the single or list of indexes if they are valid. Otherwise,\n * `emptyValue` or an empty list.\n */\nexport default function enumOptionsValueForIndex(valueIndex, allEnumOptions = [], emptyValue) {\n if (Array.isArray(valueIndex)) {\n return (valueIndex\n .map((index) => enumOptionsValueForIndex(index, allEnumOptions))\n // The recursive call returns undefined for a bad option, filter those out\n .filter((val) => val !== undefined));\n }\n // So Number(null) and Number('') both return 0, so use emptyValue for those two values\n const index = valueIndex === '' || valueIndex === null ? -1 : Number(valueIndex);\n const option = allEnumOptions[index];\n return option ? option.value : emptyValue;\n}\n//# sourceMappingURL=enumOptionsValueForIndex.js.map","import deepEquals from \"./deepEquals.js\";\nimport enumOptionsValueForIndex from \"./enumOptionsValueForIndex.js\";\n/** Removes the enum option value at the `valueIndex` from the currently `selected` (list of) value(s). If `selected` is\n * a list, then that list is updated to remove the enum option value with the `valueIndex` in `allEnumOptions`. If it is\n * a single value, then if the enum option value with the `valueIndex` in `allEnumOptions` matches `selected`, undefined\n * is returned, otherwise the `selected` value is returned.\n *\n * @param valueIndex - The index of the value to be removed from the selected list or single value\n * @param selected - The current (list of) selected value(s)\n * @param [allEnumOptions=[]] - The list of all the known enumOptions\n * @returns - The updated `selected` with the enum option value at `valueIndex` in `allEnumOptions` removed from it,\n * unless `selected` is a single value. In that case, if the `valueIndex` value matches `selected`, returns\n * undefined, otherwise `selected`.\n */\nexport default function enumOptionsDeselectValue(valueIndex, selected, allEnumOptions = []) {\n const value = enumOptionsValueForIndex(valueIndex, allEnumOptions);\n if (Array.isArray(selected)) {\n return selected.filter((v) => !deepEquals(v, value));\n }\n return deepEquals(value, selected) ? undefined : selected;\n}\n//# sourceMappingURL=enumOptionsDeselectValue.js.map","import deepEquals from \"./deepEquals.js\";\n/** Determines whether the given `value` is (one of) the `selected` value(s).\n *\n * @param value - The value being checked to see if it is selected\n * @param selected - The current selected value or list of values\n * @returns - true if the `value` is one of the `selected` ones, false otherwise\n */\nexport default function enumOptionsIsSelected(value, selected) {\n if (Array.isArray(selected)) {\n return selected.some((sel) => deepEquals(sel, value));\n }\n return deepEquals(selected, value);\n}\n//# sourceMappingURL=enumOptionsIsSelected.js.map","import enumOptionsIsSelected from \"./enumOptionsIsSelected.js\";\n/** Returns the index(es) of the options in `allEnumOptions` whose value(s) match the ones in `value`. All the\n * `enumOptions` are filtered based on whether they are a \"selected\" `value` and the index of each selected one is then\n * stored in an array. If `multiple` is true, that array is returned, otherwise the first element in the array is\n * returned.\n *\n * @param value - The single value or list of values for which indexes are desired\n * @param [allEnumOptions=[]] - The list of all the known enumOptions\n * @param [multiple=false] - Optional flag, if true will return a list of index, otherwise a single one\n * @returns - A single string index for the first `value` in `allEnumOptions`, if not `multiple`. Otherwise, the list\n * of indexes for (each of) the value(s) in `value`.\n */\nexport default function enumOptionsIndexForValue(value, allEnumOptions = [], multiple = false) {\n const selectedIndexes = allEnumOptions\n .map((opt, index) => (enumOptionsIsSelected(opt.value, value) ? String(index) : undefined))\n .filter((opt) => typeof opt !== 'undefined');\n if (!multiple) {\n return selectedIndexes[0];\n }\n return selectedIndexes;\n}\n//# sourceMappingURL=enumOptionsIndexForValue.js.map","import enumOptionsIndexForValue from \"./enumOptionsIndexForValue.js\";\n/** Computes the value to pass to a select element's `value` attribute.\n *\n * When `format` is `'realValue'`, converts form data values to strings.\n * When `format` is `'indexed'` (the default), resolves to index-based values via\n * `enumOptionsIndexForValue`. Returns `emptyValue` when the current value is empty.\n *\n * @param value - The current form data value\n * @param enumOptions - The available enum options\n * @param multiple - Whether the select allows multiple selections\n * @param [format='indexed'] - How option values are encoded on the DOM\n * @param emptyValue - The value to return when the selection is empty\n * @returns The value to use for the select element's `value` attribute\n */\nexport default function enumOptionSelectedValue(value, enumOptions, multiple, format = 'indexed', emptyValue) {\n const isEmpty = typeof value === 'undefined' ||\n (multiple && Array.isArray(value) && value.length < 1) ||\n (!multiple && value === emptyValue);\n if (isEmpty) {\n return emptyValue;\n }\n if (format === 'realValue') {\n return multiple ? value.map(String) : String(value);\n }\n const indexes = enumOptionsIndexForValue(value, enumOptions, multiple);\n return typeof indexes === 'undefined' ? emptyValue : indexes;\n}\n//# sourceMappingURL=enumOptionSelectedValue.js.map","import enumOptionsValueForIndex from \"./enumOptionsValueForIndex.js\";\n/** Add the enum option value at the `valueIndex` to the list of `selected` values in the proper order as defined by\n * `allEnumOptions`\n *\n * @param valueIndex - The index of the value that should be selected\n * @param selected - The current list of selected values\n * @param [allEnumOptions=[]] - The list of all the known enumOptions\n * @returns - The updated list of selected enum values with enum value at the `valueIndex` added to it\n */\nexport default function enumOptionsSelectValue(valueIndex, selected, allEnumOptions = []) {\n const value = enumOptionsValueForIndex(valueIndex, allEnumOptions);\n if (value != null) {\n const index = allEnumOptions.findIndex((opt) => value === opt.value);\n const all = allEnumOptions.map(({ value: val }) => val);\n const updated = selected.slice(0, index).concat(value, selected.slice(index));\n // As inserting values at predefined index positions doesn't work with empty\n // arrays, we need to reorder the updated selection to match the initial order\n return updated.sort((a, b) => Number(all.indexOf(a) > all.indexOf(b)));\n }\n return selected;\n}\n//# sourceMappingURL=enumOptionsSelectValue.js.map","import enumOptionsValueForIndex from \"./enumOptionsValueForIndex.js\";\n/** Resolves a single DOM value string back to its typed enum value in `'realValue'` mode.\n *\n * First attempts a reverse lookup by matching `String(opt.value)` against the input.\n * If no option matches and the input parses as a valid index, falls back to the\n * option at that index — this is how object/array enum values round-trip, since\n * they are encoded as indices by the encoder.\n *\n * @param value - A single string value from a DOM attribute\n * @param enumOptions - The available enum options\n * @param emptyValue - The value to return when the input is empty, options are missing, or no match is found\n * @returns The original typed enum value, or `emptyValue`\n */\nfunction decodeSingle(value, enumOptions, emptyValue) {\n if (value === '' || !Array.isArray(enumOptions)) {\n return emptyValue;\n }\n const match = enumOptions.find((opt) => String(opt.value) === value);\n if (match) {\n return match.value;\n }\n // Fallback: value might be an index (for object/array enum values)\n const index = Number(value);\n if (!Number.isNaN(index) && index >= 0 && index < enumOptions.length) {\n return enumOptions[index].value;\n }\n return emptyValue;\n}\n/** Decodes a string from a DOM value attribute back to a typed enum value.\n *\n * When `format` is `'realValue'`, does a reverse lookup: finds the enum option\n * whose `String(value)` matches the input string and returns the original typed value.\n * For object/array values that were encoded as indices, falls back to index resolution.\n *\n * When `format` is `'indexed'` (the default), uses index-based resolution via\n * `enumOptionsValueForIndex`.\n *\n * @param value - The string value(s) from the DOM\n * @param enumOptions - The available enum options\n * @param [format='indexed'] - How the values were encoded on the DOM\n * @param emptyValue - The value to return for empty/missing selections\n * @returns The original typed enum value(s)\n */\nexport default function enumOptionValueDecoder(value, enumOptions, format = 'indexed', emptyValue) {\n if (format !== 'realValue') {\n return enumOptionsValueForIndex(value, enumOptions, emptyValue);\n }\n if (Array.isArray(value)) {\n return value.map((v) => decodeSingle(v, enumOptions, emptyValue));\n }\n return decodeSingle(value, enumOptions, emptyValue);\n}\n//# sourceMappingURL=enumOptionValueDecoder.js.map","/** Encodes an enum option value into a string for a DOM value attribute.\n *\n * When `format` is `'realValue'`, primitive values are converted via `String()`.\n * Non-primitive values (objects, arrays) fall back to the index since\n * `String()` would produce `\"[object Object]\"`.\n *\n * When `format` is `'indexed'` (the default), returns the index as a string.\n *\n * @param value - The typed enum value\n * @param index - The option's position in the enumOptions array\n * @param [format='indexed'] - How to encode the value for the DOM attribute\n * @returns The string to use as the DOM value attribute\n */\nexport default function enumOptionValueEncoder(value, index, format = 'indexed') {\n if (format !== 'realValue') {\n return String(index);\n }\n if (value == null) {\n return '';\n }\n if (typeof value === 'object') {\n return String(index);\n }\n return String(value);\n}\n//# sourceMappingURL=enumOptionValueEncoder.js.map","import { ERRORS_KEY } from \"./constants.js\";\nimport { getByPath, setByPath, toPath } from \"./pathUtils.js\";\n/** The `ErrorSchemaBuilder` is used to build an `ErrorSchema` since the definition of the `ErrorSchema` type is\n * designed for reading information rather than writing it. Use this class to add, replace or clear errors in an error\n * schema by using either dotted path or an array of path names. Once you are done building the `ErrorSchema`, you can\n * get the result and/or reset all the errors back to an initial set and start again.\n */\nexport default class ErrorSchemaBuilder {\n /** The error schema being built\n *\n * @private\n */\n errorSchema = {};\n /** Construct an `ErrorSchemaBuilder` with an optional initial set of errors in an `ErrorSchema`.\n *\n * @param [initialSchema] - The optional set of initial errors, that will be cloned into the class\n */\n constructor(initialSchema) {\n this.resetAllErrors(initialSchema);\n }\n /** Returns the `ErrorSchema` that has been updated by the methods of the `ErrorSchemaBuilder`\n */\n get ErrorSchema() {\n return this.errorSchema;\n }\n /** Will get an existing `ErrorSchema` at the specified `pathOfError` or create and return one.\n *\n * @param [pathOfError] - The optional path into the `ErrorSchema` at which to add the error(s)\n * @returns - The error block for the given `pathOfError` or the root if not provided\n * @private\n */\n getOrCreateErrorBlock(pathOfError) {\n // A string path is dotted-path notation, so parse it into its segments\n const path = typeof pathOfError === 'string' ? toPath(pathOfError) : (pathOfError ?? []);\n if (path.length === 0) {\n return this.errorSchema;\n }\n // An `ErrorSchema` only ever nests `ErrorSchema` blocks, so create any missing block along the path,\n // always as a plain object since an `ErrorSchema` is never an array\n let errorBlock = getByPath(this.errorSchema, path);\n if (!errorBlock) {\n errorBlock = {};\n setByPath(this.errorSchema, path, errorBlock, true);\n }\n return errorBlock;\n }\n /** Resets all errors in the `ErrorSchemaBuilder` back to the `initialSchema` if provided, otherwise an empty set.\n *\n * @param [initialSchema] - The optional set of initial errors, that will be cloned into the class\n * @returns - The `ErrorSchemaBuilder` object for chaining purposes\n */\n resetAllErrors(initialSchema) {\n this.errorSchema = initialSchema ? structuredClone(initialSchema) : {};\n return this;\n }\n /** Adds the `errorOrList` to the list of errors in the `ErrorSchema` at either the root level or the location within\n * the schema described by the `pathOfError`. The path is either a dotted string (with optional bracketed array\n * indexes, e.g. `'a.b[0]'`) or a list of path segments; keys containing dots require the list form.\n *\n * @param errorOrList - The error or list of errors to add into the `ErrorSchema`\n * @param [pathOfError] - The optional path into the `ErrorSchema` at which to add the error(s)\n * @returns - The `ErrorSchemaBuilder` object for chaining purposes\n */\n addErrors(errorOrList, pathOfError) {\n const errorBlock = this.getOrCreateErrorBlock(pathOfError);\n let errorsList = errorBlock[ERRORS_KEY];\n if (!Array.isArray(errorsList)) {\n errorsList = [];\n errorBlock[ERRORS_KEY] = errorsList;\n }\n if (Array.isArray(errorOrList)) {\n errorBlock[ERRORS_KEY] = [...new Set([...errorsList, ...errorOrList])];\n }\n else {\n errorBlock[ERRORS_KEY] = [...new Set([...errorsList, errorOrList])];\n }\n return this;\n }\n /** Sets/replaces the `errorOrList` as the error(s) in the `ErrorSchema` at either the root level or the location\n * within the schema described by the `pathOfError`. The path is either a dotted string (with optional bracketed array\n * indexes, e.g. `'a.b[0]'`) or a list of path segments; keys containing dots require the list form.\n *\n * @param errorOrList - The error or list of errors to set into the `ErrorSchema`\n * @param [pathOfError] - The optional path into the `ErrorSchema` at which to set the error(s)\n * @returns - The `ErrorSchemaBuilder` object for chaining purposes\n */\n setErrors(errorOrList, pathOfError) {\n const errorBlock = this.getOrCreateErrorBlock(pathOfError);\n // Effectively clone the array being given to prevent accidental outside manipulation of the given list\n const listToAdd = Array.isArray(errorOrList) ? [...new Set([...errorOrList])] : [errorOrList];\n errorBlock[ERRORS_KEY] = listToAdd;\n return this;\n }\n /** Clears the error(s) in the `ErrorSchema` at either the root level or the location within the schema described by\n * the `pathOfError`. The path is either a dotted string (with optional bracketed array\n * indexes, e.g. `'a.b[0]'`) or a list of path segments; keys containing dots require the list form.\n *\n * @param [pathOfError] - The optional path into the `ErrorSchema` at which to clear the error(s)\n * @returns - The `ErrorSchemaBuilder` object for chaining purposes\n */\n clearErrors(pathOfError) {\n const errorBlock = this.getOrCreateErrorBlock(pathOfError);\n errorBlock[ERRORS_KEY] = [];\n return this;\n }\n}\n//# sourceMappingURL=ErrorSchemaBuilder.js.map","import deepEquals from \"./deepEquals.js\";\nimport isPlainObject from \"./isPlainObject.js\";\nimport { getByPath } from \"./pathUtils.js\";\n/** Returns the paths of the changed descendants of `a` relative to `b`, relative to the node itself. An empty list\n * means the difference could not be narrowed any further, so the caller should report its own key instead.\n *\n * @param a - The first value, representing the original data to compare\n * @param b - The second value, representing the updated data to compare\n * @returns - An array of dotted paths, relative to `a`\n */\nfunction getChangedDescendants(a, b) {\n if (isPlainObject(a) && isPlainObject(b)) {\n return getChangedFields(a, b, true);\n }\n // Arrays of a different length shift their items around, so nothing below them can be matched up by index.\n if (Array.isArray(a) && Array.isArray(b) && a.length === b.length) {\n return a.flatMap((value, index) => {\n if (deepEquals(value, b[index])) {\n return [];\n }\n const descendants = getChangedDescendants(value, b[index]);\n return descendants.length ? descendants.map((path) => `${index}.${path}`) : [String(index)];\n });\n }\n return [];\n}\n/**\n * Compares two objects and returns the names of the fields that have changed.\n * This function iterates over each field of object `a`, using `deepEquals` to compare the field value\n * with the corresponding field value in object `b`. If the values are different, the field name will\n * be included in the returned array.\n *\n * @param a - The first object, representing the original data to compare.\n * @param b - The second object, representing the updated data to compare.\n * @param [deep=false] - Optional flag that, when true, descends into nested objects and same-length arrays and returns\n * the dotted path of the deepest field that changed rather than the name of the top-level field holding it.\n * @returns - An array of field names that have changed.\n *\n * @example\n * const a = { name: 'John', age: 30 };\n * const b = { name: 'John', age: 31 };\n * const changedFields = getChangedFields(a, b);\n * console.log(changedFields); // Output: ['age']\n *\n * @example\n * const a = { items: [{ qux: '', corge: '' }] };\n * const b = { items: [{ qux: 'a', corge: '' }] };\n * console.log(getChangedFields(a, b)); // Output: ['items']\n * console.log(getChangedFields(a, b, true)); // Output: ['items.0.qux']\n */\nexport default function getChangedFields(a, b, deep = false) {\n if (a === b) {\n return [];\n }\n // If only one of them is a plainObject all of its fields changed; if neither is, nothing did\n if (!isPlainObject(a)) {\n return isPlainObject(b) ? Object.keys(b) : [];\n }\n if (!isPlainObject(b)) {\n return Object.keys(a);\n }\n const aKeys = Object.keys(a);\n const aKeySet = new Set(aKeys);\n const unequalFields = aKeys\n .filter((key) => !deepEquals(a[key], getByPath(b, key)))\n .flatMap((key) => {\n if (!deep) {\n return [key];\n }\n // A key holding a `.` or a `[` is descended into like any other. The path it produces cannot be told apart from\n // a path through nested keys, but neither can the entry an `ErrorSchema` keeps for it, since `toErrorSchema()`\n // spells such a name out as a path in the same way, so the two agree on where the field lives.\n const descendants = getChangedDescendants(a[key], getByPath(b, key));\n return descendants.length ? descendants.map((path) => `${key}.${path}`) : [key];\n });\n const diffFields = Object.keys(b).filter((key) => !aKeySet.has(key));\n return [...unequalFields, ...diffFields];\n}\n//# sourceMappingURL=getChangedFields.js.map","/** Given date & time information with optional yearRange & format, returns props for DateElement\n *\n * @param date - Object containing date with optional time information\n * @param time - Determines whether to include time or not\n * @param [yearRange=[1900, new Date().getFullYear() + 2]] - Controls the list of years to be displayed\n * @param [format='YMD'] - Controls the order in which day, month and year input element will be displayed\n * @returns Array of props for DateElement\n */\nexport default function getDateElementProps(date, time, yearRange = [1900, new Date().getFullYear() + 2], format = 'YMD') {\n const { day, month, year, hour, minute, second } = date;\n const dayObj = { type: 'day', range: [1, 31], value: day };\n const monthObj = { type: 'month', range: [1, 12], value: month };\n const yearObj = { type: 'year', range: yearRange, value: year };\n const dateElementProp = [];\n switch (format) {\n case 'MDY':\n dateElementProp.push(monthObj, dayObj, yearObj);\n break;\n case 'DMY':\n dateElementProp.push(dayObj, monthObj, yearObj);\n break;\n case 'YMD':\n default:\n dateElementProp.push(yearObj, monthObj, dayObj);\n }\n if (time) {\n dateElementProp.push({ type: 'hour', range: [0, 23], value: hour }, { type: 'minute', range: [0, 59], value: minute }, { type: 'second', range: [0, 59], value: second });\n }\n return dateElementProp;\n}\n//# sourceMappingURL=getDateElementProps.js.map","/** Extracts the range spec information `{ step?: number, min?: number, max?: number }` that can be spread onto an HTML\n * input from the range analog in the schema `{ multipleOf?: number, minimum?: number, maximum?: number }`.\n *\n * @param schema - The schema from which to extract the range spec\n * @returns - A range specification from the schema\n */\nexport default function rangeSpec(schema) {\n const spec = {};\n if (schema.multipleOf) {\n spec.step = schema.multipleOf;\n }\n if (schema.minimum || schema.minimum === 0) {\n spec.min = schema.minimum;\n }\n if (schema.maximum || schema.maximum === 0) {\n spec.max = schema.maximum;\n }\n return spec;\n}\n//# sourceMappingURL=rangeSpec.js.map","import rangeSpec from \"./rangeSpec.js\";\n/** Using the `schema`, `defaultType` and `options`, extract out the props for the element that make sense.\n *\n * @param schema - The schema for the field provided by the widget\n * @param [defaultType] - The default type, if any, for the field provided by the widget\n * @param [options={}] - The UI Options for the field provided by the widget\n * @param [autoDefaultStepAny=true] - Determines whether to auto-default step=any when the type is number and no step\n * @returns - The extracted `InputPropsType` object\n */\nexport default function getInputProps(schema, defaultType, options = {}, autoDefaultStepAny = true) {\n const inputProps = {\n type: defaultType || 'text',\n ...rangeSpec(schema),\n };\n // If options.inputType is set use that as the input type\n if (options.inputType) {\n inputProps.type = options.inputType;\n }\n else if (!defaultType) {\n // If the schema is of type number or integer, set the input type to number\n if (schema.type === 'number') {\n inputProps.type = 'number';\n // Only add step if one isn't already defined and we are auto-defaulting the \"any\" step\n if (autoDefaultStepAny && inputProps.step === undefined) {\n // Setting step to 'any' fixes a bug in Safari where decimals are not\n // allowed in number inputs\n inputProps.step = 'any';\n }\n }\n else if (schema.type === 'integer') {\n inputProps.type = 'number';\n // Only add step if one isn't already defined\n if (inputProps.step === undefined) {\n // Since this is integer, you always want to step up or down in multiples of 1\n inputProps.step = 1;\n }\n }\n }\n // For date/time input types, propagate formatMinimum/formatMaximum to min/max\n if (['date', 'datetime-local', 'time', 'week', 'month'].includes(inputProps.type)) {\n if (schema.formatMinimum !== undefined) {\n inputProps.min = schema.formatMinimum;\n }\n if (schema.formatMaximum !== undefined) {\n inputProps.max = schema.formatMaximum;\n }\n }\n if (options.autocomplete) {\n inputProps.autoComplete = options.autocomplete;\n }\n if (options.autocapitalize) {\n inputProps.autoCapitalize = options.autocapitalize;\n }\n if (options.accept) {\n inputProps.accept = options.accept;\n }\n return inputProps;\n}\n//# sourceMappingURL=getInputProps.js.map","/** Resolves the effective `optionValueFormat` for enum-backed widgets.\n *\n * Provides a single source of truth for the default DOM encoding format\n * (`'indexed'`) used by `SelectWidget`, `RadioWidget`, and `CheckboxesWidget`.\n * Widgets should call this helper once and pass the result to\n * `enumOptionValueEncoder`, `enumOptionValueDecoder`, and `enumOptionSelectedValue`\n * rather than reading `options.optionValueFormat` directly.\n *\n * @param options - The widget options (typically from the `options` prop, already\n * resolved from `ui:options` and `ui:globalOptions`)\n * @returns The resolved `OptionValueFormat`, defaulting to `'indexed'` when not set\n */\nexport default function getOptionValueFormat(options) {\n return options?.optionValueFormat ?? 'indexed';\n}\n//# sourceMappingURL=getOptionValueFormat.js.map","import { SUBMIT_BTN_OPTIONS_KEY } from \"./constants.js\";\nimport getUiOptions from \"./getUiOptions.js\";\n/** The default submit button options, exported for testing purposes\n */\nexport const DEFAULT_OPTIONS = {\n props: {\n disabled: false,\n },\n submitText: 'Submit',\n norender: false,\n};\n/** Extracts any `ui:submitButtonOptions` from the `uiSchema` and merges them onto the `DEFAULT_OPTIONS`\n *\n * @param [uiSchema={}] - the UI Schema from which to extract submit button props\n * @returns - The merging of the `DEFAULT_OPTIONS` with any custom ones\n */\nexport default function getSubmitButtonOptions(uiSchema = {}) {\n const uiOptions = getUiOptions(uiSchema);\n if (uiOptions?.[SUBMIT_BTN_OPTIONS_KEY]) {\n const options = uiOptions[SUBMIT_BTN_OPTIONS_KEY];\n return { ...DEFAULT_OPTIONS, ...options };\n }\n return DEFAULT_OPTIONS;\n}\n//# sourceMappingURL=getSubmitButtonOptions.js.map","/** Returns the template with the given `name` from either the `uiSchema` if it is defined or from the `registry`\n * otherwise. NOTE, since `ButtonTemplates` are not overridden in `uiSchema` only those in the `registry` are returned.\n *\n * @param name - The name of the template to fetch, restricted to the keys of `TemplatesType`\n * @param registry - The `Registry` from which to read the template\n * @param [uiOptions={}] - The `UIOptionsType` from which to read an alternate template\n * @returns - The template from either the `uiSchema` or `registry` for the `name`\n */\nexport default function getTemplate(name, registry, uiOptions = {}) {\n const { templates } = registry;\n if (name === 'ButtonTemplates') {\n return templates[name];\n }\n // Allow templates to be customized per-field by using string keys from the registry\n if (Object.hasOwn(uiOptions, name) &&\n typeof uiOptions[name] === 'string' &&\n Object.hasOwn(templates, uiOptions[name])) {\n const key = uiOptions[name];\n // Evaluating templates[key] results in TS2590: Expression produces a union type that is too complex to represent\n // To avoid that, we cast templates to `any` before accessing the key field\n return templates[key];\n }\n return (\n // Evaluating uiOptions[name] results in TS2590: Expression produces a union type that is too complex to represent\n // To avoid that, we cast uiOptions to `any` before accessing the name field\n uiOptions[name] || templates[name]);\n}\n//# sourceMappingURL=getTemplate.js.map","import { getByPath } from \"./pathUtils.js\";\nlet testIdCounter = 0;\n/** Returns an object of test IDs that can only be used in test mode. If the function is called in a test environment\n * (`NODE_ENV === 'test'`, this is set by vitest) then a Proxy object will be returned. If a key within the returned\n * object is accessed, if the value already exists the object will return that value, otherwise it will create that key\n * with a generated `uuid` value and return the generated ID. If it is called outside of a test environment, the\n * function will return an empty object, therefore returning `undefined` for any property within the object and\n * excluding the prop from the rendered output of the component in which it is used.\n * This implementation was adapted from the following blog post: https://www.matthewsessions.com/blog/react-test-id/\n * To use this helper, you will want to generate a separate object for each component to avoid potential overlapping of\n * ID names. You will also want to export the object for use in tests, because the keys will be generated in the\n * component file, and used in the test file. Within the component file, add:\n * `export const TEST_IDS = getTestIds();`\n * Then pass `TEST_IDS.examplePropertyName` as the value of the test ID attribute of the intended component. This will\n * allow you to use `TEST_IDS.examplePropertyName` within your tests, while keeping the test IDs out of your rendered\n * output.\n */\nexport default function getTestIds() {\n // For some reason, even though process.env contains the value of `test` for NODE_ENV, accessing it directly returns\n // 'development'. Using `getByPath()` does, in fact, return test so sticking with it.\n // Use globalThis to access process without requiring @types/node (TS6 compatibility).\n if (getByPath(globalThis, ['process', 'env', 'NODE_ENV']) !== 'test') {\n return {};\n }\n const ids = new Map();\n return new Proxy({}, {\n get(_obj, prop) {\n if (!ids.has(prop)) {\n testIdCounter += 1;\n ids.set(prop, `test-id-${testIdCounter}`);\n }\n return ids.get(prop);\n },\n });\n}\n//# sourceMappingURL=getTestIds.js.map","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createElement } from 'react';\nimport ReactIs from 'react-is';\nimport getSchemaType from \"./getSchemaType.js\";\n/** The map of schema types to widget type to widget name\n */\nconst widgetMap = {\n boolean: {\n checkbox: 'CheckboxWidget',\n radio: 'RadioWidget',\n select: 'SelectWidget',\n hidden: 'HiddenWidget',\n },\n string: {\n text: 'TextWidget',\n password: 'PasswordWidget',\n email: 'EmailWidget',\n hostname: 'TextWidget',\n ipv4: 'TextWidget',\n ipv6: 'TextWidget',\n uri: 'URLWidget',\n 'data-url': 'FileWidget',\n radio: 'RadioWidget',\n select: 'SelectWidget',\n textarea: 'TextareaWidget',\n hidden: 'HiddenWidget',\n date: 'DateWidget',\n datetime: 'DateTimeWidget',\n 'date-time': 'DateTimeWidget',\n 'alt-date': 'AltDateWidget',\n 'alt-datetime': 'AltDateTimeWidget',\n time: 'TimeWidget',\n color: 'ColorWidget',\n file: 'FileWidget',\n },\n number: {\n text: 'TextWidget',\n select: 'SelectWidget',\n updown: 'UpDownWidget',\n range: 'RangeWidget',\n radio: 'RadioWidget',\n hidden: 'HiddenWidget',\n },\n integer: {\n text: 'TextWidget',\n select: 'SelectWidget',\n updown: 'UpDownWidget',\n range: 'RangeWidget',\n radio: 'RadioWidget',\n hidden: 'HiddenWidget',\n },\n array: {\n select: 'SelectWidget',\n checkboxes: 'CheckboxesWidget',\n files: 'FileWidget',\n hidden: 'HiddenWidget',\n },\n};\n/** Wraps the given widget with stateless functional component that will merge any `defaultProps.options` with the\n * `options` that are provided in the props. It will add the wrapper component as a `MergedWidget` property onto the\n * `Widget` so that future attempts to wrap `AWidget` will return the already existing wrapper.\n *\n * @param AWidget - A widget that will be wrapped or one that is already wrapped\n * @returns - The wrapper widget\n */\nfunction mergeWidgetOptions(AWidget) {\n let { MergedWidget } = AWidget;\n // cache return value as property of widget for proper react reconciliation\n if (!MergedWidget) {\n // oxlint-disable-next-line typescript/no-deprecated\n const defaultOptions = AWidget.defaultProps?.options || {};\n MergedWidget = ({ options, ...props }) => _jsx(AWidget, { options: { ...defaultOptions, ...options }, ...props });\n // The mutation is deliberate: the wrapper is cached on the widget itself for React reconciliation\n // oxlint-disable-next-line no-param-reassign\n AWidget.MergedWidget = MergedWidget;\n }\n return MergedWidget;\n}\n/** Given a schema representing a field to render and either the name or actual `Widget` implementation, returns the\n * React component that is used to render the widget. If the `widget` is already a React component, then it is wrapped\n * with a `MergedWidget`. Otherwise an attempt is made to look up the widget inside of the `registeredWidgets` map based\n * on the schema type and `widget` name. If no widget component can be found an `Error` is thrown.\n *\n * @param schema - The schema for the field\n * @param [widget] - Either the name of the widget OR a `Widget` implementation to use\n * @param [registeredWidgets={}] - A registry of widget name to `Widget` implementation\n * @returns - The `Widget` component to use\n * @throws - An error if there is no `Widget` component that can be returned\n */\nexport default function getWidget(schema, widget, registeredWidgets = {}) {\n const type = getSchemaType(schema);\n if (typeof widget === 'function' ||\n (widget && ReactIs.isForwardRef(createElement(widget))) ||\n ReactIs.isMemo(widget)) {\n return mergeWidgetOptions(widget);\n }\n if (typeof widget !== 'string') {\n throw new Error(`Unsupported widget definition: ${typeof widget} in schema: ${JSON.stringify(schema)}`);\n }\n if (widget in registeredWidgets) {\n const registeredWidget = registeredWidgets[widget];\n return getWidget(schema, registeredWidget, registeredWidgets);\n }\n if (typeof type === 'string') {\n if (!(type in widgetMap)) {\n throw new Error(`No widget for type '${type}' in schema: ${JSON.stringify(schema)}`);\n }\n if (widget in widgetMap[type]) {\n const registeredWidget = registeredWidgets[widgetMap[type][widget]];\n return getWidget(schema, registeredWidget, registeredWidgets);\n }\n }\n throw new Error(`No widget '${widget}' for type '${type}' in schema: ${JSON.stringify(schema)}`);\n}\n//# sourceMappingURL=getWidget.js.map","/** Hashes a string using the algorithm based on Java's hashing function.\n * JS has no built-in hashing function, so rolling our own\n * based on Java's hashing fn:\n * http://www.java2s.com/example/nodejs-utility-method/string-hash/hashcode-4dc2b.html\n *\n * @param string - The string for which to get the hash\n * @returns - The resulting hash of the string in hex format\n */\nexport function hashString(string) {\n let hash = 0;\n for (let i = 0; i < string.length; i++) {\n const chr = string.charCodeAt(i);\n // oxlint-disable-next-line no-bitwise\n hash = (hash << 5) - hash + chr;\n // oxlint-disable-next-line no-bitwise\n hash &= hash; // Convert to 32bit integer\n }\n return hash.toString(16);\n}\n/** Recursively serializes a value to JSON with object keys sorted alphabetically to produce\n * a stable string representation.\n *\n * @param object - The object for which the sorted stringify is desired\n * @returns - The stringified object with keys sorted in a consistent order\n */\nexport function sortedJSONStringify(object) {\n function shouldIncludeValue(value) {\n return value !== undefined && typeof value !== 'function' && typeof value !== 'symbol';\n }\n if (Array.isArray(object)) {\n return `[${object.map((x) => (x === undefined ? 'undefined' : sortedJSONStringify(x))).join(',')}]`;\n }\n if (object === null || typeof object !== 'object') {\n return JSON.stringify(typeof object === 'function' ? null : object); // Normalise functions\n }\n const record = object;\n const sortedValues = Object.keys(record)\n .sort()\n .filter((key) => shouldIncludeValue(record[key]))\n .map((key) => `${JSON.stringify(key)}:${sortedJSONStringify(record[key])}`);\n return `{${sortedValues.join(',')}}`;\n}\n/** Stringifies an `object` and returns the hash of the resulting string. Sorts object fields\n * in consistent order before stringify to prevent different hash ids for the same object.\n *\n * @param object - The object for which the hash is desired\n * @returns - The string obtained from the hash of the stringified object\n */\nexport function hashObject(object) {\n return hashString(sortedJSONStringify(object));\n}\n/** Stringifies the schema and returns the hash of the resulting string. Sorts schema fields\n * in consistent order before stringify to prevent different hash ids for the same schema.\n * Symbol-keyed properties (RJSF_REF_KEY, RJSF_REF_CYCLE_KEY, ADDITIONAL_PROPERTY_FLAG) are\n * automatically excluded by JSON.stringify, so no special filtering is needed.\n *\n * @param schema - The schema for which the hash is desired\n * @returns - The string obtained from the hash of the stringified schema\n */\nexport default function hashForSchema(schema) {\n return hashString(sortedJSONStringify(schema));\n}\n//# sourceMappingURL=hashForSchema.js.map","import getWidget from \"./getWidget.js\";\n/** Detects whether the `widget` exists for the `schema` with the associated `registryWidgets` and returns true if it\n * does, or false if it doesn't.\n *\n * @param schema - The schema for the field\n * @param widget - Either the name of the widget OR a `Widget` implementation to use\n * @param [registeredWidgets={}] - A registry of widget name to `Widget` implementation\n * @returns - True if the widget exists, false otherwise\n */\nexport default function hasWidget(schema, widget, registeredWidgets = {}) {\n try {\n getWidget(schema, widget, registeredWidgets);\n return true;\n }\n catch (e) {\n const err = e;\n if (err.message && (err.message.startsWith('No widget') || err.message.startsWith('Unsupported widget'))) {\n return false;\n }\n throw e;\n }\n}\n//# sourceMappingURL=hasWidget.js.map","import { ID_KEY } from \"./constants.js\";\n/** Generates a consistent `id` pattern for a given `id` and a `suffix`\n *\n * @param id - Either simple string id or an FieldPathId from which to extract it\n * @param suffix - The suffix to append to the id\n */\nfunction idGenerator(id, suffix) {\n const theId = typeof id === 'string' ? id : id[ID_KEY];\n return `${theId}__${suffix}`;\n}\n/** Return a consistent `id` for the field description element\n *\n * @param id - Either simple string id or an FieldPathId from which to extract it\n * @returns - The consistent id for the field description element from the given `id`\n */\nexport function descriptionId(id) {\n return idGenerator(id, 'description');\n}\n/** Return a consistent `id` for the field error element\n *\n * @param id - Either simple string id or an FieldPathId from which to extract it\n * @returns - The consistent id for the field error element from the given `id`\n */\nexport function errorId(id) {\n return idGenerator(id, 'error');\n}\n/** Return a consistent `id` for the field examples element\n *\n * @param id - Either simple string id or an FieldPathId from which to extract it\n * @returns - The consistent id for the field examples element from the given `id`\n */\nexport function examplesId(id) {\n return idGenerator(id, 'examples');\n}\n/** Return a consistent `id` for the field help element\n *\n * @param id - Either simple string id or an FieldPathId from which to extract it\n * @returns - The consistent id for the field help element from the given `id`\n */\nexport function helpId(id) {\n return idGenerator(id, 'help');\n}\n/** Return a consistent `id` for the field title element\n *\n * @param id - Either simple string id or an FieldPathId from which to extract it\n * @returns - The consistent id for the field title element from the given `id`\n */\nexport function titleId(id) {\n return idGenerator(id, 'title');\n}\n/** Return a list of element ids that contain additional information about the field that can be used to as the aria\n * description of the field. This is correctly omitting `titleId` which would be \"labeling\" rather than \"describing\" the\n * element.\n *\n * @param id - Either simple string id or an FieldPathId from which to extract it\n * @param [includeExamples=false] - Optional flag, if true, will add the `examplesId` into the list\n * @returns - The string containing the list of ids for use in an `aria-describedBy` attribute\n */\nexport function ariaDescribedByIds(id, includeExamples = false) {\n const examples = includeExamples ? ` ${examplesId(id)}` : '';\n return `${errorId(id)} ${descriptionId(id)} ${helpId(id)}${examples}`;\n}\n/** Return a consistent `id` for the `optionIndex`s of a `Radio` or `Checkboxes` widget\n *\n * @param id - The id of the parent component for the option\n * @param optionIndex - The index of the option for which the id is desired\n * @returns - An id for the option index based on the parent `id`\n */\nexport function optionId(id, optionIndex) {\n return `${id}-${optionIndex}`;\n}\n/** Return a consistent `id` for the `btn` button element\n *\n * @param id - The id of the parent component for the option\n * @param btn - The button type for which to generate the id\n * @returns - The consistent id for the button from the given `id` and `btn` type\n */\nexport function buttonId(id, btn) {\n return idGenerator(id, btn);\n}\n/** Return a consistent `id` for the optional data controls `element`\n *\n * @param id - The id of the parent component for the option\n * @param element - The element type for which to generate the id\n * @returns - The consistent id for the optional data controls element from the given `id` and `element` type\n */\nexport function optionalControlsId(id, element) {\n return idGenerator(id, `optional${element}`);\n}\n//# sourceMappingURL=idGenerators.js.map","/** Determines whether the given `formData` represents valid form data, such as a primitive type, an array, or a\n * non-empty object.\n *\n * @param formData - The data to check\n * @returns - True if `formData` is not undefined, null, a primitive type or an array or an empty object\n */\nexport default function isFormDataAvailable(formData) {\n if (formData === undefined || formData === null) {\n return false;\n }\n if (typeof formData !== 'object' || Array.isArray(formData)) {\n return true;\n }\n return Object.keys(formData).length > 0;\n}\n//# sourceMappingURL=isFormDataAvailable.js.map","import { REF_KEY } from \"./constants.js\";\nimport deepEquals from \"./deepEquals.js\";\n/** Helper to check whether a JSON schema object is the root schema. The schema is a root schema with root `properties`\n * key or a root `$ref` key. If the `schemaToCompare` has a root `oneOf` property, the function will\n * return false. Else if `schemaToCompare` and `rootSchema` are the same object or equal, the function will return\n * `true`. Else if the `rootSchema` has a $ref, it will be resolved using `schemaUtils.resolveSchema` utility. If the\n * resolved schema matches the `schemaToCompare` the function will return `true`. Otherwise, it will return false.\n *\n * @param registry - The `Registry` used to get the `rootSchema` and `schemaUtils`\n * @param schemaToCompare - The JSON schema object to check. If `schemaToCompare` is an root schema, the\n * function will return true.\n * @returns - Flag indicating whether the `schemaToCompare` is the root schema\n */\nexport default function isRootSchema(registry, schemaToCompare) {\n const { rootSchema, schemaUtils } = registry;\n if (deepEquals(schemaToCompare, rootSchema)) {\n return true;\n }\n if (REF_KEY in rootSchema) {\n const resolvedSchema = schemaUtils.retrieveSchema(rootSchema);\n return deepEquals(schemaToCompare, resolvedSchema);\n }\n return false;\n}\n//# sourceMappingURL=isRootSchema.js.map","export default function labelValue(label, hideLabel, fallback) {\n return hideLabel ? fallback : label;\n}\n//# sourceMappingURL=labelValue.js.map","/** Converts a local Date string into a UTC date string\n *\n * @param dateString - The string representation of a date as accepted by the `Date()` constructor\n * @returns - A UTC date string if `dateString` is truthy, otherwise undefined\n */\nexport default function localToUTC(dateString) {\n return dateString ? new Date(dateString).toJSON() : undefined;\n}\n//# sourceMappingURL=localToUTC.js.map","import enumOptionsIndexForValue from \"./enumOptionsIndexForValue.js\";\n/** Logs a warning when a single-select enum widget has a schema default that is not one of its enum options.\n *\n * @param id - The field id used in the warning message\n * @param schema - The schema whose default value is checked\n * @param enumOptions - The enum options available to the widget\n * @param multiple - Whether the widget allows multiple selections\n */\nexport default function logUnsupportedDefaultForEnum(id, schema, enumOptions, multiple = false) {\n if (!multiple &&\n Array.isArray(enumOptions) &&\n schema.default !== undefined &&\n enumOptionsIndexForValue(schema.default, enumOptions, multiple) === undefined) {\n // oxlint-disable-next-line no-console\n console.error(`The schema default value \"${schema.default}\" is not one of the values in the enum options for \"${id}\"`);\n }\n}\n//# sourceMappingURL=logUnsupportedDefaultForEnum.js.map","import { FORM_CONTEXT_NAME, LOOKUP_MAP_NAME } from \"./constants.js\";\nimport { getByPath, hasByPath } from \"./pathUtils.js\";\n/** Given a React JSON Schema Form registry or formContext object, return the value associated with `toLookup`. This\n * might be contained within the lookup map in the formContext. If no such value exists, return the `fallback`\n * value.\n *\n * @param regOrFc - The @rjsf registry or form context in which the lookup will occur\n * @param toLookup - The name of the field in the lookup map in the form context to get the value for\n * @param [fallback] - The fallback value to use if the form context does not contain a value for `toLookup`\n * @returns - The value associated with `toLookup` in the form context or `fallback`\n */\nexport default function lookupFromFormContext(regOrFc, toLookup, fallback) {\n const lookupPath = [LOOKUP_MAP_NAME];\n if (hasByPath(regOrFc, FORM_CONTEXT_NAME)) {\n lookupPath.unshift(FORM_CONTEXT_NAME);\n }\n return getByPath(regOrFc, [...lookupPath, toLookup], fallback);\n}\n//# sourceMappingURL=lookupFromFormContext.js.map","/** A function that does nothing and returns `undefined`, useful as a placeholder for an optional callback or as the\n * implementation of a mocked function.\n */\nexport default function noop() { }\n//# sourceMappingURL=noop.js.map","/** Given a list of `properties` and an `order` list, returns a list that contains the `properties` ordered correctly.\n * If `order` is not an array, then the untouched `properties` list is returned. Otherwise `properties` is ordered per\n * the `order` list. If `order` contains a '*' then any `properties` that are not mentioned explicity in `order` will be\n * places in the location of the `*`.\n *\n * @param properties - The list of property keys to be ordered\n * @param order - An array of property keys to be ordered first, with an optional '*' property\n * @returns - A list with the `properties` ordered\n * @throws - Error when the properties cannot be ordered correctly\n */\nexport default function orderProperties(properties, order) {\n if (!Array.isArray(order)) {\n return properties;\n }\n const arrayToHash = (arr) => arr.reduce((acc, curr) => {\n acc[curr] = true;\n return acc;\n }, {});\n const errorPropList = (arr) => arr.length > 1 ? `properties '${arr.join(\"', '\")}'` : `property '${arr[0]}'`;\n const propertyHash = arrayToHash(properties);\n const orderFiltered = order.filter((prop) => prop === '*' || propertyHash[prop]);\n const orderHash = arrayToHash(orderFiltered);\n const rest = properties.filter((prop) => !orderHash[prop]);\n const restIndex = orderFiltered.indexOf('*');\n if (restIndex === -1) {\n if (rest.length) {\n throw new Error(`uiSchema order list does not contain ${errorPropList(rest)}`);\n }\n return orderFiltered;\n }\n if (restIndex !== orderFiltered.lastIndexOf('*')) {\n throw new Error('uiSchema order list contains more than one wildcard item');\n }\n const complete = [...orderFiltered];\n complete.splice(restIndex, 1, ...rest);\n return complete;\n}\n//# sourceMappingURL=orderProperties.js.map","/** Parses the `dateString` into a `DateObject`, including the time information when `includeTime` is true\n *\n * @param dateString - The date string to parse into a DateObject\n * @param [includeTime=true] - Optional flag, if false, will not include the time data into the object\n * @returns - The date string converted to a `DateObject`\n * @throws - Error when the date cannot be parsed from the string\n */\nexport default function parseDateString(dateString, includeTime = true) {\n if (!dateString) {\n return {\n year: -1,\n month: -1,\n day: -1,\n hour: includeTime ? -1 : 0,\n minute: includeTime ? -1 : 0,\n second: includeTime ? -1 : 0,\n };\n }\n const date = new Date(dateString);\n if (Number.isNaN(date.getTime())) {\n throw new Error(`Unable to parse date ${dateString}`);\n }\n return {\n year: date.getUTCFullYear(),\n month: date.getUTCMonth() + 1, // oh you, javascript.\n day: date.getUTCDate(),\n hour: includeTime ? date.getUTCHours() : 0,\n minute: includeTime ? date.getUTCMinutes() : 0,\n second: includeTime ? date.getUTCSeconds() : 0,\n };\n}\n//# sourceMappingURL=parseDateString.js.map","import { ANY_OF_KEY, ONE_OF_KEY, REF_KEY, RJSF_REF_KEY } from \"./constants.js\";\nimport findSchemaDefinition from \"./findSchemaDefinition.js\";\nimport mergeObjects from \"./mergeObjects.js\";\n/** Resolves the uiSchema for a given schema, considering `ui:definitions` stored in the registry.\n *\n * Called at runtime for each field. When the schema contains a `$ref`, looks up the corresponding\n * uiSchema definition from `registry.uiSchemaDefinitions` and merges it with local overrides.\n * For schemas with `oneOf`/`anyOf` branches, also populates `uiSchema[keyword][i]` for branches\n * whose `$ref` matches a definition, so `MultiSchemaField` can read dropdown option titles.\n *\n * Resolution order (later sources override earlier):\n * 1. `ui:definitions[$ref]` - base definition from registry\n * 2. `localUiSchema` - local overrides at current path\n *\n * @param schema - The JSON schema (may contain `$ref` or `RJSF_REF_KEY`)\n * @param localUiSchema - The uiSchema at the current path (local overrides)\n * @param registry - The registry containing `uiSchemaDefinitions`\n * @returns - The resolved uiSchema with definitions merged in\n */\nexport default function resolveUiSchema(schema, localUiSchema, registry) {\n const ref = (schema[RJSF_REF_KEY] ?? schema[REF_KEY]);\n const definitions = registry.uiSchemaDefinitions;\n const definitionUiSchema = ref && definitions ? definitions[ref] : undefined;\n let result;\n if (!definitionUiSchema) {\n result = localUiSchema || {};\n }\n else if (!localUiSchema || Object.keys(localUiSchema).length === 0) {\n result = { ...definitionUiSchema };\n }\n else {\n result = mergeObjects(definitionUiSchema, localUiSchema);\n }\n // Walk oneOf/anyOf branches to populate uiSchema[keyword][i] so MultiSchemaField\n // can read dropdown option titles at the parent level.\n if (definitions) {\n let resolvedSchema = schema;\n if (ref && schema[REF_KEY] && !schema[RJSF_REF_KEY]) {\n try {\n resolvedSchema = findSchemaDefinition(ref, registry.rootSchema);\n }\n catch (e) {\n // oxlint-disable-next-line no-console\n console.warn('could not resolve $ref in resolveUiSchema:\\n', e);\n return result;\n }\n }\n for (const keyword of [ONE_OF_KEY, ANY_OF_KEY]) {\n const schemaOptions = resolvedSchema[keyword];\n if (Array.isArray(schemaOptions) && schemaOptions.length > 0) {\n const currentUiSchemaArray = result[keyword];\n const uiSchemaArray = Array.isArray(currentUiSchemaArray) ? [...currentUiSchemaArray] : [];\n let hasExpanded = false;\n for (let i = 0; i < schemaOptions.length; i++) {\n const option = schemaOptions[i];\n const optionRef = (option?.[RJSF_REF_KEY] ?? option?.[REF_KEY]);\n if (optionRef && optionRef in definitions) {\n const optionUiSchema = (uiSchemaArray[i] || {});\n uiSchemaArray[i] = mergeObjects(definitions[optionRef], optionUiSchema);\n hasExpanded = true;\n }\n }\n if (hasExpanded) {\n result[keyword] = uiSchemaArray;\n }\n }\n }\n }\n return result;\n}\n//# sourceMappingURL=resolveUiSchema.js.map","/** Check to see if a `schema` specifies that a value must be true. This happens when:\n * - `schema.const` is truthy\n * - `schema.enum` == `[true]`\n * - `schema.anyOf` or `schema.oneOf` has a single value which recursively returns true\n * - `schema.allOf` has at least one value which recursively returns true\n *\n * @param schema - The schema to check\n * @returns - True if the schema specifies a value that must be true, false otherwise\n */\nexport default function schemaRequiresTrueValue(schema) {\n // Check if const is a truthy value\n if (schema.const) {\n return true;\n }\n // Check if an enum has a single value of true\n if (schema.enum?.length === 1 && schema.enum[0] === true) {\n return true;\n }\n // If anyOf has a single value, evaluate the subschema\n if (schema.anyOf?.length === 1) {\n return schemaRequiresTrueValue(schema.anyOf[0]);\n }\n // If oneOf has a single value, evaluate the subschema\n if (schema.oneOf?.length === 1) {\n return schemaRequiresTrueValue(schema.oneOf[0]);\n }\n // Evaluate each subschema in allOf, to see if one of them requires a true value\n if (schema.allOf) {\n const schemaSome = (subSchema) => schemaRequiresTrueValue(subSchema);\n return schema.allOf.some(schemaSome);\n }\n return false;\n}\n//# sourceMappingURL=schemaRequiresTrueValue.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport enumOptionsIsSelected from \"./enumOptionsIsSelected.js\";\nimport getTemplate from \"./getTemplate.js\";\nimport getUiOptions from \"./getUiOptions.js\";\nimport { descriptionId } from \"./idGenerators.js\";\n/** Renders the description associated with the selected oneOf or anyOf option in a single-select widget. */\nexport default function SelectedOptionDescription({ hideLabel, id, multiple, options, registry, uiSchema, value }) {\n if (multiple || hideLabel) {\n return null;\n }\n const { label = true } = getUiOptions(uiSchema, registry.globalUiOptions);\n if (!label) {\n return null;\n }\n const option = options.enumOptions?.find(({ value: enumValue }) => enumOptionsIsSelected(enumValue, value));\n const description = option?.schema?.description;\n if (!description) {\n return null;\n }\n const DescriptionFieldTemplate = getTemplate('DescriptionFieldTemplate', registry, options);\n return (_jsx(DescriptionFieldTemplate, { id: descriptionId(id), description: description, schema: option.schema, uiSchema: uiSchema, registry: registry }));\n}\n//# sourceMappingURL=SelectedOptionDescription.js.map","/** Implements a shallow equals comparison that uses Object.is() for comparing values.\n * This function compares objects by checking if all keys and their values are equal using Object.is().\n *\n * @param a - The first element to compare\n * @param b - The second element to compare\n * @returns - True if the `a` and `b` are shallow equal, false otherwise\n */\nexport default function shallowEquals(a, b) {\n // If they're the same reference, they're equal\n if (Object.is(a, b)) {\n return true;\n }\n // If either is null or undefined, they're not equal (since we know they're not the same reference)\n if (a == null || b == null) {\n return false;\n }\n // If they're not objects, they're not equal (since Object.is already checked)\n if (typeof a !== 'object' || typeof b !== 'object') {\n return false;\n }\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n // Different number of keys means not equal\n if (keysA.length !== keysB.length) {\n return false;\n }\n // Check if all keys and values are equal\n for (let i = 0; i < keysA.length; i += 1) {\n const key = keysA[i];\n if (!Object.hasOwn(b, key) || !Object.is(a[key], b[key])) {\n return false;\n }\n }\n return true;\n}\n//# sourceMappingURL=shallowEquals.js.map","import deepEquals from \"./deepEquals.js\";\nimport shallowEquals from \"./shallowEquals.js\";\n/** Determines whether the given `component` should be rerendered by comparing its current set of props and state\n * against the next set. The comparison strategy can be controlled via the `updateStrategy` parameter.\n *\n * @param component - A React component being checked\n * @param nextProps - The next set of props against which to check\n * @param nextState - The next set of state against which to check\n * @param updateStrategy - The strategy to use for comparison:\n * - 'customDeep': Uses RJSF's custom deep equality checks (default)\n * - 'shallow': Uses shallow comparison of props and state\n * - 'always': Always returns true (React's default behavior)\n * @returns - True if the component should be re-rendered, false otherwise\n */\nexport default function shouldRender(component, nextProps, nextState, updateStrategy = 'customDeep') {\n if (updateStrategy === 'always') {\n // Use React's default behavior: always update if state or props change (no shouldComponentUpdate optimization)\n return true;\n }\n if (updateStrategy === 'shallow') {\n // Use shallow comparison for props and state\n const { props, state } = component;\n return !shallowEquals(props, nextProps) || !shallowEquals(state, nextState);\n }\n // Use custom deep equality checks (default 'customDeep' strategy)\n const { props, state } = component;\n return !deepEquals(props, nextProps) || !deepEquals(state, nextState);\n}\n//# sourceMappingURL=shouldRender.js.map","import { ANY_OF_KEY, ONE_OF_KEY } from \"./constants.js\";\nimport getSchemaType from \"./getSchemaType.js\";\nimport getUiOptions from \"./getUiOptions.js\";\nimport isObject from \"./isObject.js\";\nimport isRootSchema from \"./isRootSchema.js\";\n/** Returns the unique list of schema types for all of the options in a anyOf/oneOf\n *\n * @param schemas - The list of schemas representing the XxxOf options\n * @returns - All of the unique types contained within the oneOf list\n */\nexport function getSchemaTypesForXxxOf(schemas) {\n const allTypes = [\n ...new Set(schemas\n .map((s) => (isObject(s) ? getSchemaType(s) : undefined))\n .flat()\n .filter((t) => t !== undefined)),\n ];\n return allTypes.length === 1 ? allTypes[0] : allTypes;\n}\n/** Determines whether the field information from the combination of `schema` and `required` along with the\n * `enableOptionalDataFieldForType` settings from the global UI options in the `registry` all indicate that this field\n * should be rendered with the Optional Data Controls UI.\n *\n * @param registry - The `registry` object\n * @param schema - The schema for the field\n * @param required - Flag indicating whether the field is required\n * @param [uiSchema] - The uiSchema for the field\n * @return - True if the field should be rendered with the optional field UI, otherwise false\n */\nexport default function shouldRenderOptionalField(registry, schema, required, uiSchema) {\n const { enableOptionalDataFieldForType = [] } = getUiOptions(uiSchema, registry.globalUiOptions);\n let schemaType;\n if (ANY_OF_KEY in schema && Array.isArray(schema[ANY_OF_KEY])) {\n schemaType = getSchemaTypesForXxxOf(schema[ANY_OF_KEY]);\n }\n else if (ONE_OF_KEY in schema && Array.isArray(schema[ONE_OF_KEY])) {\n schemaType = getSchemaTypesForXxxOf(schema[ONE_OF_KEY]);\n }\n else {\n schemaType = getSchemaType(schema);\n }\n return (!isRootSchema(registry, schema) &&\n !required &&\n !!schemaType &&\n !Array.isArray(schemaType) &&\n !!enableOptionalDataFieldForType.find((val) => val === schemaType));\n}\n//# sourceMappingURL=shouldRenderOptionalField.js.map","/** Returns a UTC date string for the given `dateObject`. If `time` is false, then the time portion of the string is\n * removed.\n *\n * @param dateObject - The `DateObject` to convert to a date string\n * @param [time=true] - Optional flag used to remove the time portion of the date string if false\n * @returns - The UTC date string\n */\nexport default function toDateString(dateObject, time = true) {\n const { year, month, day, hour = 0, minute = 0, second = 0 } = dateObject;\n const utcTime = Date.UTC(year, month - 1, day, hour, minute, second);\n const datetime = new Date(utcTime).toJSON();\n return time ? datetime : datetime.slice(0, 10);\n}\n//# sourceMappingURL=toDateString.js.map","import { ERRORS_KEY } from \"./constants.js\";\nimport isPlainObject from \"./isPlainObject.js\";\n/** Converts an `errorSchema` into a list of `RJSFValidationErrors`\n *\n * @param errorSchema - The `ErrorSchema` instance to convert\n * @param [fieldPath=[]] - The current field path, defaults to [] if not specified\n * @returns - The list of `RJSFValidationErrors` extracted from the `errorSchema`\n */\nexport default function toErrorList(errorSchema, fieldPath = []) {\n return errorSchema ? errorsFrom(errorSchema, fieldPath) : [];\n}\n/** Does the actual conversion, working on the plain-object shape of an `ErrorSchema` so that the recursive call for a\n * nested error schema does not need an assertion back to `ErrorSchema`.\n *\n * @param errorSchema - The error schema, viewed as the plain object it is at runtime\n * @param fieldPath - The current field path\n * @returns - The list of `RJSFValidationErrors` extracted from the `errorSchema`\n */\nfunction errorsFrom(errorSchema, fieldPath) {\n const errors = errorSchema[ERRORS_KEY];\n const property = `.${fieldPath.join('.')}`;\n const errorList = Array.isArray(errors)\n ? errors.map((message) => ({ property, message, stack: `${property} ${message}` }))\n : [];\n return Object.keys(errorSchema).reduce((currentList, key) => {\n const childSchema = errorSchema[key];\n if (key !== ERRORS_KEY && isPlainObject(childSchema)) {\n return currentList.concat(errorsFrom(childSchema, [...fieldPath, key]));\n }\n return currentList;\n }, errorList);\n}\n//# sourceMappingURL=toErrorList.js.map","import ErrorSchemaBuilder from \"./ErrorSchemaBuilder.js\";\nimport { toPath } from \"./pathUtils.js\";\n/** Transforms a rjsf validation errors list:\n * [\n * {property: '.level1.level2[2].level3', message: 'err a'},\n * {property: '.level1.level2[2].level3', message: 'err b'},\n * {property: '.level1.level2[4].level3', message: 'err b'},\n * ]\n * Into an error tree:\n * {\n * level1: {\n * level2: {\n * 2: {level3: {errors: ['err a', 'err b']}},\n * 4: {level3: {errors: ['err b']}},\n * }\n * }\n * };\n *\n * @param errors - The list of RJSFValidationError objects\n * @returns - The `ErrorSchema` built from the list of `RJSFValidationErrors`\n */\nexport default function toErrorSchema(errors) {\n const builder = new ErrorSchemaBuilder();\n if (errors.length) {\n errors.forEach((error) => {\n const { property, message } = error;\n // When the property is missing or the root element ('.'), toPath produces an empty path\n const path = property ? toPath(property) : [];\n if (message) {\n builder.addErrors(message, path);\n }\n });\n }\n return builder.ErrorSchema;\n}\n//# sourceMappingURL=toErrorSchema.js.map","import { ID_KEY } from \"./constants.js\";\n/** Constructs the `FieldPathId` for `fieldPath`. If `parentPathId` is provided, the `fieldPath` is appended to the end\n * of the parent path. Then the `ID_KEY` of the resulting `FieldPathId` is constructed from the `idPrefix` and\n * `idSeparator` contained within the `globalFormOptions`. If `fieldPath` is passed as an empty string, it will simply\n * generate the path from the `parentPath` (if provided) and the `idPrefix` and `idSeparator`. If a `nameGenerator`\n * is provided in `globalFormOptions`, it will also generate the HTML `name` attribute.\n *\n * @param fieldPath - The property name or array index of the current field element\n * @param globalFormOptions - The `GlobalFormOptions` used to get the `idPrefix` and `idSeparator`\n * @param [parentPath] - The optional `FieldPathId` or `FieldPathList` of the parent element for this field element\n * @param [isMultiValue] - Optional flag indicating this field accepts multiple values\n * @returns - The `FieldPathId` for the given `fieldPath` and the optional `parentPathId`\n */\nexport default function toFieldPathId(fieldPath, globalFormOptions, parentPath, isMultiValue) {\n const basePath = Array.isArray(parentPath) ? parentPath : parentPath?.path;\n const childPath = fieldPath === '' ? [] : [fieldPath];\n const path = basePath ? basePath.concat(...childPath) : childPath;\n const id = [globalFormOptions.idPrefix, ...path].join(globalFormOptions.idSeparator);\n // Generate name attribute if nameGenerator is provided\n let name;\n if (globalFormOptions.nameGenerator && path.length > 0) {\n name = globalFormOptions.nameGenerator(path, globalFormOptions.idPrefix, isMultiValue);\n }\n return { path, [ID_KEY]: id, ...(name !== undefined && { name }) };\n}\n//# sourceMappingURL=toFieldPathId.js.map","import isPlainObject from \"./isPlainObject.js\";\n/** Unwraps the `errorHandler` structure into the associated `ErrorSchema`, stripping the `addError()` functions from it\n *\n * @param errorHandler - The `FormValidation` error handling structure\n * @returns - The `ErrorSchema` resulting from the stripping of the `addError()` function\n */\nexport default function unwrapErrorHandler(errorHandler) {\n return unwrapErrors(errorHandler);\n}\n/** Does the actual unwrapping, working on the plain-object shape of a `FormValidation` so that the recursive call for\n * a nested error handler does not need an assertion back to `FormValidation`.\n *\n * @param errors - The error handling structure, viewed as the plain object it is at runtime\n * @returns - The `ErrorSchema` resulting from the stripping of the `addError()` function\n */\nfunction unwrapErrors(errors) {\n return Object.keys(errors).reduce((acc, key) => {\n if (key === 'addError') {\n return acc;\n }\n const childSchema = errors[key];\n if (isPlainObject(childSchema)) {\n return {\n ...acc,\n [key]: unwrapErrors(childSchema),\n };\n }\n return { ...acc, [key]: childSchema };\n }, {});\n}\n//# sourceMappingURL=unwrapErrorHandler.js.map","'use client';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport dateRangeOptions from \"./dateRangeOptions.js\";\nimport getDateElementProps from \"./getDateElementProps.js\";\nimport { ariaDescribedByIds } from \"./idGenerators.js\";\nimport parseDateString from \"./parseDateString.js\";\nimport toDateString from \"./toDateString.js\";\n/** Function that checks to see if a `DateObject` is ready for the onChange callback to be triggered\n *\n * @param state - The current `DateObject`\n * @returns - True if the `state` is ready to trigger an onChange\n */\nfunction readyForChange(state) {\n return Object.values(state).every((value) => value !== -1);\n}\n/** The `DateElement` component renders one of the 6 date element selectors for an `AltDateWidget`, using the `select`\n * widget from the registry.\n *\n * @param props - The `DateElementProps` for the date element\n */\nexport function DateElement(props) {\n const { className = 'form-control', type, range, value, select, rootId, name, disabled, readonly, autofocus, registry, onBlur, onFocus, } = props;\n const id = `${rootId}_${type}`;\n const { SelectWidget } = registry.widgets;\n const onChange = useCallback((newValue) => select(type, newValue), [select, type]);\n return (_jsx(SelectWidget, { schema: { type: 'integer' }, id: id, name: name, className: className, options: { enumOptions: dateRangeOptions(range[0], range[1]) }, placeholder: type, value: value, disabled: disabled, readonly: readonly, autofocus: autofocus, onChange: onChange, onBlur: onBlur, onFocus: onFocus, registry: registry, label: '', \"aria-describedby\": ariaDescribedByIds(rootId) }));\n}\n/** Hook which encapsulates the logic needed to render an `AltDateWidget` with optional `time` elements. It contains\n * the `state` of the current date(/time) selections in the widget. It returns a `UseAltDateWidgetResult` object\n * that contains the `elements: DateElementProp[]` and three callbacks needed to change one of the rendered `elements`,\n * and to handle the clicking of the `clear` and `setNow` buttons.\n *\n * @param props - The `WidgetProps` for the `AltDateWidget`\n */\nexport default function useAltDateWidgetProps(props) {\n const { time = false, disabled = false, readonly = false, options, onChange, value } = props;\n const [state, setState] = useState(parseDateString(value, time));\n useEffect(() => {\n setState(parseDateString(value, time));\n }, [time, value]);\n const handleChange = useCallback((property, newValue) => {\n const nextState = {\n ...state,\n [property]: typeof newValue === 'undefined' ? -1 : newValue,\n };\n if (readyForChange(nextState)) {\n onChange(toDateString(nextState, time));\n }\n else {\n setState(nextState);\n }\n }, [state, onChange, time]);\n const handleClear = useCallback((event) => {\n event.preventDefault();\n if (disabled || readonly) {\n return;\n }\n onChange(undefined);\n }, [disabled, readonly, onChange]);\n const handleSetNow = useCallback((event) => {\n event.preventDefault();\n if (disabled || readonly) {\n return;\n }\n const nextState = parseDateString(new Date().toJSON(), time);\n onChange(toDateString(nextState, time));\n }, [disabled, readonly, time, onChange]);\n const elements = useMemo(() => getDateElementProps(state, time, options.yearsRange, options.format), [state, time, options.yearsRange, options.format]);\n return { elements, handleChange, handleClear, handleSetNow };\n}\n//# sourceMappingURL=useAltDateWidgetProps.js.map","'use client';\nimport { useRef } from 'react';\nimport deepEquals from \"./deepEquals.js\";\n/** Hook that stores and returns a `T` value. If `newValue` is the same as the stored one, then the stored one is\n * returned to avoid having a component rerender due it being a different object. Otherwise, the `newValue` is stored\n * and returned.\n *\n * @param newValue - The potential new `T` value\n * @returns - The latest stored `T` value\n */\nexport default function useDeepCompareMemo(newValue) {\n const valueRef = useRef(newValue);\n if (!deepEquals(newValue, valueRef.current)) {\n valueRef.current = newValue;\n }\n return valueRef.current;\n}\n//# sourceMappingURL=useDeepCompareMemo.js.map","'use client';\nimport { useCallback, useMemo } from 'react';\nimport dataURItoBlob from \"./dataURItoBlob.js\";\n/** Updated the given `dataUrl` to add the `name` to it\n *\n * @param dataURL - The url description string\n * @param name - The name of the file to add to the dataUrl\n * @returns - The `dataUrl` updated to include the name\n */\nfunction addNameToDataURL(dataURL, name) {\n return dataURL.replace(';base64', `;name=${encodeURIComponent(name)};base64`);\n}\n/** Returns a promise that will read the file from the browser and return it as the result of the promise.\n *\n * @param file - The `File` information to read\n * @returns - A promise that resolves to the read file.\n */\nasync function processFile(file) {\n const { name, size, type } = file;\n return new Promise((resolve, reject) => {\n const reader = new window.FileReader();\n reader.onerror = reject;\n reader.onload = (event) => {\n if (typeof event.target?.result === 'string') {\n resolve({\n dataURL: addNameToDataURL(event.target.result, name),\n name,\n size,\n type,\n });\n }\n else {\n resolve({\n dataURL: null,\n name,\n size,\n type,\n });\n }\n };\n reader.readAsDataURL(file);\n });\n}\n/** Reads a list of files from the browser, returning the results of the promises of each individual file read.\n *\n * @param files - The list of files to read\n * @returns - The list of read files\n */\nasync function processFiles(files) {\n return Promise.all(Array.from(files).map(processFile));\n}\n/** Extracts the file information from the data URLs\n *\n * @param dataURLs - The information about the files\n * @returns - The list of `FileInfoType` objects extracted from the data urls\n */\nfunction extractFileInfo(dataURLs) {\n return dataURLs.reduce((acc, dataURL) => {\n if (!dataURL) {\n return acc;\n }\n try {\n const { blob, name } = dataURItoBlob(dataURL);\n return [\n ...acc,\n {\n dataURL,\n name,\n size: blob.size,\n type: blob.type,\n },\n ];\n }\n catch {\n // Invalid dataURI, so just ignore it.\n return acc;\n }\n }, []);\n}\n/** Hook which encapsulates the logic needed to read and convert a `value` of `File` or `File[]` into the\n * `filesInfo: FileInfoType[]` and the two callback implementations needed to change the list or to remove a\n * `File` from the list. To be used by theme specific `FileWidget` implementations.\n *\n * @param value - The current value of the `FileWidget`\n * @param onChange - The onChange handler for the `FileWidget`\n * @param [multiple=false] - Flag indicating whether the control supports multiple selections\n * @returns - The `UseFileWidgetPropsResult` to be used within a `FileWidget` implementation\n */\nexport default function useFileWidgetProps(value, onChange, multiple = false) {\n const values = useMemo(() => {\n if (multiple && value) {\n return Array.isArray(value) ? value : [value];\n }\n return [];\n }, [value, multiple]);\n const filesInfo = useMemo(() => (Array.isArray(value) ? extractFileInfo(value) : extractFileInfo([value || ''])), [value]);\n const handleChange = useCallback(async (files) => {\n const filesInfoEvent = await processFiles(files);\n const newValue = filesInfoEvent.map((fileInfo) => fileInfo.dataURL || null);\n if (multiple) {\n onChange(values.concat(...newValue));\n }\n else {\n onChange(newValue[0]);\n }\n }, [values, multiple, onChange]);\n const handleRemove = useCallback((index) => {\n if (multiple) {\n const newValue = values.filter((_, i) => i !== index);\n onChange(newValue);\n }\n else {\n onChange(undefined);\n }\n }, [values, multiple, onChange]);\n return { filesInfo, handleChange, handleRemove };\n}\n//# sourceMappingURL=useFileWidgetProps.js.map","import pad from \"./pad.js\";\n/** Converts a UTC date string into a local Date format\n *\n * @param jsonDate - A UTC date string\n * @returns - An empty string when `jsonDate` is falsey, otherwise a date string in local format\n */\nexport default function utcToLocal(jsonDate) {\n if (!jsonDate) {\n return '';\n }\n // required format of `'yyyy-MM-ddThh:mm' followed by optional ':ss' or ':ss.SSS'\n // https://html.spec.whatwg.org/multipage/input.html#local-date-and-time-state-(type%3Ddatetime-local)\n // > should be a _valid local date and time string_ (not GMT)\n // Note - date constructor passed local ISO-8601 does not correctly\n // change time to UTC in node pre-8\n const date = new Date(jsonDate);\n const yyyy = pad(date.getFullYear(), 4);\n const MM = pad(date.getMonth() + 1, 2);\n const dd = pad(date.getDate(), 2);\n const hh = pad(date.getHours(), 2);\n const mm = pad(date.getMinutes(), 2);\n const ss = pad(date.getSeconds(), 2);\n const SSS = pad(date.getMilliseconds(), 3);\n return `${yyyy}-${MM}-${dd}T${hh}:${mm}:${ss}.${SSS}`;\n}\n//# sourceMappingURL=utcToLocal.js.map","import mergeObjects from \"./mergeObjects.js\";\nimport toErrorList from \"./toErrorList.js\";\n/** Merges the errors in `additionalErrorSchema` into the existing `validationData` by combining the hierarchies in the\n * two `ErrorSchema`s and then appending the error list from the `additionalErrorSchema` obtained by calling\n * `toErrorList()` on the `errors` in the `validationData`. If no `additionalErrorSchema` is passed, then\n * `validationData` is returned.\n *\n * @param validationData - The current `ValidationData` into which to merge the additional errors\n * @param [additionalErrorSchema] - The optional additional set of errors in an `ErrorSchema`\n * @param [preventDuplicates=false] - Optional flag, if true, will call `mergeObjects()` with `preventDuplicates`\n * @returns - The `validationData` with the additional errors from `additionalErrorSchema` merged into it, if provided.\n */\nexport default function validationDataMerge(validationData, additionalErrorSchema, preventDuplicates = false) {\n if (!additionalErrorSchema) {\n return validationData;\n }\n const { errors: oldErrors, errorSchema: oldErrorSchema } = validationData;\n let errors = toErrorList(additionalErrorSchema);\n let errorSchema = additionalErrorSchema;\n if (oldErrorSchema && Object.keys(oldErrorSchema).length > 0) {\n errorSchema = mergeObjects(oldErrorSchema, additionalErrorSchema, preventDuplicates ? 'preventDuplicates' : true);\n errors = [...oldErrors].concat(errors);\n }\n return { errorSchema, errors };\n}\n//# sourceMappingURL=validationDataMerge.js.map","import { REF_KEY, ROOT_SCHEMA_PREFIX } from \"./constants.js\";\nimport isObject from \"./isObject.js\";\n/** Takes a `node` object and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n */\nfunction withIdRefPrefixObject(node) {\n const realObj = node;\n for (const key in realObj) {\n /* v8 ignore next -- spread in caller guarantees only own properties reach this loop */\n if (Object.hasOwn(realObj, key)) {\n const value = realObj[key];\n if (key === REF_KEY && typeof value === 'string' && value.startsWith('#')) {\n realObj[key] = ROOT_SCHEMA_PREFIX + value;\n }\n else {\n realObj[key] = withIdRefPrefix(value);\n }\n }\n }\n return node;\n}\n/** Takes a `node` object list and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The list of object nodes to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n */\nfunction withIdRefPrefixArray(node) {\n return node.map((item) => withIdRefPrefix(item));\n}\n/** Recursively prefixes all `$ref`s in a schema with the value of the `ROOT_SCHEMA_PREFIX` constant.\n * This is used in isValid to make references to the rootSchema\n *\n * @param schemaNode - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @returns - A copy of the `schemaNode` with updated `$ref`s\n */\nexport default function withIdRefPrefix(schemaNode) {\n if (Array.isArray(schemaNode)) {\n return withIdRefPrefixArray([...schemaNode]);\n }\n if (isObject(schemaNode)) {\n return withIdRefPrefixObject({ ...schemaNode });\n }\n return schemaNode;\n}\n//# sourceMappingURL=withIdRefPrefix.js.map","/** An enumeration of all the translatable strings used by `@rjsf/core` and its themes. The value of each of the\n * enumeration keys is expected to be the actual english string. Some strings contain replaceable parameter values\n * as indicated by `%1`, `%2`, etc. The number after the `%` indicates the order of the parameter. The ordering of\n * parameters is important because some languages may choose to put the second parameter before the first in its\n * translation. Also, some strings are rendered using `markdown-to-jsx` and thus support markdown and inline html.\n */\nexport var TranslatableString;\n(function (TranslatableString) {\n /** Fallback title of an array item, used by ArrayField */\n TranslatableString[\"ArrayItemTitle\"] = \"Item\";\n /** Missing items reason, used by ArrayField */\n TranslatableString[\"MissingItems\"] = \"Missing items definition\";\n /** Empty array message, used by ArrayField */\n TranslatableString[\"EmptyArray\"] = \"No items yet. Use the button below to add some.\";\n /** Yes label, used by BooleanField */\n TranslatableString[\"YesLabel\"] = \"Yes\";\n /** No label, used by BooleanField */\n TranslatableString[\"NoLabel\"] = \"No\";\n /** Close label, used by ErrorList */\n TranslatableString[\"CloseLabel\"] = \"Close\";\n /** Errors label, used by ErrorList */\n TranslatableString[\"ErrorsLabel\"] = \"Errors\";\n /** New additionalProperties string default value, used by ObjectField */\n TranslatableString[\"NewStringDefault\"] = \"New Value\";\n /** Add button title, used by AddButton */\n TranslatableString[\"AddButton\"] = \"Add\";\n /** Add button title, used by AddButton */\n TranslatableString[\"AddItemButton\"] = \"Add Item\";\n /** Copy button title, used by IconButton */\n TranslatableString[\"CopyButton\"] = \"Copy\";\n /** Expand cycle button title */\n TranslatableString[\"ExpandButton\"] = \"Expand Cycle\";\n /** Move down button title, used by IconButton */\n TranslatableString[\"MoveDownButton\"] = \"Move down\";\n /** Move up button title, used by IconButton */\n TranslatableString[\"MoveUpButton\"] = \"Move up\";\n /** Remove button title, used by IconButton */\n TranslatableString[\"RemoveButton\"] = \"Remove\";\n /** Now label, used by AltDateWidget */\n TranslatableString[\"NowLabel\"] = \"Now\";\n /** Clear label, used by AltDateWidget */\n TranslatableString[\"ClearLabel\"] = \"Clear\";\n /** Aria date label, used by DateWidget */\n TranslatableString[\"AriaDateLabel\"] = \"Select a date\";\n /** File preview label, used by FileWidget */\n TranslatableString[\"PreviewLabel\"] = \"Preview\";\n /** Decrement button aria label, used by UpDownWidget */\n TranslatableString[\"DecrementAriaLabel\"] = \"Decrease value by 1\";\n /** Increment button aria label, used by UpDownWidget */\n TranslatableString[\"IncrementAriaLabel\"] = \"Increase value by 1\";\n /** The label for the Add button in for an optional object field */\n TranslatableString[\"OptionalObjectAdd\"] = \"Add data for optional field\";\n /** The label for the Remove button in for an optional object field */\n TranslatableString[\"OptionalObjectRemove\"] = \"Remove data for optional field\";\n /** The label for when displaying a non-editable form with missing optional field data */\n TranslatableString[\"OptionalObjectEmptyMsg\"] = \"No data for optional field\";\n /** Label for the schema type selector, used by FallbackField */\n TranslatableString[\"Type\"] = \"Type\";\n /** Label for the 'value' field, used by FallbackField */\n TranslatableString[\"Value\"] = \"Value\";\n /** Clear button title, used by IconButton */\n TranslatableString[\"ClearButton\"] = \"clear input\";\n // Strings with replaceable parameters\n /** Unknown field type reason, where %1 will be replaced with the type as provided by SchemaField */\n TranslatableString[\"UnknownFieldType\"] = \"Unknown field type %1\";\n /** Option prefix, where %1 will be replaced with the option index as provided by MultiSchemaField */\n TranslatableString[\"OptionPrefix\"] = \"Option %1\";\n /** Option prefix, where %1 and %2 will be replaced by the schema title and option index, respectively as provided by\n * MultiSchemaField\n */\n TranslatableString[\"TitleOptionPrefix\"] = \"%1 option %2\";\n /** Key label, where %1 will be replaced by the label as provided by WrapIfAdditionalTemplate */\n TranslatableString[\"KeyLabel\"] = \"%1 Key\";\n /** Deprecated label, where %1 will be replaced by the label as provided by SchemaField */\n TranslatableString[\"DeprecatedLabel\"] = \"%1 (deprecated)\";\n /** Cyclic schema message */\n TranslatableString[\"CycleDetected\"] = \"Circular reference ($ref cycle) detected for field \\\"%1\\\". You may choose to expand to the next cycle break\";\n // Strings with replaceable parameters AND/OR that support markdown and html\n /** Invalid object field configuration as provided by the ObjectField.\n * NOTE: Use markdown notation rather than html tags.\n */\n TranslatableString[\"InvalidObjectField\"] = \"Invalid \\\"%1\\\" object field configuration: _%2_.\";\n /** Unsupported field schema, used by UnsupportedField */\n TranslatableString[\"UnsupportedField\"] = \"Unsupported field schema.\";\n /** Unsupported field schema, where %1 will be replaced by the FieldPathId.$id as provided by UnsupportedField.\n * NOTE: Use markdown notation rather than html tags.\n */\n TranslatableString[\"UnsupportedFieldWithId\"] = \"Unsupported field schema for field `%1`.\";\n /** Unsupported field schema, where %1 will be replaced by the reason string as provided by UnsupportedField.\n * NOTE: Use markdown notation rather than html tags.\n */\n TranslatableString[\"UnsupportedFieldWithReason\"] = \"Unsupported field schema: _%1_.\";\n /** Unsupported field schema, where %1 and %2 will be replaced by the FieldPathId.$id and reason strings,\n * respectively, as provided by UnsupportedField.\n * NOTE: Use markdown notation rather than html tags.\n */\n TranslatableString[\"UnsupportedFieldWithIdAndReason\"] = \"Unsupported field schema for field `%1`: _%2_.\";\n /** File name, type and size info, where %1, %2 and %3 will be replaced by the file name, file type and file size as\n * provided by FileWidget\n */\n TranslatableString[\"FilesInfo\"] = \"**%1** (%2, %3 bytes)\";\n})(TranslatableString || (TranslatableString = {}));\n//# sourceMappingURL=enums.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { memo, useCallback, useMemo, useRef, useState } from 'react';\nimport { setByPath, allowAdditionalItems, getTemplate, getUiOptions, getWidget, hashObject, isCustomWidget, isFixedItems, isFormDataAvailable, isObject, optionsList, shouldRenderOptionalField, toFieldPathId, useDeepCompareMemo, ITEMS_KEY, ID_KEY, TranslatableString, } from '@rjsf/utils';\n/** Used to generate a unique ID for an element in a row */\nlet rowIdCounter = 0;\nfunction generateRowId() {\n rowIdCounter += 1;\n return `rjsf-array-item-${rowIdCounter}`;\n}\n/** Converts the `formData` into `KeyedFormDataType` data, using the `generateRowId()` function to create the key\n *\n * @param formData - The data for the form\n * @returns - The `formData` converted into a `KeyedFormDataType` element\n */\nfunction generateKeyedFormData(formData) {\n return !Array.isArray(formData)\n ? []\n : formData.map((item) => ({\n key: generateRowId(),\n item,\n }));\n}\n/** Converts `KeyedFormDataType` data into the inner `formData`\n *\n * @param keyedFormData - The `KeyedFormDataType` to be converted\n * @returns - The inner `formData` item(s) in the `keyedFormData`\n */\nfunction keyedToPlainFormData(keyedFormData) {\n if (Array.isArray(keyedFormData)) {\n return keyedFormData.map((keyedItem) => keyedItem.item);\n }\n return [];\n}\n/** Determines whether the item described in the schema is always required, which is determined by whether any item\n * may be null.\n *\n * @param itemSchema - The schema for the item\n * @return - True if the item schema type does not contain the \"null\" type\n */\nfunction isItemRequired(itemSchema) {\n if (Array.isArray(itemSchema.type)) {\n // While we don't yet support composite/nullable jsonschema types, it's\n // future-proof to check for requirement against these.\n return !itemSchema.type.includes('null');\n }\n // All non-null array item types are inherently required by design\n return itemSchema.type !== 'null';\n}\n/** Determines whether more items can be added to the array. If the uiSchema indicates the array doesn't allow adding\n * then false is returned. Otherwise, if the schema indicates that there are a maximum number of items and the\n * `formData` matches that value, then false is returned, otherwise true is returned.\n *\n * @param registry - The registry\n * @param schema - The schema for the field\n * @param formItems - The list of items in the form\n * @param [uiSchema] - The UiSchema for the field\n * @returns - True if the item is addable otherwise false\n */\nfunction canAddItem(registry, schema, formItems, uiSchema) {\n let { addable } = getUiOptions(uiSchema, registry.globalUiOptions);\n if (addable !== false) {\n // if ui:options.addable was not explicitly set to false, we can add\n // another item if we have not exceeded maxItems yet\n if (schema.maxItems !== undefined) {\n addable = formItems.length < schema.maxItems;\n }\n else {\n addable = true;\n }\n }\n return addable;\n}\n/** Helper method to compute item UI schema for both normal and fixed arrays\n * Handles both static object and dynamic function cases\n *\n * @param uiSchema - The parent UI schema containing items definition\n * @param item - The item data\n * @param index - The index of the item\n * @param formContext - The form context\n * @returns The computed UI schema for the item\n */\nfunction computeItemUiSchema(uiSchema, item, index, formContext) {\n if (typeof uiSchema.items === 'function') {\n try {\n // Call the function with item data, index, and form context\n // TypeScript now correctly infers the types thanks to the ArrayElement type in UiSchema\n const result = uiSchema.items(item, index, formContext);\n // Only use the result if it's truthy\n return result;\n }\n catch (e) {\n // oxlint-disable-next-line no-console\n console.error(`Error executing dynamic uiSchema.items function for item at index ${index}:`, e);\n // Fall back to undefined to allow the field to still render\n return undefined;\n }\n }\n else {\n // Static object case - preserve undefined to maintain backward compatibility\n return uiSchema.items;\n }\n}\n/** Returns the default form information for an item based on the schema for that item. Deals with the possibility\n * that the schema is fixed and allows additional items.\n */\nfunction getNewFormDataRow(registry, schema) {\n const { schemaUtils, globalFormOptions } = registry;\n let itemSchema = schema.items;\n if (globalFormOptions.useFallbackUiForUnsupportedType && !itemSchema) {\n // If we don't have itemSchema and useFallbackUiForUnsupportedType is on, use an empty schema\n itemSchema = {};\n }\n else if (isFixedItems(schema) && allowAdditionalItems(schema)) {\n itemSchema = schema.additionalItems;\n }\n // Cast this as a T to work around schema utils being for T[] caused by the FieldProps call on the class\n return schemaUtils.getDefaultFormState(itemSchema);\n}\n/** Renders an array as a set of checkboxes using the 'select' widget\n */\nfunction ArrayAsMultiSelect(props) {\n const { schema, fieldPathId, uiSchema, formData: items = [], disabled = false, readonly = false, autofocus = false, required = false, placeholder, onBlur, onFocus, registry, rawErrors, name, onSelectChange, } = props;\n const { widgets, schemaUtils, globalFormOptions, globalUiOptions } = registry;\n const itemsSchema = schemaUtils.retrieveSchema(schema.items, items);\n // For computing `enumOptions`, fallback to the array property's uiSchema if there is no `items` schema\n // Avoids a breaking change reported in https://github.com/rjsf-team/react-jsonschema-form/issues/4985\n const itemsUiSchema = (uiSchema?.items ?? uiSchema);\n const enumOptions = optionsList(itemsSchema, itemsUiSchema);\n const { widget = 'select', title: uiTitle, ...options } = getUiOptions(uiSchema, globalUiOptions);\n const Widget = getWidget(schema, widget, widgets);\n const label = uiTitle ?? schema.title ?? name;\n const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);\n // For custom widgets with multiple=true, generate a fieldPathId with isMultiValue flag\n const multiValueFieldPathId = useDeepCompareMemo(toFieldPathId('', globalFormOptions, fieldPathId, true));\n return (_jsx(Widget, { id: multiValueFieldPathId[ID_KEY], name: name, multiple: true, onChange: onSelectChange, onBlur: onBlur, onFocus: onFocus, options: { ...options, enumOptions }, schema: schema, uiSchema: uiSchema, registry: registry, value: items, disabled: disabled, readonly: readonly, required: required, label: label, hideLabel: !displayLabel, placeholder: placeholder, autofocus: autofocus, rawErrors: rawErrors, htmlName: multiValueFieldPathId.name }));\n}\n/** Renders an array using the custom widget provided by the user in the `uiSchema`\n */\nfunction ArrayAsCustomWidget(props) {\n const { schema, fieldPathId, uiSchema, disabled = false, readonly = false, autofocus = false, required = false, hideError, placeholder, onBlur, onFocus, formData: items = [], registry, rawErrors, name, onSelectChange, } = props;\n const { widgets, schemaUtils, globalFormOptions, globalUiOptions } = registry;\n const { widget, title: uiTitle, ...options } = getUiOptions(uiSchema, globalUiOptions);\n const Widget = getWidget(schema, widget, widgets);\n const label = uiTitle ?? schema.title ?? name;\n const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);\n // For custom widgets with multiple=true, generate a fieldPathId with isMultiValue flag\n const multiValueFieldPathId = useDeepCompareMemo(toFieldPathId('', globalFormOptions, fieldPathId, true));\n return (_jsx(Widget, { id: multiValueFieldPathId[ID_KEY], name: name, multiple: true, onChange: onSelectChange, onBlur: onBlur, onFocus: onFocus, options: options, schema: schema, uiSchema: uiSchema, registry: registry, value: items, disabled: disabled, readonly: readonly, hideError: hideError, required: required, label: label, hideLabel: !displayLabel, placeholder: placeholder, autofocus: autofocus, rawErrors: rawErrors, htmlName: multiValueFieldPathId.name }));\n}\n/** Renders an array of files using the `FileWidget`\n */\nfunction ArrayAsFiles(props) {\n const { schema, uiSchema, fieldPathId, name, disabled = false, readonly = false, autofocus = false, required = false, onBlur, onFocus, registry, formData: items = [], rawErrors, onSelectChange, } = props;\n const { widgets, schemaUtils, globalFormOptions, globalUiOptions } = registry;\n const { widget = 'files', title: uiTitle, ...options } = getUiOptions(uiSchema, globalUiOptions);\n const Widget = getWidget(schema, widget, widgets);\n const label = uiTitle ?? schema.title ?? name;\n const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);\n // For custom widgets with multiple=true, generate a fieldPathId with isMultiValue flag\n const multiValueFieldPathId = useDeepCompareMemo(toFieldPathId('', globalFormOptions, fieldPathId, true));\n return (_jsx(Widget, { options: options, id: multiValueFieldPathId[ID_KEY], name: name, multiple: true, onChange: onSelectChange, onBlur: onBlur, onFocus: onFocus, schema: schema, uiSchema: uiSchema, value: items, disabled: disabled, readonly: readonly, required: required, registry: registry, autofocus: autofocus, rawErrors: rawErrors, label: label, hideLabel: !displayLabel, htmlName: multiValueFieldPathId.name }));\n}\n/** Renders the individual array item using a `SchemaField` along with the additional properties that are needed to\n * render the whole of the `ArrayFieldItemTemplate`.\n */\nfunction ArrayFieldItemInner(props) {\n const { itemKey, index, name, disabled, hideError, readonly, registry, uiOptions, parentUiSchema, canAdd, canRemove = true, canMoveUp, canMoveDown, rawItemSchema, itemData, itemUiSchema, parentFieldPathId, itemErrorSchema, autofocus, onBlur, onFocus, onChange, rawErrors, totalItems, title, handleAddItem, handleCopyItem, handleRemoveItem, handleReorderItems, } = props;\n const { schemaUtils, fields: { ArraySchemaField, SchemaField }, globalUiOptions, globalFormOptions, } = registry;\n const itemSchema = useMemo(() => schemaUtils.retrieveSchema(rawItemSchema, itemData), [schemaUtils, rawItemSchema, itemData]);\n // parentFieldPathId is the same stable reference for all items; index is a stable number.\n // useMemo avoids creating a new FieldPathId object on every render, letting React.memo bail out.\n const fieldPathId = useMemo(() => toFieldPathId(index, globalFormOptions, parentFieldPathId), [index, globalFormOptions, parentFieldPathId]);\n const ItemSchemaField = ArraySchemaField || SchemaField;\n const ArrayFieldItemTemplate = getTemplate('ArrayFieldItemTemplate', registry, uiOptions);\n const displayLabel = schemaUtils.getDisplayLabel(itemSchema, itemUiSchema, globalUiOptions);\n const { description } = getUiOptions(itemUiSchema);\n const hasDescription = !!description || !!itemSchema.description;\n const { orderable = true, removable = true, copyable = false } = uiOptions;\n const has = {\n moveUp: orderable && canMoveUp,\n moveDown: orderable && canMoveDown,\n copy: copyable && canAdd,\n remove: removable && canRemove,\n toolbar: false,\n };\n has.toolbar = Object.keys(has).some((key) => has[key]);\n const onAddItem = useCallback((event) => {\n handleAddItem(event, index + 1);\n }, [handleAddItem, index]);\n const onCopyItem = useCallback((event) => {\n handleCopyItem(event, index);\n }, [handleCopyItem, index]);\n const onRemoveItem = useCallback((event) => {\n handleRemoveItem(event, index);\n }, [handleRemoveItem, index]);\n const onMoveUpItem = useCallback((event) => {\n handleReorderItems(event, index, index - 1);\n }, [handleReorderItems, index]);\n const onMoveDownItem = useCallback((event) => {\n handleReorderItems(event, index, index + 1);\n }, [handleReorderItems, index]);\n const templateProps = {\n children: (_jsx(ItemSchemaField, { name: name, title: title, index: index, schema: itemSchema, uiSchema: itemUiSchema, formData: itemData, errorSchema: itemErrorSchema, fieldPathId: fieldPathId, required: isItemRequired(itemSchema), onChange: onChange, onBlur: onBlur, onFocus: onFocus, registry: registry, disabled: disabled, readonly: readonly, hideError: hideError, autofocus: autofocus, rawErrors: rawErrors })),\n buttonsProps: {\n fieldPathId,\n disabled,\n readonly,\n canAdd,\n hasCopy: has.copy,\n hasMoveUp: has.moveUp,\n hasMoveDown: has.moveDown,\n hasRemove: has.remove,\n index,\n totalItems,\n onAddItem,\n onCopyItem,\n onRemoveItem,\n onMoveUpItem,\n onMoveDownItem,\n registry,\n schema: itemSchema,\n uiSchema: itemUiSchema,\n },\n itemKey,\n className: 'rjsf-array-item',\n disabled,\n hasToolbar: has.toolbar,\n index,\n totalItems,\n readonly,\n registry,\n schema: itemSchema,\n uiSchema: itemUiSchema,\n parentUiSchema,\n displayLabel,\n hasDescription,\n };\n return _jsx(ArrayFieldItemTemplate, { ...templateProps });\n}\nconst ArrayFieldItem = memo(ArrayFieldItemInner);\n/** Renders a normal array without any limitations of length\n */\nfunction NormalArray(props) {\n const { schema, uiSchema = {}, errorSchema, fieldPathId, formData: formDataFromProps, name, title, disabled = false, readonly = false, autofocus = false, required = false, hideError = false, registry, onBlur, onFocus, rawErrors, onChange, keyedFormData, handleAddItem, handleCopyItem, handleRemoveItem, handleReorderItems, } = props;\n const fieldTitle = schema.title || title || name;\n const { schemaUtils, fields, formContext, globalUiOptions } = registry;\n const { OptionalDataControlsField } = fields;\n const uiOptions = useMemo(() => getUiOptions(uiSchema, globalUiOptions), [uiSchema, globalUiOptions]);\n // Memoize schemaItems to avoid a new `{}` object identity on every render (which would bust retrieveSchema cache)\n const schemaItems = useMemo(() => (isObject(schema.items) ? schema.items : {}), [schema.items]);\n const itemsSchema = useMemo(() => schemaUtils.retrieveSchema(schemaItems), [schemaUtils, schemaItems]);\n const formData = useMemo(() => keyedToPlainFormData(keyedFormData), [keyedFormData]);\n const renderOptionalField = shouldRenderOptionalField(registry, schema, required, uiSchema);\n const hasFormData = isFormDataAvailable(formDataFromProps);\n const canAdd = useMemo(() => canAddItem(registry, schema, formData, uiSchema) && (!renderOptionalField || hasFormData), [registry, schema, formData, uiSchema, renderOptionalField, hasFormData]);\n const actualFormData = hasFormData ? keyedFormData : [];\n const extraClass = renderOptionalField ? ' rjsf-optional-array-field' : '';\n // All the children will use childFieldPathId if present in the props, falling back to the fieldPathId\n const childFieldPathId = props.childFieldPathId ?? fieldPathId;\n const optionalDataControl = renderOptionalField ? (_jsx(OptionalDataControlsField, { ...props, fieldPathId: childFieldPathId })) : undefined;\n const arrayProps = {\n canAdd,\n items: actualFormData.map((keyedItem, index) => {\n const { key, item } = keyedItem;\n // While we are actually dealing with a single item of type T, the types require a T[], so cast\n const itemCast = item;\n const itemErrorSchema = errorSchema ? errorSchema[index] : undefined;\n // Compute the item UI schema using the helper method\n const itemUiSchema = computeItemUiSchema(uiSchema, item, index, formContext);\n const itemProps = {\n itemKey: key,\n index,\n name: name && `${name}-${index}`,\n registry,\n uiOptions,\n parentUiSchema: uiSchema,\n hideError,\n readonly,\n disabled,\n required,\n title: fieldTitle ? `${fieldTitle}-${index + 1}` : undefined,\n canAdd,\n canMoveUp: index > 0,\n canMoveDown: index < formData.length - 1,\n rawItemSchema: schemaItems,\n parentFieldPathId: childFieldPathId,\n itemErrorSchema,\n itemData: itemCast,\n itemUiSchema,\n autofocus: autofocus && index === 0,\n onBlur,\n onFocus,\n rawErrors,\n totalItems: keyedFormData.length,\n handleAddItem,\n handleCopyItem,\n handleRemoveItem,\n handleReorderItems,\n onChange,\n };\n return _jsx(ArrayFieldItem, { ...itemProps }, key);\n }),\n className: `rjsf-field rjsf-field-array rjsf-field-array-of-${itemsSchema.type}${extraClass}`,\n disabled,\n fieldPathId,\n uiSchema,\n onAddClick: handleAddItem,\n readonly,\n required,\n schema,\n title: fieldTitle,\n formData,\n rawErrors,\n registry,\n optionalDataControl,\n };\n const Template = getTemplate('ArrayFieldTemplate', registry, uiOptions);\n return _jsx(Template, { ...arrayProps });\n}\n/** Renders an array that has a maximum limit of items\n */\nfunction FixedArray(props) {\n const { schema, uiSchema = {}, formData, errorSchema, fieldPathId, name, title, disabled = false, readonly = false, autofocus = false, required = false, hideError = false, registry, onBlur, onFocus, rawErrors, keyedFormData, onChange, handleAddItem, handleCopyItem, handleRemoveItem, handleReorderItems, } = props;\n let { formData: items = [] } = props;\n const fieldTitle = schema.title || title || name;\n const { fields, formContext, globalUiOptions } = registry;\n const uiOptions = useMemo(() => getUiOptions(uiSchema, globalUiOptions), [uiSchema, globalUiOptions]);\n const { OptionalDataControlsField } = fields;\n const renderOptionalField = shouldRenderOptionalField(registry, schema, required, uiSchema);\n const hasFormData = isFormDataAvailable(formData);\n const schemaItems = useMemo(() => (Array.isArray(schema.items) ? schema.items : []), [schema.items]);\n const hasAdditionalItems = isObject(schema.additionalItems);\n // All the children will use childFieldPathId if present in the props, falling back to the fieldPathId\n const childFieldPathId = props.childFieldPathId ?? fieldPathId;\n if (items.length < schemaItems.length) {\n // to make sure at least all fixed items are generated\n items = items.concat(new Array(schemaItems.length - items.length));\n }\n const actualFormData = hasFormData ? keyedFormData : [];\n const extraClass = renderOptionalField ? ' rjsf-optional-array-field' : '';\n const optionalDataControl = renderOptionalField ? (_jsx(OptionalDataControlsField, { ...props, fieldPathId: childFieldPathId })) : undefined;\n // These are the props passed into the render function\n const canAdd = canAddItem(registry, schema, items, uiSchema) &&\n hasAdditionalItems &&\n (!renderOptionalField || hasFormData);\n const arrayProps = {\n canAdd,\n className: `rjsf-field rjsf-field-array rjsf-field-array-fixed-items${extraClass}`,\n disabled,\n fieldPathId,\n formData,\n items: actualFormData.map((keyedItem, index) => {\n const { key, item } = keyedItem;\n // While we are actually dealing with a single item of type T, the types require a T[], so cast\n const itemCast = item;\n const additional = index >= schemaItems.length;\n const rawItemSchema = (additional && isObject(schema.additionalItems) ? schema.additionalItems : schemaItems[index]) ||\n {};\n // Compute the item UI schema - handle both static and dynamic cases\n let itemUiSchema;\n if (additional) {\n // For additional items, use additionalItems uiSchema\n itemUiSchema = uiSchema.additionalItems;\n }\n else if (Array.isArray(uiSchema.items)) {\n // For fixed items, uiSchema.items can be an array, a function, or a single object\n itemUiSchema = uiSchema.items[index];\n }\n else {\n // Use the helper method for function or static object cases\n itemUiSchema = computeItemUiSchema(uiSchema, item, index, formContext);\n }\n const itemErrorSchema = errorSchema ? errorSchema[index] : undefined;\n const itemProps = {\n index,\n itemKey: key,\n name: name && `${name}-${index}`,\n registry,\n uiOptions,\n parentUiSchema: uiSchema,\n hideError,\n readonly,\n disabled,\n required,\n title: fieldTitle ? `${fieldTitle}-${index + 1}` : undefined,\n canAdd,\n canRemove: additional,\n canMoveUp: index >= schemaItems.length + 1,\n canMoveDown: additional && index < items.length - 1,\n rawItemSchema,\n itemData: itemCast,\n itemUiSchema,\n parentFieldPathId: childFieldPathId,\n itemErrorSchema,\n autofocus: autofocus && index === 0,\n onBlur,\n onFocus,\n rawErrors,\n totalItems: keyedFormData.length,\n onChange,\n handleAddItem,\n handleCopyItem,\n handleRemoveItem,\n handleReorderItems,\n };\n return _jsx(ArrayFieldItem, { ...itemProps }, key);\n }),\n onAddClick: handleAddItem,\n readonly,\n required,\n registry,\n schema,\n uiSchema,\n title: fieldTitle,\n errorSchema,\n rawErrors,\n optionalDataControl,\n };\n const Template = getTemplate('ArrayFieldTemplate', registry, uiOptions);\n return _jsx(Template, { ...arrayProps });\n}\n/** A custom hook that handles the updating of the keyedFormData from an external `formData` change as well as\n * internally by the `ArrayField`. If there was an external `formData` change, then the `keyedFormData` is recomputed\n * in order to preserve the unique keys from the old `keyedFormData` to the new `formData`. Along with the\n * `keyedFormData` this hook also returns an `updateKeyedFormData()` function for use by the `ArrayField`. The detection\n * of external `formData` are handled by storing the hash of that `formData` along with the `keyedFormData` associated\n * with it. The `updateKeyedFormData()` will update that hash whenever the `keyedFormData` is modified and as well as\n * returning the plain `formData` from the `keyedFormData`.\n */\nfunction useKeyedFormData(formData = []) {\n const newHash = useMemo(() => hashObject(formData), [formData]);\n const [state, setState] = useState(() => ({\n formDataHash: newHash,\n keyedFormData: generateKeyedFormData(formData),\n }));\n let { keyedFormData, formDataHash } = state;\n if (newHash !== formDataHash) {\n const nextFormData = Array.isArray(formData) ? formData : [];\n const previousKeyedFormData = keyedFormData || [];\n keyedFormData =\n nextFormData.length === previousKeyedFormData.length\n ? previousKeyedFormData.map((previousKeyedFormDatum, index) => ({\n key: previousKeyedFormDatum.key,\n item: nextFormData[index],\n }))\n : generateKeyedFormData(nextFormData);\n formDataHash = newHash;\n setState({ formDataHash, keyedFormData });\n }\n const updateKeyedFormData = useCallback((newData) => {\n const plainFormData = keyedToPlainFormData(newData);\n const updatedHash = hashObject(plainFormData);\n setState({ formDataHash: updatedHash, keyedFormData: newData });\n return plainFormData;\n }, []);\n return { keyedFormData, updateKeyedFormData };\n}\n/** The `ArrayField` component is used to render a field in the schema that is of type `array`. It supports both normal\n * and fixed array, allowing user to add and remove elements from the array data.\n */\nexport default function ArrayField(props) {\n const { schema, uiSchema, errorSchema, fieldPathId, registry, formData, onChange } = props;\n const { globalFormOptions, schemaUtils, translateString } = registry;\n const { keyedFormData, updateKeyedFormData } = useKeyedFormData(formData);\n // Refs keep the latest values accessible inside stable useCallback closures without being in the dep array,\n // so the four mutation handlers don't get new references on every keyedFormData / errorSchema change.\n const keyedFormDataRef = useRef(keyedFormData);\n keyedFormDataRef.current = keyedFormData;\n const errorSchemaRef = useRef(errorSchema);\n errorSchemaRef.current = errorSchema;\n // All the children will use childFieldPathId if present in the props, falling back to the fieldPathId\n const childFieldPathId = props.childFieldPathId ?? fieldPathId;\n /** Callback handler for when the user clicks on the add or add at index buttons. Creates a new row of keyed form data\n * either at the end of the list (when index is not specified) or inserted at the `index` when it is, adding it into\n * the state, and then returning `onChange()` with the plain form data converted from the keyed data\n *\n * @param event - The event for the click\n * @param [index] - The optional index at which to add the new data\n */\n const handleAddItem = useCallback((event, index) => {\n if (event) {\n event.preventDefault();\n }\n let newErrorSchema;\n if (errorSchemaRef.current) {\n newErrorSchema = {};\n for (const idx of Object.keys(errorSchemaRef.current)) {\n const i = parseInt(idx, 10);\n if (index === undefined || i < index) {\n setByPath(newErrorSchema, i, errorSchemaRef.current[i]);\n }\n else if (i >= index) {\n setByPath(newErrorSchema, i + 1, errorSchemaRef.current[i]);\n }\n }\n }\n const newKeyedFormDataRow = {\n key: generateRowId(),\n item: getNewFormDataRow(registry, schema),\n };\n const newKeyedFormData = [...keyedFormDataRef.current];\n if (index !== undefined) {\n newKeyedFormData.splice(index, 0, newKeyedFormDataRow);\n }\n else {\n newKeyedFormData.push(newKeyedFormDataRow);\n }\n onChange(updateKeyedFormData(newKeyedFormData), childFieldPathId.path, newErrorSchema);\n }, [registry, schema, onChange, updateKeyedFormData, childFieldPathId]);\n /** Callback handler for when the user clicks on the copy button on an existing array element. Clones the row of\n * keyed form data at the `index` into the next position in the state, and then returning `onChange()` with the plain\n * form data converted from the keyed data\n *\n * @param index - The index at which the copy button is clicked\n */\n const handleCopyItem = useCallback((event, index) => {\n if (event) {\n event.preventDefault();\n }\n let newErrorSchema;\n if (errorSchemaRef.current) {\n newErrorSchema = {};\n for (const idx of Object.keys(errorSchemaRef.current)) {\n const i = parseInt(idx, 10);\n if (i <= index) {\n setByPath(newErrorSchema, i, errorSchemaRef.current[i]);\n }\n else if (i > index) {\n setByPath(newErrorSchema, i + 1, errorSchemaRef.current[i]);\n }\n }\n }\n const newKeyedFormDataRow = {\n key: generateRowId(),\n item: structuredClone(keyedFormDataRef.current[index].item),\n };\n const newKeyedFormData = [...keyedFormDataRef.current];\n if (index !== undefined) {\n newKeyedFormData.splice(index + 1, 0, newKeyedFormDataRow);\n }\n else {\n newKeyedFormData.push(newKeyedFormDataRow);\n }\n onChange(updateKeyedFormData(newKeyedFormData), childFieldPathId.path, newErrorSchema);\n }, [onChange, updateKeyedFormData, childFieldPathId]);\n /** Callback handler for when the user clicks on the remove button on an existing array element. Removes the row of\n * keyed form data at the `index` in the state, and then returning `onChange()` with the plain form data converted\n * from the keyed data\n *\n * @param index - The index at which the remove button is clicked\n */\n const handleRemoveItem = useCallback((event, index) => {\n if (event) {\n event.preventDefault();\n }\n // refs #195: revalidate to ensure properly reindexing errors\n let newErrorSchema;\n if (errorSchemaRef.current) {\n newErrorSchema = {};\n for (const idx of Object.keys(errorSchemaRef.current)) {\n const i = parseInt(idx, 10);\n if (i < index) {\n setByPath(newErrorSchema, i, errorSchemaRef.current[i]);\n }\n else if (i > index) {\n setByPath(newErrorSchema, i - 1, errorSchemaRef.current[i]);\n }\n }\n }\n const newKeyedFormData = keyedFormDataRef.current.filter((_, i) => i !== index);\n onChange(updateKeyedFormData(newKeyedFormData), childFieldPathId.path, newErrorSchema);\n }, [onChange, updateKeyedFormData, childFieldPathId]);\n /** Callback handler for when the user clicks on one of the move item buttons on an existing array element. Moves the\n * row of keyed form data at the `index` to the `newIndex` in the state, and then returning `onChange()` with the\n * plain form data converted from the keyed data\n *\n * @param index - The index of the item to move\n * @param newIndex - The index to where the item is to be moved\n */\n const handleReorderItems = useCallback((event, index, newIndex) => {\n if (event) {\n event.preventDefault();\n event.currentTarget.blur();\n }\n let newErrorSchema;\n if (errorSchemaRef.current) {\n newErrorSchema = {};\n for (const idx of Object.keys(errorSchemaRef.current)) {\n const i = parseInt(idx, 10);\n if (i === index) {\n setByPath(newErrorSchema, newIndex, errorSchemaRef.current[index]);\n }\n else if (i === newIndex) {\n setByPath(newErrorSchema, index, errorSchemaRef.current[newIndex]);\n }\n else {\n setByPath(newErrorSchema, idx, errorSchemaRef.current[i]);\n }\n }\n }\n function reOrderArray() {\n const newKeyedFormData = keyedFormDataRef.current.slice();\n newKeyedFormData.splice(index, 1);\n newKeyedFormData.splice(newIndex, 0, keyedFormDataRef.current[index]);\n return newKeyedFormData;\n }\n const newKeyedFormData = reOrderArray();\n onChange(updateKeyedFormData(newKeyedFormData), childFieldPathId.path, newErrorSchema);\n }, [onChange, updateKeyedFormData, childFieldPathId]);\n /** Callback handler used to deal with changing the value of the data in the array at the `index`. Calls the\n * `onChange` callback with the updated form data\n *\n * @param index - The index of the item being changed\n */\n const handleChange = useCallback((value, path, newErrorSchema, id) => {\n const lastPathIsItemIndex = typeof path.at(-1) === 'number';\n onChange(\n // We need to treat undefined items as nulls to have validation.\n // See https://github.com/tdegrunt/jsonschema/issues/206\n // Only set to null for array items, and not for object properties within array items\n lastPathIsItemIndex && value === undefined ? null : value, path, newErrorSchema, id);\n }, [onChange]);\n /** Callback handler used to change the value for a checkbox */\n const onSelectChange = useCallback((value) => {\n onChange(value, childFieldPathId.path, undefined, childFieldPathId?.[ID_KEY]);\n }, [onChange, childFieldPathId]);\n const arrayAsMultiProps = {\n ...props,\n formData,\n fieldPathId: childFieldPathId,\n onSelectChange,\n };\n const arrayProps = {\n ...props,\n handleAddItem,\n handleCopyItem,\n handleRemoveItem,\n handleReorderItems,\n keyedFormData,\n onChange: handleChange,\n };\n if (!(ITEMS_KEY in schema)) {\n if (!globalFormOptions.useFallbackUiForUnsupportedType) {\n const uiOptions = getUiOptions(uiSchema);\n const UnsupportedFieldTemplate = getTemplate('UnsupportedFieldTemplate', registry, uiOptions);\n return (_jsx(UnsupportedFieldTemplate, { schema: schema, fieldPathId: fieldPathId, reason: translateString(TranslatableString.MissingItems), registry: registry }));\n }\n // Add an items schema with type as undefined so it triggers FallbackField later on\n const fallbackSchema = { ...schema, [ITEMS_KEY]: { type: undefined } };\n arrayAsMultiProps.schema = fallbackSchema;\n arrayProps.schema = fallbackSchema;\n }\n if (schemaUtils.isMultiSelect(arrayAsMultiProps.schema)) {\n // If array has enum or uniqueItems set to true, call renderMultiSelect() to render the default multiselect widget or a custom widget, if specified.\n return _jsx(ArrayAsMultiSelect, { ...arrayAsMultiProps });\n }\n if (isCustomWidget(uiSchema)) {\n return _jsx(ArrayAsCustomWidget, { ...arrayAsMultiProps });\n }\n if (isFixedItems(arrayAsMultiProps.schema)) {\n return _jsx(FixedArray, { ...arrayProps });\n }\n if (schemaUtils.isFilesArray(arrayAsMultiProps.schema, uiSchema)) {\n return _jsx(ArrayAsFiles, { ...arrayAsMultiProps });\n }\n return _jsx(NormalArray, { ...arrayProps });\n}\n//# sourceMappingURL=ArrayField.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { getWidget, getUiOptions, isObject, optionsList, TranslatableString } from '@rjsf/utils';\n/** The `BooleanField` component is used to render a field in the schema is boolean. It constructs `enumOptions` for the\n * two boolean values based on the various alternatives in the schema.\n *\n * @param props - The `FieldProps` for this template\n */\nfunction BooleanField(props) {\n const { schema, name, uiSchema, fieldPathId, formData, registry, required, disabled, readonly, hideError, autofocus, title, onChange, onFocus, onBlur, rawErrors, } = props;\n const { title: schemaTitle } = schema;\n const { widgets, translateString, globalUiOptions } = registry;\n const { widget = 'checkbox', title: uiTitle, \n // Unlike the other fields, don't use `getDisplayLabel()` since it always returns false for the boolean type\n label: displayLabel = true, enumNames, ...options } = getUiOptions(uiSchema, globalUiOptions);\n const Widget = getWidget(schema, widget, widgets);\n const yes = translateString(TranslatableString.YesLabel);\n const no = translateString(TranslatableString.NoLabel);\n let enumOptions;\n const label = uiTitle ?? schemaTitle ?? title ?? name;\n if (Array.isArray(schema.oneOf)) {\n enumOptions = optionsList({\n oneOf: schema.oneOf\n .map((option) => {\n if (isObject(option)) {\n return {\n ...option,\n title: option.title || (option.const === true ? yes : no),\n };\n }\n return undefined;\n })\n .filter((o) => o), // cast away the error that typescript can't grok is fixed\n }, uiSchema);\n }\n else {\n const enums = schema.enum ?? [true, false];\n if (!enumNames && enums.length === 2 && enums.every((v) => typeof v === 'boolean')) {\n enumOptions = [\n {\n value: enums[0],\n label: enums[0] ? yes : no,\n },\n {\n value: enums[1],\n label: enums[1] ? yes : no,\n },\n ];\n }\n else {\n enumOptions = optionsList({ enum: enums }, uiSchema);\n }\n }\n const onWidgetChange = useCallback((value, errorSchema, id) => onChange(value, fieldPathId.path, errorSchema, id), [onChange, fieldPathId]);\n return (_jsx(Widget, { options: { ...options, enumOptions }, schema: schema, uiSchema: uiSchema, id: fieldPathId.$id, name: name, onChange: onWidgetChange, onFocus: onFocus, onBlur: onBlur, label: label, hideLabel: !displayLabel, value: formData, required: required, disabled: disabled, readonly: readonly, hideError: hideError, registry: registry, autofocus: autofocus, rawErrors: rawErrors, htmlName: fieldPathId.name }));\n}\nexport default BooleanField;\n//# sourceMappingURL=BooleanField.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useState } from 'react';\nimport { getTemplate, getUiOptions, RJSF_REF_CYCLE_KEY } from '@rjsf/utils';\n/** The `CyclicSchemaField` component is used to render a field in the schema that is marked with RJSF_REF_CYCLE_KEY ===\n * true\n *\n * @param props - The `FieldProps` for this template\n */\nexport default function CyclicSchemaField(props) {\n const [expanded, setExpanded] = useState(false);\n const { name, registry, schema, uiSchema, fieldPathId } = props;\n const { globalUiOptions } = registry;\n const uiOptions = getUiOptions(uiSchema, globalUiOptions);\n const CyclicSchemaExpandTemplate = getTemplate('CyclicSchemaExpandTemplate', registry, uiOptions);\n if (!expanded) {\n return (_jsx(CyclicSchemaExpandTemplate, { registry: registry, schema: schema, uiSchema: uiSchema, name: name, fieldPathId: fieldPathId, onExpand: () => setExpanded(true) }));\n }\n const { fields } = registry;\n const { SchemaField } = fields;\n return _jsx(SchemaField, { ...props, schema: { ...schema, [RJSF_REF_CYCLE_KEY]: false } });\n}\n//# sourceMappingURL=CyclicSchemaField.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useMemo, useState } from 'react';\nimport { getTemplate, getUiOptions, hashObject, toFieldPathId, TranslatableString, useDeepCompareMemo, } from '@rjsf/utils';\n/**\n * Get the schema for the type selection component.\n * @param title - The translated title for the type selection schema.\n */\nfunction getFallbackTypeSelectionSchema(title) {\n return {\n type: 'string',\n enum: ['string', 'number', 'boolean', 'object', 'array'],\n default: 'string',\n title,\n };\n}\n/**\n * Determines the JSON Schema type of the given formData.\n * @param formData - The form data whose type is to be determined.\n */\nfunction getTypeOfFormData(formData) {\n const dataType = typeof formData;\n if (dataType === 'string' || dataType === 'number' || dataType === 'boolean') {\n return dataType;\n }\n if (dataType === 'object') {\n return Array.isArray(formData) ? 'array' : 'object';\n }\n // Treat everything else as a string\n return 'string';\n}\n/**\n * Casts the given formData to the specified type.\n * @param formData - The form data to be casted.\n * @param newType - The target type to which the form data should be casted.\n */\nfunction castToNewType(formData, newType) {\n switch (newType) {\n case 'string':\n return String(formData);\n case 'number': {\n const castedNumber = Number(formData);\n return (Number.isNaN(castedNumber) ? 0 : castedNumber);\n }\n case 'boolean':\n return Boolean(formData);\n default:\n return formData;\n }\n}\n/**\n * The `FallbackField` component is used to render a field for unsupported or unknown schema types. If\n * `useFallbackUiForUnsupportedType` is enabled in the `globalUiOptions`, it provides a type selector\n */\nexport default function FallbackField(props) {\n const { id, formData, displayLabel = true, schema, name, uiSchema, required, disabled = false, readonly = false, onBlur, onFocus, registry, fieldPathId, onChange, errorSchema, } = props;\n const { translateString, fields, globalFormOptions } = registry;\n const [type, setType] = useState(getTypeOfFormData(formData));\n const uiOptions = getUiOptions(uiSchema);\n const typeSelectorInnerFieldPathId = useDeepCompareMemo(toFieldPathId('__internal_type_selector', globalFormOptions, fieldPathId));\n const schemaTitle = translateString(TranslatableString.Type);\n const typesOptionSchema = useMemo(() => getFallbackTypeSelectionSchema(schemaTitle), [schemaTitle]);\n const onTypeChange = (newType) => {\n if (newType != null) {\n setType(newType);\n onChange(castToNewType(formData, newType), fieldPathId.path, errorSchema, id);\n }\n };\n if (!globalFormOptions.useFallbackUiForUnsupportedType) {\n const { reason = translateString(TranslatableString.UnknownFieldType, [String(schema.type)]) } = props;\n const UnsupportedFieldTemplate = getTemplate('UnsupportedFieldTemplate', registry, uiOptions);\n return _jsx(UnsupportedFieldTemplate, { schema: schema, fieldPathId: fieldPathId, reason: reason, registry: registry });\n }\n const FallbackFieldTemplate = getTemplate('FallbackFieldTemplate', registry, uiOptions);\n const { SchemaField } = fields;\n return (_jsx(FallbackFieldTemplate, { schema: schema, registry: registry, typeSelector: _jsx(SchemaField, { fieldPathId: typeSelectorInnerFieldPathId, name: `${name}__fallback_type`, schema: typesOptionSchema, formData: type, onChange: onTypeChange, onBlur: onBlur, onFocus: onFocus, registry: registry, hideLabel: !displayLabel, disabled: disabled, readonly: readonly, required: required }, formData ? hashObject(formData) : '__empty__'), schemaField: _jsx(SchemaField, { ...props, schema: {\n type,\n title: translateString(TranslatableString.Value),\n ...(type === 'object' && { additionalProperties: true }),\n } }) }));\n}\n//# sourceMappingURL=FallbackField.js.map","import { createElement as _createElement } from \"react\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getByPath, toPath, ANY_OF_KEY, deepEquals, getDiscriminatorFieldFromSchema, getTemplate, getTestIds, getPropertySchema, getUiOptions, hashObject, ID_KEY, isObject, isPlainObject, lookupFromFormContext, ONE_OF_KEY, PROPERTIES_KEY, READONLY_KEY, toFieldPathId, UI_OPTIONS_KEY, UI_GLOBAL_OPTIONS_KEY, ITEMS_KEY, useDeepCompareMemo, } from '@rjsf/utils';\n/** The enumeration of the three different Layout GridTemplate type values\n */\nexport var GridType;\n(function (GridType) {\n GridType[\"ROW\"] = \"ui:row\";\n GridType[\"COLUMN\"] = \"ui:col\";\n GridType[\"COLUMNS\"] = \"ui:columns\";\n GridType[\"CONDITION\"] = \"ui:condition\";\n})(GridType || (GridType = {}));\n/** The enumeration of the different operators within a condition\n */\nexport var Operators;\n(function (Operators) {\n Operators[\"ALL\"] = \"all\";\n Operators[\"SOME\"] = \"some\";\n Operators[\"NONE\"] = \"none\";\n})(Operators || (Operators = {}));\n/** The regular expression that is used to detect whether a string contains a lookup key\n */\nexport const LOOKUP_REGEX = /^\\$lookup=(.+)/;\n/** The constant representing the main layout grid schema option name in the `uiSchema`\n */\nexport const LAYOUT_GRID_UI_OPTION = 'layoutGrid';\n/** The constant representing the main layout grid schema option name in the `uiSchema`\n */\nexport const LAYOUT_GRID_OPTION = `ui:${LAYOUT_GRID_UI_OPTION}`;\n/** Returns either the `value` if it is non-nullish or the fallback\n *\n * @param [value] - The potential value to return if it is non-nullish\n * @param [fallback] - The fallback value to return if `value` is nullish\n * @returns - `value` if it is non-nullish otherwise `fallback`\n */\nfunction getNonNullishValue(value, fallback) {\n return value ?? fallback;\n}\n/** Detects if a `str` is made up entirely of numeric characters\n *\n * @param str - The string to check to see if it is a numeric index\n * @return - True if the string consists entirely of numeric characters\n */\nfunction isNumericIndex(str) {\n return /^\\d+?$/.test(str); // Matches positive integers\n}\nconst LAYOUT_GRID_FIELD_TEST_IDS = getTestIds();\n/** Computes the uiSchema for the field with `name` from the `uiProps` and `uiSchema` provided. The field UI Schema\n * will always contain a copy of the global options from the `uiSchema` (so they can be passed down) as well as\n * copying them into the local ui options. When the `forceReadonly` flag is true, then the field UI Schema is\n * updated to make \"readonly\" be true. When the `schemaReadonly` flag is true AND the field UI Schema does NOT have\n * the flag already provided, then we also make \"readonly\" true. We always make sure to return the final value of the\n * field UI Schema's \"readonly\" flag as `uiReadonly` along with the `fieldUiSchema` in the return value.\n *\n * @param field - The name of the field to pull the existing UI Schema for\n * @param uiProps - Any props that should be put into the field's uiSchema\n * @param [uiSchema] - The optional UI Schema from which to get the UI schema for the field\n * @param [schemaReadonly] - Optional flag indicating whether the schema indicates the field is readonly\n * @param [forceReadonly] - Optional flag indicating whether the Form itself is in readonly mode\n */\nexport function computeFieldUiSchema(field, uiProps, uiSchema, schemaReadonly, forceReadonly) {\n const globalUiOptions = uiSchema?.[UI_GLOBAL_OPTIONS_KEY] ?? {};\n const localUiSchema = getByPath(uiSchema, toPath(field));\n const localUiOptions = { ...(localUiSchema?.[UI_OPTIONS_KEY] ?? {}), ...uiProps, ...globalUiOptions };\n const fieldUiSchema = { ...localUiSchema };\n if (Object.keys(localUiOptions).length > 0) {\n fieldUiSchema[UI_OPTIONS_KEY] = localUiOptions;\n }\n if (Object.keys(globalUiOptions).length > 0) {\n // pass the global uiOptions down to the field uiSchema so that they can be applied to all nested fields\n fieldUiSchema[UI_GLOBAL_OPTIONS_KEY] = globalUiOptions;\n }\n let { readonly: uiReadonly } = getUiOptions(fieldUiSchema);\n if (forceReadonly === true || (uiReadonly === undefined && schemaReadonly === true)) {\n // If we are forcing all widgets to be readonly, OR the schema indicates it is readonly AND the uiSchema does not\n // have an overriding value, then update the uiSchema to set readonly to true. Doing this will\n uiReadonly = true;\n const fieldUiOptions = fieldUiSchema[UI_OPTIONS_KEY];\n if (fieldUiOptions && READONLY_KEY in fieldUiOptions) {\n // If the local options has the key value provided in it, then set that one to true\n fieldUiOptions[READONLY_KEY] = true;\n }\n else {\n // otherwise set the `ui:` version\n fieldUiSchema[`ui:${READONLY_KEY}`] = true;\n }\n }\n return { fieldUiSchema, uiReadonly };\n}\n/** Given an `operator`, `datum` and `value` determines whether this condition is considered matching. Matching\n * depends on the `operator`. The `datum` and `value` are converted into arrays if they aren't already and then the\n * contents of the two arrays are compared using the `operator`. When `operator` is All, then the two arrays must be\n * equal to match. When `operator` is SOME then the intersection of the two arrays must have at least one value in\n * common to match. When `operator` is NONE then the intersection of the two arrays must not have any values in common\n * to match.\n *\n * @param [operator] - The optional operator for the condition\n * @param [datum] - The optional datum for the condition, this can be an item or a list of items of type unknown\n * @param [value='$0m3tH1nG Un3xP3cT3d'] The optional value for the condition, defaulting to a highly unlikely value\n * to avoid comparing two undefined elements when `value` was forgotten in the condition definition.\n * This can be an item or a list of items of type unknown\n * @returns - True if the condition matches, false otherwise\n */\nexport function conditionMatches(operator, datum, value = '$0m3tH1nG Un3xP3cT3d') {\n const data = [datum].flat().sort();\n const values = [value].flat().sort();\n switch (operator) {\n case Operators.ALL:\n return deepEquals(data, values);\n case Operators.SOME:\n return data.some((entry) => values.includes(entry));\n case Operators.NONE:\n return !data.some((entry) => values.includes(entry));\n default:\n return false;\n }\n}\n/** From within the `layoutGridSchema` finds the `children` and any extra `gridProps` from the object keyed by\n * `schemaKey`. If the `children` contains extra `gridProps` and those props contain a `className` string, try to\n * lookup whether that `className` has a replacement value in the `registry` using the `FORM_CONTEXT_LOOKUP_BASE`.\n * When the `className` value contains multiple classNames separated by a space, the lookup will look for a\n * replacement value for each `className` and combine them into one.\n *\n * @param layoutGridSchema - The GridSchemaType instance from which to obtain the `schemaKey` children and extra props\n * @param schemaKey - A `GridType` value, used to get the children and extra props from within the `layoutGridSchema`\n * @param registry - The `@rjsf` Registry from which to look up `classNames` if they are present in the extra props\n * @returns - An object containing the list of `LayoutGridSchemaType` `children` and any extra `gridProps`\n * @throws - A `TypeError` when the `children` is not an array\n */\nexport function findChildrenAndProps(layoutGridSchema, schemaKey, registry) {\n let gridProps = {};\n let children = layoutGridSchema[schemaKey];\n if (isPlainObject(children)) {\n const { children: elements, className: toMapClassNames, ...otherProps } = children;\n children = elements;\n if (toMapClassNames) {\n const classes = toMapClassNames.split(' ');\n const className = classes.map((ele) => lookupFromFormContext(registry, ele, ele)).join(' ');\n gridProps = { ...otherProps, className };\n }\n else {\n gridProps = otherProps;\n }\n }\n if (!Array.isArray(children)) {\n throw new TypeError(`Expected array for \"${schemaKey}\" in ${JSON.stringify(layoutGridSchema)}`);\n }\n return { children: children, gridProps };\n}\n/** Computes the `rawSchema` and `fieldPathId` for a `schema` and a `potentialIndex`. If the `schema` is of type array,\n * has an `ITEMS_KEY` element and `potentialIndex` represents a numeric value, the element at `ITEMS_KEY` is checked\n * to see if it is an array. If it is AND the `potentialIndex`th element is available, it is used as the `rawSchema`,\n * otherwise the last value of the element is used. If it is not, then the element is used as the `rawSchema`. In\n * either case, an `fieldPathId` is computed for the array index. If the `schema` does not represent an array or the\n * `potentialIndex` is not a numeric value, then `rawSchema` is returned as undefined and given `fieldPathId` is returned\n * as is.\n *\n * @param schema - The schema to generate the fieldPathId for\n * @param fieldPathId - The FieldPathId for the schema\n * @param potentialIndex - A string containing a potential index\n * @returns - An object containing the `rawSchema` and `fieldPathId` of an array item, otherwise an undefined `rawSchema`\n */\nexport function computeArraySchemasIfPresent(schema, fieldPathId, potentialIndex) {\n let rawSchema;\n let resultPathId = fieldPathId;\n if (isNumericIndex(potentialIndex) && schema && schema?.type === 'array' && ITEMS_KEY in schema) {\n const index = Number(potentialIndex);\n const items = schema[ITEMS_KEY];\n if (Array.isArray(items)) {\n if (index > items.length) {\n rawSchema = items.at(-1);\n }\n else {\n rawSchema = items[index];\n }\n }\n else {\n rawSchema = items;\n }\n resultPathId = {\n [ID_KEY]: fieldPathId[ID_KEY],\n path: [...fieldPathId.path.slice(0, fieldPathId.path.length - 1), index],\n };\n }\n return { rawSchema, fieldPathId: resultPathId };\n}\n/** Given a `dottedPath` to a field in the `initialSchema`, iterate through each individual path in the schema until\n * the leaf path is found and returned (along with whether that leaf path `isRequired`) OR no schema exists for an\n * element in the path. If the leaf schema element happens to be a oneOf/anyOf then also return the oneOf/anyOf as\n * `options`.\n *\n * @param registry - The registry\n * @param dottedPath - The dotted-path to the field for which to get the schema\n * @param initialSchema - The initial schema to start the search from\n * @param formData - The formData, useful for resolving a oneOf/anyOf selection in the path hierarchy\n * @param initialFieldIdPath - The initial fieldPathId to start the search from\n * @returns - An object containing the destination schema, isRequired and isReadonly flags for the field and options\n * info if a oneOf/anyOf\n */\nexport function getSchemaDetailsForField(registry, dottedPath, initialSchema, formData, initialFieldIdPath) {\n const { schemaUtils, globalFormOptions } = registry;\n let rawSchema = initialSchema;\n let fieldPathId = initialFieldIdPath;\n const parts = dottedPath.split('.');\n const leafPath = parts.pop(); // pop off the last element in the list as the leaf\n let schema = schemaUtils.retrieveSchema(rawSchema, formData); // always returns an object\n let innerData = formData;\n let isReadonly = schema.readOnly;\n // For all the remaining path parts\n parts.forEach((part) => {\n // dive into the properties of the current schema (when it exists) and get the schema for the next part\n fieldPathId = toFieldPathId(part, globalFormOptions, fieldPathId);\n const schemaProperties = schema?.[PROPERTIES_KEY];\n if (schemaProperties) {\n rawSchema = (schemaProperties[part] ?? {});\n }\n else if (schema && (ONE_OF_KEY in schema || ANY_OF_KEY in schema)) {\n const xxx = ONE_OF_KEY in schema ? ONE_OF_KEY : ANY_OF_KEY;\n // When the schema represents a oneOf/anyOf, find the selected schema for it and grab the inner part\n const selectedSchema = schemaUtils.findSelectedOptionInXxxOf(schema, part, xxx, innerData);\n rawSchema = getPropertySchema(selectedSchema, part);\n }\n else {\n const result = computeArraySchemasIfPresent(schema, fieldPathId, part);\n rawSchema = result.rawSchema ?? {};\n fieldPathId = result.fieldPathId;\n }\n // Now drill into the innerData for the part, returning an empty object by default if it doesn't exist\n innerData = getByPath(innerData, part, {});\n // Resolve any `$ref`s for the current rawSchema\n schema = schemaUtils.retrieveSchema(rawSchema, innerData);\n isReadonly = getNonNullishValue(schema.readOnly, isReadonly);\n });\n let optionsInfo;\n let isRequired = false;\n // retrieveSchema will return an empty schema in the worst case scenario, convert it to undefined\n if (!schema || Object.keys(schema).length === 0) {\n schema = undefined;\n }\n if (schema && leafPath) {\n // When we have both a schema and a leafPath...\n if (schema && (ONE_OF_KEY in schema || ANY_OF_KEY in schema)) {\n const xxx = ONE_OF_KEY in schema ? ONE_OF_KEY : ANY_OF_KEY;\n // Grab the selected schema for the oneOf/anyOf value for the leafPath using the innerData\n schema = schemaUtils.findSelectedOptionInXxxOf(schema, leafPath, xxx, innerData);\n }\n fieldPathId = toFieldPathId(leafPath, globalFormOptions, fieldPathId);\n isRequired = schema !== undefined && Array.isArray(schema.required) && schema.required.includes(leafPath);\n const result = computeArraySchemasIfPresent(schema, fieldPathId, leafPath);\n if (result.rawSchema) {\n schema = result.rawSchema;\n fieldPathId = result.fieldPathId;\n }\n else {\n // Now grab the schema from the leafPath of the current schema properties\n schema = schema?.[PROPERTIES_KEY]?.[leafPath];\n // Resolve any `$ref`s for the current schema\n schema = schema ? schemaUtils.retrieveSchema(schema) : schema;\n }\n isReadonly = getNonNullishValue(schema?.readOnly, isReadonly);\n if (schema && (ONE_OF_KEY in schema || ANY_OF_KEY in schema)) {\n const xxx = ONE_OF_KEY in schema ? ONE_OF_KEY : ANY_OF_KEY;\n // Set the options if we have a schema with a oneOf/anyOf\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n optionsInfo = { options: schema[xxx], hasDiscriminator: !!discriminator };\n }\n }\n return { schema, isRequired, isReadonly, optionsInfo, fieldPathId };\n}\n/** Gets the custom render component from the `render`, by either determining that it is either already a function or\n * it is a non-function value that can be used to look up the function in the registry. If no function can be found,\n * null is returned.\n *\n * @param render - The potential render function or lookup name to one\n * @param registry - The `@rjsf` Registry from which to look up `classNames` if they are present in the extra props\n * @returns - Either a render function if available, or null if not\n */\nexport function getCustomRenderComponent(render, registry) {\n let customRenderer = render;\n if (typeof customRenderer === 'string') {\n customRenderer = lookupFromFormContext(registry, customRenderer);\n }\n if (typeof customRenderer === 'function') {\n return customRenderer;\n }\n return null;\n}\n/** Extract the `name`, and optional `render` and all other props from the `gridSchema`. We look up the `render` to\n * see if can be resolved to a UIComponent. If `name` does not exist and there is an optional `render` UIComponent, we\n * set the `rendered` component with only specified props for that component in the object.\n *\n * @param registry - The `@rjsf` Registry from which to look up `classNames` if they are present in the extra props\n * @param gridSchema - The string or object that represents the configuration for the grid field\n * @returns - The UIComponentPropsType computed from the gridSchema\n */\nexport function computeUIComponentPropsFromGridSchema(registry, gridSchema) {\n let name;\n let UIComponent = null;\n let uiProps = {};\n let rendered;\n if (typeof gridSchema === 'string' || gridSchema === undefined) {\n name = gridSchema ?? '';\n }\n else {\n const { name: innerName = '', render, ...innerProps } = gridSchema;\n name = innerName;\n uiProps = innerProps;\n // Transform any `$lookup=` in the uiProps props with the appropriate value\n Object.entries(uiProps).forEach(([key, prop]) => {\n if (typeof prop === 'string') {\n const match = LOOKUP_REGEX.exec(prop);\n if (Array.isArray(match) && match.length > 1) {\n const lookupName = match[1];\n uiProps[key] = lookupFromFormContext(registry, lookupName, lookupName);\n }\n }\n });\n UIComponent = getCustomRenderComponent(render, registry);\n if (!innerName && UIComponent) {\n rendered = _jsx(UIComponent, { ...innerProps, \"data-testid\": LAYOUT_GRID_FIELD_TEST_IDS.uiComponent });\n }\n }\n return { name, UIComponent, uiProps, rendered };\n}\n/** Iterates through all the `childrenLayoutGridSchemaId`, rendering a nested `LayoutGridField` for each item in the\n * list, passing all the props for the current `LayoutGridField` along, updating the `schema` by calling\n * `retrieveSchema()` on it to resolve any `$ref`s. In addition to the updated `schema`, each item in\n * `childrenLayoutGridSchemaId` is passed as `layoutGridSchema`.\n *\n * @returns - The nested `LayoutGridField`s\n */\nfunction LayoutGridFieldChildren(props) {\n const { childrenLayoutGridSchemaId, ...layoutGridFieldProps } = props;\n const { registry, schema: rawSchema, formData } = layoutGridFieldProps;\n const { schemaUtils } = registry;\n const schema = schemaUtils.retrieveSchema(rawSchema, formData);\n return childrenLayoutGridSchemaId.map((layoutGridSchema) => (_createElement(LayoutGridField, { ...layoutGridFieldProps, key: `layoutGrid-${hashObject(layoutGridSchema)}`, schema: schema, layoutGridSchema: layoutGridSchema })));\n}\n/** Renders the `children` of the `GridType.CONDITION` if it passes. The `layoutGridSchema` for the\n * `GridType.CONDITION` is separated into the `children` and other `gridProps`. The `gridProps` are used to extract\n * the `operator`, `field` and `value` of the condition. If the condition matches, then all of the `children` are\n * rendered, otherwise null is returned.\n *\n * @returns - The rendered the children for the `GridType.CONDITION` or null\n */\nfunction LayoutGridCondition(props) {\n const { layoutGridSchema, ...layoutGridFieldProps } = props;\n const { formData, registry } = layoutGridFieldProps;\n const { children, gridProps } = findChildrenAndProps(layoutGridSchema, GridType.CONDITION, registry);\n const { operator, field = '', value } = gridProps;\n const fieldData = getByPath(formData, toPath(field), null);\n if (conditionMatches(operator, fieldData, value)) {\n return _jsx(LayoutGridFieldChildren, { ...layoutGridFieldProps, childrenLayoutGridSchemaId: children });\n }\n return null;\n}\n/** Renders a `GridTemplate` as an item. The `layoutGridSchema` for the `GridType.COLUMN` is separated into the\n * `children` and other `gridProps`. The `gridProps` will be spread onto the outer `GridTemplate`. Inside the\n * `GridTemplate` all the `children` are rendered.\n *\n * @returns - The rendered `GridTemplate` containing the children for the `GridType.COLUMN`\n */\nfunction LayoutGridCol(props) {\n const { layoutGridSchema, ...layoutGridFieldProps } = props;\n const { registry, uiSchema } = layoutGridFieldProps;\n const { children, gridProps } = findChildrenAndProps(layoutGridSchema, GridType.COLUMN, registry);\n const uiOptions = getUiOptions(uiSchema);\n const GridTemplate = getTemplate('GridTemplate', registry, uiOptions);\n return (_jsx(GridTemplate, { column: true, \"data-testid\": LAYOUT_GRID_FIELD_TEST_IDS.col, ...gridProps, children: _jsx(LayoutGridFieldChildren, { ...layoutGridFieldProps, childrenLayoutGridSchemaId: children }) }));\n}\n/** Renders a `GridTemplate` as an item. The `layoutGridSchema` for the `GridType.COLUMNS` is separated into the\n * `children` and other `gridProps`. The `children` is iterated on and `gridProps` will be spread onto the outer\n * `GridTemplate`. Each child will have their own rendered `GridTemplate`.\n *\n * @returns - The rendered `GridTemplate` containing the children for the `GridType.COLUMNS`\n */\nfunction LayoutGridColumns(props) {\n const { layoutGridSchema, ...layoutGridFieldProps } = props;\n const { registry, uiSchema } = layoutGridFieldProps;\n const { children, gridProps } = findChildrenAndProps(layoutGridSchema, GridType.COLUMNS, registry);\n const uiOptions = getUiOptions(uiSchema);\n const GridTemplate = getTemplate('GridTemplate', registry, uiOptions);\n return children.map((child) => (_jsx(GridTemplate, { column: true, \"data-testid\": LAYOUT_GRID_FIELD_TEST_IDS.col, ...gridProps, children: _jsx(LayoutGridFieldChildren, { ...layoutGridFieldProps, childrenLayoutGridSchemaId: [child] }) }, `column-${hashObject(child)}`)));\n}\n/** Renders a `GridTemplate` as a container. The `layoutGridSchema` for the `GridType.ROW` is separated into the\n * `children` and other `gridProps`. The `gridProps` will be spread onto the outer `GridTemplate`. Inside of the\n * `GridTemplate` all of the `children` are rendered.\n *\n * @returns - The rendered `GridTemplate` containing the children for the `GridType.ROW`\n */\nfunction LayoutGridRow(props) {\n const { layoutGridSchema, ...layoutGridFieldProps } = props;\n const { registry, uiSchema } = layoutGridFieldProps;\n const { children, gridProps } = findChildrenAndProps(layoutGridSchema, GridType.ROW, registry);\n const uiOptions = getUiOptions(uiSchema);\n const GridTemplate = getTemplate('GridTemplate', registry, uiOptions);\n return (_jsx(GridTemplate, { ...gridProps, \"data-testid\": LAYOUT_GRID_FIELD_TEST_IDS.row, children: _jsx(LayoutGridFieldChildren, { ...layoutGridFieldProps, childrenLayoutGridSchemaId: children }) }));\n}\n/** Renders the field described by `gridSchema`. If `gridSchema` is not an object, then is will be assumed\n * to be the dotted-path to the field in the schema. Otherwise, we extract the `name`, and optional `render` and all\n * other props. If `name` does not exist and there is an optional `render`, we return the `render` component with only\n * specified props for that component. If `name` exists, we take the name, the initial & root schemas and the formData\n * and get the destination schema, is required state and optional oneOf/anyOf options for it. If the destination\n * schema was located along with oneOf/anyOf options then a `LayoutMultiSchemaField` will be rendered with the\n * `uiSchema`, `errorSchema`, `fieldPathId` and `formData` drilled down to the dotted-path field, spreading any other\n * props from `gridSchema` into the `ui:options`. If the destination schema located without any oneOf/anyOf options,\n * then a `SchemaField` will be rendered with the same props as mentioned in the previous sentence. If no destination\n * schema was located, but a custom render component was found, then it will be rendered with many of the non-event\n * handling props. If none of the previous render paths are valid, then a null is returned.\n *\n * @returns - One of `LayoutMultiSchemaField`, `SchemaField`, a custom render component or null, depending\n */\nfunction LayoutGridFieldComponent(props) {\n const { gridSchema, schema: initialSchema, uiSchema, errorSchema, fieldPathId, onBlur, onFocus, formData, readonly, registry, layoutGridSchema, // Used to pull this out of otherProps since we don't want to pass it through\n ...otherProps } = props;\n const { onChange } = otherProps;\n const { fields } = registry;\n const { SchemaField, LayoutMultiSchemaField } = fields;\n const uiComponentProps = computeUIComponentPropsFromGridSchema(registry, gridSchema);\n const { name, UIComponent, uiProps } = uiComponentProps;\n const { schema, isRequired, isReadonly, optionsInfo, fieldPathId: fieldIdSchema, } = getSchemaDetailsForField(registry, name, initialSchema, formData, fieldPathId);\n const memoFieldPathId = useDeepCompareMemo(fieldIdSchema);\n if (uiComponentProps.rendered) {\n return uiComponentProps.rendered;\n }\n if (schema) {\n const Field = optionsInfo?.hasDiscriminator ? LayoutMultiSchemaField : SchemaField;\n // Call this function to get the appropriate UISchema, which will always have its `readonly` state matching the\n // `uiReadonly` flag that it returns. This is done since the `SchemaField` will always defer to the `readonly`\n // state in the uiSchema over anything in the props or schema. Because we are implementing the \"readonly\" state of\n // the `Form` via the prop passed to `LayoutGridField` we need to make sure the uiSchema always has a true value\n // when it is needed\n const { fieldUiSchema, uiReadonly } = computeFieldUiSchema(name, uiProps, uiSchema, isReadonly, readonly);\n const namePath = toPath(name);\n return (_jsx(Field, { \"data-testid\": optionsInfo?.hasDiscriminator\n ? LAYOUT_GRID_FIELD_TEST_IDS.layoutMultiSchemaField\n : LAYOUT_GRID_FIELD_TEST_IDS.field, ...otherProps, name: name, required: isRequired, readonly: uiReadonly, schema: schema, uiSchema: fieldUiSchema, errorSchema: getByPath(errorSchema, namePath), fieldPathId: memoFieldPathId, formData: getByPath(formData, namePath), onChange: onChange, onBlur: onBlur, onFocus: onFocus, options: optionsInfo?.options, registry: registry }));\n }\n if (UIComponent) {\n return (_jsx(UIComponent, { \"data-testid\": LAYOUT_GRID_FIELD_TEST_IDS.uiComponent, ...otherProps, name: name, required: isRequired, formData: formData, readOnly: !!isReadonly || readonly, errorSchema: errorSchema, uiSchema: uiSchema, schema: initialSchema, fieldPathId: fieldPathId, onBlur: onBlur, onFocus: onFocus, registry: registry, ...uiProps }));\n }\n return null;\n}\n/** The `LayoutGridField` will render a schema, uiSchema and formData combination out into a GridTemplate in the shape\n * described in the uiSchema. To define the grid to use to render the elements within a field in the schema, provide in\n * the uiSchema for that field the object contained under a `ui:layoutGrid` element. E.g. (as a JSON object):\n *\n * ```\n * {\n * \"field1\" : {\n * \"ui:field\": \"LayoutGridField\",\n * \"ui:layoutGrid\": {\n * \"ui:row\": { ... }\n * }\n * }\n * }\n * ```\n *\n * The outermost level of a `LayoutGridField` is the `ui:row` that defines the nested rows, columns, and/or condition\n * elements (i.e. \"grid elements\") in the grid. This definition is either a simple \"grid elements\" OR an object with\n * native `GridTemplate` implementation specific props and a `children` array of \"grid elements\". E.g. (as JSON objects):\n *\n * Simple `ui:row` definition, without additional `GridTemplate` props:\n * ```\n * \"ui:row\": [\n * { \"ui:row\"|\"ui:col\"|\"ui:columns\"|\"ui:condition\": ... },\n * ...\n * ]\n * ```\n *\n * Complex `ui:row` definition, with additional `GridTemplate` (this example uses @mui/material/Grid2 native props):\n * ```\n * \"ui:row\": {\n * \"spacing\": 2,\n * \"size\": { md\": 4 },\n * \"alignContent\": \"flex-start\",\n * \"className\": \"GridRow\",\n * \"children\": [\n * { \"ui:row\"|\"ui:col\"|\"ui:columns\"|\"ui:condition\": ... },\n * ...\n * ]\n * }\n * ```\n *\n * NOTE: Special note about the native `className` prop values. All className values will automatically be looked up in\n * the `formContext.lookupMap` in case they have been defined using a CSS-in-JS approach. In other words, from the\n * example above, if the `Form` was constructed with a `lookupMap` set to `{ GridRow: cssInJs.GridRowClass }`\n * then when rendered, the native `GridTemplate` will get the `className` with the value from\n * `cssInJs.GridRowClass`. This automatic lookup will happen for any of the \"grid elements\" when rendering with\n * `GridTemplate` props. If multiple className values are present, for example:\n * `{ className: 'GridRow GridColumn' }`, the classNames are split apart, looked up individually, and joined\n * together to form one className with the values from `cssInJs.GridRowClass` and `cssInJs.GridColumnClass`.\n *\n * The `ui:col` grid element is used to specify the list of columns within a grid row. A `ui:col` element can take on\n * several forms: 1) a simple list of dotted-path field names within the root field; 2) a list of objects containing the\n * dotted-path field `name` any other props that are gathered into `ui:options` for the field; 3) a list with a one-off\n * `render` functional component with or without a non-field `name` identifier and any other to-be-spread props; and\n * 4) an object with native `GridTemplate` implementation specific props and a `children` array with 1) or 2) or even a\n * nested `ui:row` or a `ui:condition` containing a `ui:row` (although this should be used carefully). E.g.\n * (as JSON objects):\n *\n * Simple `ui:col` definition, without additional `GridTemplate` props and form 1 only children:\n * ```\n * \"ui:col\": [\"innerField\", \"inner.grandChild\", ...]\n * ```\n *\n * Complicated `ui:col` definition, without additional `GridTemplate` props and form 2 only children:\n * ```\n * \"ui:col\": [\n * { \"name\": \"innerField\", \"fullWidth\": true },\n * { \"name\": \"inner.grandChild\", \"convertOther\": true },\n * ...\n * ]\n * ```\n *\n * More complicated `ui:col` definition, without additional `GridTemplate` props and form 2 children, one being a\n * one-off `render` functional component without a non-field `name` identifier\n * ```\n * \"ui:col\": [\n * \"innerField\",\n * {\n * \"render\": \"WizardNavButton\",\n * \"isNext\": true,\n * \"size\": \"large\"\n * }\n * ]\n * ```\n *\n * Most complicated `ui:col` definition, additional `GridTemplate` props and form 1, 2 and 3 children (this example\n * uses @mui/material/Grid2 native props):\n * ```\n * \"ui:col\": {\n * \"size\": { \"md\": 4 },\n * \"className\": \"GridColumn\",\n * \"children\": [\n * \"innerField\",\n * { \"name\": \"inner.grandChild\", \"convertOther\": true },\n * { \"name\": \"customRender\", \"render\": \"CustomRender\", toSpread: \"prop-value\" }\n * { \"ui:row|ui:condition\": ... }\n * ...\n * ]\n * }\n * ```\n *\n * NOTE: If a `name` prop does not exist or its value does not match any field in a schema, then it is assumed to be a\n * custom `render` component. If the `render` prop does not exist, a null render will occur. If `render` is a\n * string, its value will be looked up in the `formContext.lookupMap` first before defaulting to a null render.\n *\n * The `ui:columns` grid element is syntactic sugar to specify a set of `ui:col` columns that all share the same set of\n * native `GridTemplate` props. In other words rather than writing the following configuration that renders a\n * `` element with 3 `` nodes and 2\n * `` nodes within it (one for each of the fields contained in the `children`\n * list):\n *\n * ```\n * \"ui:row\": {\n * \"children\": [\n * {\n * \"ui:col\": {\n * \"className\": \"GridColumn col-md-4\",\n * \"children\": [\"innerField\"],\n * }\n * },\n * {\n * \"ui:col\": {\n * \"className\": \"GridColumn col-md-4\",\n * \"children\": [\"inner.grandChild\"],\n * }\n * },\n * {\n * \"ui:col\": {\n * \"className\": \"GridColumn col-md-4\",\n * \"children\": [{ \"name\": \"inner.grandChild2\" }],\n * }\n * },\n * {\n * \"ui:col\": {\n * \"className\": \"col-md-6\",\n * \"children\": [\"innerField2\"],\n * }\n * },\n * {\n * \"ui:col\": {\n * \"className\": \"col-md-6\",\n * \"children\": [\"inner.grandChild3\"],\n * }\n * },\n\n * ]\n * }\n * ```\n *\n * One can write this instead:\n * ```\n * \"ui:row\": {\n * \"children\": [\n * {\n * \"ui:columns\": {\n * \"className\": \"GridColumn col-md-4\",\n * \"children\": [\"innerField\", \"inner.grandChild\", { \"name\": \"inner.grandChild2\", \"convertOther\": true }],\n * }\n * },\n * {\n * \"ui:columns\": {\n * \"className\": \"col-md-6\",\n * \"children\": [\"innerField2\", \"inner.grandChild3\"],\n * }\n * }\n * ]\n * }\n * ```\n *\n * NOTE: This syntax differs from\n * `\"ui:col\": { \"className\": \"col-md-6\", \"children\": [\"innerField2\", \"inner.grandChild3\"] }` in that\n * the `ui:col` will render the two children fields inside a single ``\n * element.\n *\n * The final grid element, `ui:condition`, allows for conditionally displaying \"grid elements\" within a row based on the\n * current value of a field as it relates to a (list of) hard-coded value(s). There are four elements that make up a\n * `ui:condition`: 1) the dotted-path `field` name within the root field that makes up the left-side of the condition;\n * 2) the hard-coded `value` (single or list) that makes up the right-side of the condition; 3) the `operator` that\n * controls how the left and right sides of the condition are compared; and 4) the `children` array that defines the\n * \"grid elements\" to display if the condition passes.\n *\n * A `ui:condition` uses one of three `operators` when deciding if a condition passes: 1) The `all` operator will pass\n * when the right-side and left-side contains all the same value(s); 2) the `some` operator will pass when the\n * right-side and left-side contain as least one value in common; 3) the `none` operator will pass when the right-side\n * and left-side do not contain any values in common. E.g. (as JSON objects):\n *\n * Here is how to render an if-then-else for `field2` which is an enum that has 3 known values and supports allowing\n * any other value:\n * ```\n * \"ui:row\": [\n * {\n * \"ui:condition\": {\n * \"field\": \"field2\",\n * \"operator\": \"all\",\n * \"value\": \"value1\",\n * \"children\": [\n * { \"ui:row\": [...] },\n * ],\n * }\n * },\n * {\n * \"ui:condition\": {\n * \"field\": \"field2\",\n * \"operator\": \"some\",\n * \"value\": [\"value2\", \"value3\"],\n * \"children\": [\n * { \"ui:row\": [...] },\n * ],\n * }\n * },\n * {\n * \"ui:condition\": {\n * \"field\": \"field2\",\n * \"operator\": \"none\",\n * \"value\": [\"value1\", \"value2\", \"value3\"],\n * \"children\": [\n * { \"ui:row\": [...] },\n * ],\n * }\n * }\n * ]\n * ```\n */\nexport default function LayoutGridField(props) {\n /** Render the `LayoutGridField`. If there isn't a `layoutGridSchema` prop defined, then try pulling it out of the\n * `uiSchema` via `ui:LayoutGridField`. If `layoutGridSchema` is an object, then check to see if any of the properties\n * match one of the `GridType`s. If so, call the appropriate render function for the type. Otherwise, just call the\n * generic `renderField()` function with the `layoutGridSchema`.\n */\n const { uiSchema } = props;\n let { layoutGridSchema } = props;\n const uiOptions = getUiOptions(uiSchema);\n if (!layoutGridSchema && LAYOUT_GRID_UI_OPTION in uiOptions && isObject(uiOptions[LAYOUT_GRID_UI_OPTION])) {\n layoutGridSchema = uiOptions[LAYOUT_GRID_UI_OPTION];\n }\n if (isObject(layoutGridSchema)) {\n if (GridType.ROW in layoutGridSchema) {\n return _jsx(LayoutGridRow, { ...props, layoutGridSchema: layoutGridSchema });\n }\n if (GridType.COLUMN in layoutGridSchema) {\n return _jsx(LayoutGridCol, { ...props, layoutGridSchema: layoutGridSchema });\n }\n if (GridType.COLUMNS in layoutGridSchema) {\n return _jsx(LayoutGridColumns, { ...props, layoutGridSchema: layoutGridSchema });\n }\n if (GridType.CONDITION in layoutGridSchema) {\n return _jsx(LayoutGridCondition, { ...props, layoutGridSchema: layoutGridSchema });\n }\n }\n return _jsx(LayoutGridFieldComponent, { ...props, gridSchema: layoutGridSchema });\n}\nLayoutGridField.TEST_IDS = LAYOUT_GRID_FIELD_TEST_IDS;\n//# sourceMappingURL=LayoutGridField.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate, getUiOptions, titleId } from '@rjsf/utils';\n/** The `LayoutHeaderField` component renders a `TitleFieldTemplate` with an `id` derived from the `fieldPathId`\n * and whether it is `required` from the props. The `title` is derived from the props as follows:\n * - If there is a title in the `uiSchema`, it is displayed\n * - Else, if there is an explicit `title` passed in the props, it is displayed\n * - Otherwise, if there is a title in the `schema`, it is displayed\n * - Finally, the `name` prop is displayed as the title\n *\n * @param props - The `LayoutHeaderField` for the component\n */\nexport default function LayoutHeaderField(props) {\n const { fieldPathId, title, schema, uiSchema, required, registry, name } = props;\n const options = getUiOptions(uiSchema, registry.globalUiOptions);\n const { title: uiTitle } = options;\n const { title: schemaTitle } = schema;\n const fieldTitle = uiTitle || title || schemaTitle || name;\n if (!fieldTitle) {\n return null;\n }\n const TitleFieldTemplate = getTemplate('TitleFieldTemplate', registry, options);\n return (_jsx(TitleFieldTemplate, { id: titleId(fieldPathId), title: fieldTitle, required: required, schema: schema, uiSchema: uiSchema, registry: registry }));\n}\n//# sourceMappingURL=LayoutHeaderField.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useState, useEffect } from 'react';\nimport { getByPath, setByPath, ANY_OF_KEY, CONST_KEY, DEFAULT_KEY, ERRORS_KEY, getDiscriminatorFieldFromSchema, hashObject, ID_KEY, ONE_OF_KEY, optionsList, PROPERTIES_KEY, getTemplate, getPropertySchema, getUiOptions, getWidget, noop, } from '@rjsf/utils';\n/** Gets the selected option from the list of `options`, using the `selectorField` to search inside each `option` for\n * the `properties[selectorField].default(or const)` that matches the given `value`.\n *\n * @param options - The list of schemas each representing a choice in the `oneOf`\n * @param selectorField - The name of the field that is common in all of the schemas that represents the selector field\n * @param value - The current value of the selector field from the data\n */\nexport function getSelectedOption(options, selectorField, value) {\n const defaultValue = '!@#!@$@#$!@$#';\n const schemaOptions = options.map(({ schema }) => schema);\n return schemaOptions.find((option) => {\n const selector = option[PROPERTIES_KEY]?.[selectorField];\n const result = getByPath(selector, DEFAULT_KEY, getByPath(selector, CONST_KEY, defaultValue));\n return result === value;\n });\n}\n/** Computes the `enumOptions` array from the schema and options.\n *\n * @param schema - The schema that contains the `options`\n * @param options - The options from the `schema`\n * @param schemaUtils - The SchemaUtilsType object used to call retrieveSchema,\n * @param [uiSchema] - The optional uiSchema for the schema\n * @param [formData] - The optional formData associated with the schema\n * @returns - The list of enumOptions for the `schema` and `options`\n * @throws - Error when no enum options were computed\n */\nexport function computeEnumOptions(schema, options, schemaUtils, uiSchema, formData) {\n const realOptions = options.map((opt) => schemaUtils.retrieveSchema(opt, formData));\n let tempSchema = schema;\n if (ONE_OF_KEY in schema) {\n tempSchema = { ...schema, [ONE_OF_KEY]: realOptions };\n }\n else if (ANY_OF_KEY in schema) {\n tempSchema = { ...schema, [ANY_OF_KEY]: realOptions };\n }\n const enumOptions = optionsList(tempSchema, uiSchema);\n if (!enumOptions) {\n throw new Error(`No enumOptions were computed from the schema ${JSON.stringify(tempSchema)}`);\n }\n return enumOptions;\n}\n/** The `LayoutMultiSchemaField` is an adaptation of the `MultiSchemaField` but changed considerably to only\n * support `anyOf`/`oneOf` fields that are being displayed in a `LayoutGridField` where the field selection is shown as\n * a radio group by default. It expects that a `selectorField` is provided (either directly via the `discriminator`\n * field or indirectly via `ui:optionsSchemaSelector` in the `uiSchema`) to help determine which `anyOf`/`oneOf` schema\n * is active. If no `selectorField` is specified, then an error is thrown.\n */\nexport default function LayoutMultiSchemaField(props) {\n const { name, baseType, disabled = false, formData, fieldPathId, onBlur, onChange, options, onFocus, registry, uiSchema, schema, autofocus, readonly, required, errorSchema, hideError = false, } = props;\n const { widgets, schemaUtils, globalUiOptions } = registry;\n const [enumOptions, setEnumOptions] = useState(computeEnumOptions(schema, options, schemaUtils, uiSchema, formData));\n const id = fieldPathId[ID_KEY];\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n const FieldErrorTemplate = getTemplate('FieldErrorTemplate', registry, options);\n const FieldTemplate = getTemplate('FieldTemplate', registry, options);\n const schemaHash = hashObject(schema);\n const optionsHash = hashObject(options);\n const uiSchemaHash = uiSchema ? hashObject(uiSchema) : '';\n const formDataHash = formData ? hashObject(formData) : '';\n useEffect(() => {\n setEnumOptions(computeEnumOptions(schema, options, schemaUtils, uiSchema, formData));\n // We are using hashes in place of the dependencies\n // oxlint-disable-next-line react-hooks/exhaustive-deps\n }, [schemaHash, optionsHash, schemaUtils, uiSchemaHash, formDataHash]);\n const { widget = discriminator ? 'radio' : 'select', title = '', placeholder = '', optionsSchemaSelector: selectorField = discriminator, hideError: uiSchemaHideError, ...uiOptions } = getUiOptions(uiSchema);\n if (!selectorField) {\n throw new Error('No selector field provided for the LayoutMultiSchemaField');\n }\n const selectedOption = getByPath(formData, selectorField);\n let optionSchema = getPropertySchema(enumOptions[0]?.schema, selectorField);\n const option = getSelectedOption(enumOptions, selectorField, selectedOption);\n // If the subschema doesn't declare a type, infer the type from the parent schema\n optionSchema = optionSchema?.type ? optionSchema : { ...optionSchema, type: option?.type || baseType };\n const Widget = getWidget(optionSchema, widget, widgets);\n // The following code was copied from `@rjsf`'s `SchemaField`\n // Set hideError to the value provided in the uiSchema, otherwise stick with the prop to propagate to children\n const hideFieldError = uiSchemaHideError === undefined ? hideError : Boolean(uiSchemaHideError);\n const rawErrors = errorSchema?.[ERRORS_KEY] ?? [];\n const fieldErrorSchema = { ...errorSchema };\n delete fieldErrorSchema[ERRORS_KEY];\n const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);\n /** Callback function that updates the selected option and adjusts the form data based on the structure of the new\n * option, calling the `onChange` callback with the adjusted formData.\n *\n * @param opt - If the option is undefined, we are going to clear the selection otherwise we\n * will use it as the index of the new option to select\n */\n const onOptionChange = (opt) => {\n if (disabled || readonly) {\n return;\n }\n const newOption = getSelectedOption(enumOptions, selectorField, opt);\n const oldOption = getSelectedOption(enumOptions, selectorField, selectedOption);\n let newFormData = schemaUtils.sanitizeDataForNewSchema(newOption, oldOption, formData);\n if (newFormData && newOption) {\n // Call getDefaultFormState to make sure defaults are populated on change.\n newFormData = schemaUtils.getDefaultFormState(newOption, newFormData, 'excludeObjectChildren');\n }\n if (newFormData) {\n setByPath(newFormData, selectorField, opt);\n }\n // Pass the component name in the path\n onChange(newFormData, fieldPathId.path, undefined, id);\n };\n // filtering the options based on the type of widget because `selectField` does not recognize the `convertOther` prop\n const widgetOptions = { enumOptions, ...uiOptions };\n const errors = !hideFieldError && rawErrors.length > 0 ? (_jsx(FieldErrorTemplate, { fieldPathId: fieldPathId, schema: schema, errors: rawErrors, registry: registry })) : undefined;\n return (_jsx(FieldTemplate, { fieldPathId: fieldPathId, id: id, schema: schema, label: (title || schema.title) ?? '', disabled: disabled || (Array.isArray(enumOptions) && enumOptions.length === 0), uiSchema: uiSchema, required: required, readonly: !!readonly, registry: registry, displayLabel: displayLabel, errors: errors, onChange: onChange, onKeyRename: noop, onKeyRenameBlur: noop, onRemoveProperty: noop, children: _jsx(Widget, { id: id, name: name, schema: schema, label: (title || schema.title) ?? '', disabled: disabled || (Array.isArray(enumOptions) && enumOptions.length === 0), uiSchema: uiSchema, autofocus: autofocus, readonly: readonly, required: required, registry: registry, multiple: false, rawErrors: rawErrors, hideError: hideFieldError, hideLabel: !displayLabel, errorSchema: fieldErrorSchema, placeholder: placeholder, onChange: onOptionChange, onBlur: onBlur, onFocus: onFocus, value: selectedOption, options: widgetOptions, htmlName: fieldPathId.name }) }));\n}\n//# sourceMappingURL=LayoutMultiSchemaField.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { ANY_OF_KEY, deepEquals, ERRORS_KEY, getDiscriminatorFieldFromSchema, getTemplate, getUiOptions, getWidget, hashObject, isFormDataAvailable, mergeSchemas, ONE_OF_KEY, shouldRenderOptionalField, TranslatableString, } from '@rjsf/utils';\n/** The `AnyOfField` component is used to render a field in the schema that is an `anyOf`, `allOf` or `oneOf`. It tracks\n * the currently selected option and cleans up any irrelevant data in `formData`.\n *\n * @param props - The `FieldProps` for this template\n */\nfunction AnyOfField(props) {\n const { name, disabled = false, errorSchema, formData, fieldPathId, onBlur, onChange, onFocus, options, readonly, registry, required = false, schema, uiSchema, } = props;\n const { schemaUtils } = registry;\n // Hash formData by value so the memo only invalidates when data actually changes, not on every\n // new object reference. hashObject(undefined) throws, so null is used as the fallback.\n const formDataHash = hashObject(formData ?? null);\n // retrievedOptions is purely derived from options — useMemo handles re-derivation automatically\n // when options, schemaUtils, or formData's value changes, with no render-phase dispatch needed.\n const retrievedOptions = useMemo(() => options.map((opt) => schemaUtils.retrieveSchema(opt, formData)), \n // oxlint-disable-next-line react-hooks/exhaustive-deps -- formDataHash is the value-stable proxy for formData\n [options, schemaUtils, formDataHash]);\n const [selectedOption, setSelectedOption] = useState(() => {\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n return schemaUtils.getClosestMatchingOption(formData, retrievedOptions, 0, discriminator);\n });\n /** Flag to skip the formData-change-driven option recalculation when the user just selected an option.\n * Set to true in onOptionChange (before onChange is called), consumed and reset in the update effect.\n * This prevents the matching-option recalculation from overriding a user's explicit choice when\n * getDefaultFormState populates undefined properties that make deepEquals see a false formData change.\n */\n const skipNextOptionRecalculation = useRef(false);\n const prevFormDataRef = useRef(formData);\n const prevFieldIdRef = useRef(fieldPathId.$id);\n // Mirrors componentDidUpdate: re-match selectedOption when formData changes on the same field.\n // Runs after every render (no deps array) to compare against prev values stored in refs.\n // oxlint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n const prevFormData = prevFormDataRef.current;\n const prevFieldId = prevFieldIdRef.current;\n prevFormDataRef.current = formData;\n prevFieldIdRef.current = fieldPathId.$id;\n if (!deepEquals(formData, prevFormData) && fieldPathId.$id === prevFieldId) {\n if (skipNextOptionRecalculation.current) {\n skipNextOptionRecalculation.current = false;\n return;\n }\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n const matchingOption = schemaUtils.getClosestMatchingOption(formData, retrievedOptions, selectedOption, discriminator);\n if (matchingOption !== selectedOption) {\n setSelectedOption(matchingOption);\n }\n }\n });\n const fieldId = `${fieldPathId.$id}${schema.oneOf ? '__oneof_select' : '__anyof_select'}`;\n /** Callback handler to remember what the currently selected option is. In addition to that the `formData` is updated\n * to remove properties that are not part of the newly selected option schema, and then the updated data is passed to\n * the `onChange` handler.\n *\n * @param option - The new option value being selected\n */\n const onOptionChange = useCallback((option) => {\n if (disabled || readonly) {\n return;\n }\n const intOption = option !== undefined ? parseInt(option, 10) : -1;\n if (intOption === selectedOption) {\n return;\n }\n const newOption = intOption >= 0 ? retrievedOptions[intOption] : undefined;\n const oldOption = selectedOption >= 0 ? retrievedOptions[selectedOption] : undefined;\n let newFormData = schemaUtils.sanitizeDataForNewSchema(newOption, oldOption, formData);\n if (newOption) {\n // Call getDefaultFormState to make sure defaults are populated on change. Pass \"excludeObjectChildren\"\n // so that only the root objects themselves are created without adding undefined children properties\n newFormData = schemaUtils.getDefaultFormState(newOption, newFormData, 'excludeObjectChildren');\n }\n setSelectedOption(intOption);\n skipNextOptionRecalculation.current = true;\n onChange(newFormData, fieldPathId.path, undefined, fieldId);\n }, \n // setSelectedOption is stable (guaranteed by useState); skipNextOptionRecalculation is a ref\n [selectedOption, retrievedOptions, disabled, readonly, schemaUtils, formData, fieldPathId, onChange, fieldId]);\n const { widgets, fields, translateString, globalUiOptions } = registry;\n const { SchemaField: SchemaFieldComponent } = fields;\n const MultiSchemaFieldTemplate = getTemplate('MultiSchemaFieldTemplate', registry, globalUiOptions);\n const isOptionalRender = shouldRenderOptionalField(registry, schema, required, uiSchema);\n const hasFormData = isFormDataAvailable(formData);\n const { widget = 'select', placeholder, autofocus, autocomplete, title = schema.title, ...uiOptions } = getUiOptions(uiSchema, globalUiOptions);\n const Widget = getWidget({ type: 'number' }, widget, widgets);\n const rawErrors = errorSchema?.[ERRORS_KEY] ?? [];\n const fieldErrorSchema = { ...errorSchema };\n delete fieldErrorSchema[ERRORS_KEY];\n const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);\n const option = selectedOption >= 0 ? retrievedOptions[selectedOption] || null : null;\n let optionSchema;\n if (option) {\n const { required: schemaRequired, type: schemaType } = schema;\n const parentProps = {};\n if (schemaRequired) {\n parentProps.required = schemaRequired;\n }\n // Propagate the parent schema type to options that don't define their own.\n // This is necessary when the parent constrains the type (e.g. { type: 'string',\n // oneOf: [{ pattern: '...' }, { pattern: '...' }] }) but the option sub-schemas\n // omit the type — without it, getSchemaType returns undefined and the option\n // renders as FallbackField instead of the correct widget (e.g. StringField).\n if (schemaType !== undefined && !('type' in option)) {\n parentProps.type = schemaType;\n }\n // Merge in all the non-oneOf/anyOf properties and also skip the special ADDITIONAL_PROPERTY_FLAG property\n optionSchema = Object.keys(parentProps).length > 0 ? mergeSchemas(parentProps, option) : option;\n }\n // First we will check to see if there is an anyOf/oneOf override for the UI schema\n let optionsUiSchema = [];\n if (ONE_OF_KEY in schema && uiSchema && ONE_OF_KEY in uiSchema) {\n if (Array.isArray(uiSchema[ONE_OF_KEY])) {\n optionsUiSchema = uiSchema[ONE_OF_KEY];\n }\n else {\n // oxlint-disable-next-line no-console\n console.warn(`uiSchema.oneOf is not an array for \"${title || name}\"`);\n }\n }\n else if (ANY_OF_KEY in schema && uiSchema && ANY_OF_KEY in uiSchema) {\n if (Array.isArray(uiSchema[ANY_OF_KEY])) {\n optionsUiSchema = uiSchema[ANY_OF_KEY];\n }\n else {\n // oxlint-disable-next-line no-console\n console.warn(`uiSchema.anyOf is not an array for \"${title || name}\"`);\n }\n }\n // Then we pick the one that matches the selected option index, if one exists otherwise default to the main uiSchema\n let optionUiSchema = uiSchema;\n if (selectedOption >= 0 && optionsUiSchema.length > selectedOption) {\n optionUiSchema = optionsUiSchema[selectedOption];\n }\n const translateEnum = title\n ? TranslatableString.TitleOptionPrefix\n : TranslatableString.OptionPrefix;\n const translateParams = title ? [title] : [];\n const enumOptions = retrievedOptions.map((opt, index) => {\n const { title: uiTitle = opt.title } = getUiOptions(optionsUiSchema[index]);\n return {\n label: uiTitle || translateString(translateEnum, translateParams.concat(String(index + 1))),\n value: index,\n };\n });\n const selector = !isOptionalRender || hasFormData ? (_jsx(Widget, { id: fieldId, name: `${name}${schema.oneOf ? '__oneof_select' : '__anyof_select'}`, schema: { type: 'number', default: 0 }, onChange: onOptionChange, onBlur: onBlur, onFocus: onFocus, disabled: disabled || enumOptions.length === 0, multiple: false, rawErrors: rawErrors, errorSchema: fieldErrorSchema, value: selectedOption >= 0 ? selectedOption : undefined, options: { enumOptions, ...uiOptions }, registry: registry, placeholder: placeholder, autocomplete: autocomplete, autofocus: autofocus, label: title ?? name, hideLabel: !displayLabel, readonly: readonly })) : undefined;\n const optionsSchemaField = (optionSchema && optionSchema.type !== 'null' && (_jsx(SchemaFieldComponent, { ...props, schema: optionSchema, uiSchema: optionUiSchema }))) ||\n null;\n return (_jsx(MultiSchemaFieldTemplate, { schema: schema, registry: registry, uiSchema: uiSchema, selector: selector, optionSchemaField: optionsSchemaField }));\n}\nexport default AnyOfField;\n//# sourceMappingURL=MultiSchemaField.js.map","import { useEffect } from 'react';\n/** The `NullField` component is used to render a field in the schema is null. It also ensures that the `formData` is\n * also set to null if it has no value.\n *\n * @param props - The `FieldProps` for this template\n */\nfunction NullField(props) {\n const { formData, onChange, fieldPathId } = props;\n useEffect(() => {\n if (formData === undefined) {\n onChange(null, fieldPathId.path);\n }\n }, [fieldPathId, formData, onChange]);\n return null;\n}\nexport default NullField;\n//# sourceMappingURL=NullField.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useState, useCallback } from 'react';\nimport { asNumber, getDecimalSeparator, getUiOptions, optionsList } from '@rjsf/utils';\n// Static matchers for standard '.' separator used during normalization inside handleChange\nconst trailingCharMatcherWithPrefix = /\\.([0-9]*0)*$/;\nconst trailingCharMatcher = /[0.]0*$/;\n/**\n * The NumberField class has some special handling for dealing with trailing\n * decimal points and/or zeroes. This logic is designed to allow trailing values\n * to be visible in the input element, but not be represented in the\n * corresponding form data.\n *\n * The algorithm is as follows:\n *\n * 1. When the input value changes the value is cached in the component state\n *\n * 2. The value is then normalized, removing trailing decimal points and zeros,\n * then passed to the \"onChange\" callback\n *\n * 3. When the component is rendered, the formData value is checked against the\n * value cached in the state. If it matches the cached value, the cached\n * value is passed to the input instead of the formData value\n */\nfunction NumberField(props) {\n const { registry, onChange, formData, value: initialValue } = props;\n const [lastValue, setLastValue] = useState(initialValue);\n const { StringField } = registry.fields;\n const separator = getDecimalSeparator();\n const escapedSeparator = separator === '.' ? '\\\\.' : separator;\n let value = formData;\n /** Handle the change from the `StringField` to properly convert to a number\n *\n * @param value - The current value for the change occurring\n */\n const handleChange = useCallback((newValue, path, errorSchema, id) => {\n // Cache the original value in component state\n setLastValue(newValue);\n // Convert locale separator to standard '.' first\n const standardValue = typeof newValue === 'string' ? newValue.replace(separator, '.') : newValue;\n // Normalize decimals that don't start with a zero character in advance so\n // that the rest of the normalization logic is simpler\n const normalizedValue = `${standardValue}`.startsWith('.') ? `0${standardValue}` : standardValue;\n // Check that the value is a string (this can happen if the widget used is a\n // ` component for the `core` theme.\n * It is used as the template for rendering many of the based widgets that differ by `type` and callbacks only.\n * It can be customized/overridden for other themes or individual implementations as needed.\n *\n * @param props - The `WidgetProps` for this template\n */\nexport default function BaseInputTemplate(props) {\n const { id, name, // remove this from ...rest\n htmlName, value, readonly, disabled, autofocus, onBlur, onFocus, onChange, onChangeOverride, options, schema, uiSchema, registry, rawErrors, type, hideLabel, // remove this from ...rest\n hideError, // remove this from ...rest\n ...rest } = props;\n const { ClearButton } = registry.templates.ButtonTemplates;\n // Note: since React 15.2.0 we can't forward unknown element attributes, so we\n // exclude the \"options\" and \"schema\" ones here.\n if (!id) {\n // oxlint-disable-next-line no-console\n console.log('No id for', props);\n throw new Error(`no id for props ${JSON.stringify(props)}`);\n }\n const inputProps = {\n ...rest,\n ...getInputProps(schema, type, options),\n };\n let inputValue;\n if (inputProps.type === 'number' || inputProps.type === 'integer') {\n inputValue = value || value === 0 ? value : '';\n }\n else {\n inputValue = value == null ? '' : value;\n }\n const handleChange = useCallback(({ target: { value: newValue } }) => onChange(newValue === '' ? options.emptyValue : newValue), [onChange, options]);\n const handleBlur = useCallback(({ target }) => onBlur(id, target?.value), [onBlur, id]);\n const handleFocus = useCallback(({ target }) => onFocus(id, target?.value), [onFocus, id]);\n const handleClear = useCallback((e) => {\n e.preventDefault();\n e.stopPropagation();\n onChange(options.emptyValue);\n }, [onChange, options.emptyValue]);\n return (_jsxs(_Fragment, { children: [_jsx(\"input\", { id: id, name: htmlName || id, className: 'form-control', readOnly: readonly, disabled: disabled, autoFocus: autofocus, value: inputValue, ...inputProps, list: schema.examples ? examplesId(id) : undefined, onChange: onChangeOverride || handleChange, onBlur: handleBlur, onFocus: handleFocus, \"aria-describedby\": ariaDescribedByIds(id, !!schema.examples) }), options.allowClearTextInputs && !readonly && !disabled && inputValue && (_jsx(ClearButton, { registry: registry, onClick: handleClear })), _jsx(SchemaExamples, { id: id, schema: schema })] }));\n}\n//# sourceMappingURL=BaseInputTemplate.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { memo } from 'react';\nimport { TranslatableString } from '@rjsf/utils';\nfunction IconButtonFn(props) {\n const { iconType = 'default', icon, className, uiSchema, registry, ...otherProps } = props;\n return (_jsx(\"button\", { type: 'button', className: `btn btn-${iconType} ${className}`, ...otherProps, children: _jsx(\"i\", { className: `glyphicon glyphicon-${icon}` }) }));\n}\nconst IconButton = memo(IconButtonFn);\nexport default IconButton;\nfunction CopyButtonFn(props) {\n const { registry: { translateString }, } = props;\n return _jsx(IconButton, { title: translateString(TranslatableString.CopyButton), ...props, icon: 'copy' });\n}\nexport const CopyButton = memo(CopyButtonFn);\nfunction MoveDownButtonFn(props) {\n const { registry: { translateString }, } = props;\n return _jsx(IconButton, { title: translateString(TranslatableString.MoveDownButton), ...props, icon: 'arrow-down' });\n}\nexport const MoveDownButton = memo(MoveDownButtonFn);\nfunction MoveUpButtonFn(props) {\n const { registry: { translateString }, } = props;\n return _jsx(IconButton, { title: translateString(TranslatableString.MoveUpButton), ...props, icon: 'arrow-up' });\n}\nexport const MoveUpButton = memo(MoveUpButtonFn);\nfunction RemoveButtonFn(props) {\n const { registry: { translateString }, } = props;\n return (_jsx(IconButton, { title: translateString(TranslatableString.RemoveButton), ...props, iconType: 'danger', icon: 'remove' }));\n}\nexport const RemoveButton = memo(RemoveButtonFn);\nfunction ClearButtonFn({ id, className, onClick, disabled, registry, ...props }) {\n const { translateString } = registry;\n return (_jsx(IconButton, { id: id, iconType: 'default', icon: 'remove', className: 'btn-clear col-xs-12', title: translateString(TranslatableString.ClearButton), onClick: onClick, disabled: disabled, registry: registry, ...props }));\n}\nexport const ClearButton = memo(ClearButtonFn);\n//# sourceMappingURL=IconButton.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { TranslatableString } from '@rjsf/utils';\nimport IconButton from \"./IconButton.js\";\n/** The `AddButton` renders a button that represent the `Add` action on a form\n */\nexport default function AddButton({ id, className, onClick, disabled, registry, }) {\n const { translateString } = registry;\n return (_jsx(\"div\", { className: 'row', children: _jsx(\"p\", { className: `col-xs-4 col-sm-2 col-lg-1 col-xs-offset-8 col-sm-offset-10 col-lg-offset-11 text-right ${className}`, children: _jsx(IconButton, { id: id, iconType: 'info', icon: 'plus', className: 'btn-add col-xs-12', title: translateString(TranslatableString.AddButton), onClick: onClick, disabled: disabled, registry: registry }) }) }));\n}\n//# sourceMappingURL=AddButton.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getSubmitButtonOptions } from '@rjsf/utils';\n/** The `SubmitButton` renders a button that represent the `Submit` action on a form\n */\nexport default function SubmitButton({ uiSchema }) {\n const { submitText, norender, props: submitButtonProps = {} } = getSubmitButtonOptions(uiSchema);\n if (norender) {\n return null;\n }\n return (_jsx(\"div\", { children: _jsx(\"button\", { type: 'submit', ...submitButtonProps, className: `btn btn-info ${submitButtonProps.className || ''}`, children: submitText }) }));\n}\n//# sourceMappingURL=SubmitButton.js.map","import AddButton from \"./AddButton.js\";\nimport { CopyButton, MoveDownButton, MoveUpButton, RemoveButton, ClearButton } from \"./IconButton.js\";\nimport SubmitButton from \"./SubmitButton.js\";\nfunction buttonTemplates() {\n return {\n SubmitButton,\n AddButton,\n CopyButton,\n MoveDownButton,\n MoveUpButton,\n RemoveButton,\n ClearButton,\n };\n}\nexport default buttonTemplates;\n//# sourceMappingURL=index.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { ID_KEY, TranslatableString } from '@rjsf/utils';\n/** The `CyclicSchemaExpandTemplate` is the template to use to render the cyclic schema expand message and controls\n *\n * @param props - The `DescriptionFieldProps` for this component\n */\nexport default function CyclicSchemaExpandTemplate(props) {\n const { name, fieldPathId, registry, onExpand } = props;\n const { translateString } = registry;\n const buttonId = `${fieldPathId[ID_KEY]}-button`;\n return (_jsxs(\"div\", { style: { marginTop: '1rem' }, children: [_jsx(\"div\", { className: 'text-danger', children: translateString(TranslatableString.CycleDetected, [name]) }), _jsxs(\"div\", { children: [_jsx(\"button\", { id: buttonId, type: 'button', className: 'btn btn-sm btn-warning', onClick: () => onExpand(fieldPathId[ID_KEY]), children: translateString(TranslatableString.ExpandButton) }), ' '] })] }));\n}\n//# sourceMappingURL=CyclicSchemaExpandTemplate.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTestIds, getUiOptions } from '@rjsf/utils';\nimport { Markdown } from 'markdown-to-jsx/react';\nconst TEST_IDS = getTestIds();\n/** Renders the given `description` in the props as\n *\n * @param props - The `RichDescriptionProps` for this component\n */\nexport default function RichDescription({ description, registry, uiSchema = {} }) {\n const { globalUiOptions } = registry;\n const uiOptions = getUiOptions(uiSchema, globalUiOptions);\n if (uiOptions.enableMarkdownInDescription && typeof description === 'string') {\n return (_jsx(Markdown, { options: { disableParsingRawHTML: true }, \"data-testid\": TEST_IDS.markdown, children: description }));\n }\n return description;\n}\nRichDescription.TEST_IDS = TEST_IDS;\n//# sourceMappingURL=RichDescription.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport RichDescription from \"../RichDescription.js\";\n/** The `DescriptionField` is the template to use to render the description of a field\n *\n * @param props - The `DescriptionFieldProps` for this component\n */\nexport default function DescriptionField(props) {\n const { id, description, registry, uiSchema } = props;\n if (!description) {\n return null;\n }\n return (_jsx(\"div\", { id: id, className: 'field-description', children: _jsx(RichDescription, { description: description, registry: registry, uiSchema: uiSchema }) }));\n}\n//# sourceMappingURL=DescriptionField.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { TranslatableString } from '@rjsf/utils';\n/** The `ErrorList` component is the template that renders the all the errors associated with the fields in the `Form`\n *\n * @param props - The `ErrorListProps` for this component\n */\nexport default function ErrorList({ errors, registry, }) {\n const { translateString } = registry;\n return (_jsxs(\"div\", { className: 'panel panel-danger errors', children: [_jsx(\"div\", { className: 'panel-heading', children: _jsx(\"h3\", { className: 'panel-title', children: translateString(TranslatableString.ErrorsLabel) }) }), _jsx(\"ul\", { className: 'list-group', children: errors.map((error, i) => (_jsx(\"li\", { className: 'list-group-item text-danger', children: error.stack }, i))) })] }));\n}\n//# sourceMappingURL=ErrorList.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate } from '@rjsf/utils';\n/**\n * The `FallbackFieldTemplate` is used to render a field when no field matches. The field renders a type selector and\n * the schema field for the form data.\n */\nexport default function FallbackFieldTemplate(props) {\n const { schema, registry, typeSelector, schemaField } = props;\n // By default, use the MultiSchemaFieldTemplate, which handles the same basic requirements.\n const MultiSchemaFieldTemplate = getTemplate('MultiSchemaFieldTemplate', registry);\n return (_jsx(MultiSchemaFieldTemplate, { selector: typeSelector, optionSchemaField: schemaField, schema: schema, registry: registry }));\n}\n//# sourceMappingURL=FallbackFieldTemplate.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { errorId } from '@rjsf/utils';\n/** The `FieldErrorTemplate` component renders the errors local to the particular field\n *\n * @param props - The `FieldErrorProps` for the errors being rendered\n */\nexport default function FieldErrorTemplate(props) {\n const { errors = [], fieldPathId } = props;\n if (errors.length === 0) {\n return null;\n }\n const id = errorId(fieldPathId);\n return (_jsx(\"div\", { children: _jsx(\"ul\", { id: id, className: 'error-detail bs-callout bs-callout-info', children: errors\n .filter((elem) => !!elem)\n .map((error, index) => (_jsx(\"li\", { className: 'text-danger', children: error }, index))) }) }));\n}\n//# sourceMappingURL=FieldErrorTemplate.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTestIds, getUiOptions } from '@rjsf/utils';\nimport { Markdown } from 'markdown-to-jsx/react';\nconst TEST_IDS = getTestIds();\n/** Renders the given `description` in the props as\n *\n * @param props - The `RichHelpProps` for this component\n */\nexport default function RichHelp({ help, registry, uiSchema = {}, }) {\n const { globalUiOptions } = registry;\n const uiOptions = getUiOptions(uiSchema, globalUiOptions);\n if (uiOptions.enableMarkdownInHelp && typeof help === 'string') {\n return (_jsx(Markdown, { options: { disableParsingRawHTML: true }, \"data-testid\": TEST_IDS.markdown, children: help }));\n }\n return help;\n}\nRichHelp.TEST_IDS = TEST_IDS;\n//# sourceMappingURL=RichHelp.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { helpId } from '@rjsf/utils';\nimport RichHelp from \"../RichHelp.js\";\n/** The `FieldHelpTemplate` component renders any help desired for a field\n *\n * @param props - The `FieldHelpProps` to be rendered\n */\nexport default function FieldHelpTemplate(props) {\n const { fieldPathId, help, uiSchema, registry } = props;\n if (!help) {\n return null;\n }\n return (_jsx(\"div\", { id: helpId(fieldPathId), className: 'help-block', children: _jsx(RichHelp, { help: help, registry: registry, uiSchema: uiSchema }) }));\n}\n//# sourceMappingURL=FieldHelpTemplate.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst REQUIRED_FIELD_SYMBOL = '*';\n/** Renders a label for a field\n *\n * @param props - The `LabelProps` for this component\n */\nexport default function Label(props) {\n const { label, required, id } = props;\n if (!label) {\n return null;\n }\n return (_jsxs(\"label\", { className: 'control-label', htmlFor: id, children: [label, required && _jsx(\"span\", { className: 'required', children: REQUIRED_FIELD_SYMBOL })] }));\n}\n//# sourceMappingURL=Label.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { getTemplate, getUiOptions } from '@rjsf/utils';\nimport Label from \"./Label.js\";\n/** The `FieldTemplate` component is the template used by `SchemaField` to render any field. It renders the field\n * content, (label, description, children, errors and help) inside of a `WrapIfAdditional` component.\n *\n * @param props - The `FieldTemplateProps` for this component\n */\nexport default function FieldTemplate(props) {\n const { id, label, children, errors, help, description, hidden, required, displayLabel, registry, uiSchema } = props;\n const uiOptions = getUiOptions(uiSchema);\n const WrapIfAdditionalTemplate = getTemplate('WrapIfAdditionalTemplate', registry, uiOptions);\n if (hidden) {\n return _jsx(\"div\", { className: 'hidden', children: children });\n }\n const isCheckbox = uiOptions.widget === 'checkbox';\n return (_jsxs(WrapIfAdditionalTemplate, { ...props, children: [displayLabel && !isCheckbox && _jsx(Label, { label: label, required: required, id: id }), displayLabel && description ? description : null, children, errors, help] }));\n}\n//# sourceMappingURL=FieldTemplate.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/** Renders a `GridTemplate` for bootstrap 3, which is expecting the column information coming in via the `className`\n * prop. Also spreads all the other props provided by the user directly on the div.\n *\n * @param props - The GridTemplateProps, including the expected className for the bootstrap 3 grid behavior\n */\nexport default function GridTemplate(props) {\n const { children, column, className, ...rest } = props;\n return (_jsx(\"div\", { className: className, ...rest, children: children }));\n}\n//# sourceMappingURL=GridTemplate.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/** The `MultiSchemaFieldTemplate` component renders the layout for the MultiSchemaField, which supports choosing\n * a schema from a list of schemas defined using `anyOf` or `oneOf`.\n *\n * @param props - The `MultiSchemaFieldTemplate` to be rendered\n */\nexport default function MultiSchemaFieldTemplate(props) {\n const { selector, optionSchemaField } = props;\n return (_jsxs(\"div\", { className: 'panel panel-default panel-body', children: [_jsx(\"div\", { className: 'form-group', children: selector }), optionSchemaField] }));\n}\n//# sourceMappingURL=MultiSchemaFieldTemplate.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { canExpand, descriptionId, getTemplate, getUiOptions, titleId, buttonId } from '@rjsf/utils';\n/** The `ObjectFieldTemplate` is the template to use to render all the inner properties of an object along with the\n * title and description if available. If the object is expandable, then an `AddButton` is also rendered after all\n * the properties.\n *\n * @param props - The `ObjectFieldTemplateProps` for this component\n */\nexport default function ObjectFieldTemplate(props) {\n const { className, description, disabled, formData, fieldPathId, onAddProperty, optionalDataControl, properties, readonly, registry, required, schema, title, uiSchema, } = props;\n const options = getUiOptions(uiSchema);\n const TitleFieldTemplate = getTemplate('TitleFieldTemplate', registry, options);\n const DescriptionFieldTemplate = getTemplate('DescriptionFieldTemplate', registry, options);\n // For \"pure union\" schemas (oneOf/anyOf without properties), skip rendering the empty fieldset wrapper.\n // The AnyOfField/OneOfField will handle rendering the union selector and selected variant's content directly.\n const isPureUnionSchema = (schema.oneOf || schema.anyOf) && !schema.properties && properties.length === 0;\n if (isPureUnionSchema) {\n return null;\n }\n const showOptionalDataControlInTitle = !readonly && !disabled;\n // Button templates are not overridden in the uiSchema\n const { ButtonTemplates: { AddButton }, } = registry.templates;\n return (_jsxs(\"fieldset\", { className: className, id: fieldPathId.$id, children: [title && (_jsx(TitleFieldTemplate, { id: titleId(fieldPathId), title: title, required: required, schema: schema, uiSchema: uiSchema, registry: registry, optionalDataControl: showOptionalDataControlInTitle ? optionalDataControl : undefined })), description && (_jsx(DescriptionFieldTemplate, { id: descriptionId(fieldPathId), description: description, schema: schema, uiSchema: uiSchema, registry: registry })), !showOptionalDataControlInTitle ? optionalDataControl : undefined, properties.map((prop) => prop.content), canExpand(schema, uiSchema, formData) && (_jsx(AddButton, { id: buttonId(fieldPathId, 'add'), className: 'rjsf-object-property-expand', onClick: onAddProperty, disabled: disabled || readonly, uiSchema: uiSchema, registry: registry }))] }));\n}\n//# sourceMappingURL=ObjectFieldTemplate.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport IconButton from \"./ButtonTemplates/IconButton.js\";\n/** The OptionalDataControlsTemplate renders one of three different states. If\n * there is an `onAddClick()` function, it renders the \"Add\" button. If there is\n * an `onRemoveClick()` function, it renders the \"Remove\" button. Otherwise it\n * renders the \"No data found\" section. All of them use the `label` as either\n * the `title` of buttons or simply outputting it.\n *\n * @param props - The `OptionalDataControlsTemplateProps` for the template\n */\nexport default function OptionalDataControlsTemplate(props) {\n const { id, registry, label, onAddClick, onRemoveClick } = props;\n if (onAddClick) {\n return (_jsx(IconButton, { id: id, registry: registry, icon: 'plus', className: 'rjsf-add-optional-data btn-sm', onClick: onAddClick, title: label }));\n }\n if (onRemoveClick) {\n return (_jsx(IconButton, { id: id, registry: registry, icon: 'remove', className: 'rjsf-remove-optional-data btn-sm', onClick: onRemoveClick, title: label }));\n }\n return _jsx(\"em\", { id: id, children: label });\n}\n//# sourceMappingURL=OptionalDataControlsTemplate.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst REQUIRED_FIELD_SYMBOL = '*';\n/** The `TitleField` is the template to use to render the title of a field\n *\n * @param props - The `TitleFieldProps` for this component\n */\nexport default function TitleField(props) {\n const { id, title, required, optionalDataControl } = props;\n return (_jsxs(\"legend\", { id: id, children: [title, required && _jsx(\"span\", { className: 'required', children: REQUIRED_FIELD_SYMBOL }), optionalDataControl && (_jsx(\"span\", { className: 'pull-right', style: { marginBottom: '2px' }, children: optionalDataControl }))] }));\n}\n//# sourceMappingURL=TitleField.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { TranslatableString } from '@rjsf/utils';\nimport { Markdown } from 'markdown-to-jsx/react';\n/** The `UnsupportedField` component is used to render a field in the schema is one that is not supported by\n * react-jsonschema-form.\n *\n * @param props - The `FieldProps` for this template\n */\nfunction UnsupportedField(props) {\n const { schema, fieldPathId, reason, registry } = props;\n const { translateString } = registry;\n let translateEnum = TranslatableString.UnsupportedField;\n const translateParams = [];\n if (fieldPathId?.$id) {\n translateEnum = TranslatableString.UnsupportedFieldWithId;\n translateParams.push(fieldPathId.$id);\n }\n if (reason) {\n translateEnum =\n translateEnum === TranslatableString.UnsupportedField\n ? TranslatableString.UnsupportedFieldWithReason\n : TranslatableString.UnsupportedFieldWithIdAndReason;\n translateParams.push(reason);\n }\n return (_jsxs(\"div\", { className: 'unsupported-field', children: [_jsx(\"p\", { children: _jsx(Markdown, { options: { disableParsingRawHTML: true }, children: translateString(translateEnum, translateParams) }) }), schema && _jsx(\"pre\", { children: JSON.stringify(schema, null, 2) })] }));\n}\nexport default UnsupportedField;\n//# sourceMappingURL=UnsupportedField.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { ADDITIONAL_PROPERTY_FLAG, buttonId, TranslatableString } from '@rjsf/utils';\nimport Label from \"./FieldTemplate/Label.js\";\n/** The `WrapIfAdditional` component is used by the `FieldTemplate` to rename, or remove properties that are\n * part of an `additionalProperties` part of a schema.\n *\n * @param props - The `WrapIfAdditionalProps` for this component\n */\nexport default function WrapIfAdditionalTemplate(props) {\n const { id, classNames, style, disabled, displayLabel, label, onKeyRenameBlur, onRemoveProperty, rawDescription, readonly, required, schema, hideError, rawErrors, children, uiSchema, registry, } = props;\n const { templates, translateString } = registry;\n // Button templates are not overridden in the uiSchema\n const { RemoveButton } = templates.ButtonTemplates;\n const keyLabel = translateString(TranslatableString.KeyLabel, [label]);\n const additional = ADDITIONAL_PROPERTY_FLAG in schema;\n const hasDescription = !!rawDescription;\n const classNamesList = ['form-group', classNames];\n if (!hideError && rawErrors && rawErrors.length > 0) {\n classNamesList.push('has-error has-danger');\n }\n const uiClassNames = classNamesList.join(' ').trim();\n if (!additional) {\n return (_jsx(\"div\", { className: uiClassNames, style: style, children: children }));\n }\n const margin = hasDescription ? 46 : 26;\n return (_jsx(\"div\", { className: uiClassNames, style: style, children: _jsxs(\"div\", { className: 'row', children: [_jsx(\"div\", { className: 'col-xs-5 form-additional', children: _jsxs(\"div\", { className: 'form-group', children: [displayLabel && _jsx(Label, { label: keyLabel, required: required, id: `${id}-key` }), displayLabel && rawDescription && _jsx(\"div\", { children: \"\\u00A0\" }), _jsx(\"input\", { className: 'form-control', type: 'text', id: `${id}-key`, onBlur: onKeyRenameBlur, defaultValue: label }, label)] }) }), _jsx(\"div\", { className: 'form-additional form-group col-xs-5', children: children }), _jsx(\"div\", { className: 'col-xs-2', style: { marginTop: displayLabel ? `${margin}px` : undefined }, children: _jsx(RemoveButton, { id: buttonId(id, 'remove'), className: 'rjsf-object-property-remove btn-block', style: { border: '0' }, disabled: disabled || readonly, onClick: onRemoveProperty, uiSchema: uiSchema, registry: registry }) })] }) }));\n}\n//# sourceMappingURL=WrapIfAdditionalTemplate.js.map","import ArrayFieldDescriptionTemplate from \"./ArrayFieldDescriptionTemplate.js\";\nimport ArrayFieldItemButtonsTemplate from \"./ArrayFieldItemButtonsTemplate.js\";\nimport ArrayFieldItemTemplate from \"./ArrayFieldItemTemplate.js\";\nimport ArrayFieldTemplate from \"./ArrayFieldTemplate.js\";\nimport ArrayFieldTitleTemplate from \"./ArrayFieldTitleTemplate.js\";\nimport BaseInputTemplate from \"./BaseInputTemplate.js\";\nimport ButtonTemplates from \"./ButtonTemplates/index.js\";\nimport CyclicSchemaExpandTemplate from \"./CyclicSchemaExpandTemplate.js\";\nimport DescriptionField from \"./DescriptionField.js\";\nimport ErrorList from \"./ErrorList.js\";\nimport FallbackFieldTemplate from \"./FallbackFieldTemplate.js\";\nimport FieldErrorTemplate from \"./FieldErrorTemplate.js\";\nimport FieldHelpTemplate from \"./FieldHelpTemplate.js\";\nimport FieldTemplate from \"./FieldTemplate/index.js\";\nimport GridTemplate from \"./GridTemplate.js\";\nimport MultiSchemaFieldTemplate from \"./MultiSchemaFieldTemplate.js\";\nimport ObjectFieldTemplate from \"./ObjectFieldTemplate.js\";\nimport OptionalDataControlsTemplate from \"./OptionalDataControlsTemplate.js\";\nimport TitleField from \"./TitleField.js\";\nimport UnsupportedField from \"./UnsupportedField.js\";\nimport WrapIfAdditionalTemplate from \"./WrapIfAdditionalTemplate.js\";\nfunction templates() {\n return {\n ArrayFieldDescriptionTemplate,\n ArrayFieldItemTemplate,\n ArrayFieldItemButtonsTemplate,\n ArrayFieldTemplate,\n ArrayFieldTitleTemplate,\n ButtonTemplates: ButtonTemplates(),\n BaseInputTemplate,\n CyclicSchemaExpandTemplate,\n DescriptionFieldTemplate: DescriptionField,\n ErrorListTemplate: ErrorList,\n FallbackFieldTemplate,\n FieldTemplate,\n FieldErrorTemplate,\n FieldHelpTemplate,\n GridTemplate,\n MultiSchemaFieldTemplate,\n ObjectFieldTemplate,\n OptionalDataControlsTemplate,\n TitleFieldTemplate: TitleField,\n UnsupportedFieldTemplate: UnsupportedField,\n WrapIfAdditionalTemplate,\n };\n}\nexport default templates;\n//# sourceMappingURL=index.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/** The `AltDateTimeWidget` is an alternative widget for rendering datetime properties.\n * It uses the AltDateWidget for rendering, with the `time` prop set to true by default.\n *\n * @param props - The `WidgetProps` for this component\n */\nfunction AltDateTimeWidget({ time = true, ...props }) {\n const { AltDateWidget } = props.registry.widgets;\n return _jsx(AltDateWidget, { time: time, ...props });\n}\nexport default AltDateTimeWidget;\n//# sourceMappingURL=AltDateTimeWidget.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { DateElement, TranslatableString, useAltDateWidgetProps } from '@rjsf/utils';\n/** The `AltDateWidget` is an alternative widget for rendering date properties.\n * @param props - The `WidgetProps` for this component\n */\nfunction AltDateWidget(props) {\n const { disabled = false, readonly = false, autofocus = false, options, id, name, registry, onBlur, onFocus } = props;\n const { translateString } = registry;\n const { elements, handleChange, handleClear, handleSetNow } = useAltDateWidgetProps(props);\n return (_jsxs(\"ul\", { className: 'list-inline', children: [elements.map((elemProps, i) => (_jsx(\"li\", { className: 'list-inline-item', children: _jsx(DateElement, { rootId: id, name: name, select: handleChange, ...elemProps, disabled: disabled, readonly: readonly, registry: registry, onBlur: onBlur, onFocus: onFocus, autofocus: autofocus && i === 0 }) }, i))), (options.hideNowButton !== 'undefined' ? !options.hideNowButton : true) && (_jsx(\"li\", { className: 'list-inline-item', children: _jsx(\"button\", { type: 'button', className: 'btn btn-info btn-now', onClick: handleSetNow, children: translateString(TranslatableString.NowLabel) }) })), (options.hideClearButton !== 'undefined' ? !options.hideClearButton : true) && (_jsx(\"li\", { className: 'list-inline-item', children: _jsx(\"button\", { type: 'button', className: 'btn btn-warning btn-clear', onClick: handleClear, children: translateString(TranslatableString.ClearLabel) }) }))] }));\n}\nexport default AltDateWidget;\n//# sourceMappingURL=AltDateWidget.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { ariaDescribedByIds, enumOptionValueDecoder, enumOptionValueEncoder, enumOptionsDeselectValue, enumOptionsIsSelected, enumOptionsSelectValue, getOptionValueFormat, optionId, } from '@rjsf/utils';\n/** The `CheckboxesWidget` is a widget for rendering checkbox groups.\n * It is typically used to represent an array of enums.\n *\n * @param props - The `WidgetProps` for this component\n */\nfunction CheckboxesWidget({ id, disabled, options, value, autofocus = false, readonly, onChange, onBlur, onFocus, htmlName, }) {\n const { inline = false, enumOptions, enumDisabled, emptyValue } = options;\n const optionValueFormat = getOptionValueFormat(options);\n const checkboxesValues = Array.isArray(value) ? value : [value];\n const handleBlur = useCallback(({ target }) => onBlur(id, enumOptionValueDecoder(target?.value, enumOptions, optionValueFormat, emptyValue)), [onBlur, id, enumOptions, emptyValue, optionValueFormat]);\n const handleFocus = useCallback(({ target }) => onFocus(id, enumOptionValueDecoder(target?.value, enumOptions, optionValueFormat, emptyValue)), [onFocus, id, enumOptions, emptyValue, optionValueFormat]);\n return (_jsx(\"div\", { className: 'checkboxes', id: id, children: Array.isArray(enumOptions) &&\n enumOptions.map((option, index) => {\n const checked = enumOptionsIsSelected(option.value, checkboxesValues);\n const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.includes(option.value);\n const disabledCls = disabled || itemDisabled || readonly ? 'disabled' : '';\n const handleChange = (event) => {\n if (event.target.checked) {\n onChange(enumOptionsSelectValue(index, checkboxesValues, enumOptions));\n }\n else {\n onChange(enumOptionsDeselectValue(index, checkboxesValues, enumOptions));\n }\n };\n const checkbox = (_jsxs(\"span\", { children: [_jsx(\"input\", { type: 'checkbox', id: optionId(id, index), name: htmlName || id, checked: checked, value: enumOptionValueEncoder(option.value, index, optionValueFormat), disabled: disabled || itemDisabled || readonly, autoFocus: autofocus && index === 0, onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, \"aria-describedby\": ariaDescribedByIds(id) }), _jsx(\"span\", { children: option.label })] }));\n return inline ? (_jsx(\"label\", { className: `checkbox-inline ${disabledCls}`, children: checkbox }, String(option.value))) : (_jsx(\"div\", { className: `checkbox ${disabledCls}`, children: _jsx(\"label\", { children: checkbox }) }, String(option.value)));\n }) }));\n}\nexport default CheckboxesWidget;\n//# sourceMappingURL=CheckboxesWidget.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { ariaDescribedByIds, descriptionId, getTemplate, labelValue, schemaRequiresTrueValue, getUiOptions, } from '@rjsf/utils';\n/** The `CheckBoxWidget` is a widget for rendering boolean properties.\n * It is typically used to represent a boolean.\n *\n * @param props - The `WidgetProps` for this component\n */\nfunction CheckboxWidget({ schema, uiSchema, options, id, value, disabled, readonly, label, hideLabel, autofocus = false, onBlur, onFocus, onChange, registry, htmlName, required, }) {\n const DescriptionFieldTemplate = getTemplate('DescriptionFieldTemplate', registry, options);\n // Because an unchecked checkbox will cause html5 validation to fail, only add\n // the \"required\" attribute if the field value must be \"true\", due to the\n // \"const\" or \"enum\" keywords\n const trueValueRequired = schemaRequiresTrueValue(schema) && required;\n const handleChange = useCallback((event) => onChange(event.target.checked), [onChange]);\n const handleBlur = useCallback((event) => onBlur(id, event.target.checked), [onBlur, id]);\n const handleFocus = useCallback((event) => onFocus(id, event.target.checked), [onFocus, id]);\n const uiOptions = getUiOptions(uiSchema);\n const isCheckboxWidget = uiOptions.widget === 'checkbox';\n const description = isCheckboxWidget ? undefined : (options.description ?? schema.description);\n return (_jsxs(\"div\", { className: `checkbox ${disabled || readonly ? 'disabled' : ''}`, children: [!hideLabel && description && (_jsx(DescriptionFieldTemplate, { id: descriptionId(id), description: description, schema: schema, uiSchema: uiSchema, registry: registry })), _jsxs(\"label\", { children: [_jsx(\"input\", { type: 'checkbox', id: id, name: htmlName || id, checked: typeof value === 'undefined' ? false : value, required: required, disabled: disabled || readonly, autoFocus: autofocus, onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, \"aria-describedby\": ariaDescribedByIds(id) }), labelValue(_jsxs(\"span\", { children: [label, trueValueRequired && _jsx(\"span\", { className: 'required', children: \"*\" })] }), hideLabel)] })] }));\n}\nexport default CheckboxWidget;\n//# sourceMappingURL=CheckboxWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate } from '@rjsf/utils';\n/** The `ColorWidget` component uses the `BaseInputTemplate` changing the type to `color` and disables it when it is\n * either disabled or readonly.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function ColorWidget(props) {\n const { disabled, readonly, options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n return _jsx(BaseInputTemplate, { type: 'color', ...props, disabled: disabled || readonly });\n}\n//# sourceMappingURL=ColorWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate, localToUTC, utcToLocal } from '@rjsf/utils';\n/** The `DateTimeWidget` component uses the `BaseInputTemplate` changing the type to `datetime-local` and transforms\n * the value to/from utc using the appropriate utility functions.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function DateTimeWidget(props) {\n const { onChange, value, options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n return (_jsx(BaseInputTemplate, { type: 'datetime-local', ...props, value: utcToLocal(value), onChange: (newValue) => onChange(localToUTC(newValue)) }));\n}\n//# sourceMappingURL=DateTimeWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { getTemplate } from '@rjsf/utils';\n/** The `DateWidget` component uses the `BaseInputTemplate` changing the type to `date` and transforms\n * the value to undefined when it is falsy during the `onChange` handling.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function DateWidget(props) {\n const { onChange, options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n const handleChange = useCallback((value) => onChange(value || undefined), [onChange]);\n return _jsx(BaseInputTemplate, { type: 'date', ...props, onChange: handleChange });\n}\n//# sourceMappingURL=DateWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate } from '@rjsf/utils';\n/** The `EmailWidget` component uses the `BaseInputTemplate` changing the type to `email`.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function EmailWidget(props) {\n const { options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n return _jsx(BaseInputTemplate, { type: 'email', ...props });\n}\n//# sourceMappingURL=EmailWidget.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { getTemplate, TranslatableString, useFileWidgetProps } from '@rjsf/utils';\nimport { Markdown } from 'markdown-to-jsx/react';\nfunction FileInfoPreview({ fileInfo, registry, }) {\n const { translateString } = registry;\n const { dataURL, type, name } = fileInfo;\n if (!dataURL) {\n return null;\n }\n const previewLabel = translateString(TranslatableString.PreviewLabel);\n // If type is JPEG or PNG then show image preview.\n // Originally, any type of image was supported, but this was changed into a whitelist\n // since SVGs and animated GIFs are also images, which are generally considered a security risk.\n if (['image/jpeg', 'image/png'].includes(type)) {\n return _jsx(\"img\", { src: dataURL, alt: previewLabel, style: { maxWidth: '100%' }, className: 'file-preview' });\n }\n // otherwise, let users download file\n return (_jsxs(_Fragment, { children: [' ', _jsx(\"a\", { download: `preview-${name}`, href: dataURL, className: 'file-download', children: previewLabel })] }));\n}\nfunction FilesInfo({ filesInfo, registry, preview, onRemove, options, }) {\n if (filesInfo.length === 0) {\n return null;\n }\n const { translateString } = registry;\n const { RemoveButton } = getTemplate('ButtonTemplates', registry, options);\n return (_jsx(\"ul\", { className: 'file-info', children: filesInfo.map((fileInfo, key) => {\n const { name, size, type } = fileInfo;\n const handleRemove = () => onRemove(key);\n return (_jsxs(\"li\", { children: [_jsx(Markdown, { children: translateString(TranslatableString.FilesInfo, [name, type, String(size)]) }), preview && _jsx(FileInfoPreview, { fileInfo: fileInfo, registry: registry }), _jsx(RemoveButton, { onClick: handleRemove, registry: registry })] }, key));\n }) }));\n}\n/**\n * The `FileWidget` is a widget for rendering file upload fields.\n * It is typically used with a string property with data-url format.\n */\nfunction FileWidget(props) {\n const { disabled, readonly, required, multiple, onChange, value, options, registry } = props;\n const { filesInfo, handleChange, handleRemove } = useFileWidgetProps(value, onChange, multiple);\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n const handleOnChangeEvent = (event) => {\n if (event.target.files) {\n // handleChange is async; DOM event handlers are void-returning, so we intentionally don't await\n // oxlint-disable-next-line no-floating-promises, no-void\n void handleChange(event.target.files);\n }\n };\n return (_jsxs(\"div\", { children: [_jsx(BaseInputTemplate, { ...props, disabled: disabled || readonly, type: 'file', required: value ? false : required, onChangeOverride: handleOnChangeEvent, value: '', accept: options.accept ? String(options.accept) : undefined }), _jsx(FilesInfo, { filesInfo: filesInfo, onRemove: handleRemove, registry: registry, preview: options.filePreview, options: options })] }));\n}\nexport default FileWidget;\n//# sourceMappingURL=FileWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/** The `HiddenWidget` is a widget for rendering a hidden input field.\n * It is typically used by setting type to \"hidden\".\n *\n * @param props - The `WidgetProps` for this component\n */\nfunction HiddenWidget({ id, value, htmlName, }) {\n return _jsx(\"input\", { type: 'hidden', id: id, name: htmlName || id, value: typeof value === 'undefined' ? '' : value });\n}\nexport default HiddenWidget;\n//# sourceMappingURL=HiddenWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate } from '@rjsf/utils';\n/** The `PasswordWidget` component uses the `BaseInputTemplate` changing the type to `password`.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function PasswordWidget(props) {\n const { options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n return _jsx(BaseInputTemplate, { type: 'password', ...props });\n}\n//# sourceMappingURL=PasswordWidget.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { ariaDescribedByIds, enumOptionValueDecoder, enumOptionValueEncoder, enumOptionsIsSelected, getOptionValueFormat, optionId, } from '@rjsf/utils';\n/** The `RadioWidget` is a widget for rendering a radio group.\n * It is typically used with a string property constrained with enum options.\n *\n * @param props - The `WidgetProps` for this component\n */\nfunction RadioWidget({ options, value, required, disabled, readonly, autofocus = false, onBlur, onFocus, onChange, id, htmlName, }) {\n const { enumOptions, enumDisabled, inline, emptyValue } = options;\n const optionValueFormat = getOptionValueFormat(options);\n const handleBlur = useCallback(({ target }) => onBlur(id, enumOptionValueDecoder(target?.value, enumOptions, optionValueFormat, emptyValue)), [onBlur, enumOptions, emptyValue, id, optionValueFormat]);\n const handleFocus = useCallback(({ target }) => onFocus(id, enumOptionValueDecoder(target?.value, enumOptions, optionValueFormat, emptyValue)), [onFocus, enumOptions, emptyValue, id, optionValueFormat]);\n return (_jsx(\"div\", { className: 'field-radio-group', id: id, role: 'radiogroup', children: Array.isArray(enumOptions) &&\n enumOptions.map((option, i) => {\n const checked = enumOptionsIsSelected(option.value, value);\n const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.includes(option.value);\n const disabledCls = disabled || itemDisabled || readonly ? 'disabled' : '';\n const handleChange = () => onChange(option.value);\n const radio = (_jsxs(\"span\", { children: [_jsx(\"input\", { type: 'radio', id: optionId(id, i), checked: checked, name: htmlName || id, required: required, value: enumOptionValueEncoder(option.value, i, optionValueFormat), disabled: disabled || itemDisabled || readonly, autoFocus: autofocus && i === 0, onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, \"aria-describedby\": ariaDescribedByIds(id) }), _jsx(\"span\", { children: option.label })] }));\n return inline ? (_jsx(\"label\", { className: `radio-inline ${disabledCls}`, children: radio }, String(option.value))) : (_jsx(\"div\", { className: `radio ${disabledCls}`, children: _jsx(\"label\", { children: radio }) }, String(option.value)));\n }) }));\n}\nexport default RadioWidget;\n//# sourceMappingURL=RadioWidget.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/** The `RangeWidget` component uses the `BaseInputTemplate` changing the type to `range` and wrapping the result\n * in a div, with the value along side it.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function RangeWidget(props) {\n const { value, registry: { templates: { BaseInputTemplate }, }, } = props;\n return (_jsxs(\"div\", { className: 'field-range-wrapper', children: [_jsx(BaseInputTemplate, { type: 'range', ...props }), _jsx(\"span\", { className: 'range-view', children: value })] }));\n}\n//# sourceMappingURL=RangeWidget.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\n/** The `RatingWidget` component renders a star or heart rating input\n *\n * Features:\n * - Configurable number of stars/hearts (1-5) with default of 5\n * - Supports different shapes (star, heart)\n * - Supports minimum and maximum values from schema\n * - Handles required, disabled, and readonly states\n * - Provides focus and blur event handling for accessibility\n * - Uses Unicode characters for better visual representation\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function RatingWidget({ id, value, required, disabled, readonly, onChange, onFocus, onBlur, schema, options, htmlName, }) {\n const { stars = 5, shape = 'star' } = options;\n // Use schema.maximum if provided, otherwise use stars option (limited to 1-5)\n const numStars = schema.maximum ? Math.min(schema.maximum, 5) : Math.min(Math.max(stars, 1), 5);\n const min = schema.minimum || 0;\n /** Handles clicking on a star to set the rating */\n const handleStarClick = useCallback((starValue) => {\n if (!disabled && !readonly) {\n onChange(starValue);\n }\n }, [onChange, disabled, readonly]);\n /** Handles focus events for accessibility */\n const handleFocus = useCallback((event) => {\n if (onFocus) {\n // Get the star value from the data attribute\n const starValue = Number(event.target.dataset.value);\n onFocus(id, starValue);\n }\n }, [onFocus, id]);\n /** Handles blur events for accessibility */\n const handleBlur = useCallback((event) => {\n if (onBlur) {\n // Get the star value from the data attribute\n const starValue = Number(event.target.dataset.value);\n onBlur(id, starValue);\n }\n }, [onBlur, id]);\n // Get the appropriate Unicode character based on shape option\n const getSymbol = (isFilled) => {\n if (shape === 'heart') {\n return isFilled ? '♥' : '♡';\n }\n return isFilled ? '★' : '☆';\n };\n return (_jsxs(\"div\", { className: 'rating-widget', style: {\n display: 'inline-flex',\n fontSize: '1.5rem',\n cursor: disabled || readonly ? 'default' : 'pointer',\n }, children: [[...Array(numStars)].map((_, index) => {\n const starValue = min + index;\n const isFilled = starValue <= value;\n return (_jsx(\"span\", { onClick: () => handleStarClick(starValue), onKeyDown: (e) => (e.key === 'Enter' || e.key === ' ') && handleStarClick(starValue), onFocus: handleFocus, onBlur: handleBlur, \"data-value\": starValue, tabIndex: disabled || readonly ? -1 : 0, role: 'radio', \"aria-checked\": starValue === value, \"aria-label\": `${starValue} ${shape === 'heart' ? 'heart' : 'star'}${starValue === 1 ? '' : 's'}`, style: {\n color: isFilled ? '#FFD700' : '#ccc',\n padding: '0 0.2rem',\n transition: 'color 0.2s',\n userSelect: 'none',\n }, children: getSymbol(isFilled) }, index));\n }), _jsx(\"input\", { type: 'hidden', id: id, name: htmlName || id, value: value || '', required: required, disabled: disabled || readonly, \"aria-hidden\": 'true' })] }));\n}\n//# sourceMappingURL=RatingWidget.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { ariaDescribedByIds, enumOptionSelectedValue, enumOptionValueDecoder, enumOptionValueEncoder, getOptionValueFormat, logUnsupportedDefaultForEnum, SelectedOptionDescription, } from '@rjsf/utils';\nfunction getValue(event, multiple) {\n if (multiple) {\n return Array.from(event.target.options)\n .slice()\n .filter((o) => o.selected)\n .map((o) => o.value);\n }\n return event.target.value;\n}\n/** The `SelectWidget` is a widget for rendering dropdowns.\n * It is typically used with string properties constrained with enum options.\n *\n * @param props - The `WidgetProps` for this component\n */\nfunction SelectWidget({ schema, id, options, value, required, disabled, readonly, multiple = false, autofocus = false, onChange, onBlur, onFocus, placeholder, htmlName, registry, uiSchema, }) {\n const { enumOptions, enumDisabled, emptyValue: optEmptyVal } = options;\n const emptyValue = multiple ? [] : '';\n const optionValueFormat = getOptionValueFormat(options);\n const handleFocus = useCallback((event) => {\n const newValue = getValue(event, multiple);\n return onFocus(id, enumOptionValueDecoder(newValue, enumOptions, optionValueFormat, optEmptyVal));\n }, [onFocus, id, multiple, enumOptions, optEmptyVal, optionValueFormat]);\n const handleBlur = useCallback((event) => {\n const newValue = getValue(event, multiple);\n return onBlur(id, enumOptionValueDecoder(newValue, enumOptions, optionValueFormat, optEmptyVal));\n }, [onBlur, id, multiple, enumOptions, optEmptyVal, optionValueFormat]);\n const handleChange = useCallback((event) => {\n const newValue = getValue(event, multiple);\n return onChange(enumOptionValueDecoder(newValue, enumOptions, optionValueFormat, optEmptyVal));\n }, [onChange, multiple, enumOptions, optEmptyVal, optionValueFormat]);\n const selectValue = enumOptionSelectedValue(value, enumOptions, multiple, optionValueFormat, emptyValue);\n const showPlaceholderOption = !multiple && schema.default === undefined;\n logUnsupportedDefaultForEnum(id, schema, enumOptions, multiple);\n return (_jsxs(_Fragment, { children: [_jsx(SelectedOptionDescription, { id: id, multiple: multiple, options: options, registry: registry, uiSchema: uiSchema, value: value }), _jsxs(\"select\", { id: id, name: htmlName || id, multiple: multiple, className: 'form-control', value: selectValue, required: required, disabled: disabled || readonly, autoFocus: autofocus, onBlur: handleBlur, onFocus: handleFocus, onChange: handleChange, \"aria-describedby\": ariaDescribedByIds(id), children: [showPlaceholderOption && _jsx(\"option\", { value: '', children: placeholder }), Array.isArray(enumOptions) &&\n enumOptions.map(({ value: enumValue, label: enumLabel }, i) => {\n const isDisabled = enumDisabled && enumDisabled.includes(enumValue);\n return (_jsx(\"option\", { value: enumOptionValueEncoder(enumValue, i, optionValueFormat), disabled: isDisabled, children: enumLabel }, String(enumValue)));\n })] })] }));\n}\nexport default SelectWidget;\n//# sourceMappingURL=SelectWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { ariaDescribedByIds } from '@rjsf/utils';\n/** The `TextareaWidget` is a widget for rendering input fields as textarea.\n *\n * @param props - The `WidgetProps` for this component\n */\nfunction TextareaWidget({ id, options, placeholder, value, required, disabled, readonly, autofocus = false, onChange, onBlur, onFocus, htmlName, }) {\n const handleChange = useCallback(({ target: { value: newValue } }) => onChange(newValue === '' ? options.emptyValue : newValue), [onChange, options.emptyValue]);\n const handleBlur = useCallback(({ target }) => onBlur(id, target?.value), [onBlur, id]);\n const handleFocus = useCallback(({ target }) => onFocus(id, target?.value), [id, onFocus]);\n return (_jsx(\"textarea\", { id: id, name: htmlName || id, className: 'form-control', value: value || '', placeholder: placeholder, required: required, disabled: disabled, readOnly: readonly, autoFocus: autofocus, rows: options.rows, onBlur: handleBlur, onFocus: handleFocus, onChange: handleChange, \"aria-describedby\": ariaDescribedByIds(id) }));\n}\nexport default TextareaWidget;\n//# sourceMappingURL=TextareaWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate } from '@rjsf/utils';\n/** The `TextWidget` component uses the `BaseInputTemplate`.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function TextWidget(props) {\n const { options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n return _jsx(BaseInputTemplate, { ...props });\n}\n//# sourceMappingURL=TextWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { getTemplate } from '@rjsf/utils';\n/** The `TimeWidget` component uses the `BaseInputTemplate` changing the type to `time` and transforms\n * the value to undefined when it is falsy during the `onChange` handling.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function TimeWidget(props) {\n const { onChange, options, registry, schema, value } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n const hasSecondPrecision = typeof schema.multipleOf === 'number' && Number.isFinite(schema.multipleOf) && schema.multipleOf < 60;\n const handleChange = useCallback((newValue) => {\n if (!newValue) {\n onChange(undefined);\n }\n else if (hasSecondPrecision) {\n onChange(newValue);\n }\n else {\n onChange(`${newValue}:00`);\n }\n }, [hasSecondPrecision, onChange]);\n const displayValue = typeof value === 'string' && !hasSecondPrecision && /^\\d{2}:\\d{2}:00$/.test(value) ? value.slice(0, -3) : value;\n return _jsx(BaseInputTemplate, { type: 'time', ...props, value: displayValue, onChange: handleChange });\n}\n//# sourceMappingURL=TimeWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate } from '@rjsf/utils';\n/** The `UpDownWidget` component uses the `BaseInputTemplate` changing the type to `number`.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function UpDownWidget(props) {\n const { options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n return _jsx(BaseInputTemplate, { type: 'number', ...props });\n}\n//# sourceMappingURL=UpDownWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate } from '@rjsf/utils';\n/** The `URLWidget` component uses the `BaseInputTemplate` changing the type to `url`.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function URLWidget(props) {\n const { options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n return _jsx(BaseInputTemplate, { type: 'url', ...props });\n}\n//# sourceMappingURL=URLWidget.js.map","import AltDateTimeWidget from \"./AltDateTimeWidget.js\";\nimport AltDateWidget from \"./AltDateWidget.js\";\nimport CheckboxesWidget from \"./CheckboxesWidget.js\";\nimport CheckboxWidget from \"./CheckboxWidget.js\";\nimport ColorWidget from \"./ColorWidget.js\";\nimport DateTimeWidget from \"./DateTimeWidget.js\";\nimport DateWidget from \"./DateWidget.js\";\nimport EmailWidget from \"./EmailWidget.js\";\nimport FileWidget from \"./FileWidget.js\";\nimport HiddenWidget from \"./HiddenWidget.js\";\nimport PasswordWidget from \"./PasswordWidget.js\";\nimport RadioWidget from \"./RadioWidget.js\";\nimport RangeWidget from \"./RangeWidget.js\";\nimport RatingWidget from \"./RatingWidget.js\";\nimport SelectWidget from \"./SelectWidget.js\";\nimport TextareaWidget from \"./TextareaWidget.js\";\nimport TextWidget from \"./TextWidget.js\";\nimport TimeWidget from \"./TimeWidget.js\";\nimport UpDownWidget from \"./UpDownWidget.js\";\nimport URLWidget from \"./URLWidget.js\";\nfunction widgets() {\n return {\n AltDateWidget,\n AltDateTimeWidget,\n CheckboxWidget,\n CheckboxesWidget,\n ColorWidget,\n DateWidget,\n DateTimeWidget,\n EmailWidget,\n FileWidget,\n HiddenWidget,\n PasswordWidget,\n RadioWidget,\n RangeWidget,\n RatingWidget,\n SelectWidget,\n TextWidget,\n TextareaWidget,\n TimeWidget,\n UpDownWidget,\n URLWidget,\n };\n}\nexport default widgets;\n//# sourceMappingURL=index.js.map","import { DEFAULT_ID_PREFIX, DEFAULT_ID_SEPARATOR, englishStringTranslator } from '@rjsf/utils';\nimport fields from \"./components/fields/index.js\";\nimport templates from \"./components/templates/index.js\";\nimport widgets from \"./components/widgets/index.js\";\n/** The default registry consists of all the fields, templates and widgets provided in the core implementation,\n * plus an empty `rootSchema` and `formContext. We omit schemaUtils here because it cannot be defaulted without a\n * rootSchema and validator. It will be added into the computed registry later in the Form.\n */\nexport default function getDefaultRegistry() {\n return {\n fields: fields(),\n templates: templates(),\n widgets: widgets(),\n rootSchema: {},\n formContext: {},\n translateString: englishStringTranslator,\n globalFormOptions: {\n idPrefix: DEFAULT_ID_PREFIX,\n idSeparator: DEFAULT_ID_SEPARATOR,\n useFallbackUiForUnsupportedType: false,\n },\n };\n}\n//# sourceMappingURL=getDefaultRegistry.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Component, createRef } from 'react';\nimport { getByPath, setByPath, toPath, unsetByPath, createSchemaUtils, deepEquals, ErrorSchemaBuilder, getChangedFields, getTemplate, getUiOptions, hashObject, isObject, mergeObjects, shouldRender, SUBMIT_BTN_OPTIONS_KEY, toErrorList, toFieldPathId, UI_DEFINITIONS_KEY, UI_GLOBAL_OPTIONS_KEY, UI_OPTIONS_KEY, validationDataMerge, DEFAULT_ID_SEPARATOR, DEFAULT_ID_PREFIX, ERRORS_KEY, ID_KEY, getUsedFormData, getFieldNames, ANY_OF_KEY, ONE_OF_KEY, } from '@rjsf/utils';\nimport getDefaultRegistry from \"../getDefaultRegistry.js\";\nimport { ADDITIONAL_PROPERTY_KEY_REMOVE, IS_RESET } from \"./constants.js\";\n/** Converts the full `FormState` into the `IChangeEvent` version by picking out the public values\n *\n * @param state - The state of the form\n * @param status - The status provided by the onSubmit\n * @returns - The `IChangeEvent` for the state\n */\nfunction toIChangeEvent(state, status) {\n const { schema, uiSchema, fieldPathId, schemaUtils, formData, edit, errors, errorSchema } = state;\n return {\n schema,\n uiSchema,\n fieldPathId,\n schemaUtils,\n formData,\n edit,\n errors,\n errorSchema,\n ...(status !== undefined && { status }),\n };\n}\n/** The `Form` component renders the outer form and all the fields defined in the `schema` */\nexport default class Form extends Component {\n /** The ref used to hold the `form` element, this needs to be `any` because `tagName` or `_internalFormWrapper` can\n * provide any possible type here\n */\n formElement;\n /** The list of pending changes\n */\n pendingChanges = [];\n /** Flag to track when we're processing a user-initiated field change.\n * This prevents componentDidUpdate from reverting oneOf/anyOf option switches.\n */\n isProcessingUserChange = false;\n /** When the `extraErrors` prop changes, re-merges `schemaValidationErrors` + `extraErrors` + `customErrors` into\n * state before render, ensuring the updated errors are visible immediately in a single render cycle.\n *\n * @param props - The current props\n * @param state - The current state\n * @returns Partial state with re-merged errors if `extraErrors` changed, or `null` if no update is needed\n */\n static getDerivedStateFromProps(props, state) {\n if (props.extraErrors !== state.prevExtraErrors) {\n const baseErrors = {\n errors: state.schemaValidationErrors || [],\n errorSchema: state.schemaValidationErrorSchema || {},\n };\n let { errors, errorSchema } = baseErrors;\n if (props.extraErrors) {\n ({ errors, errorSchema } = validationDataMerge(baseErrors, props.extraErrors));\n }\n if (state.customErrors) {\n ({ errors, errorSchema } = validationDataMerge({ errors, errorSchema }, state.customErrors.ErrorSchema, true));\n }\n return { prevExtraErrors: props.extraErrors, errors, errorSchema };\n }\n return null;\n }\n /** Constructs the `Form` from the `props`. Will setup the initial state from the props. It will also call the\n * `onChange` handler if the initially provided `formData` is modified to add missing default values as part of the\n * state construction.\n *\n * @param props - The initial props for the `Form`\n */\n constructor(props) {\n super(props);\n if (!props.validator) {\n throw new Error('A validator is required for Form functionality to work');\n }\n const { formData: propsFormData, initialFormData, onChange } = props;\n const formData = propsFormData ?? initialFormData;\n this.state = {\n ...this.getStateFromProps(props, formData, undefined, undefined, undefined, true),\n prevExtraErrors: props.extraErrors,\n };\n if (onChange && !deepEquals(this.state.formData, formData)) {\n onChange(toIChangeEvent(this.state));\n }\n this.formElement = createRef();\n }\n /**\n * `getSnapshotBeforeUpdate` is a React lifecycle method that is invoked right before the most recently rendered\n * output is committed to the DOM. It enables your component to capture current values (e.g., scroll position) before\n * they are potentially changed.\n *\n * In this case, it checks if the props have changed since the last render. If they have, it computes the next state\n * of the component using `getStateFromProps` method and returns it along with a `shouldUpdate` flag set to `true` IF\n * the `nextState` and `prevState` are different, otherwise `false`. This ensures that we have the most up-to-date\n * state ready to be applied in `componentDidUpdate`.\n *\n * If `formData` hasn't changed, it simply returns an object with `shouldUpdate` set to `false`, indicating that a\n * state update is not necessary.\n *\n * @param prevProps - The previous set of props before the update.\n * @param prevState - The previous state before the update.\n * @returns Either an object containing the next state and a flag indicating that an update should occur, or an object\n * with a flag indicating that an update is not necessary.\n */\n getSnapshotBeforeUpdate(prevProps, prevState) {\n if (!deepEquals(this.props, prevProps)) {\n // Compare the previous props formData against the current props formData\n const formDataChangedFields = getChangedFields(this.props.formData, prevProps.formData);\n // Compare the current props formData against the current state's formData to determine if the new props were the\n // result of the onChange from the existing state formData\n const stateDataChangedFields = getChangedFields(this.props.formData, this.state.formData);\n const isSchemaChanged = !deepEquals(prevProps.schema, this.props.schema);\n // When formData is not an object, getChangedFields returns an empty array.\n // In this case, deepEquals is most needed to check again.\n const isFormDataChanged = formDataChangedFields.length > 0 || !deepEquals(prevProps.formData, this.props.formData);\n const isStateDataChanged = stateDataChangedFields.length > 0 || !deepEquals(this.state.formData, this.props.formData);\n const nextState = this.getStateFromProps(this.props, this.props.formData, \n // If the `schema` has changed, we need to update the retrieved schema.\n // Or if the `formData` changes, for example in the case of a schema with dependencies that need to\n // match one of the subSchemas, the retrieved schema must be updated.\n isSchemaChanged || isFormDataChanged ? undefined : this.state.retrievedSchema, isSchemaChanged, \n // Only the error clearing needs the path of each changed field, and it runs only when live validation does\n // not, so the walk that produces them is left for `getStateFromProps` to ask for\n () => getChangedFields(this.props.formData, prevProps.formData, true), \n // Skip live validation for this request if no form data has changed from the last state\n !isStateDataChanged);\n const shouldUpdate = !deepEquals(nextState, prevState);\n return { nextState, shouldUpdate };\n }\n return { shouldUpdate: false };\n }\n /**\n * `componentDidUpdate` is a React lifecycle method that is invoked immediately after updating occurs. This method is\n * not called for the initial render.\n *\n * Here, it checks if an update is necessary based on the `shouldUpdate` flag received from `getSnapshotBeforeUpdate`.\n * If an update is required, it applies the next state and, if needed, triggers the `onChange` handler to inform about\n * changes.\n *\n * @param _ - The previous set of props.\n * @param prevState - The previous state of the component before the update.\n * @param snapshot - The value returned from `getSnapshotBeforeUpdate`.\n */\n componentDidUpdate(_, prevState, snapshot) {\n if (snapshot.shouldUpdate) {\n const { nextState } = snapshot;\n // Prevent oneOf/anyOf option switches from reverting when getStateFromProps\n // re-evaluates and produces stale formData.\n const nextStateDiffersFromProps = !deepEquals(nextState.formData, this.props.formData);\n const wasProcessingUserChange = this.isProcessingUserChange;\n this.isProcessingUserChange = false;\n if (wasProcessingUserChange && nextStateDiffersFromProps) {\n // Skip - the user's option switch is already applied via processPendingChange\n return;\n }\n if (nextStateDiffersFromProps && !deepEquals(nextState.formData, prevState.formData) && this.props.onChange) {\n this.props.onChange(toIChangeEvent(nextState));\n }\n // oxlint-disable-next-line react/no-did-update-set-state -- guarded to prevent infinite loop\n this.setState(nextState);\n }\n }\n /** Extracts the updated state from the given `props` and `inputFormData`. As part of this process, the\n * `inputFormData` is first processed to add any missing required defaults. After that, the data is run through the\n * validation process IF required by the `props`.\n *\n * @param props - The props passed to the `Form`\n * @param inputFormData - The new or current data for the `Form`\n * @param retrievedSchema - An expanded schema, if not provided, it will be retrieved from the `schema` and `formData`.\n * @param [isSchemaChanged=false] - A flag indicating whether the schema has changed.\n * @param [getFormDataChangedFields=() => []] - Optional function returning the path of each `formData` field that\n * changed, only called when those paths are needed, which is when live validation is not going to run\n * @param [skipLiveValidate=false] - Optional flag, if true, means that we are not running live validation\n * @param [shouldSanitize=false] - Optional flag, if true, means that we should attempt to sanitize formData\n * @returns - The new state for the `Form`\n */\n getStateFromProps(props, inputFormData, retrievedSchema, isSchemaChanged = false, getFormDataChangedFields = () => [], skipLiveValidate = false, shouldSanitize = false) {\n const state = this.state || {};\n const schema = 'schema' in props ? props.schema : this.props.schema;\n const validator = 'validator' in props ? props.validator : this.props.validator;\n const uiSchema = ('uiSchema' in props ? props.uiSchema : this.props.uiSchema) || {};\n const isUncontrolled = props.formData === undefined && this.props.formData === undefined;\n const edit = typeof inputFormData !== 'undefined';\n const liveValidate = 'liveValidate' in props ? props.liveValidate : this.props.liveValidate;\n // oxlint-disable-next-line typescript/no-deprecated\n const mustValidate = edit && !props.noValidate && liveValidate;\n const experimental_defaultFormStateBehavior = 'experimental_defaultFormStateBehavior' in props\n ? props.experimental_defaultFormStateBehavior\n : this.props.experimental_defaultFormStateBehavior;\n const experimental_customMergeAllOf = 'experimental_customMergeAllOf' in props\n ? props.experimental_customMergeAllOf\n : this.props.experimental_customMergeAllOf;\n let { schemaUtils } = state;\n if (!schemaUtils ||\n schemaUtils.doesSchemaUtilsDiffer(validator, schema, experimental_defaultFormStateBehavior, experimental_customMergeAllOf)) {\n schemaUtils = createSchemaUtils(validator, schema, experimental_defaultFormStateBehavior, experimental_customMergeAllOf);\n }\n const rootSchema = schemaUtils.getRootSchema();\n // Compute the formData for getDefaultFormState() function based on the inputFormData, isUncontrolled and state\n let defaultsFormData = inputFormData;\n if (inputFormData === IS_RESET) {\n defaultsFormData = undefined;\n }\n else if (inputFormData === undefined && isUncontrolled) {\n defaultsFormData = state.formData;\n }\n let formData;\n let computedRetrievedSchema;\n let wasSanitized = false;\n const preventInfiniteSanitize = [];\n do {\n formData = schemaUtils.getDefaultFormState(rootSchema, defaultsFormData, false, state.initialDefaultsGenerated);\n // Only hash when sanitizing, wrapping `formData` in an object to deal with a scalar/undefined value\n const formHash = shouldSanitize ? hashObject({ formData }) : '';\n computedRetrievedSchema = this.updateRetrievedSchema(retrievedSchema ?? schemaUtils.retrieveSchema(rootSchema, formData));\n if (shouldSanitize &&\n !preventInfiniteSanitize.includes(formHash) &&\n !deepEquals(computedRetrievedSchema, state.retrievedSchema)) {\n // Sanitize the form data if shouldSanitize is true, we haven't already processed this same formData AND\n // we have a different retrieved schema from when we last ran the state\n const sanitizedFormData = schemaUtils.sanitizeDataForNewSchema(computedRetrievedSchema, state.retrievedSchema, formData);\n wasSanitized = !deepEquals(sanitizedFormData, formData);\n if (wasSanitized) {\n // Update both the formData AND defaultsFormData due to the sanitize so the loop works with the new data\n formData = sanitizedFormData;\n defaultsFormData = sanitizedFormData;\n const sanitizedFormHash = hashObject({ formData: sanitizedFormData });\n // If we've seen the sanitized data before, we are done\n wasSanitized = !preventInfiniteSanitize.includes(sanitizedFormHash);\n preventInfiniteSanitize.push(sanitizedFormHash);\n }\n preventInfiniteSanitize.push(formHash);\n }\n else {\n wasSanitized = false;\n }\n } while (wasSanitized);\n const getCurrentErrors = () => {\n // If the `props.noValidate` option is set or the schema has changed, we reset the error state.\n // oxlint-disable-next-line typescript/no-deprecated\n if (props.noValidate || isSchemaChanged) {\n return { errors: [], errorSchema: {} };\n }\n if (!props.liveValidate) {\n return {\n errors: state.schemaValidationErrors || [],\n errorSchema: state.schemaValidationErrorSchema || {},\n };\n }\n return {\n errors: state.errors || [],\n errorSchema: state.errorSchema || {},\n };\n };\n let errors;\n let errorSchema;\n let { schemaValidationErrors, schemaValidationErrorSchema } = state;\n // If we are skipping live validate, it means that the state has already been updated with live validation errors\n if (mustValidate && !skipLiveValidate) {\n const liveValidation = this.liveValidate(rootSchema, schemaUtils, state.errorSchema, formData, undefined, state.customErrors, retrievedSchema, \n // If retrievedSchema is undefined which means the schema or formData has changed, we do not merge state.\n // Else in the case where it hasn't changed,\n retrievedSchema !== undefined);\n errors = liveValidation.errors;\n errorSchema = liveValidation.errorSchema;\n schemaValidationErrors = liveValidation.schemaValidationErrors;\n schemaValidationErrorSchema = liveValidation.schemaValidationErrorSchema;\n }\n else {\n const currentErrors = getCurrentErrors();\n errors = currentErrors.errors;\n errorSchema = currentErrors.errorSchema;\n // We only update the error schema for changed fields if mustValidate is false\n if (!mustValidate) {\n const formDataChangedFields = getFormDataChangedFields();\n if (formDataChangedFields.length > 0) {\n // `formDataChangedFields` carries the path of each field that changed, so clearing has to follow that path\n // instead of dropping the whole branch it starts in. The path is split with `toPath()`, the same way\n // `toErrorSchema()` splits a validation error property, so the two address the same entry. Intermediate\n // objects are forced so the numeric segment of an array item stays an object key, which is how an\n // `ErrorSchema` addresses array items.\n const newErrorSchema = formDataChangedFields.reduce((acc, path) => {\n const pathOfField = toPath(path);\n // Every container holding the field changed along with it, so an error of their own, such as the\n // `uniqueItems` of the array the field sits in, is cleared too. Only their own errors go: the other\n // fields they hold did not change and keep theirs.\n for (let i = 1; i < pathOfField.length; i++) {\n setByPath(acc, [...pathOfField.slice(0, i), ERRORS_KEY], undefined, true);\n }\n return setByPath(acc, pathOfField, undefined, true);\n }, {});\n schemaValidationErrorSchema = mergeObjects(currentErrors.errorSchema, newErrorSchema, 'preventDuplicates');\n errorSchema = schemaValidationErrorSchema;\n }\n }\n const mergedErrors = Form.mergeErrors({ errorSchema, errors }, props.extraErrors, state.customErrors);\n errors = mergedErrors.errors;\n errorSchema = mergedErrors.errorSchema;\n }\n // Only store a new registry when the props cause a different one to be created\n const newRegistry = Form.getRegistry(props, rootSchema, schemaUtils);\n const registry = deepEquals(state.registry, newRegistry) ? state.registry : newRegistry;\n // Only compute a new `fieldPathId` when the `idPrefix` is different than the existing fieldPathId's ID_KEY\n const fieldPathId = state.fieldPathId && state.fieldPathId?.[ID_KEY] === registry.globalFormOptions.idPrefix\n ? state.fieldPathId\n : toFieldPathId('', registry.globalFormOptions);\n const nextState = {\n schemaUtils,\n schema: rootSchema,\n uiSchema,\n fieldPathId,\n formData,\n edit,\n errors,\n errorSchema,\n schemaValidationErrors,\n schemaValidationErrorSchema,\n retrievedSchema: computedRetrievedSchema,\n initialDefaultsGenerated: true,\n registry,\n };\n return nextState;\n }\n /** React lifecycle method that is used to determine whether component should be updated.\n *\n * @param nextProps - The next version of the props\n * @param nextState - The next version of the state\n * @returns - True if the component should be updated, false otherwise\n */\n shouldComponentUpdate(nextProps, nextState) {\n const { experimental_componentUpdateStrategy = 'customDeep' } = this.props;\n return shouldRender(this, nextProps, nextState, experimental_componentUpdateStrategy);\n }\n /** Validates the `formData` against the `schema` using the `altSchemaUtils` (if provided otherwise it uses the\n * `schemaUtils` in the state), returning the results.\n *\n * @param formData - The new form data to validate\n * @param schema - The schema used to validate against\n * @param [altSchemaUtils] - The alternate schemaUtils to use for validation\n * @param [retrievedSchema] - An optionally retrieved schema for per\n */\n validate(formData, schema = this.state.schema, altSchemaUtils, retrievedSchema) {\n const schemaUtils = altSchemaUtils || this.state.schemaUtils;\n const { customValidate, transformErrors, uiSchema } = this.props;\n // When a pre-resolved schema is provided (e.g., from live validation), use it directly.\n // Otherwise validate against the original schema so AJV sees the full constraint set.\n const validationSchema = retrievedSchema ?? schema;\n // JSON.stringify drops keys with `undefined` values; JSON.parse on the result gives AJV a clean\n // object that avoids spurious type errors for `type: \"string\"` fields that were cleared (#4518).\n const validationFormData = formData ? JSON.parse(JSON.stringify(formData)) : undefined;\n return schemaUtils\n .getValidator()\n .validateFormData(validationFormData, validationSchema, customValidate, transformErrors, uiSchema);\n }\n /** Renders any errors contained in the `state` in using the `ErrorList`, if not disabled by `showErrorList`. */\n renderErrors(registry) {\n const { errors, errorSchema, schema, uiSchema } = this.state;\n const options = getUiOptions(uiSchema);\n const ErrorListTemplate = getTemplate('ErrorListTemplate', registry, options);\n if (errors?.length) {\n return (_jsx(ErrorListTemplate, { errors: errors, errorSchema: errorSchema || {}, schema: schema, uiSchema: uiSchema, registry: registry }));\n }\n return null;\n }\n /** Merges any `extraErrors` or `customErrors` into the given `schemaValidation` object, returning the result\n *\n * @param schemaValidation - The `ValidationData` object into which additional errors are merged\n * @param [extraErrors] - The extra errors from the props\n * @param [customErrors] - The customErrors from custom components\n * @return - The `extraErrors` and `customErrors` merged into the `schemaValidation`\n * @private\n */\n static mergeErrors(schemaValidation, extraErrors, customErrors) {\n let { errorSchema, errors } = schemaValidation;\n if (extraErrors) {\n const merged = validationDataMerge(schemaValidation, extraErrors);\n errorSchema = merged.errorSchema;\n errors = merged.errors;\n }\n if (customErrors) {\n const merged = validationDataMerge({ errors, errorSchema }, customErrors.ErrorSchema, true);\n errorSchema = merged.errorSchema;\n errors = merged.errors;\n }\n return { errors, errorSchema };\n }\n /** Performs live validation and then updates and returns the errors and error schemas by potentially merging in\n * `extraErrors` and `customErrors`.\n *\n * @param rootSchema - The `rootSchema` from the state\n * @param schemaUtils - The `SchemaUtilsType` from the state\n * @param originalErrorSchema - The original `ErrorSchema` from the state\n * @param [formData] - The new form data to validate\n * @param [extraErrors] - The extra errors from the props\n * @param [customErrors] - The customErrors from custom components\n * @param [retrievedSchema] - An expanded schema, if not provided, it will be retrieved from the `schema` and `formData`\n * @param [mergeIntoOriginalErrorSchema=false] - Optional flag indicating whether we merge into original schema\n * @returns - An object containing `errorSchema`, `errors`, `schemaValidationErrors` and `schemaValidationErrorSchema`\n * @private\n */\n liveValidate(rootSchema, schemaUtils, originalErrorSchema, formData, extraErrors, customErrors, retrievedSchema, mergeIntoOriginalErrorSchema = false) {\n const schemaValidation = this.validate(formData, rootSchema, schemaUtils, retrievedSchema);\n const { errors } = schemaValidation;\n let { errorSchema } = schemaValidation;\n // We merge 'originalErrorSchema' with 'schemaValidation.errorSchema.'; This done to display the raised field error.\n if (mergeIntoOriginalErrorSchema) {\n errorSchema = mergeObjects(originalErrorSchema, schemaValidation.errorSchema, 'preventDuplicates');\n }\n const schemaValidationErrors = errors;\n const schemaValidationErrorSchema = errorSchema;\n const mergedErrors = Form.mergeErrors({ errorSchema, errors }, extraErrors, customErrors);\n return { ...mergedErrors, schemaValidationErrors, schemaValidationErrorSchema };\n }\n /** Returns the `formData` with only the elements specified in the `fields` list\n *\n * @param formData - The data for the `Form`\n * @param fields - The fields to keep while filtering\n * @deprecated - To be removed as an exported `Form` function in a future release; there isn't a planned replacement\n */\n // oxlint-disable-next-line class-methods-use-this, typescript/no-deprecated\n getUsedFormData = (formData, fields) => getUsedFormData(formData, fields);\n /** Returns the list of field names from inspecting the `pathSchema` as well as using the `formData`\n *\n * @param pathSchema - The `PathSchema` object for the form\n * @param [formData] - The form data to use while checking for empty objects/arrays\n * @deprecated - To be removed as an exported `Form` function in a future release; there isn't a planned replacement\n */\n // oxlint-disable-next-line class-methods-use-this, typescript/no-deprecated\n getFieldNames = (pathSchema, formData) => getFieldNames(pathSchema, formData);\n /** Returns the `formData` after filtering to remove any extra data not in a form field\n *\n * @param formData - The data for the `Form`\n * @returns The `formData` after omitting extra data\n * @deprecated - To be removed as an exported `Form` function in a future release, use `SchemaUtils.omitExtraData`\n * instead.\n */\n omitExtraData = (formData) => {\n const { schema, schemaUtils } = this.state;\n return schemaUtils.omitExtraData(schema, formData);\n };\n /** Allows a user to set a value for the provided `fieldPath`, which must be either a dotted path to the field OR a\n * `FieldPathList`. To set the root element, used either `''` or `[]` for the path. Passing undefined will clear the\n * value in the field.\n *\n * @param fieldPath - Either a dotted path to the field or the `FieldPathList` to the field\n * @param [newValue] - The new value for the field\n */\n setFieldValue = (fieldPath, newValue) => {\n const { registry } = this.state;\n const path = Array.isArray(fieldPath) ? fieldPath : fieldPath.split('.');\n const fieldPathId = toFieldPathId('', registry.globalFormOptions, path);\n this.onChange(newValue, path, undefined, fieldPathId[ID_KEY]);\n };\n /** Pushes the given change information into the `pendingChanges` array and then calls `processPendingChanges()` if\n * the array only contains a single pending change.\n *\n * @param newValue - The new form data from a change to a field\n * @param path - The path to the change into which to set the formData\n * @param [newErrorSchema] - The new `ErrorSchema` based on the field change\n * @param [id] - The id of the field that caused the change\n */\n onChange = (newValue, path, newErrorSchema, id) => {\n this.pendingChanges.push({ newValue, path, newErrorSchema, id });\n if (this.pendingChanges.length === 1) {\n this.processPendingChange();\n }\n };\n /** Function to handle changes made to a field in the `Form`. This handler gets the first change from the\n * `pendingChanges` list, containing the `newValue` for the `formData` and the `path` at which the `newValue` is to be\n * updated, along with a new, optional `ErrorSchema` for that same `path` and potentially the `id` of the field being\n * changed. It will first update the `formData` with any missing default fields and then, if `omitExtraData` and\n * `liveOmit` are turned on, the `formData` will be filtered to remove any extra data not in a form field. Then, the\n * resulting `formData` will be validated if required. The state will be updated with the new updated (potentially\n * filtered) `formData`, any errors that resulted from validation. Finally the `onChange` callback will be called, if\n * specified, with the updated state and the `processPendingChange()` function is called again.\n */\n processPendingChange() {\n if (this.pendingChanges.length === 0) {\n return;\n }\n // Mark that we're processing a user-initiated change.\n // This prevents componentDidUpdate from reverting oneOf/anyOf option switches.\n this.isProcessingUserChange = true;\n const { newValue, path, id } = this.pendingChanges[0];\n const { newErrorSchema } = this.pendingChanges[0];\n // oxlint-disable-next-line typescript/no-deprecated\n const { extraErrors, omitExtraData, liveOmit, noValidate, liveValidate, onChange, disabled, readonly } = this.props;\n const { formData: oldFormData, schemaUtils, schema, fieldPathId, schemaValidationErrorSchema, errors } = this.state;\n let { customErrors, retrievedSchema } = this.state;\n // Use the un-merged AJV-only schema as the base for re-merging extraErrors. Mirrors the\n // pattern in getStateFromProps/getDerivedStateFromProps and avoids the duplication that\n // happened when state.errorSchema (already containing merged extraErrors) was passed in.\n let mergeBaseErrorSchema = schemaValidationErrorSchema;\n const rootPathId = fieldPathId.path[0] || '';\n const isRootPath = !path || path.length === 0 || (path.length === 1 && path[0] === rootPathId);\n let formData = isRootPath ? newValue : structuredClone(oldFormData);\n // When switching from null to an object option in oneOf, MultiSchemaField sends\n // an object with property names but undefined values (e.g., {types: undefined, content: undefined}).\n // In this case, pass undefined to getStateFromProps to trigger fresh default computation.\n // Only do this when the previous formData was null/undefined (switching FROM null).\n const hasOnlyUndefinedValues = isObject(formData) &&\n Object.keys(formData).length > 0 &&\n Object.values(formData).every((v) => v === undefined);\n const wasPreviouslyNull = oldFormData === null || oldFormData === undefined;\n const inputForDefaults = hasOnlyUndefinedValues && wasPreviouslyNull ? undefined : formData;\n if (isObject(formData) || Array.isArray(formData)) {\n // Tracks if the user cleared a plain (non-oneOf/anyOf) leaf field.\n // The key is removed twice: once before getStateFromProps so inputForDefaults\n // reflects an empty field for conditional schema resolution, and once after so\n // the user's clear overrides any schema default getStateFromProps re-applied (#5125)\n // and AJV never receives { key: undefined } for type:\"string\" fields (#4518).\n let plainLeafWasCleared = false;\n if (newValue === ADDITIONAL_PROPERTY_KEY_REMOVE) {\n // For additional properties, this key was explicitly removed, so unset it\n unsetByPath(formData, path);\n }\n else if (!isRootPath) {\n // Set the new value at its path in the form data.\n let valueForPath = newValue;\n if (newValue === undefined) {\n const lastSegment = path[path.length - 1];\n if (typeof lastSegment === 'number') {\n // Array items: match ArrayField `handleChange` — AJV needs `null`, not undefined.\n valueForPath = null;\n }\n else {\n const { field } = schemaUtils.findFieldInSchema(schema, path, oldFormData);\n const leaf = field;\n const isOneOfOrAnyOfLeaf = leaf && (ONE_OF_KEY in leaf || ANY_OF_KEY in leaf);\n // oneOf/anyOf and unresolved leaves keep `undefined` so mergeDefaults doesn't\n // re-apply a branch default when the user clears the widget.\n // Plain resolved leaves use plainLeafWasCleared instead (see below).\n if (!isOneOfOrAnyOfLeaf && leaf !== undefined) {\n plainLeafWasCleared = true;\n }\n }\n }\n if (plainLeafWasCleared) {\n setByPath(formData, path, undefined);\n }\n else {\n setByPath(formData, path, valueForPath);\n }\n }\n const shouldSanitize = retrievedSchema && !isRootPath && !isObject(newValue) && !Array.isArray(newValue) && !disabled && !readonly;\n // Skip live validation here; it runs later in this function.\n const newState = this.getStateFromProps(this.props, inputForDefaults, undefined, undefined, undefined, true, shouldSanitize);\n formData = newState.formData;\n retrievedSchema = newState.retrievedSchema;\n // Re-set to undefined after merging defaults so the user's clear is preserved in\n // state (#5125 regression: without this, clearing a second field re-applies the\n // default to previously-cleared fields). The undefined key is stripped from the\n // formData copy passed to AJV via JSON.parse(JSON.stringify(...)) so the validator never\n // sees { [key]: undefined } for type:\"string\" or patternProperties fields (#4518).\n if (plainLeafWasCleared && formData) {\n setByPath(formData, path, undefined);\n }\n }\n const mustValidate = !noValidate && (liveValidate === true || liveValidate === 'onChange');\n let state = { formData, retrievedSchema };\n let newFormData = formData;\n if (omitExtraData === true && (liveOmit === true || liveOmit === 'onChange')) {\n // oxlint-disable-next-line typescript/no-deprecated\n newFormData = this.omitExtraData(formData);\n state = { ...state, formData: newFormData };\n }\n if (newErrorSchema) {\n // First check to see if there is an existing validation error on this path...\n const oldValidationError = !isRootPath\n ? getByPath(schemaValidationErrorSchema, path)\n : schemaValidationErrorSchema;\n // If there is an old validation error for this path, assume we are updating it directly\n if (oldValidationError && Object.keys(oldValidationError).length > 0) {\n // Apply the user-supplied newErrorSchema onto a clone of the AJV-only base, so that\n // mergeErrors below sees the user's error at this path without mutating shared state.\n if (!isRootPath) {\n mergeBaseErrorSchema = structuredClone(schemaValidationErrorSchema);\n // An `ErrorSchema` nests plain objects even at numeric segments, so never auto-vivify arrays\n setByPath(mergeBaseErrorSchema, path, newErrorSchema, true);\n }\n else {\n mergeBaseErrorSchema = newErrorSchema;\n }\n }\n else {\n if (!customErrors) {\n customErrors = new ErrorSchemaBuilder();\n }\n if (isRootPath) {\n const pathErrors = newErrorSchema[ERRORS_KEY];\n if (pathErrors) {\n // only set errors when there are some\n customErrors.setErrors(pathErrors);\n }\n }\n else {\n // An `ErrorSchema` nests plain objects even at numeric segments, so never auto-vivify arrays\n setByPath(customErrors.ErrorSchema, path, newErrorSchema, true);\n }\n }\n }\n else if (customErrors && getByPath(customErrors.ErrorSchema, [...path, ERRORS_KEY])) {\n // If we have custom errors and the path has an error, then we need to clear it\n customErrors.clearErrors(path);\n }\n // If there are pending changes in the queue, skip live validation since it will happen with the last change\n if (mustValidate && this.pendingChanges.length === 1) {\n const liveValidation = this.liveValidate(schema, schemaUtils, mergeBaseErrorSchema, newFormData, extraErrors, customErrors, retrievedSchema);\n state = { ...state, formData: newFormData, ...liveValidation, customErrors };\n }\n else if (!noValidate && newErrorSchema) {\n // Merging 'newErrorSchema' into 'errorSchema' to display the custom raised errors.\n const mergedErrors = Form.mergeErrors({ errorSchema: mergeBaseErrorSchema, errors }, extraErrors, customErrors);\n state = { ...state, formData: newFormData, ...mergedErrors, customErrors };\n }\n this.setState(state, () => {\n if (onChange) {\n onChange(toIChangeEvent({ ...this.state, ...state }), id);\n }\n // Now remove the change we just completed and call this again\n this.pendingChanges.shift();\n this.processPendingChange();\n });\n }\n /**\n * If the retrievedSchema has changed the new retrievedSchema is returned.\n * Otherwise, the old retrievedSchema is returned to persist reference.\n * - This ensures that AJV retrieves the schema from the cache when it has not changed,\n * avoiding the performance cost of recompiling the schema.\n *\n * @param retrievedSchema The new retrieved schema.\n * @returns The new retrieved schema if it has changed, else the old retrieved schema.\n */\n updateRetrievedSchema(retrievedSchema) {\n const isTheSame = deepEquals(retrievedSchema, this.state?.retrievedSchema);\n return isTheSame ? this.state.retrievedSchema : retrievedSchema;\n }\n /**\n * Callback function to handle reset form data.\n * - Reset all fields with default values.\n * - Reset validations and errors\n *\n */\n reset = () => {\n // Cast the IS_RESET symbol to T to avoid type issues, we use this symbol to detect reset mode\n const { formData: propsFormData, initialFormData = IS_RESET, onChange } = this.props;\n const newState = this.getStateFromProps(this.props, propsFormData ?? initialFormData, undefined, undefined, undefined, true);\n const newFormData = newState.formData;\n const state = {\n formData: newFormData,\n errorSchema: {},\n errors: [],\n schemaValidationErrors: [],\n schemaValidationErrorSchema: {},\n initialDefaultsGenerated: false,\n customErrors: undefined,\n };\n this.setState(state, () => onChange?.(toIChangeEvent({ ...this.state, ...state })));\n };\n /** Callback function to handle when a field on the form is blurred. Calls the `onBlur` callback for the `Form` if it\n * was provided. Also runs any live validation and/or live omit operations if the flags indicate they should happen\n * during `onBlur`.\n *\n * @param id - The unique `id` of the field that was blurred\n * @param data - The data associated with the field that was blurred\n */\n onBlur = (id, data) => {\n const { onBlur, omitExtraData, liveOmit, liveValidate } = this.props;\n if (onBlur) {\n onBlur(id, data);\n }\n if ((omitExtraData === true && liveOmit === 'onBlur') || liveValidate === 'onBlur') {\n const { onChange, extraErrors } = this.props;\n const { formData } = this.state;\n let newFormData = formData;\n let state = { formData: newFormData };\n if (omitExtraData === true && liveOmit === 'onBlur') {\n // oxlint-disable-next-line typescript/no-deprecated\n newFormData = this.omitExtraData(formData);\n state = { formData: newFormData };\n }\n if (liveValidate === 'onBlur') {\n const { schema, schemaUtils, errorSchema, customErrors, retrievedSchema } = this.state;\n const liveValidation = this.liveValidate(schema, schemaUtils, errorSchema, newFormData, extraErrors, customErrors, retrievedSchema);\n state = { formData: newFormData, ...liveValidation, customErrors };\n }\n const hasChanges = Object.keys(state)\n // Filter out `schemaValidationErrors` and `schemaValidationErrorSchema` since they aren't IChangeEvent props\n .filter((key) => !key.startsWith('schemaValidation'))\n .some((key) => {\n const oldData = this.state[key];\n const newData = state[key];\n return !deepEquals(oldData, newData);\n });\n this.setState(state, () => {\n if (onChange && hasChanges) {\n onChange(toIChangeEvent({ ...this.state, ...state }), id);\n }\n });\n }\n };\n /** Callback function to handle when a field on the form is focused. Calls the `onFocus` callback for the `Form` if it\n * was provided.\n *\n * @param id - The unique `id` of the field that was focused\n * @param data - The data associated with the field that was focused\n */\n onFocus = (id, data) => {\n const { onFocus } = this.props;\n if (onFocus) {\n onFocus(id, data);\n }\n };\n /** Callback function to handle when the form is submitted. First, it prevents the default event behavior. Nothing\n * happens if the target and currentTarget of the event are not the same. It will omit any extra data in the\n * `formData` in the state if `omitExtraData` is true. It will validate the resulting `formData`, reporting errors\n * via the `onError()` callback unless validation is disabled. Finally, it will add in any `extraErrors` and then call\n * back the `onSubmit` callback if it was provided.\n *\n * @param event - The submit HTML form event\n */\n onSubmit = (event) => {\n event.preventDefault();\n if (event.target !== event.currentTarget) {\n return;\n }\n event.persist();\n // oxlint-disable-next-line typescript/no-deprecated\n const { omitExtraData, extraErrors, noValidate, onSubmit } = this.props;\n let { formData: newFormData } = this.state;\n if (omitExtraData === true) {\n // oxlint-disable-next-line typescript/no-deprecated\n newFormData = this.omitExtraData(newFormData);\n }\n if (noValidate || this.validateFormWithFormData(newFormData)) {\n // There are no errors generated through schema validation.\n // Check for user provided errors and update state accordingly.\n const errorSchema = extraErrors || {};\n const errors = extraErrors ? toErrorList(extraErrors) : [];\n this.setState({\n formData: newFormData,\n errors,\n errorSchema,\n schemaValidationErrors: [],\n schemaValidationErrorSchema: {},\n }, () => {\n if (onSubmit) {\n onSubmit(toIChangeEvent({ ...this.state, formData: newFormData }, 'submitted'), event);\n }\n });\n }\n };\n /** Extracts the `GlobalFormOptions` from the given Form `props`\n *\n * @param props - The form props to extract the global form options from\n * @returns - The `GlobalFormOptions` from the props\n * @private\n */\n static getGlobalFormOptions(props) {\n const { uiSchema = {}, experimental_componentUpdateStrategy, idSeparator = DEFAULT_ID_SEPARATOR, idPrefix = DEFAULT_ID_PREFIX, nameGenerator, useFallbackUiForUnsupportedType = false, } = props;\n // oxlint-disable-next-line typescript/no-deprecated\n const rootFieldId = uiSchema['ui:rootFieldId'];\n // Omit any options that are undefined or null\n return {\n idPrefix: rootFieldId || idPrefix,\n idSeparator,\n useFallbackUiForUnsupportedType,\n ...(experimental_componentUpdateStrategy !== undefined && { experimental_componentUpdateStrategy }),\n ...(nameGenerator !== undefined && { nameGenerator }),\n };\n }\n /** Computed the registry for the form using the given `props`, `schema` and `schemaUtils` */\n static getRegistry(props, schema, schemaUtils) {\n const { translateString: customTranslateString, uiSchema = {} } = props;\n const { fields, templates, widgets, formContext, translateString } = getDefaultRegistry();\n return {\n fields: { ...fields, ...props.fields },\n templates: {\n ...templates,\n ...props.templates,\n ButtonTemplates: {\n ...templates.ButtonTemplates,\n ...props.templates?.ButtonTemplates,\n },\n },\n widgets: { ...widgets, ...props.widgets },\n rootSchema: schema,\n formContext: props.formContext || formContext,\n schemaUtils,\n translateString: customTranslateString || translateString,\n globalUiOptions: uiSchema[UI_GLOBAL_OPTIONS_KEY],\n globalFormOptions: Form.getGlobalFormOptions(props),\n uiSchemaDefinitions: uiSchema[UI_DEFINITIONS_KEY] ?? {},\n };\n }\n /** Provides a function that can be used to programmatically submit the `Form` */\n submit = () => {\n if (this.formElement.current) {\n const submitCustomEvent = new CustomEvent('submit', {\n cancelable: true,\n });\n submitCustomEvent.preventDefault();\n this.formElement.current.dispatchEvent(submitCustomEvent);\n this.formElement.current.requestSubmit();\n }\n };\n /** Attempts to focus on the field associated with the `error`. Uses the `property` field to compute path of the error\n * field, then, using the `idPrefix` and `idSeparator` converts that path into an id. Then the input element with that\n * id is attempted to be found using the `formElement` ref. If it is located, then it is focused.\n *\n * @param error - The error on which to focus\n */\n focusOnError(error) {\n const { idPrefix = 'root', idSeparator = '_' } = this.props;\n const { property } = error;\n const path = toPath(property ?? '');\n // The id of the root element is the idPrefix, so prepend it to the path\n path.unshift(idPrefix);\n const elementId = path.join(idSeparator);\n let field = this.formElement.current.elements[elementId];\n if (!field) {\n // if not an exact match, try finding a focusable element starting with the element id (like radio buttons or checkboxes)\n // some themes (e.g. shadcn) use button elements instead of native inputs for radio groups\n field = this.formElement.current.querySelector(`input[id^=\"${elementId}\"], button[id^=\"${elementId}\"]`);\n }\n if (field?.length) {\n // If we got a list with length > 0\n // oxlint-disable-next-line prefer-destructuring\n field = field[0];\n }\n if (field) {\n field.focus();\n }\n }\n /** Validates the form using the given `formData`. For use on form submission or on programmatic validation.\n * If `onError` is provided, then it will be called with the list of errors.\n *\n * @param formData - The form data to validate\n * @returns - True if the form is valid, false otherwise.\n */\n validateFormWithFormData = (formData) => {\n const { extraErrors, extraErrorsBlockSubmit, focusOnFirstError, onError } = this.props;\n const { errors: prevErrors } = this.state;\n const schemaValidation = this.validate(formData);\n // Always merge extraErrors so they remain visible in state regardless of extraErrorsBlockSubmit.\n const { errors, errorSchema } = extraErrors ? Form.mergeErrors(schemaValidation, extraErrors) : schemaValidation;\n // hasError gates submission: schema errors always block; extraErrors only block when\n // extraErrorsBlockSubmit is set (non-breaking default: extraErrors are informational only).\n const hasError = schemaValidation.errors.length > 0 || (extraErrors && extraErrorsBlockSubmit);\n if (hasError) {\n if (focusOnFirstError) {\n if (typeof focusOnFirstError === 'function') {\n focusOnFirstError(errors[0]);\n }\n else {\n this.focusOnError(errors[0]);\n }\n }\n this.setState({\n errors,\n errorSchema,\n schemaValidationErrors: schemaValidation.errors,\n schemaValidationErrorSchema: schemaValidation.errorSchema,\n }, () => {\n if (onError) {\n onError(errors);\n }\n else {\n // oxlint-disable-next-line no-console\n console.error('Form validation failed', errors);\n }\n });\n }\n else if (errors.length > 0) {\n // Non-blocking extraErrors are present — update display state without triggering onError.\n this.setState({\n errors,\n errorSchema,\n schemaValidationErrors: [],\n schemaValidationErrorSchema: {},\n });\n }\n else if (prevErrors.length > 0) {\n this.setState({\n errors: [],\n errorSchema: {},\n schemaValidationErrors: [],\n schemaValidationErrorSchema: {},\n });\n }\n return !hasError;\n };\n /** Programmatically validate the form. If `omitExtraData` is true, the `formData` will first be filtered to remove\n * any extra data not in a form field. If `onError` is provided, then it will be called with the list of errors the\n * same way as would happen on form submission.\n *\n * @returns - True if the form is valid, false otherwise.\n */\n validateForm() {\n const { omitExtraData } = this.props;\n let { formData: newFormData } = this.state;\n if (omitExtraData === true) {\n // oxlint-disable-next-line typescript/no-deprecated\n newFormData = this.omitExtraData(newFormData);\n }\n return this.validateFormWithFormData(newFormData);\n }\n /** Renders the `Form` fields inside the
| `tagName` or `_internalFormWrapper`, rendering any errors if\n * needed along with the submit button or any children of the form.\n */\n render() {\n const { children, id, className = '', tagName, name, method, target, action, autoComplete, enctype, acceptCharset, noHtml5Validate = false, disabled, readonly, showErrorList = 'top', _internalFormWrapper, } = this.props;\n const { schema, uiSchema, formData, errorSchema, fieldPathId, registry } = this.state;\n const { SchemaField: SchemaFieldComponent } = registry.fields;\n const { SubmitButton } = registry.templates.ButtonTemplates;\n // The `semantic-ui` and `material-ui` themes have `_internalFormWrapper`s that take an `as` prop that is the\n // PropTypes.elementType to use for the inner tag, so we'll need to pass `tagName` along if it is provided.\n // NOTE, the `as` prop is native to `semantic-ui` and is emulated in the `material-ui` theme\n const as = _internalFormWrapper ? tagName : undefined;\n const FormTag = _internalFormWrapper || tagName || 'form';\n let { [SUBMIT_BTN_OPTIONS_KEY]: submitOptions = {} } = getUiOptions(uiSchema);\n if (disabled) {\n submitOptions = { ...submitOptions, props: { ...submitOptions.props, disabled: true } };\n }\n const submitUiSchema = { [UI_OPTIONS_KEY]: { [SUBMIT_BTN_OPTIONS_KEY]: submitOptions } };\n return (_jsxs(FormTag, { className: className || 'rjsf', id: id, name: name, method: method, target: target, action: action, autoComplete: autoComplete, encType: enctype, acceptCharset: acceptCharset, noValidate: noHtml5Validate, onSubmit: this.onSubmit, as: as, ref: this.formElement, children: [showErrorList === 'top' && this.renderErrors(registry), _jsx(SchemaFieldComponent, { name: '', schema: schema, uiSchema: uiSchema, errorSchema: errorSchema, fieldPathId: fieldPathId, formData: formData, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, registry: registry, disabled: disabled, readonly: readonly }), children || _jsx(SubmitButton, { uiSchema: submitUiSchema, registry: registry }), showErrorList === 'bottom' && this.renderErrors(registry)] }));\n }\n}\n//# sourceMappingURL=Form.js.map","import { ANY_OF_KEY, createErrorHandler, getByPath, getDefaultFormState, getUiOptions, ONE_OF_KEY, PROPERTIES_KEY, toErrorSchema, toPath, unwrapErrorHandler, validationDataMerge, } from '@rjsf/utils';\n/** Filters duplicate errors from `anyOf`/`oneOf` schema paths according to the `suppressDuplicateFiltering` flag.\n *\n * @param errorList - The list of `RJSFValidationError`s to filter\n * @param [suppressDuplicateFiltering='none'] - Controls which duplicate filtering is suppressed:\n * - `'none'` (default): filters duplicates for both `anyOf` and `oneOf`\n * - `'all'`: returns `errorList` unmodified\n * - `'anyOf'`: suppresses filtering for `anyOf` errors; `oneOf` duplicates are still filtered\n * - `'oneOf'`: suppresses filtering for `oneOf` errors; `anyOf` duplicates are still filtered\n */\nexport function filterDuplicateErrors(errorList, suppressDuplicateFiltering = 'none') {\n if (suppressDuplicateFiltering === 'all') {\n return errorList;\n }\n return errorList.reduce((acc, err) => {\n const { message, schemaPath } = err;\n // Compute the index only when filtering for that keyword is not suppressed.\n // 'all' is already handled above; within the reduce, only 'none', 'anyOf', and 'oneOf' are possible.\n const anyOfIndex = suppressDuplicateFiltering !== 'anyOf' ? schemaPath?.indexOf(`/${ANY_OF_KEY}/`) : undefined;\n const oneOfIndex = suppressDuplicateFiltering !== 'oneOf' ? schemaPath?.indexOf(`/${ONE_OF_KEY}/`) : undefined;\n let schemaPrefix;\n if (anyOfIndex && anyOfIndex >= 0) {\n schemaPrefix = schemaPath?.substring(0, anyOfIndex);\n }\n else if (oneOfIndex && oneOfIndex >= 0) {\n schemaPrefix = schemaPath?.substring(0, oneOfIndex);\n }\n // If there is a schemaPrefix, then search for a duplicate message with the same prefix, otherwise undefined\n const dup = schemaPrefix\n ? acc.find((e) => e.message === message && e.schemaPath?.startsWith(schemaPrefix))\n : undefined;\n if (!dup) {\n acc.push(err);\n }\n return acc;\n }, []);\n}\n/** Transforming the error output from ajv to format used by @rjsf/utils.\n * At some point, components should be updated to support ajv.\n *\n * @param errors - The list of AJV errors to convert to `RJSFValidationErrors`\n * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`\n * @param [suppressDuplicateFiltering] - Controls which duplicate filtering is suppressed; see `filterDuplicateErrors`\n * @param [schema] - The schema for the validation\n */\nexport function transformRJSFValidationErrors(errors = [], uiSchema, suppressDuplicateFiltering, schema) {\n const errorList = errors.map((e) => {\n const { instancePath, keyword, params, schemaPath, parentSchema, ...rest } = e;\n let { message = '' } = rest;\n let property = instancePath.replace(/\\//g, '.');\n let stack = `${property} ${message}`.trim();\n let uiTitle = '';\n const rawPropertyNames = [\n ...(params.deps?.split(', ') || []),\n params.missingProperty,\n params.property,\n ].filter((item) => item);\n if (rawPropertyNames.length > 0) {\n rawPropertyNames.forEach((currentProperty) => {\n const path = property ? `${property}.${currentProperty}` : currentProperty;\n let uiSchemaTitle = getUiOptions(getByPath(uiSchema, toPath(path))).title;\n if (uiSchemaTitle === undefined) {\n // To retrieve a title from UI schema, construct a path to UI schema from `schemaPath` and `currentProperty`.\n // For example, when `#/properties/A/properties/B/required` and `C` are given, they are converted into `['A', 'B', 'C']`.\n const uiSchemaPath = schemaPath\n .replace(/\\/properties\\//g, '/')\n .split('/')\n .slice(1, -1)\n .concat([currentProperty]);\n uiSchemaTitle = getUiOptions(getByPath(uiSchema, uiSchemaPath)).title;\n }\n if (uiSchemaTitle === undefined) {\n // schemaPath may include non-property segments (e.g. allOf/if/then) that do\n // not exist in the uiSchema; fall back to the instance path, the same way the\n // root-schema title fallback does below.\n const propParts = property.replace(/^\\./, '').split('.').filter(Boolean);\n uiSchemaTitle = getByPath(uiSchema, [...propParts, currentProperty, 'title']);\n }\n if (uiSchemaTitle) {\n message = message.replace(`'${currentProperty}'`, `'${uiSchemaTitle}'`);\n uiTitle = uiSchemaTitle;\n }\n else {\n const parentSchemaTitle = getByPath(parentSchema, [\n PROPERTIES_KEY,\n currentProperty,\n 'title',\n ]);\n if (parentSchemaTitle) {\n message = message.replace(`'${currentProperty}'`, `'${parentSchemaTitle}'`);\n uiTitle = parentSchemaTitle;\n }\n else if (schema) {\n // parentSchema may be an allOf/anyOf/oneOf entry that lacks `properties`;\n // fall back to looking up the title from the root schema.\n const propParts = property.replace(/^\\./, '').split('.').filter(Boolean);\n const aSchemaPath = [];\n for (const part of propParts) {\n aSchemaPath.push(PROPERTIES_KEY, part);\n }\n aSchemaPath.push(PROPERTIES_KEY, currentProperty, 'title');\n const rootSchemaTitle = getByPath(schema, aSchemaPath);\n if (rootSchemaTitle) {\n message = message.replace(`'${currentProperty}'`, `'${rootSchemaTitle}'`);\n uiTitle = rootSchemaTitle;\n }\n }\n }\n });\n stack = message;\n }\n else {\n const uiSchemaTitle = getUiOptions(getByPath(uiSchema, toPath(property))).title;\n if (uiSchemaTitle) {\n stack = `'${uiSchemaTitle}' ${message}`.trim();\n uiTitle = uiSchemaTitle;\n }\n else {\n const parentSchemaTitle = parentSchema?.title;\n if (parentSchemaTitle) {\n stack = `'${parentSchemaTitle}' ${message}`.trim();\n uiTitle = parentSchemaTitle;\n }\n }\n }\n // If params.missingProperty is undefined, it is removed from rawPropertyNames by filter((item) => item).\n if ('missingProperty' in params) {\n property = property ? `${property}.${params.missingProperty}` : params.missingProperty;\n }\n // put data in expected format\n return {\n name: keyword,\n property,\n message,\n params, // specific to ajv\n stack,\n schemaPath,\n title: uiTitle,\n };\n });\n return filterDuplicateErrors(errorList, suppressDuplicateFiltering);\n}\n/** This function processes the `formData` with an optional user contributed `customValidate` function, which receives\n * the form data and a `errorHandler` function that will be used to add custom validation errors for each field. Also\n * supports a `transformErrors` function that will take the raw AJV validation errors, prior to custom validation and\n * transform them in what ever way it chooses.\n *\n * @param validator - The `ValidatorType` implementation used for the `getDefaultFormState()` call\n * @param rawErrors - The list of raw `ErrorObject`s to process\n * @param formData - The form data to validate\n * @param schema - The schema against which to validate the form data\n * @param [customValidate] - An optional function that is used to perform custom validation\n * @param [transformErrors] - An optional function that is used to transform errors after AJV validation\n * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`\n * @param [suppressDuplicateFiltering] - Controls which duplicate filtering is suppressed; see `filterDuplicateErrors`\n */\nexport default function processRawValidationErrors(validator, rawErrors, formData, schema, customValidate, transformErrors, uiSchema, suppressDuplicateFiltering) {\n const { validationError: invalidSchemaError } = rawErrors;\n let errors = transformRJSFValidationErrors(rawErrors.errors, uiSchema, suppressDuplicateFiltering, schema);\n if (invalidSchemaError) {\n errors = [...errors, { stack: invalidSchemaError.message }];\n }\n if (typeof transformErrors === 'function') {\n errors = transformErrors(errors, uiSchema);\n }\n let errorSchema = toErrorSchema(errors);\n if (invalidSchemaError) {\n errorSchema = {\n ...errorSchema,\n $schema: {\n __errors: [invalidSchemaError.message],\n },\n };\n }\n if (typeof customValidate !== 'function') {\n return { errors, errorSchema };\n }\n // Include form data with undefined values, which is required for custom validation.\n const newFormData = getDefaultFormState(validator, schema, formData, schema, true);\n const errorHandler = customValidate(newFormData, createErrorHandler(newFormData), uiSchema, errorSchema);\n const userErrorSchema = unwrapErrorHandler(errorHandler);\n return validationDataMerge({ errors, errorSchema }, userErrorSchema);\n}\n//# sourceMappingURL=processRawValidationErrors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nclass _CodeOrName {\n}\nexports._CodeOrName = _CodeOrName;\nexports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nclass Name extends _CodeOrName {\n constructor(s) {\n super();\n if (!exports.IDENTIFIER.test(s))\n throw new Error(\"CodeGen: name must be a valid identifier\");\n this.str = s;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n return false;\n }\n get names() {\n return { [this.str]: 1 };\n }\n}\nexports.Name = Name;\nclass _Code extends _CodeOrName {\n constructor(code) {\n super();\n this._items = typeof code === \"string\" ? [code] : code;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n if (this._items.length > 1)\n return false;\n const item = this._items[0];\n return item === \"\" || item === '\"\"';\n }\n get str() {\n var _a;\n return ((_a = this._str) !== null && _a !== void 0 ? _a : (this._str = this._items.reduce((s, c) => `${s}${c}`, \"\")));\n }\n get names() {\n var _a;\n return ((_a = this._names) !== null && _a !== void 0 ? _a : (this._names = this._items.reduce((names, c) => {\n if (c instanceof Name)\n names[c.str] = (names[c.str] || 0) + 1;\n return names;\n }, {})));\n }\n}\nexports._Code = _Code;\nexports.nil = new _Code(\"\");\nfunction _(strs, ...args) {\n const code = [strs[0]];\n let i = 0;\n while (i < args.length) {\n addCodeArg(code, args[i]);\n code.push(strs[++i]);\n }\n return new _Code(code);\n}\nexports._ = _;\nconst plus = new _Code(\"+\");\nfunction str(strs, ...args) {\n const expr = [safeStringify(strs[0])];\n let i = 0;\n while (i < args.length) {\n expr.push(plus);\n addCodeArg(expr, args[i]);\n expr.push(plus, safeStringify(strs[++i]));\n }\n optimize(expr);\n return new _Code(expr);\n}\nexports.str = str;\nfunction addCodeArg(code, arg) {\n if (arg instanceof _Code)\n code.push(...arg._items);\n else if (arg instanceof Name)\n code.push(arg);\n else\n code.push(interpolate(arg));\n}\nexports.addCodeArg = addCodeArg;\nfunction optimize(expr) {\n let i = 1;\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1]);\n if (res !== undefined) {\n expr.splice(i - 1, 3, res);\n continue;\n }\n expr[i++] = \"+\";\n }\n i++;\n }\n}\nfunction mergeExprItems(a, b) {\n if (b === '\"\"')\n return a;\n if (a === '\"\"')\n return b;\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"')\n return;\n if (typeof b != \"string\")\n return `${a.slice(0, -1)}${b}\"`;\n if (b[0] === '\"')\n return a.slice(0, -1) + b.slice(1);\n return;\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name))\n return `\"${a}${b.slice(1)}`;\n return;\n}\nfunction strConcat(c1, c2) {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str `${c1}${c2}`;\n}\nexports.strConcat = strConcat;\n// TODO do not allow arrays here\nfunction interpolate(x) {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x);\n}\nfunction stringify(x) {\n return new _Code(safeStringify(x));\n}\nexports.stringify = stringify;\nfunction safeStringify(x) {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\");\n}\nexports.safeStringify = safeStringify;\nfunction getProperty(key) {\n return typeof key == \"string\" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _ `[${key}]`;\n}\nexports.getProperty = getProperty;\n//Does best effort to format the name properly\nfunction getEsmExportName(key) {\n if (typeof key == \"string\" && exports.IDENTIFIER.test(key)) {\n return new _Code(`${key}`);\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`);\n}\nexports.getEsmExportName = getEsmExportName;\nfunction regexpCode(rx) {\n return new _Code(rx.toString());\n}\nexports.regexpCode = regexpCode;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;\nconst code_1 = require(\"./code\");\nclass ValueError extends Error {\n constructor(name) {\n super(`CodeGen: \"code\" for ${name} not defined`);\n this.value = name.value;\n }\n}\nvar UsedValueState;\n(function (UsedValueState) {\n UsedValueState[UsedValueState[\"Started\"] = 0] = \"Started\";\n UsedValueState[UsedValueState[\"Completed\"] = 1] = \"Completed\";\n})(UsedValueState || (exports.UsedValueState = UsedValueState = {}));\nexports.varKinds = {\n const: new code_1.Name(\"const\"),\n let: new code_1.Name(\"let\"),\n var: new code_1.Name(\"var\"),\n};\nclass Scope {\n constructor({ prefixes, parent } = {}) {\n this._names = {};\n this._prefixes = prefixes;\n this._parent = parent;\n }\n toName(nameOrPrefix) {\n return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);\n }\n name(prefix) {\n return new code_1.Name(this._newName(prefix));\n }\n _newName(prefix) {\n const ng = this._names[prefix] || this._nameGroup(prefix);\n return `${prefix}${ng.index++}`;\n }\n _nameGroup(prefix) {\n var _a, _b;\n if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`);\n }\n return (this._names[prefix] = { prefix, index: 0 });\n }\n}\nexports.Scope = Scope;\nclass ValueScopeName extends code_1.Name {\n constructor(prefix, nameStr) {\n super(nameStr);\n this.prefix = prefix;\n }\n setValue(value, { property, itemIndex }) {\n this.value = value;\n this.scopePath = (0, code_1._) `.${new code_1.Name(property)}[${itemIndex}]`;\n }\n}\nexports.ValueScopeName = ValueScopeName;\nconst line = (0, code_1._) `\\n`;\nclass ValueScope extends Scope {\n constructor(opts) {\n super(opts);\n this._values = {};\n this._scope = opts.scope;\n this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };\n }\n get() {\n return this._scope;\n }\n name(prefix) {\n return new ValueScopeName(prefix, this._newName(prefix));\n }\n value(nameOrPrefix, value) {\n var _a;\n if (value.ref === undefined)\n throw new Error(\"CodeGen: ref must be passed in value\");\n const name = this.toName(nameOrPrefix);\n const { prefix } = name;\n const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;\n let vs = this._values[prefix];\n if (vs) {\n const _name = vs.get(valueKey);\n if (_name)\n return _name;\n }\n else {\n vs = this._values[prefix] = new Map();\n }\n vs.set(valueKey, name);\n const s = this._scope[prefix] || (this._scope[prefix] = []);\n const itemIndex = s.length;\n s[itemIndex] = value.ref;\n name.setValue(value, { property: prefix, itemIndex });\n return name;\n }\n getValue(prefix, keyOrRef) {\n const vs = this._values[prefix];\n if (!vs)\n return;\n return vs.get(keyOrRef);\n }\n scopeRefs(scopeName, values = this._values) {\n return this._reduceValues(values, (name) => {\n if (name.scopePath === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return (0, code_1._) `${scopeName}${name.scopePath}`;\n });\n }\n scopeCode(values = this._values, usedValues, getCode) {\n return this._reduceValues(values, (name) => {\n if (name.value === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return name.value.code;\n }, usedValues, getCode);\n }\n _reduceValues(values, valueCode, usedValues = {}, getCode) {\n let code = code_1.nil;\n for (const prefix in values) {\n const vs = values[prefix];\n if (!vs)\n continue;\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());\n vs.forEach((name) => {\n if (nameSet.has(name))\n return;\n nameSet.set(name, UsedValueState.Started);\n let c = valueCode(name);\n if (c) {\n const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;\n code = (0, code_1._) `${code}${def} ${name} = ${c};${this.opts._n}`;\n }\n else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {\n code = (0, code_1._) `${code}${c}${this.opts._n}`;\n }\n else {\n throw new ValueError(name);\n }\n nameSet.set(name, UsedValueState.Completed);\n });\n }\n return code;\n }\n}\nexports.ValueScope = ValueScope;\n//# sourceMappingURL=scope.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;\nconst code_1 = require(\"./code\");\nconst scope_1 = require(\"./scope\");\nvar code_2 = require(\"./code\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return code_2._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return code_2.str; } });\nObject.defineProperty(exports, \"strConcat\", { enumerable: true, get: function () { return code_2.strConcat; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return code_2.nil; } });\nObject.defineProperty(exports, \"getProperty\", { enumerable: true, get: function () { return code_2.getProperty; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return code_2.stringify; } });\nObject.defineProperty(exports, \"regexpCode\", { enumerable: true, get: function () { return code_2.regexpCode; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return code_2.Name; } });\nvar scope_2 = require(\"./scope\");\nObject.defineProperty(exports, \"Scope\", { enumerable: true, get: function () { return scope_2.Scope; } });\nObject.defineProperty(exports, \"ValueScope\", { enumerable: true, get: function () { return scope_2.ValueScope; } });\nObject.defineProperty(exports, \"ValueScopeName\", { enumerable: true, get: function () { return scope_2.ValueScopeName; } });\nObject.defineProperty(exports, \"varKinds\", { enumerable: true, get: function () { return scope_2.varKinds; } });\nexports.operators = {\n GT: new code_1._Code(\">\"),\n GTE: new code_1._Code(\">=\"),\n LT: new code_1._Code(\"<\"),\n LTE: new code_1._Code(\"<=\"),\n EQ: new code_1._Code(\"===\"),\n NEQ: new code_1._Code(\"!==\"),\n NOT: new code_1._Code(\"!\"),\n OR: new code_1._Code(\"||\"),\n AND: new code_1._Code(\"&&\"),\n ADD: new code_1._Code(\"+\"),\n};\nclass Node {\n optimizeNodes() {\n return this;\n }\n optimizeNames(_names, _constants) {\n return this;\n }\n}\nclass Def extends Node {\n constructor(varKind, name, rhs) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.rhs = rhs;\n }\n render({ es5, _n }) {\n const varKind = es5 ? scope_1.varKinds.var : this.varKind;\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`;\n return `${varKind} ${this.name}${rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (!names[this.name.str])\n return;\n if (this.rhs)\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};\n }\n}\nclass Assign extends Node {\n constructor(lhs, rhs, sideEffects) {\n super();\n this.lhs = lhs;\n this.rhs = rhs;\n this.sideEffects = sideEffects;\n }\n render({ _n }) {\n return `${this.lhs} = ${this.rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)\n return;\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };\n return addExprNames(names, this.rhs);\n }\n}\nclass AssignOp extends Assign {\n constructor(lhs, op, rhs, sideEffects) {\n super(lhs, rhs, sideEffects);\n this.op = op;\n }\n render({ _n }) {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n;\n }\n}\nclass Label extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n return `${this.label}:` + _n;\n }\n}\nclass Break extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n const label = this.label ? ` ${this.label}` : \"\";\n return `break${label};` + _n;\n }\n}\nclass Throw extends Node {\n constructor(error) {\n super();\n this.error = error;\n }\n render({ _n }) {\n return `throw ${this.error};` + _n;\n }\n get names() {\n return this.error.names;\n }\n}\nclass AnyCode extends Node {\n constructor(code) {\n super();\n this.code = code;\n }\n render({ _n }) {\n return `${this.code};` + _n;\n }\n optimizeNodes() {\n return `${this.code}` ? this : undefined;\n }\n optimizeNames(names, constants) {\n this.code = optimizeExpr(this.code, names, constants);\n return this;\n }\n get names() {\n return this.code instanceof code_1._CodeOrName ? this.code.names : {};\n }\n}\nclass ParentNode extends Node {\n constructor(nodes = []) {\n super();\n this.nodes = nodes;\n }\n render(opts) {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\");\n }\n optimizeNodes() {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n const n = nodes[i].optimizeNodes();\n if (Array.isArray(n))\n nodes.splice(i, 1, ...n);\n else if (n)\n nodes[i] = n;\n else\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n optimizeNames(names, constants) {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i];\n if (n.optimizeNames(names, constants))\n continue;\n subtractNames(names, n.names);\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n get names() {\n return this.nodes.reduce((names, n) => addNames(names, n.names), {});\n }\n}\nclass BlockNode extends ParentNode {\n render(opts) {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n;\n }\n}\nclass Root extends ParentNode {\n}\nclass Else extends BlockNode {\n}\nElse.kind = \"else\";\nclass If extends BlockNode {\n constructor(condition, nodes) {\n super(nodes);\n this.condition = condition;\n }\n render(opts) {\n let code = `if(${this.condition})` + super.render(opts);\n if (this.else)\n code += \"else \" + this.else.render(opts);\n return code;\n }\n optimizeNodes() {\n super.optimizeNodes();\n const cond = this.condition;\n if (cond === true)\n return this.nodes; // else is ignored here\n let e = this.else;\n if (e) {\n const ns = e.optimizeNodes();\n e = this.else = Array.isArray(ns) ? new Else(ns) : ns;\n }\n if (e) {\n if (cond === false)\n return e instanceof If ? e : e.nodes;\n if (this.nodes.length)\n return this;\n return new If(not(cond), e instanceof If ? [e] : e.nodes);\n }\n if (cond === false || !this.nodes.length)\n return undefined;\n return this;\n }\n optimizeNames(names, constants) {\n var _a;\n this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n if (!(super.optimizeNames(names, constants) || this.else))\n return;\n this.condition = optimizeExpr(this.condition, names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n addExprNames(names, this.condition);\n if (this.else)\n addNames(names, this.else.names);\n return names;\n }\n}\nIf.kind = \"if\";\nclass For extends BlockNode {\n}\nFor.kind = \"for\";\nclass ForLoop extends For {\n constructor(iteration) {\n super();\n this.iteration = iteration;\n }\n render(opts) {\n return `for(${this.iteration})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iteration = optimizeExpr(this.iteration, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iteration.names);\n }\n}\nclass ForRange extends For {\n constructor(varKind, name, from, to) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.from = from;\n this.to = to;\n }\n render(opts) {\n const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;\n const { name, from, to } = this;\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);\n }\n get names() {\n const names = addExprNames(super.names, this.from);\n return addExprNames(names, this.to);\n }\n}\nclass ForIter extends For {\n constructor(loop, varKind, name, iterable) {\n super();\n this.loop = loop;\n this.varKind = varKind;\n this.name = name;\n this.iterable = iterable;\n }\n render(opts) {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iterable = optimizeExpr(this.iterable, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iterable.names);\n }\n}\nclass Func extends BlockNode {\n constructor(name, args, async) {\n super();\n this.name = name;\n this.args = args;\n this.async = async;\n }\n render(opts) {\n const _async = this.async ? \"async \" : \"\";\n return `${_async}function ${this.name}(${this.args})` + super.render(opts);\n }\n}\nFunc.kind = \"func\";\nclass Return extends ParentNode {\n render(opts) {\n return \"return \" + super.render(opts);\n }\n}\nReturn.kind = \"return\";\nclass Try extends BlockNode {\n render(opts) {\n let code = \"try\" + super.render(opts);\n if (this.catch)\n code += this.catch.render(opts);\n if (this.finally)\n code += this.finally.render(opts);\n return code;\n }\n optimizeNodes() {\n var _a, _b;\n super.optimizeNodes();\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();\n return this;\n }\n optimizeNames(names, constants) {\n var _a, _b;\n super.optimizeNames(names, constants);\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n if (this.catch)\n addNames(names, this.catch.names);\n if (this.finally)\n addNames(names, this.finally.names);\n return names;\n }\n}\nclass Catch extends BlockNode {\n constructor(error) {\n super();\n this.error = error;\n }\n render(opts) {\n return `catch(${this.error})` + super.render(opts);\n }\n}\nCatch.kind = \"catch\";\nclass Finally extends BlockNode {\n render(opts) {\n return \"finally\" + super.render(opts);\n }\n}\nFinally.kind = \"finally\";\nclass CodeGen {\n constructor(extScope, opts = {}) {\n this._values = {};\n this._blockStarts = [];\n this._constants = {};\n this.opts = { ...opts, _n: opts.lines ? \"\\n\" : \"\" };\n this._extScope = extScope;\n this._scope = new scope_1.Scope({ parent: extScope });\n this._nodes = [new Root()];\n }\n toString() {\n return this._root.render(this.opts);\n }\n // returns unique name in the internal scope\n name(prefix) {\n return this._scope.name(prefix);\n }\n // reserves unique name in the external scope\n scopeName(prefix) {\n return this._extScope.name(prefix);\n }\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName, value) {\n const name = this._extScope.value(prefixOrName, value);\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set());\n vs.add(name);\n return name;\n }\n getScopeValue(prefix, keyOrRef) {\n return this._extScope.getValue(prefix, keyOrRef);\n }\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName) {\n return this._extScope.scopeRefs(scopeName, this._values);\n }\n scopeCode() {\n return this._extScope.scopeCode(this._values);\n }\n _def(varKind, nameOrPrefix, rhs, constant) {\n const name = this._scope.toName(nameOrPrefix);\n if (rhs !== undefined && constant)\n this._constants[name.str] = rhs;\n this._leafNode(new Def(varKind, name, rhs));\n return name;\n }\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);\n }\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);\n }\n // `var` declaration with optional assignment\n var(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);\n }\n // assignment code\n assign(lhs, rhs, sideEffects) {\n return this._leafNode(new Assign(lhs, rhs, sideEffects));\n }\n // `+=` code\n add(lhs, rhs) {\n return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));\n }\n // appends passed SafeExpr to code or executes Block\n code(c) {\n if (typeof c == \"function\")\n c();\n else if (c !== code_1.nil)\n this._leafNode(new AnyCode(c));\n return this;\n }\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues) {\n const code = [\"{\"];\n for (const [key, value] of keyValues) {\n if (code.length > 1)\n code.push(\",\");\n code.push(key);\n if (key !== value || this.opts.es5) {\n code.push(\":\");\n (0, code_1.addCodeArg)(code, value);\n }\n }\n code.push(\"}\");\n return new code_1._Code(code);\n }\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition, thenBody, elseBody) {\n this._blockNode(new If(condition));\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf();\n }\n else if (thenBody) {\n this.code(thenBody).endIf();\n }\n else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body');\n }\n return this;\n }\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition) {\n return this._elseNode(new If(condition));\n }\n // `else` clause - only valid after `if` or `else if` clauses\n else() {\n return this._elseNode(new Else());\n }\n // end `if` statement (needed if gen.if was used only with condition)\n endIf() {\n return this._endBlockNode(If, Else);\n }\n _for(node, forBody) {\n this._blockNode(node);\n if (forBody)\n this.code(forBody).endFor();\n return this;\n }\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration, forBody) {\n return this._for(new ForLoop(iteration), forBody);\n }\n // `for` statement for a range of values\n forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name));\n }\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {\n const name = this._scope.toName(nameOrPrefix);\n if (this.opts.es5) {\n const arr = iterable instanceof code_1.Name ? iterable : this.var(\"_arr\", iterable);\n return this.forRange(\"_i\", 0, (0, code_1._) `${arr}.length`, (i) => {\n this.var(name, (0, code_1._) `${arr}[${i}]`);\n forBody(name);\n });\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name));\n }\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, (0, code_1._) `Object.keys(${obj})`, forBody);\n }\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name));\n }\n // end `for` loop\n endFor() {\n return this._endBlockNode(For);\n }\n // `label` statement\n label(label) {\n return this._leafNode(new Label(label));\n }\n // `break` statement\n break(label) {\n return this._leafNode(new Break(label));\n }\n // `return` statement\n return(value) {\n const node = new Return();\n this._blockNode(node);\n this.code(value);\n if (node.nodes.length !== 1)\n throw new Error('CodeGen: \"return\" should have one node');\n return this._endBlockNode(Return);\n }\n // `try` statement\n try(tryBody, catchCode, finallyCode) {\n if (!catchCode && !finallyCode)\n throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"');\n const node = new Try();\n this._blockNode(node);\n this.code(tryBody);\n if (catchCode) {\n const error = this.name(\"e\");\n this._currNode = node.catch = new Catch(error);\n catchCode(error);\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally();\n this.code(finallyCode);\n }\n return this._endBlockNode(Catch, Finally);\n }\n // `throw` statement\n throw(error) {\n return this._leafNode(new Throw(error));\n }\n // start self-balancing block\n block(body, nodeCount) {\n this._blockStarts.push(this._nodes.length);\n if (body)\n this.code(body).endBlock(nodeCount);\n return this;\n }\n // end the current self-balancing block\n endBlock(nodeCount) {\n const len = this._blockStarts.pop();\n if (len === undefined)\n throw new Error(\"CodeGen: not in self-balancing block\");\n const toClose = this._nodes.length - len;\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`);\n }\n this._nodes.length = len;\n return this;\n }\n // `function` heading (or definition if funcBody is passed)\n func(name, args = code_1.nil, async, funcBody) {\n this._blockNode(new Func(name, args, async));\n if (funcBody)\n this.code(funcBody).endFunc();\n return this;\n }\n // end function definition\n endFunc() {\n return this._endBlockNode(Func);\n }\n optimize(n = 1) {\n while (n-- > 0) {\n this._root.optimizeNodes();\n this._root.optimizeNames(this._root.names, this._constants);\n }\n }\n _leafNode(node) {\n this._currNode.nodes.push(node);\n return this;\n }\n _blockNode(node) {\n this._currNode.nodes.push(node);\n this._nodes.push(node);\n }\n _endBlockNode(N1, N2) {\n const n = this._currNode;\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop();\n return this;\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`);\n }\n _elseNode(node) {\n const n = this._currNode;\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"');\n }\n this._currNode = n.else = node;\n return this;\n }\n get _root() {\n return this._nodes[0];\n }\n get _currNode() {\n const ns = this._nodes;\n return ns[ns.length - 1];\n }\n set _currNode(node) {\n const ns = this._nodes;\n ns[ns.length - 1] = node;\n }\n}\nexports.CodeGen = CodeGen;\nfunction addNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) + (from[n] || 0);\n return names;\n}\nfunction addExprNames(names, from) {\n return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;\n}\nfunction optimizeExpr(expr, names, constants) {\n if (expr instanceof code_1.Name)\n return replaceName(expr);\n if (!canOptimize(expr))\n return expr;\n return new code_1._Code(expr._items.reduce((items, c) => {\n if (c instanceof code_1.Name)\n c = replaceName(c);\n if (c instanceof code_1._Code)\n items.push(...c._items);\n else\n items.push(c);\n return items;\n }, []));\n function replaceName(n) {\n const c = constants[n.str];\n if (c === undefined || names[n.str] !== 1)\n return n;\n delete names[n.str];\n return c;\n }\n function canOptimize(e) {\n return (e instanceof code_1._Code &&\n e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== undefined));\n }\n}\nfunction subtractNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) - (from[n] || 0);\n}\nfunction not(x) {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : (0, code_1._) `!${par(x)}`;\n}\nexports.not = not;\nconst andCode = mappend(exports.operators.AND);\n// boolean AND (&&) expression with the passed arguments\nfunction and(...args) {\n return args.reduce(andCode);\n}\nexports.and = and;\nconst orCode = mappend(exports.operators.OR);\n// boolean OR (||) expression with the passed arguments\nfunction or(...args) {\n return args.reduce(orCode);\n}\nexports.or = or;\nfunction mappend(op) {\n return (x, y) => (x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._) `${par(x)} ${op} ${par(y)}`);\n}\nfunction par(x) {\n return x instanceof code_1.Name ? x : (0, code_1._) `(${x})`;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst code_1 = require(\"./codegen/code\");\n// TODO refactor to use Set\nfunction toHash(arr) {\n const hash = {};\n for (const item of arr)\n hash[item] = true;\n return hash;\n}\nexports.toHash = toHash;\nfunction alwaysValidSchema(it, schema) {\n if (typeof schema == \"boolean\")\n return schema;\n if (Object.keys(schema).length === 0)\n return true;\n checkUnknownRules(it, schema);\n return !schemaHasRules(schema, it.self.RULES.all);\n}\nexports.alwaysValidSchema = alwaysValidSchema;\nfunction checkUnknownRules(it, schema = it.schema) {\n const { opts, self } = it;\n if (!opts.strictSchema)\n return;\n if (typeof schema === \"boolean\")\n return;\n const rules = self.RULES.keywords;\n for (const key in schema) {\n if (!rules[key])\n checkStrictMode(it, `unknown keyword: \"${key}\"`);\n }\n}\nexports.checkUnknownRules = checkUnknownRules;\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (rules[key])\n return true;\n return false;\n}\nexports.schemaHasRules = schemaHasRules;\nfunction schemaHasRulesButRef(schema, RULES) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (key !== \"$ref\" && RULES.all[key])\n return true;\n return false;\n}\nexports.schemaHasRulesButRef = schemaHasRulesButRef;\nfunction schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\")\n return schema;\n if (typeof schema == \"string\")\n return (0, codegen_1._) `${schema}`;\n }\n return (0, codegen_1._) `${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`;\n}\nexports.schemaRefOrVal = schemaRefOrVal;\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\nexports.unescapeFragment = unescapeFragment;\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\nexports.escapeFragment = escapeFragment;\nfunction escapeJsonPointer(str) {\n if (typeof str == \"number\")\n return `${str}`;\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nexports.escapeJsonPointer = escapeJsonPointer;\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\nexports.unescapeJsonPointer = unescapeJsonPointer;\nfunction eachItem(xs, f) {\n if (Array.isArray(xs)) {\n for (const x of xs)\n f(x);\n }\n else {\n f(xs);\n }\n}\nexports.eachItem = eachItem;\nfunction makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName, }) {\n return (gen, from, to, toName) => {\n const res = to === undefined\n ? from\n : to instanceof codegen_1.Name\n ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof codegen_1.Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to);\n return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;\n };\n}\nexports.mergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => {\n gen.if((0, codegen_1._) `${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._) `${to} || {}`).code((0, codegen_1._) `Object.assign(${to}, ${from})`));\n }),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true);\n }\n else {\n gen.assign(to, (0, codegen_1._) `${to} || {}`);\n setEvaluated(gen, to, from);\n }\n }),\n mergeValues: (from, to) => (from === true ? true : { ...from, ...to }),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._) `${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._) `${to} > ${from} ? ${to} : ${from}`)),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n};\nfunction evaluatedPropsToName(gen, ps) {\n if (ps === true)\n return gen.var(\"props\", true);\n const props = gen.var(\"props\", (0, codegen_1._) `{}`);\n if (ps !== undefined)\n setEvaluated(gen, props, ps);\n return props;\n}\nexports.evaluatedPropsToName = evaluatedPropsToName;\nfunction setEvaluated(gen, props, ps) {\n Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._) `${props}${(0, codegen_1.getProperty)(p)}`, true));\n}\nexports.setEvaluated = setEvaluated;\nconst snippets = {};\nfunction useFunc(gen, f) {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)),\n });\n}\nexports.useFunc = useFunc;\nvar Type;\n(function (Type) {\n Type[Type[\"Num\"] = 0] = \"Num\";\n Type[Type[\"Str\"] = 1] = \"Str\";\n})(Type || (exports.Type = Type = {}));\nfunction getErrorPath(dataProp, dataPropType, jsPropertySyntax) {\n // let path\n if (dataProp instanceof codegen_1.Name) {\n const isNumber = dataPropType === Type.Num;\n return jsPropertySyntax\n ? isNumber\n ? (0, codegen_1._) `\"[\" + ${dataProp} + \"]\"`\n : (0, codegen_1._) `\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? (0, codegen_1._) `\"/\" + ${dataProp}`\n : (0, codegen_1._) `\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`; // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp);\n}\nexports.getErrorPath = getErrorPath;\nfunction checkStrictMode(it, msg, mode = it.opts.strictSchema) {\n if (!mode)\n return;\n msg = `strict mode: ${msg}`;\n if (mode === true)\n throw new Error(msg);\n it.self.logger.warn(msg);\n}\nexports.checkStrictMode = checkStrictMode;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"./codegen\");\nconst names = {\n // validation function arguments\n data: new codegen_1.Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new codegen_1.Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new codegen_1.Name(\"instancePath\"),\n parentData: new codegen_1.Name(\"parentData\"),\n parentDataProperty: new codegen_1.Name(\"parentDataProperty\"),\n rootData: new codegen_1.Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new codegen_1.Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new codegen_1.Name(\"vErrors\"), // null or array of validation errors\n errors: new codegen_1.Name(\"errors\"), // counter of validation errors\n this: new codegen_1.Name(\"this\"),\n // \"globals\"\n self: new codegen_1.Name(\"self\"),\n scope: new codegen_1.Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new codegen_1.Name(\"json\"),\n jsonPos: new codegen_1.Name(\"jsonPos\"),\n jsonLen: new codegen_1.Name(\"jsonLen\"),\n jsonPart: new codegen_1.Name(\"jsonPart\"),\n};\nexports.default = names;\n//# sourceMappingURL=names.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst util_1 = require(\"./util\");\nconst names_1 = require(\"./names\");\nexports.keywordError = {\n message: ({ keyword }) => (0, codegen_1.str) `must pass \"${keyword}\" keyword validation`,\n};\nexports.keyword$DataError = {\n message: ({ keyword, schemaType }) => schemaType\n ? (0, codegen_1.str) `\"${keyword}\" keyword must be ${schemaType} ($data)`\n : (0, codegen_1.str) `\"${keyword}\" keyword is invalid ($data)`,\n};\nfunction reportError(cxt, error = exports.keywordError, errorPaths, overrideAllErrors) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : (compositeRule || allErrors)) {\n addError(gen, errObj);\n }\n else {\n returnErrors(it, (0, codegen_1._) `[${errObj}]`);\n }\n}\nexports.reportError = reportError;\nfunction reportExtraError(cxt, error = exports.keywordError, errorPaths) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n addError(gen, errObj);\n if (!(compositeRule || allErrors)) {\n returnErrors(it, names_1.default.vErrors);\n }\n}\nexports.reportExtraError = reportExtraError;\nfunction resetErrorsCount(gen, errsCount) {\n gen.assign(names_1.default.errors, errsCount);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._) `${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));\n}\nexports.resetErrorsCount = resetErrorsCount;\nfunction extendErrors({ gen, keyword, schemaValue, data, errsCount, it, }) {\n /* istanbul ignore if */\n if (errsCount === undefined)\n throw new Error(\"ajv implementation error\");\n const err = gen.name(\"err\");\n gen.forRange(\"i\", errsCount, names_1.default.errors, (i) => {\n gen.const(err, (0, codegen_1._) `${names_1.default.vErrors}[${i}]`);\n gen.if((0, codegen_1._) `${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._) `${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath)));\n gen.assign((0, codegen_1._) `${err}.schemaPath`, (0, codegen_1.str) `${it.errSchemaPath}/${keyword}`);\n if (it.opts.verbose) {\n gen.assign((0, codegen_1._) `${err}.schema`, schemaValue);\n gen.assign((0, codegen_1._) `${err}.data`, data);\n }\n });\n}\nexports.extendErrors = extendErrors;\nfunction addError(gen, errObj) {\n const err = gen.const(\"err\", errObj);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._) `[${err}]`), (0, codegen_1._) `${names_1.default.vErrors}.push(${err})`);\n gen.code((0, codegen_1._) `${names_1.default.errors}++`);\n}\nfunction returnErrors(it, errs) {\n const { gen, validateName, schemaEnv } = it;\n if (schemaEnv.$async) {\n gen.throw((0, codegen_1._) `new ${it.ValidationError}(${errs})`);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, errs);\n gen.return(false);\n }\n}\nconst E = {\n keyword: new codegen_1.Name(\"keyword\"),\n schemaPath: new codegen_1.Name(\"schemaPath\"), // also used in JTD errors\n params: new codegen_1.Name(\"params\"),\n propertyName: new codegen_1.Name(\"propertyName\"),\n message: new codegen_1.Name(\"message\"),\n schema: new codegen_1.Name(\"schema\"),\n parentSchema: new codegen_1.Name(\"parentSchema\"),\n};\nfunction errorObjectCode(cxt, error, errorPaths) {\n const { createErrors } = cxt.it;\n if (createErrors === false)\n return (0, codegen_1._) `{}`;\n return errorObject(cxt, error, errorPaths);\n}\nfunction errorObject(cxt, error, errorPaths = {}) {\n const { gen, it } = cxt;\n const keyValues = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ];\n extraErrorProps(cxt, error, keyValues);\n return gen.object(...keyValues);\n}\nfunction errorInstancePath({ errorPath }, { instancePath }) {\n const instPath = instancePath\n ? (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}`\n : errorPath;\n return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)];\n}\nfunction errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) {\n let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str) `${errSchemaPath}/${keyword}`;\n if (schemaPath) {\n schPath = (0, codegen_1.str) `${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`;\n }\n return [E.schemaPath, schPath];\n}\nfunction extraErrorProps(cxt, { params, message }, keyValues) {\n const { keyword, data, schemaValue, it } = cxt;\n const { opts, propertyName, topSchemaRef, schemaPath } = it;\n keyValues.push([E.keyword, keyword], [E.params, typeof params == \"function\" ? params(cxt) : params || (0, codegen_1._) `{}`]);\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message]);\n }\n if (opts.verbose) {\n keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._) `${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);\n }\n if (propertyName)\n keyValues.push([E.propertyName, propertyName]);\n}\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst boolError = {\n message: \"boolean schema is false\",\n};\nfunction topBoolOrEmptySchema(it) {\n const { gen, schema, validateName } = it;\n if (schema === false) {\n falseSchemaError(it, false);\n }\n else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(names_1.default.data);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, null);\n gen.return(true);\n }\n}\nexports.topBoolOrEmptySchema = topBoolOrEmptySchema;\nfunction boolOrEmptySchema(it, valid) {\n const { gen, schema } = it;\n if (schema === false) {\n gen.var(valid, false); // TODO var\n falseSchemaError(it);\n }\n else {\n gen.var(valid, true); // TODO var\n }\n}\nexports.boolOrEmptySchema = boolOrEmptySchema;\nfunction falseSchemaError(it, overrideAllErrors) {\n const { gen, data } = it;\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n };\n (0, errors_1.reportError)(cxt, boolError, undefined, overrideAllErrors);\n}\n//# sourceMappingURL=boolSchema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRules = exports.isJSONType = void 0;\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"];\nconst jsonTypes = new Set(_jsonTypes);\nfunction isJSONType(x) {\n return typeof x == \"string\" && jsonTypes.has(x);\n}\nexports.isJSONType = isJSONType;\nfunction getRules() {\n const groups = {\n number: { type: \"number\", rules: [] },\n string: { type: \"string\", rules: [] },\n array: { type: \"array\", rules: [] },\n object: { type: \"object\", rules: [] },\n };\n return {\n types: { ...groups, integer: true, boolean: true, null: true },\n rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object],\n post: { rules: [] },\n all: {},\n keywords: {},\n };\n}\nexports.getRules = getRules;\n//# sourceMappingURL=rules.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;\nfunction schemaHasRulesForType({ schema, self }, type) {\n const group = self.RULES.types[type];\n return group && group !== true && shouldUseGroup(schema, group);\n}\nexports.schemaHasRulesForType = schemaHasRulesForType;\nfunction shouldUseGroup(schema, group) {\n return group.rules.some((rule) => shouldUseRule(schema, rule));\n}\nexports.shouldUseGroup = shouldUseGroup;\nfunction shouldUseRule(schema, rule) {\n var _a;\n return (schema[rule.keyword] !== undefined ||\n ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== undefined)));\n}\nexports.shouldUseRule = shouldUseRule;\n//# sourceMappingURL=applicability.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;\nconst rules_1 = require(\"../rules\");\nconst applicability_1 = require(\"./applicability\");\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nvar DataType;\n(function (DataType) {\n DataType[DataType[\"Correct\"] = 0] = \"Correct\";\n DataType[DataType[\"Wrong\"] = 1] = \"Wrong\";\n})(DataType || (exports.DataType = DataType = {}));\nfunction getSchemaTypes(schema) {\n const types = getJSONTypes(schema.type);\n const hasNull = types.includes(\"null\");\n if (hasNull) {\n if (schema.nullable === false)\n throw new Error(\"type: null contradicts nullable: false\");\n }\n else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"');\n }\n if (schema.nullable === true)\n types.push(\"null\");\n }\n return types;\n}\nexports.getSchemaTypes = getSchemaTypes;\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction getJSONTypes(ts) {\n const types = Array.isArray(ts) ? ts : ts ? [ts] : [];\n if (types.every(rules_1.isJSONType))\n return types;\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"));\n}\nexports.getJSONTypes = getJSONTypes;\nfunction coerceAndCheckDataType(it, types) {\n const { gen, data, opts } = it;\n const coerceTo = coerceToTypes(types, opts.coerceTypes);\n const checkTypes = types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0]));\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong);\n gen.if(wrongType, () => {\n if (coerceTo.length)\n coerceData(it, types, coerceTo);\n else\n reportTypeError(it);\n });\n }\n return checkTypes;\n}\nexports.coerceAndCheckDataType = coerceAndCheckDataType;\nconst COERCIBLE = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nfunction coerceToTypes(types, coerceTypes) {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : [];\n}\nfunction coerceData(it, types, coerceTo) {\n const { gen, data, opts } = it;\n const dataType = gen.let(\"dataType\", (0, codegen_1._) `typeof ${data}`);\n const coerced = gen.let(\"coerced\", (0, codegen_1._) `undefined`);\n if (opts.coerceTypes === \"array\") {\n gen.if((0, codegen_1._) `${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen\n .assign(data, (0, codegen_1._) `${data}[0]`)\n .assign(dataType, (0, codegen_1._) `typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));\n }\n gen.if((0, codegen_1._) `${coerced} !== undefined`);\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t);\n }\n }\n gen.else();\n reportTypeError(it);\n gen.endIf();\n gen.if((0, codegen_1._) `${coerced} !== undefined`, () => {\n gen.assign(data, coerced);\n assignParentData(it, coerced);\n });\n function coerceSpecificType(t) {\n switch (t) {\n case \"string\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, (0, codegen_1._) `\"\" + ${data}`)\n .elseIf((0, codegen_1._) `${data} === null`)\n .assign(coerced, (0, codegen_1._) `\"\"`);\n return;\n case \"number\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"integer\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"boolean\":\n gen\n .elseIf((0, codegen_1._) `${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf((0, codegen_1._) `${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true);\n return;\n case \"null\":\n gen.elseIf((0, codegen_1._) `${data} === \"\" || ${data} === 0 || ${data} === false`);\n gen.assign(coerced, null);\n return;\n case \"array\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`)\n .assign(coerced, (0, codegen_1._) `[${data}]`);\n }\n }\n}\nfunction assignParentData({ gen, parentData, parentDataProperty }, expr) {\n // TODO use gen.property\n gen.if((0, codegen_1._) `${parentData} !== undefined`, () => gen.assign((0, codegen_1._) `${parentData}[${parentDataProperty}]`, expr));\n}\nfunction checkDataType(dataType, data, strictNums, correct = DataType.Correct) {\n const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;\n let cond;\n switch (dataType) {\n case \"null\":\n return (0, codegen_1._) `${data} ${EQ} null`;\n case \"array\":\n cond = (0, codegen_1._) `Array.isArray(${data})`;\n break;\n case \"object\":\n cond = (0, codegen_1._) `${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`;\n break;\n case \"integer\":\n cond = numCond((0, codegen_1._) `!(${data} % 1) && !isNaN(${data})`);\n break;\n case \"number\":\n cond = numCond();\n break;\n default:\n return (0, codegen_1._) `typeof ${data} ${EQ} ${dataType}`;\n }\n return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);\n function numCond(_cond = codegen_1.nil) {\n return (0, codegen_1.and)((0, codegen_1._) `typeof ${data} == \"number\"`, _cond, strictNums ? (0, codegen_1._) `isFinite(${data})` : codegen_1.nil);\n }\n}\nexports.checkDataType = checkDataType;\nfunction checkDataTypes(dataTypes, data, strictNums, correct) {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct);\n }\n let cond;\n const types = (0, util_1.toHash)(dataTypes);\n if (types.array && types.object) {\n const notObj = (0, codegen_1._) `typeof ${data} != \"object\"`;\n cond = types.null ? notObj : (0, codegen_1._) `!${data} || ${notObj}`;\n delete types.null;\n delete types.array;\n delete types.object;\n }\n else {\n cond = codegen_1.nil;\n }\n if (types.number)\n delete types.integer;\n for (const t in types)\n cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));\n return cond;\n}\nexports.checkDataTypes = checkDataTypes;\nconst typeError = {\n message: ({ schema }) => `must be ${schema}`,\n params: ({ schema, schemaValue }) => typeof schema == \"string\" ? (0, codegen_1._) `{type: ${schema}}` : (0, codegen_1._) `{type: ${schemaValue}}`,\n};\nfunction reportTypeError(it) {\n const cxt = getTypeErrorContext(it);\n (0, errors_1.reportError)(cxt, typeError);\n}\nexports.reportTypeError = reportTypeError;\nfunction getTypeErrorContext(it) {\n const { gen, data, schema } = it;\n const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, \"type\");\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n };\n}\n//# sourceMappingURL=dataType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assignDefaults = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction assignDefaults(it, ty) {\n const { properties, items } = it.schema;\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default);\n }\n }\n else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i) => assignDefault(it, i, sch.default));\n }\n}\nexports.assignDefaults = assignDefaults;\nfunction assignDefault(it, prop, defaultValue) {\n const { gen, compositeRule, data, opts } = it;\n if (defaultValue === undefined)\n return;\n const childData = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(prop)}`;\n if (compositeRule) {\n (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`);\n return;\n }\n let condition = (0, codegen_1._) `${childData} === undefined`;\n if (opts.useDefaults === \"empty\") {\n condition = (0, codegen_1._) `${condition} || ${childData} === null || ${childData} === \"\"`;\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, (0, codegen_1._) `${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);\n}\n//# sourceMappingURL=defaults.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;\nconst codegen_1 = require(\"../compile/codegen\");\nconst util_1 = require(\"../compile/util\");\nconst names_1 = require(\"../compile/names\");\nconst util_2 = require(\"../compile/util\");\nfunction checkReportMissingProp(cxt, prop) {\n const { gen, data, it } = cxt;\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({ missingProperty: (0, codegen_1._) `${prop}` }, true);\n cxt.error();\n });\n}\nexports.checkReportMissingProp = checkReportMissingProp;\nfunction checkMissingProp({ gen, data, it: { opts } }, properties, missing) {\n return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._) `${missing} = ${prop}`)));\n}\nexports.checkMissingProp = checkMissingProp;\nfunction reportMissingProp(cxt, missing) {\n cxt.setParams({ missingProperty: missing }, true);\n cxt.error();\n}\nexports.reportMissingProp = reportMissingProp;\nfunction hasPropFunc(gen) {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: (0, codegen_1._) `Object.prototype.hasOwnProperty`,\n });\n}\nexports.hasPropFunc = hasPropFunc;\nfunction isOwnProperty(gen, data, property) {\n return (0, codegen_1._) `${hasPropFunc(gen)}.call(${data}, ${property})`;\n}\nexports.isOwnProperty = isOwnProperty;\nfunction propertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} !== undefined`;\n return ownProperties ? (0, codegen_1._) `${cond} && ${isOwnProperty(gen, data, property)}` : cond;\n}\nexports.propertyInData = propertyInData;\nfunction noPropertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} === undefined`;\n return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;\n}\nexports.noPropertyInData = noPropertyInData;\nfunction allSchemaProperties(schemaMap) {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : [];\n}\nexports.allSchemaProperties = allSchemaProperties;\nfunction schemaProperties(it, schemaMap) {\n return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));\n}\nexports.schemaProperties = schemaProperties;\nfunction callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {\n const dataAndSchema = passSchema ? (0, codegen_1._) `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;\n const valCxt = [\n [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],\n [names_1.default.parentData, it.parentData],\n [names_1.default.parentDataProperty, it.parentDataProperty],\n [names_1.default.rootData, names_1.default.rootData],\n ];\n if (it.opts.dynamicRef)\n valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);\n const args = (0, codegen_1._) `${dataAndSchema}, ${gen.object(...valCxt)}`;\n return context !== codegen_1.nil ? (0, codegen_1._) `${func}.call(${context}, ${args})` : (0, codegen_1._) `${func}(${args})`;\n}\nexports.callValidateCode = callValidateCode;\nconst newRegExp = (0, codegen_1._) `new RegExp`;\nfunction usePattern({ gen, it: { opts } }, pattern) {\n const u = opts.unicodeRegExp ? \"u\" : \"\";\n const { regExp } = opts.code;\n const rx = regExp(pattern, u);\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: (0, codegen_1._) `${regExp.code === \"new RegExp\" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`,\n });\n}\nexports.usePattern = usePattern;\nfunction validateArray(cxt) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true);\n validateItems(() => gen.assign(validArr, false));\n return validArr;\n }\n gen.var(valid, true);\n validateItems(() => gen.break());\n return valid;\n function validateItems(notValid) {\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword,\n dataProp: i,\n dataPropType: util_1.Type.Num,\n }, valid);\n gen.if((0, codegen_1.not)(valid), notValid);\n });\n }\n}\nexports.validateArray = validateArray;\nfunction validateUnion(cxt) {\n const { gen, schema, keyword, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));\n if (alwaysValid && !it.opts.unevaluated)\n return;\n const valid = gen.let(\"valid\", false);\n const schValid = gen.name(\"_valid\");\n gen.block(() => schema.forEach((_sch, i) => {\n const schCxt = cxt.subschema({\n keyword,\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n gen.assign(valid, (0, codegen_1._) `${valid} || ${schValid}`);\n const merged = cxt.mergeValidEvaluated(schCxt, schValid);\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged)\n gen.if((0, codegen_1.not)(valid));\n }));\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n}\nexports.validateUnion = validateUnion;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst code_1 = require(\"../../vocabularies/code\");\nconst errors_1 = require(\"../errors\");\nfunction macroKeywordCode(cxt, def) {\n const { gen, keyword, schema, parentSchema, it } = cxt;\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it);\n const schemaRef = useKeyword(gen, keyword, macroSchema);\n if (it.opts.validateSchema !== false)\n it.self.validateSchema(macroSchema, true);\n const valid = gen.name(\"valid\");\n cxt.subschema({\n schema: macroSchema,\n schemaPath: codegen_1.nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n }, valid);\n cxt.pass(valid, () => cxt.error(true));\n}\nexports.macroKeywordCode = macroKeywordCode;\nfunction funcKeywordCode(cxt, def) {\n var _a;\n const { gen, keyword, schema, parentSchema, $data, it } = cxt;\n checkAsyncKeyword(it, def);\n const validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate;\n const validateRef = useKeyword(gen, keyword, validate);\n const valid = gen.let(\"valid\");\n cxt.block$data(valid, validateKeyword);\n cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid);\n function validateKeyword() {\n if (def.errors === false) {\n assignValid();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => cxt.error());\n }\n else {\n const ruleErrs = def.async ? validateAsync() : validateSync();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => addErrs(cxt, ruleErrs));\n }\n }\n function validateAsync() {\n const ruleErrs = gen.let(\"ruleErrs\", null);\n gen.try(() => assignValid((0, codegen_1._) `await `), (e) => gen.assign(valid, false).if((0, codegen_1._) `${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._) `${e}.errors`), () => gen.throw(e)));\n return ruleErrs;\n }\n function validateSync() {\n const validateErrs = (0, codegen_1._) `${validateRef}.errors`;\n gen.assign(validateErrs, null);\n assignValid(codegen_1.nil);\n return validateErrs;\n }\n function assignValid(_await = def.async ? (0, codegen_1._) `await ` : codegen_1.nil) {\n const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false);\n gen.assign(valid, (0, codegen_1._) `${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);\n }\n function reportErrs(errors) {\n var _a;\n gen.if((0, codegen_1.not)((_a = def.valid) !== null && _a !== void 0 ? _a : valid), errors);\n }\n}\nexports.funcKeywordCode = funcKeywordCode;\nfunction modifyData(cxt) {\n const { gen, data, it } = cxt;\n gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._) `${it.parentData}[${it.parentDataProperty}]`));\n}\nfunction addErrs(cxt, errs) {\n const { gen } = cxt;\n gen.if((0, codegen_1._) `Array.isArray(${errs})`, () => {\n gen\n .assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`)\n .assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n (0, errors_1.extendErrors)(cxt);\n }, () => cxt.error());\n}\nfunction checkAsyncKeyword({ schemaEnv }, def) {\n if (def.async && !schemaEnv.$async)\n throw new Error(\"async keyword in sync schema\");\n}\nfunction useKeyword(gen, keyword, result) {\n if (result === undefined)\n throw new Error(`keyword \"${keyword}\" failed to compile`);\n return gen.scopeValue(\"keyword\", typeof result == \"function\" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) });\n}\nfunction validSchemaType(schema, schemaType, allowUndefined = false) {\n // TODO add tests\n return (!schemaType.length ||\n schemaType.some((st) => st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")));\n}\nexports.validSchemaType = validSchemaType;\nfunction validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\");\n }\n const deps = def.dependencies;\n if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`);\n }\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword]);\n if (!valid) {\n const msg = `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors);\n if (opts.validateSchema === \"log\")\n self.logger.error(msg);\n else\n throw new Error(msg);\n }\n }\n}\nexports.validateKeywordUsage = validateKeywordUsage;\n//# sourceMappingURL=keyword.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');\n }\n if (keyword !== undefined) {\n const sch = it.schema[keyword];\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`,\n };\n }\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"');\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n };\n }\n throw new Error('either \"keyword\" or \"schema\" must be passed');\n}\nexports.getSubschema = getSubschema;\nfunction extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');\n }\n const { gen } = it;\n if (dataProp !== undefined) {\n const { errorPath, dataPathArr, opts } = it;\n const nextData = gen.let(\"data\", (0, codegen_1._) `${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);\n dataContextProps(nextData);\n subschema.errorPath = (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;\n subschema.parentDataProperty = (0, codegen_1._) `${dataProp}`;\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];\n }\n if (data !== undefined) {\n const nextData = data instanceof codegen_1.Name ? data : gen.let(\"data\", data, true); // replaceable if used once?\n dataContextProps(nextData);\n if (propertyName !== undefined)\n subschema.propertyName = propertyName;\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n if (dataTypes)\n subschema.dataTypes = dataTypes;\n function dataContextProps(_nextData) {\n subschema.data = _nextData;\n subschema.dataLevel = it.dataLevel + 1;\n subschema.dataTypes = [];\n it.definedProperties = new Set();\n subschema.parentData = it.data;\n subschema.dataNames = [...it.dataNames, _nextData];\n }\n}\nexports.extendSubschemaData = extendSubschemaData;\nfunction extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {\n if (compositeRule !== undefined)\n subschema.compositeRule = compositeRule;\n if (createErrors !== undefined)\n subschema.createErrors = createErrors;\n if (allErrors !== undefined)\n subschema.allErrors = allErrors;\n subschema.jtdDiscriminator = jtdDiscriminator; // not inherited\n subschema.jtdMetadata = jtdMetadata; // not inherited\n}\nexports.extendSubschemaMode = extendSubschemaMode;\n//# sourceMappingURL=subschema.js.map","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i (count += countKeys(sch)));\n }\n if (count === Infinity)\n return Infinity;\n }\n return count;\n}\nfunction getFullPath(resolver, id = \"\", normalize) {\n if (normalize !== false)\n id = normalizeId(id);\n const p = resolver.parse(id);\n return _getFullPath(resolver, p);\n}\nexports.getFullPath = getFullPath;\nfunction _getFullPath(resolver, p) {\n const serialized = resolver.serialize(p);\n return serialized.split(\"#\")[0] + \"#\";\n}\nexports._getFullPath = _getFullPath;\nconst TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\";\n}\nexports.normalizeId = normalizeId;\nfunction resolveUrl(resolver, baseId, id) {\n id = normalizeId(id);\n return resolver.resolve(baseId, id);\n}\nexports.resolveUrl = resolveUrl;\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i;\nfunction getSchemaRefs(schema, baseId) {\n if (typeof schema == \"boolean\")\n return {};\n const { schemaId, uriResolver } = this.opts;\n const schId = normalizeId(schema[schemaId] || baseId);\n const baseIds = { \"\": schId };\n const pathPrefix = getFullPath(uriResolver, schId, false);\n const localRefs = {};\n const schemaRefs = new Set();\n traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined)\n return;\n const fullPath = pathPrefix + jsonPtr;\n let innerBaseId = baseIds[parentJsonPtr];\n if (typeof sch[schemaId] == \"string\")\n innerBaseId = addRef.call(this, sch[schemaId]);\n addAnchor.call(this, sch.$anchor);\n addAnchor.call(this, sch.$dynamicAnchor);\n baseIds[jsonPtr] = innerBaseId;\n function addRef(ref) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve;\n ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref);\n if (schemaRefs.has(ref))\n throw ambiguos(ref);\n schemaRefs.add(ref);\n let schOrRef = this.refs[ref];\n if (typeof schOrRef == \"string\")\n schOrRef = this.refs[schOrRef];\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref);\n }\n else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref);\n localRefs[ref] = sch;\n }\n else {\n this.refs[ref] = fullPath;\n }\n }\n return ref;\n }\n function addAnchor(anchor) {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor))\n throw new Error(`invalid anchor \"${anchor}\"`);\n addRef.call(this, `#${anchor}`);\n }\n }\n });\n return localRefs;\n function checkAmbiguosRef(sch1, sch2, ref) {\n if (sch2 !== undefined && !equal(sch1, sch2))\n throw ambiguos(ref);\n }\n function ambiguos(ref) {\n return new Error(`reference \"${ref}\" resolves to more than one schema`);\n }\n}\nexports.getSchemaRefs = getSchemaRefs;\n//# sourceMappingURL=resolve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;\nconst boolSchema_1 = require(\"./boolSchema\");\nconst dataType_1 = require(\"./dataType\");\nconst applicability_1 = require(\"./applicability\");\nconst dataType_2 = require(\"./dataType\");\nconst defaults_1 = require(\"./defaults\");\nconst keyword_1 = require(\"./keyword\");\nconst subschema_1 = require(\"./subschema\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst resolve_1 = require(\"../resolve\");\nconst util_1 = require(\"../util\");\nconst errors_1 = require(\"../errors\");\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nfunction validateFunctionCode(it) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it);\n return;\n }\n }\n validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));\n}\nexports.validateFunctionCode = validateFunctionCode;\nfunction validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {\n if (opts.code.es5) {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {\n gen.code((0, codegen_1._) `\"use strict\"; ${funcSourceUrl(schema, opts)}`);\n destructureValCxtES5(gen, opts);\n gen.code(body);\n });\n }\n else {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));\n }\n}\nfunction destructureValCxt(opts) {\n return (0, codegen_1._) `{${names_1.default.instancePath}=\"\", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._) `, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;\n}\nfunction destructureValCxtES5(gen, opts) {\n gen.if(names_1.default.valCxt, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.instancePath}`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentData}`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);\n gen.var(names_1.default.rootData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.rootData}`);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);\n }, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `\"\"`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.rootData, names_1.default.data);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `{}`);\n });\n}\nfunction topSchemaObjCode(it) {\n const { schema, opts, gen } = it;\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n checkNoDefault(it);\n gen.let(names_1.default.vErrors, null);\n gen.let(names_1.default.errors, 0);\n if (opts.unevaluated)\n resetEvaluated(it);\n typeAndKeywords(it);\n returnResults(it);\n });\n return;\n}\nfunction resetEvaluated(it) {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const { gen, validateName } = it;\n it.evaluated = gen.const(\"evaluated\", (0, codegen_1._) `${validateName}.evaluated`);\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._) `${it.evaluated}.props`, (0, codegen_1._) `undefined`));\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._) `${it.evaluated}.items`, (0, codegen_1._) `undefined`));\n}\nfunction funcSourceUrl(schema, opts) {\n const schId = typeof schema == \"object\" && schema[opts.schemaId];\n return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._) `/*# sourceURL=${schId} */` : codegen_1.nil;\n}\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it, valid) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid);\n return;\n }\n }\n (0, boolSchema_1.boolOrEmptySchema)(it, valid);\n}\nfunction schemaCxtHasRules({ schema, self }) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (self.RULES.all[key])\n return true;\n return false;\n}\nfunction isSchemaObj(it) {\n return typeof it.schema != \"boolean\";\n}\nfunction subSchemaObjCode(it, valid) {\n const { schema, gen, opts } = it;\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n updateContext(it);\n checkAsyncSchema(it);\n const errsCount = gen.const(\"_errs\", names_1.default.errors);\n typeAndKeywords(it, errsCount);\n // TODO var\n gen.var(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n}\nfunction checkKeywords(it) {\n (0, util_1.checkUnknownRules)(it);\n checkRefsAndKeywords(it);\n}\nfunction typeAndKeywords(it, errsCount) {\n if (it.opts.jtd)\n return schemaKeywords(it, [], false, errsCount);\n const types = (0, dataType_1.getSchemaTypes)(it.schema);\n const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);\n schemaKeywords(it, types, !checkedTypes, errsCount);\n}\nfunction checkRefsAndKeywords(it) {\n const { schema, errSchemaPath, opts, self } = it;\n if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`);\n }\n}\nfunction checkNoDefault(it) {\n const { schema, opts } = it;\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n (0, util_1.checkStrictMode)(it, \"default is ignored in the schema root\");\n }\n}\nfunction updateContext(it) {\n const schId = it.schema[it.opts.schemaId];\n if (schId)\n it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);\n}\nfunction checkAsyncSchema(it) {\n if (it.schema.$async && !it.schemaEnv.$async)\n throw new Error(\"async schema in sync schema\");\n}\nfunction commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {\n const msg = schema.$comment;\n if (opts.$comment === true) {\n gen.code((0, codegen_1._) `${names_1.default.self}.logger.log(${msg})`);\n }\n else if (typeof opts.$comment == \"function\") {\n const schemaPath = (0, codegen_1.str) `${errSchemaPath}/$comment`;\n const rootName = gen.scopeValue(\"root\", { ref: schemaEnv.root });\n gen.code((0, codegen_1._) `${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);\n }\n}\nfunction returnResults(it) {\n const { gen, schemaEnv, validateName, ValidationError, opts } = it;\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if((0, codegen_1._) `${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._) `new ${ValidationError}(${names_1.default.vErrors})`));\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, names_1.default.vErrors);\n if (opts.unevaluated)\n assignEvaluated(it);\n gen.return((0, codegen_1._) `${names_1.default.errors} === 0`);\n }\n}\nfunction assignEvaluated({ gen, evaluated, props, items }) {\n if (props instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.props`, props);\n if (items instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.items`, items);\n}\nfunction schemaKeywords(it, types, typeErrors, errsCount) {\n const { gen, schema, data, allErrors, opts, self } = it;\n const { RULES } = self;\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", RULES.all.$ref.definition)); // TODO typecast\n return;\n }\n if (!opts.jtd)\n checkStrictTypes(it, types);\n gen.block(() => {\n for (const group of RULES.rules)\n groupKeywords(group);\n groupKeywords(RULES.post);\n });\n function groupKeywords(group) {\n if (!(0, applicability_1.shouldUseGroup)(schema, group))\n return;\n if (group.type) {\n gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));\n iterateKeywords(it, group);\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else();\n (0, dataType_2.reportTypeError)(it);\n }\n gen.endIf();\n }\n else {\n iterateKeywords(it, group);\n }\n // TODO make it \"ok\" call?\n if (!allErrors)\n gen.if((0, codegen_1._) `${names_1.default.errors} === ${errsCount || 0}`);\n }\n}\nfunction iterateKeywords(it, group) {\n const { gen, schema, opts: { useDefaults }, } = it;\n if (useDefaults)\n (0, defaults_1.assignDefaults)(it, group.type);\n gen.block(() => {\n for (const rule of group.rules) {\n if ((0, applicability_1.shouldUseRule)(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type);\n }\n }\n });\n}\nfunction checkStrictTypes(it, types) {\n if (it.schemaEnv.meta || !it.opts.strictTypes)\n return;\n checkContextTypes(it, types);\n if (!it.opts.allowUnionTypes)\n checkMultipleTypes(it, types);\n checkKeywordTypes(it, it.dataTypes);\n}\nfunction checkContextTypes(it, types) {\n if (!types.length)\n return;\n if (!it.dataTypes.length) {\n it.dataTypes = types;\n return;\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`);\n }\n });\n narrowSchemaTypes(it, types);\n}\nfunction checkMultipleTypes(it, ts) {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\");\n }\n}\nfunction checkKeywordTypes(it, ts) {\n const rules = it.self.RULES.all;\n for (const keyword in rules) {\n const rule = rules[keyword];\n if (typeof rule == \"object\" && (0, applicability_1.shouldUseRule)(it.schema, rule)) {\n const { type } = rule.definition;\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`);\n }\n }\n }\n}\nfunction hasApplicableType(schTs, kwdT) {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"));\n}\nfunction includesType(ts, t) {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"));\n}\nfunction narrowSchemaTypes(it, withTypes) {\n const ts = [];\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t))\n ts.push(t);\n else if (withTypes.includes(\"integer\") && t === \"number\")\n ts.push(\"integer\");\n }\n it.dataTypes = ts;\n}\nfunction strictTypesError(it, msg) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n msg += ` at \"${schemaPath}\" (strictTypes)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);\n}\nclass KeywordCxt {\n constructor(it, def, keyword) {\n (0, keyword_1.validateKeywordUsage)(it, def, keyword);\n this.gen = it.gen;\n this.allErrors = it.allErrors;\n this.keyword = keyword;\n this.data = it.data;\n this.schema = it.schema[keyword];\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data;\n this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data);\n this.schemaType = def.schemaType;\n this.parentSchema = it.schema;\n this.params = {};\n this.it = it;\n this.def = def;\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it));\n }\n else {\n this.schemaCode = this.schemaValue;\n if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);\n }\n }\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", names_1.default.errors);\n }\n }\n result(condition, successAction, failAction) {\n this.failResult((0, codegen_1.not)(condition), successAction, failAction);\n }\n failResult(condition, successAction, failAction) {\n this.gen.if(condition);\n if (failAction)\n failAction();\n else\n this.error();\n if (successAction) {\n this.gen.else();\n successAction();\n if (this.allErrors)\n this.gen.endIf();\n }\n else {\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n }\n pass(condition, failAction) {\n this.failResult((0, codegen_1.not)(condition), undefined, failAction);\n }\n fail(condition) {\n if (condition === undefined) {\n this.error();\n if (!this.allErrors)\n this.gen.if(false); // this branch will be removed by gen.optimize\n return;\n }\n this.gen.if(condition);\n this.error();\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n fail$data(condition) {\n if (!this.$data)\n return this.fail(condition);\n const { schemaCode } = this;\n this.fail((0, codegen_1._) `${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);\n }\n error(append, errorParams, errorPaths) {\n if (errorParams) {\n this.setParams(errorParams);\n this._error(append, errorPaths);\n this.setParams({});\n return;\n }\n this._error(append, errorPaths);\n }\n _error(append, errorPaths) {\n ;\n (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);\n }\n $dataError() {\n (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);\n }\n reset() {\n if (this.errsCount === undefined)\n throw new Error('add \"trackErrors\" to keyword definition');\n (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);\n }\n ok(cond) {\n if (!this.allErrors)\n this.gen.if(cond);\n }\n setParams(obj, assign) {\n if (assign)\n Object.assign(this.params, obj);\n else\n this.params = obj;\n }\n block$data(valid, codeBlock, $dataValid = codegen_1.nil) {\n this.gen.block(() => {\n this.check$data(valid, $dataValid);\n codeBlock();\n });\n }\n check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {\n if (!this.$data)\n return;\n const { gen, schemaCode, schemaType, def } = this;\n gen.if((0, codegen_1.or)((0, codegen_1._) `${schemaCode} === undefined`, $dataValid));\n if (valid !== codegen_1.nil)\n gen.assign(valid, true);\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data());\n this.$dataError();\n if (valid !== codegen_1.nil)\n gen.assign(valid, false);\n }\n gen.else();\n }\n invalid$data() {\n const { gen, schemaCode, schemaType, def, it } = this;\n return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());\n function wrong$DataType() {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof codegen_1.Name))\n throw new Error(\"ajv implementation error\");\n const st = Array.isArray(schemaType) ? schemaType : [schemaType];\n return (0, codegen_1._) `${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;\n }\n return codegen_1.nil;\n }\n function invalid$DataSchema() {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", { ref: def.validateSchema }); // TODO value.code for standalone\n return (0, codegen_1._) `!${validateSchemaRef}(${schemaCode})`;\n }\n return codegen_1.nil;\n }\n }\n subschema(appl, valid) {\n const subschema = (0, subschema_1.getSubschema)(this.it, appl);\n (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);\n (0, subschema_1.extendSubschemaMode)(subschema, appl);\n const nextContext = { ...this.it, ...subschema, items: undefined, props: undefined };\n subschemaCode(nextContext, valid);\n return nextContext;\n }\n mergeEvaluated(schemaCxt, toName) {\n const { it, gen } = this;\n if (!it.opts.unevaluated)\n return;\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);\n }\n }\n mergeValidEvaluated(schemaCxt, valid) {\n const { it, gen } = this;\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));\n return true;\n }\n }\n}\nexports.KeywordCxt = KeywordCxt;\nfunction keywordCode(it, keyword, def, ruleType) {\n const cxt = new KeywordCxt(it, def, keyword);\n if (\"code\" in def) {\n def.code(cxt, ruleType);\n }\n else if (cxt.$data && def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n else if (\"macro\" in def) {\n (0, keyword_1.macroKeywordCode)(cxt, def);\n }\n else if (def.compile || def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n}\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, { dataLevel, dataNames, dataPathArr }) {\n let jsonPointer;\n let data;\n if ($data === \"\")\n return names_1.default.rootData;\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data))\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n jsonPointer = $data;\n data = names_1.default.rootData;\n }\n else {\n const matches = RELATIVE_JSON_POINTER.exec($data);\n if (!matches)\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n const up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer === \"#\") {\n if (up >= dataLevel)\n throw new Error(errorMsg(\"property/index\", up));\n return dataPathArr[dataLevel - up];\n }\n if (up > dataLevel)\n throw new Error(errorMsg(\"data\", up));\n data = dataNames[dataLevel - up];\n if (!jsonPointer)\n return data;\n }\n let expr = data;\n const segments = jsonPointer.split(\"/\");\n for (const segment of segments) {\n if (segment) {\n data = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;\n expr = (0, codegen_1._) `${expr} && ${data}`;\n }\n }\n return expr;\n function errorMsg(pointerType, up) {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;\n }\n}\nexports.getData = getData;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass ValidationError extends Error {\n constructor(errors) {\n super(\"validation failed\");\n this.errors = errors;\n this.ajv = this.validation = true;\n }\n}\nexports.default = ValidationError;\n//# sourceMappingURL=validation_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst resolve_1 = require(\"./resolve\");\nclass MissingRefError extends Error {\n constructor(resolver, baseId, ref, msg) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`);\n this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref);\n this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef));\n }\n}\nexports.default = MissingRefError;\n//# sourceMappingURL=ref_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst validation_error_1 = require(\"../runtime/validation_error\");\nconst names_1 = require(\"./names\");\nconst resolve_1 = require(\"./resolve\");\nconst util_1 = require(\"./util\");\nconst validate_1 = require(\"./validate\");\nclass SchemaEnv {\n constructor(env) {\n var _a;\n this.refs = {};\n this.dynamicAnchors = {};\n let schema;\n if (typeof env.schema == \"object\")\n schema = env.schema;\n this.schema = env.schema;\n this.schemaId = env.schemaId;\n this.root = env.root || this;\n this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || \"$id\"]);\n this.schemaPath = env.schemaPath;\n this.localRefs = env.localRefs;\n this.meta = env.meta;\n this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;\n this.refs = {};\n }\n}\nexports.SchemaEnv = SchemaEnv;\n// let codeSize = 0\n// let nodeCount = 0\n// Compiles schema in SchemaEnv\nfunction compileSchema(sch) {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch);\n if (_sch)\n return _sch;\n const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); // TODO if getFullPath removed 1 tests fails\n const { es5, lines } = this.opts.code;\n const { ownProperties } = this.opts;\n const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties });\n let _ValidationError;\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: validation_error_1.default,\n code: (0, codegen_1._) `require(\"ajv/dist/runtime/validation_error\").default`,\n });\n }\n const validateName = gen.scopeName(\"validate\");\n sch.validateName = validateName;\n const schemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: names_1.default.data,\n parentData: names_1.default.parentData,\n parentDataProperty: names_1.default.parentDataProperty,\n dataNames: [names_1.default.data],\n dataPathArr: [codegen_1.nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set(),\n topSchemaRef: gen.scopeValue(\"schema\", this.opts.code.source === true\n ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) }\n : { ref: sch.schema }),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: codegen_1.nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: (0, codegen_1._) `\"\"`,\n opts: this.opts,\n self: this,\n };\n let sourceCode;\n try {\n this._compilations.add(sch);\n (0, validate_1.validateFunctionCode)(schemaCxt);\n gen.optimize(this.opts.code.optimize);\n // gen.optimize(1)\n const validateCode = gen.toString();\n sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process)\n sourceCode = this.opts.code.process(sourceCode, sch);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);\n const validate = makeValidate(this, this.scope.get());\n this.scope.value(validateName, { ref: validate });\n validate.errors = null;\n validate.schema = sch.schema;\n validate.schemaEnv = sch;\n if (sch.$async)\n validate.$async = true;\n if (this.opts.code.source === true) {\n validate.source = { validateName, validateCode, scopeValues: gen._values };\n }\n if (this.opts.unevaluated) {\n const { props, items } = schemaCxt;\n validate.evaluated = {\n props: props instanceof codegen_1.Name ? undefined : props,\n items: items instanceof codegen_1.Name ? undefined : items,\n dynamicProps: props instanceof codegen_1.Name,\n dynamicItems: items instanceof codegen_1.Name,\n };\n if (validate.source)\n validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated);\n }\n sch.validate = validate;\n return sch;\n }\n catch (e) {\n delete sch.validate;\n delete sch.validateName;\n if (sourceCode)\n this.logger.error(\"Error compiling schema, function code:\", sourceCode);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e;\n }\n finally {\n this._compilations.delete(sch);\n }\n}\nexports.compileSchema = compileSchema;\nfunction resolveRef(root, baseId, ref) {\n var _a;\n ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);\n const schOrFunc = root.refs[ref];\n if (schOrFunc)\n return schOrFunc;\n let _sch = resolve.call(this, root, ref);\n if (_sch === undefined) {\n const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; // TODO maybe localRefs should hold SchemaEnv\n const { schemaId } = this.opts;\n if (schema)\n _sch = new SchemaEnv({ schema, schemaId, root, baseId });\n }\n if (_sch === undefined)\n return;\n return (root.refs[ref] = inlineOrCompile.call(this, _sch));\n}\nexports.resolveRef = resolveRef;\nfunction inlineOrCompile(sch) {\n if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs))\n return sch.schema;\n return sch.validate ? sch : compileSchema.call(this, sch);\n}\n// Index of schema compilation in the currently compiled list\nfunction getCompilingSchema(schEnv) {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv))\n return sch;\n }\n}\nexports.getCompilingSchema = getCompilingSchema;\nfunction sameSchemaEnv(s1, s2) {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;\n}\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(root, // information about the root schema for the current schema\nref // reference to resolve\n) {\n let sch;\n while (typeof (sch = this.refs[ref]) == \"string\")\n ref = sch;\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);\n}\n// Resolve schema, its root and baseId\nfunction resolveSchema(root, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\nref // reference to resolve\n) {\n const p = this.opts.uriResolver.parse(ref);\n const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);\n let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, undefined);\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root);\n }\n const id = (0, resolve_1.normalizeId)(refPath);\n const schOrRef = this.refs[id] || this.schemas[id];\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef);\n if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== \"object\")\n return;\n return getJsonPointer.call(this, p, sch);\n }\n if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== \"object\")\n return;\n if (!schOrRef.validate)\n compileSchema.call(this, schOrRef);\n if (id === (0, resolve_1.normalizeId)(ref)) {\n const { schema } = schOrRef;\n const { schemaId } = this.opts;\n const schId = schema[schemaId];\n if (schId)\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n return new SchemaEnv({ schema, schemaId, root, baseId });\n }\n return getJsonPointer.call(this, p, schOrRef);\n}\nexports.resolveSchema = resolveSchema;\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n]);\nfunction getJsonPointer(parsedRef, { baseId, schema, root }) {\n var _a;\n if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== \"/\")\n return;\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\")\n return;\n const partSchema = schema[(0, util_1.unescapeFragment)(part)];\n if (partSchema === undefined)\n return;\n schema = partSchema;\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId];\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n }\n }\n let env;\n if (typeof schema != \"boolean\" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {\n const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref);\n env = resolveSchema.call(this, root, $ref);\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const { schemaId } = this.opts;\n env = env || new SchemaEnv({ schema, schemaId, root, baseId });\n if (env.schema !== env.root.schema)\n return env;\n return undefined;\n}\n//# sourceMappingURL=index.js.map","'use strict'\n\n/** @type {(value: string) => boolean} */\nconst isUUID = RegExp.prototype.test.bind(/^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)$/u)\n\n/** @type {(value: string) => boolean} */\nconst isPort = RegExp.prototype.test.bind(/^\\d*$/u)\n\n/** @type {(value: string) => boolean} */\nconst isHexPair = RegExp.prototype.test.bind(/^[\\da-f]{2}$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isUnreserved = RegExp.prototype.test.bind(/^[\\da-z\\-._~]$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isPathCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\\-._~!$&'()*+,;=:@/]$/u)\n\n/** @type {(value: string) => boolean} */\nconst isQueryFragmentCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\\-._~!$&'()*+,;=:@/?]$/u)\n\n/** @type {(value: string) => boolean} */\nconst isUserinfoCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\\-._~!$&'()*+,;=:]$/u)\n\nconst BYTE_HEX = new Array(256)\n{\n const HEX_DIGITS = '0123456789ABCDEF'\n for (let i = 0; i < 256; i++) {\n BYTE_HEX[i] = '%' + HEX_DIGITS[i >> 4] + HEX_DIGITS[i & 0xF]\n }\n}\nfunction percentEncodeNonAscii (cp) {\n if (cp < 0x800) {\n return BYTE_HEX[0xC0 | (cp >> 6)] +\n BYTE_HEX[0x80 | (cp & 0x3F)]\n }\n if (cp < 0x10000) {\n return BYTE_HEX[0xE0 | (cp >> 12)] +\n BYTE_HEX[0x80 | ((cp >> 6) & 0x3F)] +\n BYTE_HEX[0x80 | (cp & 0x3F)]\n }\n return BYTE_HEX[0xF0 | (cp >> 18)] +\n BYTE_HEX[0x80 | ((cp >> 12) & 0x3F)] +\n BYTE_HEX[0x80 | ((cp >> 6) & 0x3F)] +\n BYTE_HEX[0x80 | (cp & 0x3F)]\n}\n\n/**\n * @param {Array} input\n * @returns {string}\n */\nfunction stringArrayToHexStripped (input) {\n let acc = ''\n let code = 0\n let i = 0\n\n for (i = 0; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (code === 48) {\n continue\n }\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n break\n }\n\n for (i += 1; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n }\n return acc\n}\n\n/** @type {(value: string) => boolean} */\nconst isHextet = RegExp.prototype.test.bind(/^[\\dA-Fa-f]{1,4}$/)\n\n/** @type {(value: string) => boolean} */\nconst isIPvFuture = RegExp.prototype.test.bind(/^[vV][\\dA-Fa-f]+\\.[A-Za-z\\d\\-._~!$&'()*+,;=:]+$/)\n\n/** @type {(value: string) => boolean} */\nconst isZoneCharacter = RegExp.prototype.test.bind(/^[A-Za-z\\d\\-._~]$/)\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nconst nonSimpleDomain = RegExp.prototype.test.bind(/[^!\"$&'()*+,\\-.;=_`a-z{}~]/u)\n\n/**\n * @param {string} zone\n * @returns {boolean}\n */\nfunction isZoneIdentifier (zone) {\n if (zone.length === 0) return false\n\n for (let i = 0; i < zone.length; i++) {\n if (isZoneCharacter(zone[i])) continue\n if (zone[i] === '%' && i + 2 < zone.length && isHexPair(zone.slice(i + 1, i + 3))) {\n i += 2\n continue\n }\n return false\n }\n\n return true\n}\n\n/**\n * Compresses the longest run of zero hextets to \"::\" per RFC 5952. A run of a\n * single zero hextet is left uncompressed. On ties the leftmost run wins.\n *\n * @param {string[]} hextets\n * @returns {string}\n */\nfunction compressIPv6ZeroRun (hextets) {\n let bestStart = -1\n let bestLength = 0\n let runStart = -1\n let runLength = 0\n for (let i = 0; i < hextets.length; i++) {\n if (hextets[i] === '0') {\n if (runStart === -1) runStart = i\n runLength++\n if (runLength > bestLength) {\n bestLength = runLength\n bestStart = runStart\n }\n } else {\n runStart = -1\n runLength = 0\n }\n }\n\n if (bestLength < 2) return hextets.join(':')\n\n const head = hextets.slice(0, bestStart).join(':')\n const tail = hextets.slice(bestStart + bestLength).join(':')\n return head + '::' + tail\n}\n\n/**\n * Validates an IPv6 address against the alternatives in RFC 3986 section\n * 3.2.2 and returns the same address with leading hextet zeroes removed.\n * An embedded IPv4 address counts as two hextets and is only valid at the end.\n *\n * @param {string} input\n * @returns {string|undefined}\n */\nfunction normalizeIPv6Address (input) {\n const compression = input.indexOf('::')\n if (compression !== -1 && input.indexOf('::', compression + 1) !== -1) return undefined\n\n const left = compression === -1 ? input.split(':') : input.slice(0, compression).split(':')\n const right = compression === -1 ? [] : input.slice(compression + 2).split(':')\n if (compression !== -1) {\n if (left.length === 1 && left[0] === '') left.length = 0\n if (right.length === 1 && right[0] === '') right.length = 0\n }\n\n const parts = left.concat(right)\n let hextetCount = 0\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i]\n if (part === '') return undefined\n\n if (part.indexOf('.') !== -1) {\n if (i !== parts.length - 1 || (compression !== -1 && right.length === 0) || !isIPv4(part)) return undefined\n hextetCount += 2\n continue\n }\n\n if (!isHextet(part)) return undefined\n parts[i] = parseInt(part, 16).toString(16)\n hextetCount++\n }\n\n if (compression === -1) {\n if (hextetCount !== 8) return undefined\n return compressIPv6ZeroRun(parts)\n }\n if (hextetCount >= 8) return undefined\n\n // expand \"::\" then re-compress the longest run for a canonical result\n const expanded = parts.slice(0, left.length)\n for (let i = hextetCount; i < 8; i++) expanded.push('0')\n for (let i = left.length; i < parts.length; i++) expanded.push(parts[i])\n return compressIPv6ZeroRun(expanded)\n}\n\n/**\n * @typedef {Object} NormalizeIPv6Result\n * @property {string} host - The normalized host.\n * @property {string} [escapedHost] - The escaped host.\n * @property {boolean} isIPV6 - Indicates if the host is an IPv6 address.\n * @property {boolean} [isIPVFuture] - Indicates if the host is an IPvFuture literal.\n * @property {boolean} [error] - Indicates if a bracketed IP literal is malformed.\n */\n\n/**\n * Validates and normalizes a bracketed IP literal. Raw zone separators remain\n * accepted for backwards compatibility, while encoded separators and zone\n * contents follow RFC 6874.\n *\n * @param {string} host\n * @returns {NormalizeIPv6Result}\n */\nfunction normalizeIPv6 (host) {\n const bracketed = host[0] === '[' && host[host.length - 1] === ']'\n const hasBracket = host[0] === '[' || host[host.length - 1] === ']'\n if (hasBracket && !bracketed) return { host, isIPV6: false, error: true }\n\n let input = bracketed ? host.slice(1, -1) : host\n if (bracketed && isIPvFuture(input)) {\n input = input.toLowerCase()\n return { host: `[${input}]`, escapedHost: input, isIPV6: false, isIPVFuture: true }\n }\n\n if (findToken(input, ':') < 2) {\n return { host, isIPV6: false, error: bracketed }\n }\n\n let zoneIdentifier = ''\n const zoneSeparator = input.indexOf('%')\n if (zoneSeparator !== -1) {\n const separatorLength = input.slice(zoneSeparator, zoneSeparator + 3).toLowerCase() === '%25' ? 3 : 1\n zoneIdentifier = input.slice(zoneSeparator + separatorLength)\n if (!isZoneIdentifier(zoneIdentifier)) return { host, isIPV6: false, error: true }\n input = input.slice(0, zoneSeparator)\n }\n\n const address = normalizeIPv6Address(input)\n if (address === undefined) return { host, isIPV6: false, error: true }\n\n return {\n host: address + (zoneIdentifier ? '%' + zoneIdentifier : ''),\n escapedHost: address + (zoneIdentifier ? '%25' + zoneIdentifier : ''),\n isIPV6: true\n }\n}\n\n/**\n * @param {string} str\n * @param {string} token\n * @returns {number}\n */\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\n/**\n * @param {string} path\n * @returns {string}\n *\n * @see https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n */\nfunction removeDotSegments (path) {\n let input = path\n const output = []\n let nextSlash = -1\n let len = 0\n\n // eslint-disable-next-line no-cond-assign\n while (len = input.length) {\n if (len === 1) {\n if (input === '.') {\n break\n } else if (input === '/') {\n output.push('/')\n break\n } else {\n output.push(input)\n break\n }\n } else if (len === 2) {\n if (input[0] === '.') {\n if (input[1] === '.') {\n break\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.' || input[1] === '/') {\n output.push('/')\n break\n }\n }\n } else if (len === 3) {\n if (input === '/..') {\n if (output.length !== 0) {\n output.pop()\n }\n output.push('/')\n break\n }\n }\n if (input[0] === '.') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(3)\n continue\n }\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(2)\n continue\n } else if (input[2] === '.') {\n if (input[3] === '/') {\n input = input.slice(3)\n if (output.length !== 0) {\n output.pop()\n }\n continue\n }\n }\n }\n }\n\n // Rule 2E: Move normal path segment to output\n if ((nextSlash = input.indexOf('/', 1)) === -1) {\n output.push(input)\n break\n } else {\n output.push(input.slice(0, nextSlash))\n input = input.slice(nextSlash)\n }\n }\n\n return output.join('')\n}\n\n/**\n * Re-escape RFC 3986 gen-delims that must not appear literally in the host.\n * After the URI regex parses, these characters cannot be literal in the host\n * field, so any that appear after decoding came from percent-encoding and\n * must be restored to prevent authority structure changes.\n *\n * @param {string} host\n * @param {boolean} isIP - true for IPv4/IPv6 hosts (skip colon re-escaping)\n * @returns {string}\n */\nconst HOST_DELIMS = { '@': '%40', '/': '%2F', '?': '%3F', '#': '%23', ':': '%3A' }\nconst HOST_DELIM_RE = /[@/?#:]/g\nconst HOST_DELIM_NO_COLON_RE = /[@/?#]/g\n\nfunction reescapeHostDelimiters (host, isIP) {\n const re = isIP ? HOST_DELIM_NO_COLON_RE : HOST_DELIM_RE\n re.lastIndex = 0\n return host.replace(re, (ch) => HOST_DELIMS[ch])\n}\n\n/**\n * Normalizes percent escapes and optionally decodes only unreserved ASCII bytes.\n * Reserved delimiters such as `%2F` stay escaped; `%2E` is unreserved.\n *\n * @param {string} input\n * @param {boolean} [decodeUnreserved=false]\n * @returns {string}\n */\nfunction normalizePercentEncoding (input, decodeUnreserved = false) {\n if (input.indexOf('%') === -1) {\n return input\n }\n\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n if (input[i] === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n const normalizedHex = hex.toUpperCase()\n const decoded = String.fromCharCode(parseInt(normalizedHex, 16))\n\n if (decodeUnreserved && isUnreserved(decoded)) {\n output += decoded\n } else {\n output += '%' + normalizedHex\n }\n\n i += 2\n continue\n }\n }\n\n output += input[i]\n }\n\n return output\n}\n\n/**\n * Normalizes path data without turning reserved escapes into live path syntax.\n * Valid escapes are uppercased, raw unsafe characters are escaped, and only\n * unreserved bytes that are not `.` are decoded.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizePathEncoding (input) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n const normalizedHex = hex.toUpperCase()\n const decoded = String.fromCharCode(parseInt(normalizedHex, 16))\n\n if (decoded !== '.' && isUnreserved(decoded)) {\n output += decoded\n } else {\n output += '%' + normalizedHex\n }\n\n i += 2\n continue\n }\n }\n\n if (isPathCharacter(ch)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += isEscapeSafe(code) ? ch : BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Serializes a path without rewriting reserved data. Raw RFC 3986 path\n * characters remain literal, valid escapes are preserved and uppercased, and\n * everything else is UTF-8 percent-encoded. In a path-noscheme, a colon in the\n * first segment must be escaped so the result cannot be parsed as a scheme.\n *\n * @param {string} input\n * @param {boolean} [pathNoScheme=false]\n * @returns {string}\n */\nfunction serializePathEncoding (input, pathNoScheme = false) {\n let output = ''\n let firstSegment = pathNoScheme && input[0] !== '/'\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n output += '%' + hex.toUpperCase()\n i += 2\n continue\n }\n }\n\n if (ch === '/') {\n firstSegment = false\n }\n\n if (isPathCharacter(ch) && (ch !== ':' || !firstSegment)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Percent-encodes a URI component using its RFC 3986 literal character set.\n * Existing valid escapes are preserved and normalized to uppercase hex.\n *\n * @param {string} input\n * @param {(value: string) => boolean} isAllowed\n * @returns {string}\n */\nfunction encodeComponent (input, isAllowed) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n output += '%' + hex.toUpperCase()\n i += 2\n continue\n }\n }\n\n if (isAllowed(ch)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Encodes userinfo while preserving its RFC 3986 §3.2.1 literal characters.\n * In particular, authority delimiters such as `@`, `/`, `?`, and `#` are data.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction encodeUserinfo (input) {\n return encodeComponent(input, isUserinfoCharacter)\n}\n\n/**\n * Encodes query data using the RFC 3986 §3.4 grammar. A literal `#` must be\n * escaped because it would otherwise begin the fragment component.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction encodeQuery (input) {\n return encodeComponent(input, isQueryFragmentCharacter)\n}\n\n/**\n * Encodes fragment data using the RFC 3986 §3.5 grammar.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction encodeFragment (input) {\n return encodeComponent(input, isQueryFragmentCharacter)\n}\n\nfunction isEscapeSafe (cp) {\n return (\n (cp >= 0x30 && cp <= 0x39) ||\n (cp >= 0x41 && cp <= 0x5A) ||\n (cp >= 0x61 && cp <= 0x7A) ||\n cp === 0x2A || cp === 0x2B || cp === 0x2D || cp === 0x2E ||\n cp === 0x2F || cp === 0x40 || cp === 0x5F\n )\n}\n\n/**\n * Normalizes the percent-encoding of a query or fragment component.\n *\n * Like `normalizePathEncoding`, but uses the query/fragment character set\n * (which additionally allows `?`) and decodes `.` since it has no dot-segment\n * meaning outside of a path.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizeQueryFragmentEncoding (input) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n const normalizedHex = hex.toUpperCase()\n const decoded = String.fromCharCode(parseInt(normalizedHex, 16))\n\n if (isUnreserved(decoded)) {\n output += decoded\n } else {\n output += '%' + normalizedHex\n }\n\n i += 2\n continue\n }\n }\n\n if (isQueryFragmentCharacter(ch)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += isEscapeSafe(code) ? ch : BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Escapes a component while preserving existing valid percent escapes.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction escapePreservingEscapes (input) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n if (input[i] === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n output += '%' + hex.toUpperCase()\n i += 2\n continue\n }\n }\n\n output += escape(input[i])\n }\n\n return output\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @returns {string|undefined}\n */\nfunction recomposeAuthority (component) {\n const uriTokens = []\n\n if (component.userinfo !== undefined) {\n uriTokens.push(encodeUserinfo(component.userinfo))\n uriTokens.push('@')\n }\n\n if (component.host !== undefined) {\n let host = component.host\n if (!isIPv4(host)) {\n let ipV6res = normalizeIPv6(host)\n if (ipV6res.isIPV6 !== true && ipV6res.isIPVFuture !== true) {\n // Decode only unreserved bytes, once. In particular, keep %25 encoded\n // so it cannot introduce a second escape during recomposition.\n host = normalizePercentEncoding(host, true)\n ipV6res = normalizeIPv6(host)\n }\n if (ipV6res.isIPV6 === true || ipV6res.isIPVFuture === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = reescapeHostDelimiters(host, false)\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof component.port === 'number' || typeof component.port === 'string') {\n const port = String(component.port)\n if (!isPort(port)) {\n throw new TypeError('URI port is malformed.')\n }\n uriTokens.push(':')\n uriTokens.push(port)\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n nonSimpleDomain,\n recomposeAuthority,\n reescapeHostDelimiters,\n normalizePercentEncoding,\n normalizePathEncoding,\n serializePathEncoding,\n normalizeQueryFragmentEncoding,\n encodeUserinfo,\n encodeQuery,\n encodeFragment,\n escapePreservingEscapes,\n removeDotSegments,\n isIPv4,\n isUUID,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n","'use strict'\n\nconst { isUUID } = require('./utils')\nconst URN_REG = /^([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-./:;=@]|%[\\da-f]{2})+)$/iu\n\nconst supportedSchemeNames = /** @type {const} */ (['http', 'https', 'ws',\n 'wss', 'urn', 'urn:uuid'])\n\n/** @typedef {supportedSchemeNames[number]} SchemeName */\n\n/**\n * @param {string} name\n * @returns {name is SchemeName}\n */\nfunction isValidSchemeName (name) {\n return supportedSchemeNames.indexOf(/** @type {*} */ (name)) !== -1\n}\n\n/**\n * @callback SchemeFn\n * @param {import('../types/index').URIComponent} component\n * @param {import('../types/index').Options} options\n * @returns {import('../types/index').URIComponent}\n */\n\n/**\n * @typedef {Object} SchemeHandler\n * @property {SchemeName} scheme - The scheme name.\n * @property {boolean} [domainHost] - Indicates if the scheme supports domain hosts.\n * @property {SchemeFn} parse - Function to parse the URI component for this scheme.\n * @property {SchemeFn} serialize - Function to serialize the URI component for this scheme.\n * @property {boolean} [skipNormalize] - Indicates if normalization should be skipped for this scheme.\n * @property {boolean} [absolutePath] - Indicates if the scheme uses absolute paths.\n * @property {boolean} [unicodeSupport] - Indicates if the scheme supports Unicode.\n */\n\n/**\n * @param {import('../types/index').URIComponent} wsComponent\n * @returns {boolean}\n */\nfunction wsIsSecure (wsComponent) {\n if (wsComponent.secure === true) {\n return true\n } else if (wsComponent.secure === false) {\n return false\n } else if (wsComponent.scheme) {\n return (\n wsComponent.scheme.length === 3 &&\n (wsComponent.scheme[0] === 'w' || wsComponent.scheme[0] === 'W') &&\n (wsComponent.scheme[1] === 's' || wsComponent.scheme[1] === 'S') &&\n (wsComponent.scheme[2] === 's' || wsComponent.scheme[2] === 'S')\n )\n } else {\n return false\n }\n}\n\n/** @type {SchemeFn} */\nfunction httpParse (component) {\n if (!component.host) {\n component.error = component.error || 'HTTP URIs must have a host.'\n }\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction httpSerialize (component) {\n const secure = String(component.scheme).toLowerCase() === 'https'\n\n // normalize the default port\n if (component.port === (secure ? 443 : 80) || component.port === '') {\n component.port = undefined\n }\n\n // normalize the empty path\n if (!component.path) {\n component.path = '/'\n }\n\n // NOTE: We do not parse query strings for HTTP URIs\n // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n // and not the HTTP spec.\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction wsParse (wsComponent) {\n// indicate if the secure flag is set\n wsComponent.secure = wsIsSecure(wsComponent)\n\n // construct resouce name\n wsComponent.resourceName = (wsComponent.path || '/') + (wsComponent.query ? '?' + wsComponent.query : '')\n wsComponent.path = undefined\n wsComponent.query = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction wsSerialize (wsComponent) {\n// normalize the default port\n if (wsComponent.port === (wsIsSecure(wsComponent) ? 443 : 80) || wsComponent.port === '') {\n wsComponent.port = undefined\n }\n\n // ensure scheme matches secure flag\n if (typeof wsComponent.secure === 'boolean') {\n wsComponent.scheme = (wsComponent.secure ? 'wss' : 'ws')\n wsComponent.secure = undefined\n }\n\n // reconstruct path from resource name\n if (wsComponent.resourceName) {\n const queryIndex = wsComponent.resourceName.indexOf('?')\n const path = queryIndex === -1\n ? wsComponent.resourceName\n : wsComponent.resourceName.slice(0, queryIndex)\n wsComponent.path = (path && path !== '/' ? path : undefined)\n wsComponent.query = queryIndex === -1\n ? undefined\n : wsComponent.resourceName.slice(queryIndex + 1)\n wsComponent.resourceName = undefined\n }\n\n // forbid fragment component\n wsComponent.fragment = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnParse (urnComponent, options) {\n if (!urnComponent.path) {\n urnComponent.error = 'URN can not be parsed'\n return urnComponent\n }\n const matches = urnComponent.path.match(URN_REG)\n if (matches && matches[0] === urnComponent.path) {\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n urnComponent.nid = matches[1].toLowerCase()\n urnComponent.nss = matches[2]\n const urnScheme = `${scheme}:${options.nid || urnComponent.nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n urnComponent.path = undefined\n\n if (schemeHandler) {\n urnComponent = schemeHandler.parse(urnComponent, options)\n }\n } else {\n urnComponent.error = urnComponent.error || 'URN can not be parsed.'\n }\n\n return urnComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnSerialize (urnComponent, options) {\n if (urnComponent.nid === undefined) {\n throw new Error('URN without nid cannot be serialized')\n }\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n const nid = urnComponent.nid.toLowerCase()\n const urnScheme = `${scheme}:${options.nid || nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n\n if (schemeHandler) {\n urnComponent = schemeHandler.serialize(urnComponent, options)\n }\n\n const uriComponent = urnComponent\n const nss = urnComponent.nss\n uriComponent.path = `${nid || options.nid}:${nss}`\n\n options.skipEscape = true\n return uriComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidParse (urnComponent, options) {\n const uuidComponent = urnComponent\n uuidComponent.uuid = uuidComponent.nss\n uuidComponent.nss = undefined\n\n if (!options.tolerant && (!uuidComponent.uuid || !isUUID(uuidComponent.uuid))) {\n uuidComponent.error = uuidComponent.error || 'UUID is not valid.'\n }\n\n return uuidComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidSerialize (uuidComponent) {\n const urnComponent = uuidComponent\n // normalize UUID\n urnComponent.nss = (uuidComponent.uuid || '').toLowerCase()\n return urnComponent\n}\n\nconst http = /** @type {SchemeHandler} */ ({\n scheme: 'http',\n domainHost: true,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst https = /** @type {SchemeHandler} */ ({\n scheme: 'https',\n domainHost: http.domainHost,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst ws = /** @type {SchemeHandler} */ ({\n scheme: 'ws',\n domainHost: true,\n parse: wsParse,\n serialize: wsSerialize\n})\n\nconst wss = /** @type {SchemeHandler} */ ({\n scheme: 'wss',\n domainHost: ws.domainHost,\n parse: ws.parse,\n serialize: ws.serialize\n})\n\nconst urn = /** @type {SchemeHandler} */ ({\n scheme: 'urn',\n parse: urnParse,\n serialize: urnSerialize,\n skipNormalize: true\n})\n\nconst urnuuid = /** @type {SchemeHandler} */ ({\n scheme: 'urn:uuid',\n parse: urnuuidParse,\n serialize: urnuuidSerialize,\n skipNormalize: true\n})\n\nconst SCHEMES = /** @type {Record} */ ({\n http,\n https,\n ws,\n wss,\n urn,\n 'urn:uuid': urnuuid\n})\n\nObject.setPrototypeOf(SCHEMES, null)\n\n/**\n * @param {string|undefined} scheme\n * @returns {SchemeHandler|undefined}\n */\nfunction getSchemeHandler (scheme) {\n return (\n scheme && (\n SCHEMES[/** @type {SchemeName} */ (scheme)] ||\n SCHEMES[/** @type {SchemeName} */(scheme.toLowerCase())])\n ) ||\n undefined\n}\n\nmodule.exports = {\n wsIsSecure,\n SCHEMES,\n isValidSchemeName,\n getSchemeHandler,\n}\n","'use strict'\n\nconst { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, serializePathEncoding, normalizeQueryFragmentEncoding, encodeQuery, encodeFragment, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require('./lib/utils')\nconst { SCHEMES, getSchemeHandler } = require('./lib/schemes')\n\nconst VALID_SCHEME = /^[A-Za-z][A-Za-z0-9+.-]*$/u\nconst MALFORMED_SCHEME_ERROR = 'URI scheme is malformed.'\n\n/**\n * @param {string} scheme\n * @returns {string}\n */\nfunction decodeValidScheme (scheme) {\n const decodedScheme = unescape(String(scheme))\n if (!VALID_SCHEME.test(decodedScheme)) {\n throw new TypeError(MALFORMED_SCHEME_ERROR)\n }\n return decodedScheme\n}\n\n/**\n * @template {import('./types/index').URIComponent|string} T\n * @param {T} uri\n * @param {import('./types/index').Options} [options]\n * @returns {T}\n */\nfunction normalize (uri, options) {\n if (typeof uri === 'string') {\n uri = /** @type {T} */ (normalizeString(uri, options))\n } else if (typeof uri === 'object') {\n uri = /** @type {T} */ (parse(serialize(uri, options), options))\n }\n return uri\n}\n\n/**\n * @param {string} baseURI\n * @param {string} relativeURI\n * @param {import('./types/index').Options} [options]\n * @returns {string}\n */\nfunction resolve (baseURI, relativeURI, options) {\n const schemelessOptions = options ? Object.assign({ scheme: 'null' }, options) : { scheme: 'null' }\n const {\n parsed: baseParsed,\n malformedAuthorityOrPort: baseMalformed,\n malformedPercentEncoding: baseMalformedPercentEncoding,\n malformedSchemeSpecific: baseMalformedSchemeSpecific,\n malformedHost: baseMalformedHost,\n malformedScheme: baseMalformedScheme\n } = parseWithStatus(baseURI, schemelessOptions)\n const {\n parsed: relativeParsed,\n malformedAuthorityOrPort: relativeMalformed,\n malformedPercentEncoding: relativeMalformedPercentEncoding,\n malformedSchemeSpecific: relativeMalformedSchemeSpecific,\n malformedHost: relativeMalformedHost,\n malformedScheme: relativeMalformedScheme\n } = parseWithStatus(relativeURI, schemelessOptions)\n if (\n baseMalformed ||\n relativeMalformed ||\n baseMalformedPercentEncoding ||\n relativeMalformedPercentEncoding ||\n baseMalformedSchemeSpecific ||\n relativeMalformedSchemeSpecific ||\n baseMalformedHost ||\n relativeMalformedHost ||\n baseMalformedScheme ||\n relativeMalformedScheme\n ) {\n throw new Error(baseParsed.error || relativeParsed.error || 'URI is malformed.')\n }\n const resolved = resolveComponent(baseParsed, relativeParsed, schemelessOptions, true)\n const resolvedSchemeHandler = getSchemeHandler((options && options.scheme) || resolved.scheme)\n const resolvedHost = resolved.host\n const resolvedHostIsIP = resolvedHost !== undefined && resolvedHost !== '' &&\n (isIPv4(resolvedHost) || normalizeIPv6(resolvedHost).isIPV6)\n canonicalizeHost(resolved, options || {}, resolvedSchemeHandler, resolvedHostIsIP)\n // Percent escapes in an ASCII reg-name are encoded data. The WHATWG hostname\n // parser can reject them even though fast-uri preserves them safely as RFC\n // 3986 data. A raw non-ASCII host must still fail closed if conversion fails.\n const encodedASCIIHost = resolvedHost && resolvedHost.indexOf('%') !== -1 &&\n !/\\P{ASCII}/u.test(resolvedHost)\n if (resolved.error && !encodedASCIIHost) {\n throw new Error(resolved.error)\n }\n schemelessOptions.skipEscape = true\n return serialize(resolved, schemelessOptions)\n}\n\n/**\n * @param {import ('./types/index').URIComponent} base\n * @param {import ('./types/index').URIComponent} relative\n * @param {import('./types/index').Options} [options]\n * @param {boolean} [skipNormalization=false]\n * @returns {import ('./types/index').URIComponent}\n */\nfunction resolveComponent (base, relative, options, skipNormalization) {\n /** @type {import('./types/index').URIComponent} */\n const target = {}\n if (!skipNormalization) {\n base = parse(serialize(base, options), options) // normalize base component\n relative = parse(serialize(relative, options), options) // normalize relative component\n }\n options = options || {}\n\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (!relative.path) {\n target.path = base.path\n if (relative.query !== undefined) {\n target.query = relative.query\n } else {\n target.query = base.query\n }\n } else {\n if (relative.path[0] === '/') {\n target.path = removeDotSegments(relative.path)\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = '/' + relative.path\n } else if (!base.path) {\n target.path = relative.path\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf('/') + 1) + relative.path\n }\n target.path = removeDotSegments(target.path)\n }\n target.query = relative.query\n }\n // target.authority = base.authority;\n target.userinfo = base.userinfo\n target.host = base.host\n target.port = base.port\n }\n target.scheme = base.scheme\n }\n\n target.fragment = relative.fragment\n\n return target\n}\n\n/**\n * @param {import ('./types/index').URIComponent|string} uriA\n * @param {import ('./types/index').URIComponent|string} uriB\n * @param {import ('./types/index').Options} options\n * @returns {boolean}\n */\nfunction equal (uriA, uriB, options) {\n const normalizedA = normalizeComparableURI(uriA, options)\n const normalizedB = normalizeComparableURI(uriB, options)\n\n return normalizedA !== undefined && normalizedB !== undefined && normalizedA === normalizedB\n}\n\n/**\n * @param {Readonly} cmpts\n * @param {import('./types/index').Options} [opts]\n * @returns {string}\n */\nfunction serialize (cmpts, opts) {\n const component = {\n host: cmpts.host,\n scheme: cmpts.scheme,\n userinfo: cmpts.userinfo,\n port: cmpts.port,\n path: cmpts.path,\n query: cmpts.query,\n nid: cmpts.nid,\n nss: cmpts.nss,\n uuid: cmpts.uuid,\n fragment: cmpts.fragment,\n reference: cmpts.reference,\n resourceName: cmpts.resourceName,\n secure: cmpts.secure,\n error: ''\n }\n const options = Object.assign({}, opts)\n const uriTokens = []\n\n if (component.scheme) {\n component.scheme = decodeValidScheme(component.scheme)\n }\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || component.scheme)\n\n // perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options)\n\n const hasAuthority = component.userinfo !== undefined || component.host !== undefined || component.port !== undefined\n const pathNoScheme = !options.skipEscape && component.scheme === undefined && !hasAuthority\n\n if (component.path !== undefined) {\n if (!options.skipEscape) {\n component.path = serializePathEncoding(component.path, pathNoScheme)\n } else {\n component.path = normalizePercentEncoding(component.path)\n }\n }\n\n if (options.reference !== 'suffix' && component.scheme) {\n // Scheme handlers may replace the scheme during serialization.\n component.scheme = decodeValidScheme(component.scheme)\n uriTokens.push(component.scheme, ':')\n }\n\n const authority = recomposeAuthority(component)\n if (authority !== undefined) {\n if (options.reference !== 'suffix') {\n uriTokens.push('//')\n }\n\n uriTokens.push(authority)\n\n if (component.path && component.path[0] !== '/') {\n uriTokens.push('/')\n }\n }\n if (component.path !== undefined) {\n let s = component.path\n\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s)\n }\n\n // Dot-segment removal can expose a colon that was not originally in the\n // first segment (for example, \"./a:b\"). Reapply path-noscheme encoding so\n // the serialized relative reference cannot be reparsed as a URI scheme.\n if (pathNoScheme) {\n s = serializePathEncoding(s, true)\n }\n\n if (\n authority === undefined &&\n s[0] === '/' &&\n s[1] === '/'\n ) {\n // don't allow the path to start with \"//\"\n s = '/%2F' + s.slice(2)\n }\n\n uriTokens.push(s)\n }\n\n if (component.query !== undefined) {\n uriTokens.push('?', encodeQuery(component.query))\n }\n\n if (component.fragment !== undefined) {\n uriTokens.push('#', encodeFragment(component.fragment))\n }\n return uriTokens.join('')\n}\n\nconst URI_PARSE = /^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u\n\n// Captures the authority component (between \"//\" and the next \"/\", \"?\" or \"#\"),\n// with or without a scheme prefix, for the literal-backslash rejection below.\nconst AUTHORITY_PREFIX = /^(?:[^#/:?]+:)?\\/\\/([^/?#]*)/\n\n// Captures the leading authority-introducer region after an optional scheme: a\n// run of forward slashes, backslashes, and the characters the WHATWG URL parser\n// removes before parsing (TAB U+0009, LF U+000A, CR U+000D). A valid introducer\n// is exactly \"//\". Node treats \"\\\" as \"/\" on special schemes and strips those\n// characters first, so forms like \"\\\\\", \"/\\\", \"\\/\", \"//\", or a leading\n// \"//\" reach an authority in Node while fast-uri's URI_PARSE folds them into\n// the path group (host confusion / SSRF / redirect bypass).\nconst AUTHORITY_INTRODUCER_REGION = /^(?:[^#/:?]+:)?([/\\\\\\t\\n\\r]*)/\n\n/**\n * @param {import('./types/index').URIComponent} parsed\n * @param {RegExpMatchArray} matches\n * @returns {string|undefined}\n */\nfunction getParseError (parsed, matches) {\n if (matches[2] !== undefined && parsed.path && parsed.path[0] !== '/') {\n return 'URI path must start with \"/\" when authority is present.'\n }\n\n if (typeof parsed.port === 'number' && (parsed.port < 0 || parsed.port > 65535)) {\n return 'URI port is malformed.'\n }\n\n return undefined\n}\n\n/**\n * Checks percent syntax without decoding the represented octets. RFC 3986\n * percent-encoding is byte-oriented, so sequences such as `%FF` are valid even\n * though they are not independently valid UTF-8.\n *\n * @param {string|undefined} component\n * @returns {boolean}\n */\nfunction hasMalformedPercentEncoding (component) {\n if (component === undefined) return false\n\n let percent = component.indexOf('%')\n while (percent !== -1) {\n if (percent + 2 >= component.length || !/^[\\da-f]{2}$/iu.test(component.slice(percent + 1, percent + 3))) {\n return true\n }\n percent = component.indexOf('%', percent + 3)\n }\n\n return false\n}\n\n/**\n * Whether the host is a bracketed IP literal (RFC 3986 `IP-literal`).\n * An unterminated `[` is not a literal, so it must still be validated as a\n * reg-name instead of being waved through as an IP.\n *\n * @param {string} host\n * @returns {boolean}\n */\nfunction isIPLiteral (host) {\n return host[0] === '[' && host[host.length - 1] === ']'\n}\n\n/**\n * @param {RegExpMatchArray} matches\n * @returns {boolean}\n */\nfunction hasMalformedComponentPercentEncoding (matches) {\n // Bracketed IP literals use a raw \"%\" as the zone separator for historical\n // compatibility. Their parsing is intentionally left to normalizeIPv6.\n const host = matches[4]\n return hasMalformedPercentEncoding(matches[3]) ||\n (host !== undefined && !isIPLiteral(host) && hasMalformedPercentEncoding(host)) ||\n hasMalformedPercentEncoding(matches[6]) ||\n hasMalformedPercentEncoding(matches[7]) ||\n hasMalformedPercentEncoding(matches[8])\n}\n\n/**\n * @param {import('./types/index').URIComponent} parsed\n * @param {import('./types/index').Options} options\n * @param {{ domainHost?: boolean, unicodeSupport?: boolean }|undefined} schemeHandler\n * @param {boolean} isIP\n * @returns {boolean} whether host conversion failed\n */\nfunction canonicalizeHost (parsed, options, schemeHandler, isIP) {\n if (\n !options.unicodeSupport &&\n (!schemeHandler || !schemeHandler.unicodeSupport) &&\n parsed.host &&\n !isIPLiteral(parsed.host) &&\n (options.domainHost || (schemeHandler && schemeHandler.domainHost)) &&\n isIP === false &&\n nonSimpleDomain(parsed.host)\n ) {\n try {\n parsed.host = new URL('http://' + parsed.host).hostname\n } catch (e) {\n parsed.error = parsed.error || \"Host's domain name can not be converted to ASCII: \" + e\n return true\n }\n }\n return false\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {{ parsed: import('./types/index').URIComponent, malformedAuthorityOrPort: boolean, malformedPercentEncoding: boolean, malformedSchemeSpecific: boolean, malformedHost: boolean, malformedScheme: boolean }}\n */\nfunction parseWithStatus (uri, opts) {\n const options = Object.assign({}, opts)\n /** @type {import('./types/index').URIComponent} */\n const parsed = {\n scheme: undefined,\n userinfo: undefined,\n host: '',\n port: undefined,\n path: '',\n query: undefined,\n fragment: undefined\n }\n\n let malformedAuthorityOrPort = false\n let malformedPercentEncoding = false\n let malformedSchemeSpecific = false\n let malformedHost = false\n let malformedIPLiteral = false\n let malformedScheme = false\n\n let isIP = false\n if (options.reference === 'suffix') {\n if (options.scheme) {\n uri = options.scheme + ':' + uri\n } else {\n uri = '//' + uri\n }\n }\n\n // A literal backslash (U+005C) is not a valid RFC 3986 URI character and is\n // not an authority delimiter. Reject it in the authority rather than\n // rewriting it: normalizing \"\\\" -> \"/\" (WHATWG error recovery) could silently\n // change the resource identified by an otherwise-invalid input, and lets \"\\\"\n // act as a host delimiter here while Node's native URL parses a different\n // host (SSRF / redirect / origin-allowlist bypass). Percent-encoded %5C is\n // untouched and remains valid encoded data.\n const authorityMatch = uri.match(AUTHORITY_PREFIX)\n if (authorityMatch !== null && authorityMatch[1].indexOf('\\\\') !== -1) {\n parsed.error = 'URI authority must not contain a literal backslash.'\n malformedAuthorityOrPort = true\n }\n\n // Reject a malformed or whitespace-smuggled authority introducer. fast-uri\n // only recognizes a literal \"//\"; anything else in the leading separator run\n // (a backslash, or a \"//\" that appears only after removing the TAB/LF/CR that\n // Node strips) means the authority fast-uri parses differs from the one Node's\n // URL resolves. Reject rather than rewrite, mirroring the literal-backslash\n // guard above. Percent-encoded forms (%5C, %09) are untouched, valid data.\n const introducerMatch = uri.match(AUTHORITY_INTRODUCER_REGION)\n if (introducerMatch !== null) {\n const region = introducerMatch[1]\n const normalizedRegion = region.replace(/[\\t\\n\\r]/g, '')\n // Two or more leading separators introduce an authority.\n if (normalizedRegion.length >= 2) {\n if (normalizedRegion.slice(0, 2) !== '//') {\n parsed.error = parsed.error || 'URI authority must not contain a literal backslash.'\n malformedAuthorityOrPort = true\n } else if (region.length !== normalizedRegion.length) {\n parsed.error = parsed.error || 'URI authority introducer must not contain whitespace.'\n malformedAuthorityOrPort = true\n }\n }\n }\n\n const matches = uri.match(URI_PARSE)\n\n if (matches) {\n // store each component\n parsed.scheme = matches[1]\n parsed.userinfo = matches[3]\n parsed.host = matches[4]\n parsed.port = parseInt(matches[5], 10)\n parsed.path = matches[6] || ''\n parsed.query = matches[7]\n parsed.fragment = matches[8]\n\n if (parsed.scheme !== undefined) {\n const decodedScheme = unescape(parsed.scheme)\n if (VALID_SCHEME.test(decodedScheme)) {\n parsed.scheme = decodedScheme.toLowerCase()\n } else {\n parsed.error = parsed.error || MALFORMED_SCHEME_ERROR\n malformedScheme = true\n }\n }\n\n malformedPercentEncoding = hasMalformedComponentPercentEncoding(matches)\n if (malformedPercentEncoding) {\n parsed.error = parsed.error || 'URI contains malformed percent-encoding.'\n }\n\n // fix port number\n if (isNaN(parsed.port)) {\n parsed.port = matches[5]\n }\n\n const parseError = getParseError(parsed, matches)\n if (parseError !== undefined) {\n parsed.error = parsed.error || parseError\n malformedAuthorityOrPort = true\n }\n\n if (parsed.host) {\n const ipv4result = isIPv4(parsed.host)\n if (ipv4result === false) {\n const bracketedIPLiteral = isIPLiteral(parsed.host)\n const hasIPLiteralBracket = parsed.host.indexOf('[') !== -1 || parsed.host.indexOf(']') !== -1\n const ipv6result = normalizeIPv6(parsed.host)\n isIP = ipv6result.isIPV6 || ipv6result.isIPVFuture === true\n malformedIPLiteral = hasIPLiteralBracket && (!bracketedIPLiteral || ipv6result.error === true)\n parsed.host = isIP ? ipv6result.host : ipv6result.host.toLowerCase()\n\n if (malformedIPLiteral) {\n parsed.error = parsed.error || 'URI host is malformed.'\n malformedAuthorityOrPort = true\n }\n } else {\n isIP = true\n }\n }\n if (parsed.scheme === undefined && parsed.userinfo === undefined && parsed.host === undefined && parsed.port === undefined && parsed.query === undefined && !parsed.path) {\n parsed.reference = 'same-document'\n } else if (parsed.scheme === undefined) {\n parsed.reference = 'relative'\n } else if (parsed.fragment === undefined) {\n parsed.reference = 'absolute'\n } else {\n parsed.reference = 'uri'\n }\n\n // check for reference errors\n if (options.reference && options.reference !== 'suffix' && options.reference !== parsed.reference) {\n parsed.error = parsed.error || 'URI is not a ' + options.reference + ' reference.'\n }\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme)\n\n // convert Unicode IDN -> ASCII IDN when the effective scheme uses domain hosts\n if (!malformedIPLiteral) {\n malformedHost = canonicalizeHost(parsed, options, schemeHandler, isIP)\n }\n\n if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {\n if (uri.indexOf('%') !== -1) {\n if (parsed.host !== undefined && !malformedIPLiteral) {\n const host = isIP ? parsed.host : normalizePercentEncoding(parsed.host, true)\n parsed.host = reescapeHostDelimiters(host, isIP)\n }\n }\n if (parsed.path) {\n parsed.path = normalizePathEncoding(parsed.path)\n }\n if (parsed.query) {\n parsed.query = normalizeQueryFragmentEncoding(parsed.query)\n }\n if (parsed.fragment) {\n parsed.fragment = normalizeQueryFragmentEncoding(parsed.fragment)\n }\n }\n\n // perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(parsed, options)\n if (schemeHandler === SCHEMES.urn && parsed.nid === undefined) {\n malformedSchemeSpecific = true\n }\n }\n } else {\n parsed.error = parsed.error || 'URI can not be parsed.'\n }\n return { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme }\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns\n */\nfunction parse (uri, opts) {\n return parseWithStatus(uri, opts).parsed\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {string}\n */\nfunction normalizeString (uri, opts) {\n return normalizeStringWithStatus(uri, opts).normalized\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {{ normalized: string, malformedAuthorityOrPort: boolean, malformedPercentEncoding: boolean, malformedSchemeSpecific: boolean, malformedHost: boolean, malformedScheme: boolean }}\n */\nfunction normalizeStringWithStatus (uri, opts) {\n const { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = parseWithStatus(uri, opts)\n return {\n normalized: malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? uri : serialize(parsed, opts),\n malformedAuthorityOrPort,\n malformedPercentEncoding,\n malformedSchemeSpecific,\n malformedHost,\n malformedScheme\n }\n}\n\n/**\n * @param {import ('./types/index').URIComponent|string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {string|undefined}\n */\nfunction normalizeComparableURI (uri, opts) {\n if (typeof uri !== 'string' && typeof uri !== 'object') {\n return undefined\n }\n\n let value\n try {\n value = typeof uri === 'string' ? uri : serialize(uri, opts)\n } catch {\n return undefined\n }\n const { normalized, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = normalizeStringWithStatus(value, opts)\n return malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? undefined : normalized\n}\n\nconst fastUri = {\n SCHEMES,\n normalize,\n resolve,\n resolveComponent,\n equal,\n serialize,\n parse\n}\n\nmodule.exports = fastUri\nmodule.exports.default = fastUri\nmodule.exports.fastUri = fastUri\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst uri = require(\"fast-uri\");\nuri.code = 'require(\"ajv/dist/runtime/uri\").default';\nexports.default = uri;\n//# sourceMappingURL=uri.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nconst validation_error_1 = require(\"./runtime/validation_error\");\nconst ref_error_1 = require(\"./compile/ref_error\");\nconst rules_1 = require(\"./compile/rules\");\nconst compile_1 = require(\"./compile\");\nconst codegen_2 = require(\"./compile/codegen\");\nconst resolve_1 = require(\"./compile/resolve\");\nconst dataType_1 = require(\"./compile/validate/dataType\");\nconst util_1 = require(\"./compile/util\");\nconst $dataRefSchema = require(\"./refs/data.json\");\nconst uri_1 = require(\"./runtime/uri\");\nconst defaultRegExp = (str, flags) => new RegExp(str, flags);\ndefaultRegExp.code = \"new RegExp\";\nconst META_IGNORE_OPTIONS = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"];\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n]);\nconst removedOptions = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n};\nconst deprecatedOptions = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n};\nconst MAX_EXPRESSION = 200;\n// eslint-disable-next-line complexity\nfunction requiredOptions(o) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;\n const s = o.strict;\n const _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize;\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0;\n const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp;\n const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default;\n return {\n strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true,\n strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true,\n strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : \"log\",\n strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : \"log\",\n strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false,\n code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp },\n loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION,\n loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION,\n meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true,\n messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true,\n inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true,\n schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : \"$id\",\n addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true,\n validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true,\n validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true,\n unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true,\n int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true,\n uriResolver: uriResolver,\n };\n}\nclass Ajv {\n constructor(opts = {}) {\n this.schemas = {};\n this.refs = {};\n this.formats = Object.create(null);\n this._compilations = new Set();\n this._loading = {};\n this._cache = new Map();\n opts = this.opts = { ...opts, ...requiredOptions(opts) };\n const { es5, lines } = this.opts.code;\n this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines });\n this.logger = getLogger(opts.logger);\n const formatOpt = opts.validateFormats;\n opts.validateFormats = false;\n this.RULES = (0, rules_1.getRules)();\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\");\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\");\n this._metaOpts = getMetaSchemaOptions.call(this);\n if (opts.formats)\n addInitialFormats.call(this);\n this._addVocabularies();\n this._addDefaultMetaSchema();\n if (opts.keywords)\n addInitialKeywords.call(this, opts.keywords);\n if (typeof opts.meta == \"object\")\n this.addMetaSchema(opts.meta);\n addInitialSchemas.call(this);\n opts.validateFormats = formatOpt;\n }\n _addVocabularies() {\n this.addKeyword(\"$async\");\n }\n _addDefaultMetaSchema() {\n const { $data, meta, schemaId } = this.opts;\n let _dataRefSchema = $dataRefSchema;\n if (schemaId === \"id\") {\n _dataRefSchema = { ...$dataRefSchema };\n _dataRefSchema.id = _dataRefSchema.$id;\n delete _dataRefSchema.$id;\n }\n if (meta && $data)\n this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false);\n }\n defaultMeta() {\n const { meta, schemaId } = this.opts;\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined);\n }\n validate(schemaKeyRef, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data // to be validated\n ) {\n let v;\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema(schemaKeyRef);\n if (!v)\n throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`);\n }\n else {\n v = this.compile(schemaKeyRef);\n }\n const valid = v(data);\n if (!(\"$async\" in v))\n this.errors = v.errors;\n return valid;\n }\n compile(schema, _meta) {\n const sch = this._addSchema(schema, _meta);\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n compileAsync(schema, meta) {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\");\n }\n const { loadSchema } = this.opts;\n return runCompileAsync.call(this, schema, meta);\n async function runCompileAsync(_schema, _meta) {\n await loadMetaSchema.call(this, _schema.$schema);\n const sch = this._addSchema(_schema, _meta);\n return sch.validate || _compileAsync.call(this, sch);\n }\n async function loadMetaSchema($ref) {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, { $ref }, true);\n }\n }\n async function _compileAsync(sch) {\n try {\n return this._compileSchemaEnv(sch);\n }\n catch (e) {\n if (!(e instanceof ref_error_1.default))\n throw e;\n checkLoaded.call(this, e);\n await loadMissingSchema.call(this, e.missingSchema);\n return _compileAsync.call(this, sch);\n }\n }\n function checkLoaded({ missingSchema: ref, missingRef }) {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`);\n }\n }\n async function loadMissingSchema(ref) {\n const _schema = await _loadSchema.call(this, ref);\n if (!this.refs[ref])\n await loadMetaSchema.call(this, _schema.$schema);\n if (!this.refs[ref])\n this.addSchema(_schema, ref, meta);\n }\n async function _loadSchema(ref) {\n const p = this._loading[ref];\n if (p)\n return p;\n try {\n return await (this._loading[ref] = loadSchema(ref));\n }\n finally {\n delete this._loading[ref];\n }\n }\n }\n // Adds schema to the instance\n addSchema(schema, // If array is passed, `key` will be ignored\n key, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ) {\n if (Array.isArray(schema)) {\n for (const sch of schema)\n this.addSchema(sch, undefined, _meta, _validateSchema);\n return this;\n }\n let id;\n if (typeof schema === \"object\") {\n const { schemaId } = this.opts;\n id = schema[schemaId];\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`);\n }\n }\n key = (0, resolve_1.normalizeId)(key || id);\n this._checkUnique(key);\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true);\n return this;\n }\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(schema, key, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ) {\n this.addSchema(schema, key, true, _validateSchema);\n return this;\n }\n // Validate schema against its meta-schema\n validateSchema(schema, throwOrLogError) {\n if (typeof schema == \"boolean\")\n return true;\n let $schema;\n $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\");\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta();\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\");\n this.errors = null;\n return true;\n }\n const valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText();\n if (this.opts.validateSchema === \"log\")\n this.logger.error(message);\n else\n throw new Error(message);\n }\n return valid;\n }\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema(keyRef) {\n let sch;\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\")\n keyRef = sch;\n if (sch === undefined) {\n const { schemaId } = this.opts;\n const root = new compile_1.SchemaEnv({ schema: {}, schemaId });\n sch = compile_1.resolveSchema.call(this, root, keyRef);\n if (!sch)\n return;\n this.refs[keyRef] = sch;\n }\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef);\n this._removeAllSchemas(this.refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas);\n this._removeAllSchemas(this.refs);\n this._cache.clear();\n return this;\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef);\n if (typeof sch == \"object\")\n this._cache.delete(sch.schema);\n delete this.schemas[schemaKeyRef];\n delete this.refs[schemaKeyRef];\n return this;\n }\n case \"object\": {\n const cacheKey = schemaKeyRef;\n this._cache.delete(cacheKey);\n let id = schemaKeyRef[this.opts.schemaId];\n if (id) {\n id = (0, resolve_1.normalizeId)(id);\n delete this.schemas[id];\n delete this.refs[id];\n }\n return this;\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\");\n }\n }\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions) {\n for (const def of definitions)\n this.addKeyword(def);\n return this;\n }\n addKeyword(kwdOrDef, def // deprecated\n ) {\n let keyword;\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef;\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\");\n def.keyword = keyword;\n }\n }\n else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef;\n keyword = def.keyword;\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\");\n }\n }\n else {\n throw new Error(\"invalid addKeywords parameters\");\n }\n checkKeyword.call(this, keyword, def);\n if (!def) {\n (0, util_1.eachItem)(keyword, (kwd) => addRule.call(this, kwd));\n return this;\n }\n keywordMetaschema.call(this, def);\n const definition = {\n ...def,\n type: (0, dataType_1.getJSONTypes)(def.type),\n schemaType: (0, dataType_1.getJSONTypes)(def.schemaType),\n };\n (0, util_1.eachItem)(keyword, definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t)));\n return this;\n }\n getKeyword(keyword) {\n const rule = this.RULES.all[keyword];\n return typeof rule == \"object\" ? rule.definition : !!rule;\n }\n // Remove keyword\n removeKeyword(keyword) {\n // TODO return type should be Ajv\n const { RULES } = this;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword);\n if (i >= 0)\n group.rules.splice(i, 1);\n }\n return this;\n }\n // Add format\n addFormat(name, format) {\n if (typeof format == \"string\")\n format = new RegExp(format);\n this.formats[name] = format;\n return this;\n }\n errorsText(errors = this.errors, // optional array of validation errors\n { separator = \", \", dataVar = \"data\" } = {} // optional options with properties `separator` and `dataVar`\n ) {\n if (!errors || errors.length === 0)\n return \"No errors\";\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg);\n }\n $dataMetaSchema(metaSchema, keywordsJsonPointers) {\n const rules = this.RULES.all;\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1); // first segment is an empty string\n let keywords = metaSchema;\n for (const seg of segments)\n keywords = keywords[seg];\n for (const key in rules) {\n const rule = rules[key];\n if (typeof rule != \"object\")\n continue;\n const { $data } = rule.definition;\n const schema = keywords[key];\n if ($data && schema)\n keywords[key] = schemaOrData(schema);\n }\n }\n return metaSchema;\n }\n _removeAllSchemas(schemas, regex) {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef];\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef];\n }\n else if (sch && !sch.meta) {\n this._cache.delete(sch.schema);\n delete schemas[keyRef];\n }\n }\n }\n }\n _addSchema(schema, meta, baseId, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) {\n let id;\n const { schemaId } = this.opts;\n if (typeof schema == \"object\") {\n id = schema[schemaId];\n }\n else {\n if (this.opts.jtd)\n throw new Error(\"schema must be object\");\n else if (typeof schema != \"boolean\")\n throw new Error(\"schema must be object or boolean\");\n }\n let sch = this._cache.get(schema);\n if (sch !== undefined)\n return sch;\n baseId = (0, resolve_1.normalizeId)(id || baseId);\n const localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId);\n sch = new compile_1.SchemaEnv({ schema, schemaId, meta, baseId, localRefs });\n this._cache.set(sch.schema, sch);\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId)\n this._checkUnique(baseId);\n this.refs[baseId] = sch;\n }\n if (validateSchema)\n this.validateSchema(schema, true);\n return sch;\n }\n _checkUnique(id) {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`);\n }\n }\n _compileSchemaEnv(sch) {\n if (sch.meta)\n this._compileMetaSchema(sch);\n else\n compile_1.compileSchema.call(this, sch);\n /* istanbul ignore if */\n if (!sch.validate)\n throw new Error(\"ajv implementation error\");\n return sch.validate;\n }\n _compileMetaSchema(sch) {\n const currentOpts = this.opts;\n this.opts = this._metaOpts;\n try {\n compile_1.compileSchema.call(this, sch);\n }\n finally {\n this.opts = currentOpts;\n }\n }\n}\nAjv.ValidationError = validation_error_1.default;\nAjv.MissingRefError = ref_error_1.default;\nexports.default = Ajv;\nfunction checkOptions(checkOpts, options, msg, log = \"error\") {\n for (const key in checkOpts) {\n const opt = key;\n if (opt in options)\n this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`);\n }\n}\nfunction getSchEnv(keyRef) {\n keyRef = (0, resolve_1.normalizeId)(keyRef); // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef];\n}\nfunction addInitialSchemas() {\n const optsSchemas = this.opts.schemas;\n if (!optsSchemas)\n return;\n if (Array.isArray(optsSchemas))\n this.addSchema(optsSchemas);\n else\n for (const key in optsSchemas)\n this.addSchema(optsSchemas[key], key);\n}\nfunction addInitialFormats() {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name];\n if (format)\n this.addFormat(name, format);\n }\n}\nfunction addInitialKeywords(defs) {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs);\n return;\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\");\n for (const keyword in defs) {\n const def = defs[keyword];\n if (!def.keyword)\n def.keyword = keyword;\n this.addKeyword(def);\n }\n}\nfunction getMetaSchemaOptions() {\n const metaOpts = { ...this.opts };\n for (const opt of META_IGNORE_OPTIONS)\n delete metaOpts[opt];\n return metaOpts;\n}\nconst noLogs = { log() { }, warn() { }, error() { } };\nfunction getLogger(logger) {\n if (logger === false)\n return noLogs;\n if (logger === undefined)\n return console;\n if (logger.log && logger.warn && logger.error)\n return logger;\n throw new Error(\"logger must implement log, warn and error methods\");\n}\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i;\nfunction checkKeyword(keyword, def) {\n const { RULES } = this;\n (0, util_1.eachItem)(keyword, (kwd) => {\n if (RULES.keywords[kwd])\n throw new Error(`Keyword ${kwd} is already defined`);\n if (!KEYWORD_NAME.test(kwd))\n throw new Error(`Keyword ${kwd} has invalid name`);\n });\n if (!def)\n return;\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function');\n }\n}\nfunction addRule(keyword, definition, dataType) {\n var _a;\n const post = definition === null || definition === void 0 ? void 0 : definition.post;\n if (dataType && post)\n throw new Error('keyword with \"post\" flag cannot have \"type\"');\n const { RULES } = this;\n let ruleGroup = post ? RULES.post : RULES.rules.find(({ type: t }) => t === dataType);\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.rules.push(ruleGroup);\n }\n RULES.keywords[keyword] = true;\n if (!definition)\n return;\n const rule = {\n keyword,\n definition: {\n ...definition,\n type: (0, dataType_1.getJSONTypes)(definition.type),\n schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType),\n },\n };\n if (definition.before)\n addBeforeRule.call(this, ruleGroup, rule, definition.before);\n else\n ruleGroup.rules.push(rule);\n RULES.all[keyword] = rule;\n (_a = definition.implements) === null || _a === void 0 ? void 0 : _a.forEach((kwd) => this.addKeyword(kwd));\n}\nfunction addBeforeRule(ruleGroup, rule, before) {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before);\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule);\n }\n else {\n ruleGroup.rules.push(rule);\n this.logger.warn(`rule ${before} is not defined`);\n }\n}\nfunction keywordMetaschema(def) {\n let { metaSchema } = def;\n if (metaSchema === undefined)\n return;\n if (def.$data && this.opts.$data)\n metaSchema = schemaOrData(metaSchema);\n def.validateSchema = this.compile(metaSchema, true);\n}\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n};\nfunction schemaOrData(schema) {\n return { anyOf: [schema, $dataRef] };\n}\n//# sourceMappingURL=core.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst def = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID');\n },\n};\nexports.default = def;\n//# sourceMappingURL=id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callRef = exports.getValidate = void 0;\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst compile_1 = require(\"../../compile\");\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt) {\n const { gen, schema: $ref, it } = cxt;\n const { baseId, schemaEnv: env, validateName, opts, self } = it;\n const { root } = env;\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId)\n return callRootRef();\n const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref);\n if (schOrEnv === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref);\n if (schOrEnv instanceof compile_1.SchemaEnv)\n return callValidate(schOrEnv);\n return inlineRefSchema(schOrEnv);\n function callRootRef() {\n if (env === root)\n return callRef(cxt, validateName, env, env.$async);\n const rootName = gen.scopeValue(\"root\", { ref: root });\n return callRef(cxt, (0, codegen_1._) `${rootName}.validate`, root, root.$async);\n }\n function callValidate(sch) {\n const v = getValidate(cxt, sch);\n callRef(cxt, v, sch, sch.$async);\n }\n function inlineRefSchema(sch) {\n const schName = gen.scopeValue(\"schema\", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch });\n const valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({\n schema: sch,\n dataTypes: [],\n schemaPath: codegen_1.nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n }, valid);\n cxt.mergeEvaluated(schCxt);\n cxt.ok(valid);\n }\n },\n};\nfunction getValidate(cxt, sch) {\n const { gen } = cxt;\n return sch.validate\n ? gen.scopeValue(\"validate\", { ref: sch.validate })\n : (0, codegen_1._) `${gen.scopeValue(\"wrapper\", { ref: sch })}.validate`;\n}\nexports.getValidate = getValidate;\nfunction callRef(cxt, v, sch, $async) {\n const { gen, it } = cxt;\n const { allErrors, schemaEnv: env, opts } = it;\n const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil;\n if ($async)\n callAsyncRef();\n else\n callSyncRef();\n function callAsyncRef() {\n if (!env.$async)\n throw new Error(\"async schema referenced by sync schema\");\n const valid = gen.let(\"valid\");\n gen.try(() => {\n gen.code((0, codegen_1._) `await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`);\n addEvaluatedFrom(v); // TODO will not work with async, it has to be returned with the result\n if (!allErrors)\n gen.assign(valid, true);\n }, (e) => {\n gen.if((0, codegen_1._) `!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e));\n addErrorsFrom(e);\n if (!allErrors)\n gen.assign(valid, false);\n });\n cxt.ok(valid);\n }\n function callSyncRef() {\n cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v));\n }\n function addErrorsFrom(source) {\n const errs = (0, codegen_1._) `${source}.errors`;\n gen.assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`); // TODO tagged\n gen.assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n }\n function addEvaluatedFrom(source) {\n var _a;\n if (!it.opts.unevaluated)\n return;\n const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated;\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props);\n }\n }\n else {\n const props = gen.var(\"props\", (0, codegen_1._) `${source}.evaluated.props`);\n it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name);\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items);\n }\n }\n else {\n const items = gen.var(\"items\", (0, codegen_1._) `${source}.evaluated.items`);\n it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name);\n }\n }\n }\n}\nexports.callRef = callRef;\nexports.default = def;\n//# sourceMappingURL=ref.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst id_1 = require(\"./id\");\nconst ref_1 = require(\"./ref\");\nconst core = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n { keyword: \"$comment\" },\n \"definitions\",\n id_1.default,\n ref_1.default,\n];\nexports.default = core;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n maximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n minimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n exclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n exclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => (0, codegen_1.str) `must be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n cxt.fail$data((0, codegen_1._) `${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitNumber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must be multiple of ${schemaCode}`,\n params: ({ schemaCode }) => (0, codegen_1._) `{multipleOf: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, it } = cxt;\n // const bdt = bad$DataType(schemaCode, def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision;\n const res = gen.let(\"res\");\n const invalid = prec\n ? (0, codegen_1._) `Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : (0, codegen_1._) `${res} !== parseInt(${res})`;\n cxt.fail$data((0, codegen_1._) `(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=multipleOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nfunction ucs2length(str) {\n const len = str.length;\n let length = 0;\n let pos = 0;\n let value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xfc00) === 0xdc00)\n pos++; // low surrogate\n }\n }\n return length;\n}\nexports.default = ucs2length;\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default';\n//# sourceMappingURL=ucs2length.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst ucs2length_1 = require(\"../../runtime/ucs2length\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} characters`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode, it } = cxt;\n const op = keyword === \"maxLength\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n const len = it.opts.unicode === false ? (0, codegen_1._) `${data}.length` : (0, codegen_1._) `${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`;\n cxt.fail$data((0, codegen_1._) `${len} ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitLength.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match pattern \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{pattern: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n const u = it.opts.unicodeRegExp ? \"u\" : \"\";\n if ($data) {\n const { regExp } = it.opts.code;\n const regExpCode = regExp.code === \"new RegExp\" ? (0, codegen_1._) `new RegExp` : (0, util_1.useFunc)(gen, regExp);\n const valid = gen.let(\"valid\");\n gen.try(() => gen.assign(valid, (0, codegen_1._) `${regExpCode}(${schemaCode}, ${u}).test(${data})`), () => gen.assign(valid, false));\n cxt.fail$data((0, codegen_1._) `!${valid}`);\n }\n else {\n const regExp = (0, code_1.usePattern)(cxt, schema);\n cxt.fail$data((0, codegen_1._) `!${regExp}.test(${data})`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=pattern.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} properties`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxProperties\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `Object.keys(${data}).length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { missingProperty } }) => (0, codegen_1.str) `must have required property '${missingProperty}'`,\n params: ({ params: { missingProperty } }) => (0, codegen_1._) `{missingProperty: ${missingProperty}}`,\n};\nconst def = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, schema, schemaCode, data, $data, it } = cxt;\n const { opts } = it;\n if (!$data && schema.length === 0)\n return;\n const useLoop = schema.length >= opts.loopRequired;\n if (it.allErrors)\n allErrorsMode();\n else\n exitOnErrorMode();\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties;\n const { definedProperties } = cxt.it;\n for (const requiredKey of schema) {\n if ((props === null || props === void 0 ? void 0 : props[requiredKey]) === undefined && !definedProperties.has(requiredKey)) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictRequired);\n }\n }\n }\n function allErrorsMode() {\n if (useLoop || $data) {\n cxt.block$data(codegen_1.nil, loopAllRequired);\n }\n else {\n for (const prop of schema) {\n (0, code_1.checkReportMissingProp)(cxt, prop);\n }\n }\n }\n function exitOnErrorMode() {\n const missing = gen.let(\"missing\");\n if (useLoop || $data) {\n const valid = gen.let(\"valid\", true);\n cxt.block$data(valid, () => loopUntilMissing(missing, valid));\n cxt.ok(valid);\n }\n else {\n gen.if((0, code_1.checkMissingProp)(cxt, schema, missing));\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n function loopAllRequired() {\n gen.forOf(\"prop\", schemaCode, (prop) => {\n cxt.setParams({ missingProperty: prop });\n gen.if((0, code_1.noPropertyInData)(gen, data, prop, opts.ownProperties), () => cxt.error());\n });\n }\n function loopUntilMissing(missing, valid) {\n cxt.setParams({ missingProperty: missing });\n gen.forOf(missing, schemaCode, () => {\n gen.assign(valid, (0, code_1.propertyInData)(gen, data, missing, opts.ownProperties));\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error();\n gen.break();\n });\n }, codegen_1.nil);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=required.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} items`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxItems\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `${data}.length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/ajv-validator/ajv/issues/889\nconst equal = require(\"fast-deep-equal\");\nequal.code = 'require(\"ajv/dist/runtime/equal\").default';\nexports.default = equal;\n//# sourceMappingURL=equal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dataType_1 = require(\"../../compile/validate/dataType\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: ({ params: { i, j } }) => (0, codegen_1.str) `must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({ params: { i, j } }) => (0, codegen_1._) `{i: ${i}, j: ${j}}`,\n};\nconst def = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;\n if (!$data && !schema)\n return;\n const valid = gen.let(\"valid\");\n const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : [];\n cxt.block$data(valid, validateUniqueItems, (0, codegen_1._) `${schemaCode} === false`);\n cxt.ok(valid);\n function validateUniqueItems() {\n const i = gen.let(\"i\", (0, codegen_1._) `${data}.length`);\n const j = gen.let(\"j\");\n cxt.setParams({ i, j });\n gen.assign(valid, true);\n gen.if((0, codegen_1._) `${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));\n }\n function canOptimize() {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\");\n }\n function loopN(i, j) {\n const item = gen.name(\"item\");\n const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong);\n const indices = gen.const(\"indices\", (0, codegen_1._) `{}`);\n gen.for((0, codegen_1._) `;${i}--;`, () => {\n gen.let(item, (0, codegen_1._) `${data}[${i}]`);\n gen.if(wrongType, (0, codegen_1._) `continue`);\n if (itemTypes.length > 1)\n gen.if((0, codegen_1._) `typeof ${item} == \"string\"`, (0, codegen_1._) `${item} += \"_\"`);\n gen\n .if((0, codegen_1._) `typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, (0, codegen_1._) `${indices}[${item}]`);\n cxt.error();\n gen.assign(valid, false).break();\n })\n .code((0, codegen_1._) `${indices}[${item}] = ${i}`);\n });\n }\n function loopN2(i, j) {\n const eql = (0, util_1.useFunc)(gen, equal_1.default);\n const outer = gen.name(\"outer\");\n gen.label(outer).for((0, codegen_1._) `;${i}--;`, () => gen.for((0, codegen_1._) `${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._) `${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error();\n gen.assign(valid, false).break(outer);\n })));\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=uniqueItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to constant\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValue: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schemaCode, schema } = cxt;\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data((0, codegen_1._) `!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`);\n }\n else {\n cxt.fail((0, codegen_1._) `${schema} !== ${data}`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=const.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to one of the allowed values\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValues: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n if (!$data && schema.length === 0)\n throw new Error(\"enum must have non-empty array\");\n const useLoop = schema.length >= it.opts.loopEnum;\n let eql;\n const getEql = () => (eql !== null && eql !== void 0 ? eql : (eql = (0, util_1.useFunc)(gen, equal_1.default)));\n let valid;\n if (useLoop || $data) {\n valid = gen.let(\"valid\");\n cxt.block$data(valid, loopEnum);\n }\n else {\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const vSchema = gen.const(\"vSchema\", schemaCode);\n valid = (0, codegen_1.or)(...schema.map((_x, i) => equalCode(vSchema, i)));\n }\n cxt.pass(valid);\n function loopEnum() {\n gen.assign(valid, false);\n gen.forOf(\"v\", schemaCode, (v) => gen.if((0, codegen_1._) `${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break()));\n }\n function equalCode(vSchema, i) {\n const sch = schema[i];\n return typeof sch === \"object\" && sch !== null\n ? (0, codegen_1._) `${getEql()}(${data}, ${vSchema}[${i}])`\n : (0, codegen_1._) `${data} === ${sch}`;\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=enum.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst limitNumber_1 = require(\"./limitNumber\");\nconst multipleOf_1 = require(\"./multipleOf\");\nconst limitLength_1 = require(\"./limitLength\");\nconst pattern_1 = require(\"./pattern\");\nconst limitProperties_1 = require(\"./limitProperties\");\nconst required_1 = require(\"./required\");\nconst limitItems_1 = require(\"./limitItems\");\nconst uniqueItems_1 = require(\"./uniqueItems\");\nconst const_1 = require(\"./const\");\nconst enum_1 = require(\"./enum\");\nconst validation = [\n // number\n limitNumber_1.default,\n multipleOf_1.default,\n // string\n limitLength_1.default,\n pattern_1.default,\n // object\n limitProperties_1.default,\n required_1.default,\n // array\n limitItems_1.default,\n uniqueItems_1.default,\n // any\n { keyword: \"type\", schemaType: [\"string\", \"array\"] },\n { keyword: \"nullable\", schemaType: \"boolean\" },\n const_1.default,\n enum_1.default,\n];\nexports.default = validation;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateAdditionalItems = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"additionalItems\",\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { parentSchema, it } = cxt;\n const { items } = parentSchema;\n if (!Array.isArray(items)) {\n (0, util_1.checkStrictMode)(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas');\n return;\n }\n validateAdditionalItems(cxt, items);\n },\n};\nfunction validateAdditionalItems(cxt, items) {\n const { gen, schema, data, keyword, it } = cxt;\n it.items = true;\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n if (schema === false) {\n cxt.setParams({ len: items.length });\n cxt.pass((0, codegen_1._) `${len} <= ${items.length}`);\n }\n else if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.var(\"valid\", (0, codegen_1._) `${len} <= ${items.length}`); // TODO var\n gen.if((0, codegen_1.not)(valid), () => validateItems(valid));\n cxt.ok(valid);\n }\n function validateItems(valid) {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid);\n if (!it.allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n });\n }\n}\nexports.validateAdditionalItems = validateAdditionalItems;\nexports.default = def;\n//# sourceMappingURL=additionalItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTuple = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt) {\n const { schema, it } = cxt;\n if (Array.isArray(schema))\n return validateTuple(cxt, \"additionalItems\", schema);\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nfunction validateTuple(cxt, extraItems, schArr = cxt.schema) {\n const { gen, parentSchema, data, keyword, it } = cxt;\n checkStrictTuple(parentSchema);\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = util_1.mergeEvaluated.items(gen, schArr.length, it.items);\n }\n const valid = gen.name(\"valid\");\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n schArr.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n gen.if((0, codegen_1._) `${len} > ${i}`, () => cxt.subschema({\n keyword,\n schemaProp: i,\n dataProp: i,\n }, valid));\n cxt.ok(valid);\n });\n function checkStrictTuple(sch) {\n const { opts, errSchemaPath } = it;\n const l = schArr.length;\n const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false);\n if (opts.strictTuples && !fullTuple) {\n const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`;\n (0, util_1.checkStrictMode)(it, msg, opts.strictTuples);\n }\n }\n}\nexports.validateTuple = validateTuple;\nexports.default = def;\n//# sourceMappingURL=items.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst items_1 = require(\"./items\");\nconst def = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => (0, items_1.validateTuple)(cxt, \"items\"),\n};\nexports.default = def;\n//# sourceMappingURL=prefixItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst additionalItems_1 = require(\"./additionalItems\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { schema, parentSchema, it } = cxt;\n const { prefixItems } = parentSchema;\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n if (prefixItems)\n (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);\n else\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nexports.default = def;\n//# sourceMappingURL=items2020.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { min, max } }) => max === undefined\n ? (0, codegen_1.str) `must contain at least ${min} valid item(s)`\n : (0, codegen_1.str) `must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({ params: { min, max } }) => max === undefined ? (0, codegen_1._) `{minContains: ${min}}` : (0, codegen_1._) `{minContains: ${min}, maxContains: ${max}}`,\n};\nconst def = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n let min;\n let max;\n const { minContains, maxContains } = parentSchema;\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains;\n max = maxContains;\n }\n else {\n min = 1;\n }\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n cxt.setParams({ min, max });\n if (max === undefined && min === 0) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`);\n return;\n }\n if (max !== undefined && min > max) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" > \"maxContains\" is always invalid`);\n cxt.fail();\n return;\n }\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n let cond = (0, codegen_1._) `${len} >= ${min}`;\n if (max !== undefined)\n cond = (0, codegen_1._) `${cond} && ${len} <= ${max}`;\n cxt.pass(cond);\n return;\n }\n it.items = true;\n const valid = gen.name(\"valid\");\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()));\n }\n else if (min === 0) {\n gen.let(valid, true);\n if (max !== undefined)\n gen.if((0, codegen_1._) `${data}.length > 0`, validateItemsWithCount);\n }\n else {\n gen.let(valid, false);\n validateItemsWithCount();\n }\n cxt.result(valid, () => cxt.reset());\n function validateItemsWithCount() {\n const schValid = gen.name(\"_valid\");\n const count = gen.let(\"count\", 0);\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));\n }\n function validateItems(_valid, block) {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword: \"contains\",\n dataProp: i,\n dataPropType: util_1.Type.Num,\n compositeRule: true,\n }, _valid);\n block();\n });\n }\n function checkLimits(count) {\n gen.code((0, codegen_1._) `${count}++`);\n if (max === undefined) {\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true).break());\n }\n else {\n gen.if((0, codegen_1._) `${count} > ${max}`, () => gen.assign(valid, false).break());\n if (min === 1)\n gen.assign(valid, true);\n else\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true));\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=contains.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nexports.error = {\n message: ({ params: { property, depsCount, deps } }) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\";\n return (0, codegen_1.str) `must have ${property_ies} ${deps} when property ${property} is present`;\n },\n params: ({ params: { property, depsCount, deps, missingProperty } }) => (0, codegen_1._) `{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n};\nconst def = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error: exports.error,\n code(cxt) {\n const [propDeps, schDeps] = splitDependencies(cxt);\n validatePropertyDeps(cxt, propDeps);\n validateSchemaDeps(cxt, schDeps);\n },\n};\nfunction splitDependencies({ schema }) {\n const propertyDeps = {};\n const schemaDeps = {};\n for (const key in schema) {\n if (key === \"__proto__\")\n continue;\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps;\n deps[key] = schema[key];\n }\n return [propertyDeps, schemaDeps];\n}\nfunction validatePropertyDeps(cxt, propertyDeps = cxt.schema) {\n const { gen, data, it } = cxt;\n if (Object.keys(propertyDeps).length === 0)\n return;\n const missing = gen.let(\"missing\");\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop];\n if (deps.length === 0)\n continue;\n const hasProperty = (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties);\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n });\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n (0, code_1.checkReportMissingProp)(cxt, depProp);\n }\n });\n }\n else {\n gen.if((0, codegen_1._) `${hasProperty} && (${(0, code_1.checkMissingProp)(cxt, deps, missing)})`);\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n}\nexports.validatePropertyDeps = validatePropertyDeps;\nfunction validateSchemaDeps(cxt, schemaDeps = cxt.schema) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n for (const prop in schemaDeps) {\n if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop]))\n continue;\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties), () => {\n const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid);\n cxt.mergeValidEvaluated(schCxt, valid);\n }, () => gen.var(valid, true) // TODO var\n );\n cxt.ok(valid);\n }\n}\nexports.validateSchemaDeps = validateSchemaDeps;\nexports.default = def;\n//# sourceMappingURL=dependencies.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"property name must be valid\",\n params: ({ params }) => (0, codegen_1._) `{propertyName: ${params.propertyName}}`,\n};\nconst def = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt) {\n const { gen, schema, data, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n const valid = gen.name(\"valid\");\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({ propertyName: key });\n cxt.subschema({\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n }, valid);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error(true);\n if (!it.allErrors)\n gen.break();\n });\n });\n cxt.ok(valid);\n },\n};\nexports.default = def;\n//# sourceMappingURL=propertyNames.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must NOT have additional properties\",\n params: ({ params }) => (0, codegen_1._) `{additionalProperty: ${params.additionalProperty}}`,\n};\nconst def = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, errsCount, it } = cxt;\n /* istanbul ignore if */\n if (!errsCount)\n throw new Error(\"ajv implementation error\");\n const { allErrors, opts } = it;\n it.props = true;\n if (opts.removeAdditional !== \"all\" && (0, util_1.alwaysValidSchema)(it, schema))\n return;\n const props = (0, code_1.allSchemaProperties)(parentSchema.properties);\n const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties);\n checkAdditionalProperties();\n cxt.ok((0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n function checkAdditionalProperties() {\n gen.forIn(\"key\", data, (key) => {\n if (!props.length && !patProps.length)\n additionalPropertyCode(key);\n else\n gen.if(isAdditional(key), () => additionalPropertyCode(key));\n });\n }\n function isAdditional(key) {\n let definedProp;\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, \"properties\");\n definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key);\n }\n else if (props.length) {\n definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._) `${key} === ${p}`));\n }\n else {\n definedProp = codegen_1.nil;\n }\n if (patProps.length) {\n definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._) `${(0, code_1.usePattern)(cxt, p)}.test(${key})`));\n }\n return (0, codegen_1.not)(definedProp);\n }\n function deleteAdditional(key) {\n gen.code((0, codegen_1._) `delete ${data}[${key}]`);\n }\n function additionalPropertyCode(key) {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key);\n return;\n }\n if (schema === false) {\n cxt.setParams({ additionalProperty: key });\n cxt.error();\n if (!allErrors)\n gen.break();\n return;\n }\n if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.name(\"valid\");\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.reset();\n deleteAdditional(key);\n });\n }\n else {\n applyAdditionalSchema(key, valid);\n if (!allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n }\n }\n function applyAdditionalSchema(key, valid, errors) {\n const subschema = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: util_1.Type.Str,\n };\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n });\n }\n cxt.subschema(subschema, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=additionalProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_1 = require(\"../../compile/validate\");\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst def = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, \"additionalProperties\"));\n }\n const allProps = (0, code_1.allSchemaProperties)(schema);\n for (const prop of allProps) {\n it.definedProperties.add(prop);\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);\n }\n const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));\n if (properties.length === 0)\n return;\n const valid = gen.name(\"valid\");\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop);\n }\n else {\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));\n applyPropertySchema(prop);\n if (!it.allErrors)\n gen.else().var(valid, true);\n gen.endIf();\n }\n cxt.it.definedProperties.add(prop);\n cxt.ok(valid);\n }\n function hasDefault(prop) {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;\n }\n function applyPropertySchema(prop) {\n cxt.subschema({\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n }, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=properties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst util_2 = require(\"../../compile/util\");\nconst def = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, data, parentSchema, it } = cxt;\n const { opts } = it;\n const patterns = (0, code_1.allSchemaProperties)(schema);\n const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));\n if (patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))) {\n return;\n }\n const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;\n const valid = gen.name(\"valid\");\n if (it.props !== true && !(it.props instanceof codegen_1.Name)) {\n it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);\n }\n const { props } = it;\n validatePatternProperties();\n function validatePatternProperties() {\n for (const pat of patterns) {\n if (checkProperties)\n checkMatchingProperties(pat);\n if (it.allErrors) {\n validateProperties(pat);\n }\n else {\n gen.var(valid, true); // TODO var\n validateProperties(pat);\n gen.if(valid);\n }\n }\n }\n function checkMatchingProperties(pat) {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);\n }\n }\n }\n function validateProperties(pat) {\n gen.forIn(\"key\", data, (key) => {\n gen.if((0, codegen_1._) `${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat);\n if (!alwaysValid) {\n cxt.subschema({\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: util_2.Type.Str,\n }, valid);\n }\n if (it.opts.unevaluated && props !== true) {\n gen.assign((0, codegen_1._) `${props}[${key}]`, true);\n }\n else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=patternProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt) {\n const { gen, schema, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n cxt.fail();\n return;\n }\n const valid = gen.name(\"valid\");\n cxt.subschema({\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, valid);\n cxt.failResult(valid, () => cxt.reset(), () => cxt.error());\n },\n error: { message: \"must NOT be valid\" },\n};\nexports.default = def;\n//# sourceMappingURL=not.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: code_1.validateUnion,\n error: { message: \"must match a schema in anyOf\" },\n};\nexports.default = def;\n//# sourceMappingURL=anyOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must match exactly one schema in oneOf\",\n params: ({ params }) => (0, codegen_1._) `{passingSchemas: ${params.passing}}`,\n};\nconst def = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n if (it.opts.discriminator && parentSchema.discriminator)\n return;\n const schArr = schema;\n const valid = gen.let(\"valid\", false);\n const passing = gen.let(\"passing\", null);\n const schValid = gen.name(\"_valid\");\n cxt.setParams({ passing });\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n gen.block(validateOneOf);\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n function validateOneOf() {\n schArr.forEach((sch, i) => {\n let schCxt;\n if ((0, util_1.alwaysValidSchema)(it, sch)) {\n gen.var(schValid, true);\n }\n else {\n schCxt = cxt.subschema({\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n }\n if (i > 0) {\n gen\n .if((0, codegen_1._) `${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, (0, codegen_1._) `[${passing}, ${i}]`)\n .else();\n }\n gen.if(schValid, () => {\n gen.assign(valid, true);\n gen.assign(passing, i);\n if (schCxt)\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=oneOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt) {\n const { gen, schema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const valid = gen.name(\"valid\");\n schema.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n const schCxt = cxt.subschema({ keyword: \"allOf\", schemaProp: i }, valid);\n cxt.ok(valid);\n cxt.mergeEvaluated(schCxt);\n });\n },\n};\nexports.default = def;\n//# sourceMappingURL=allOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params }) => (0, codegen_1.str) `must match \"${params.ifClause}\" schema`,\n params: ({ params }) => (0, codegen_1._) `{failingKeyword: ${params.ifClause}}`,\n};\nconst def = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, parentSchema, it } = cxt;\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n (0, util_1.checkStrictMode)(it, '\"if\" without \"then\" and \"else\" is ignored');\n }\n const hasThen = hasSchema(it, \"then\");\n const hasElse = hasSchema(it, \"else\");\n if (!hasThen && !hasElse)\n return;\n const valid = gen.let(\"valid\", true);\n const schValid = gen.name(\"_valid\");\n validateIf();\n cxt.reset();\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\");\n cxt.setParams({ ifClause });\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause));\n }\n else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"));\n }\n else {\n gen.if((0, codegen_1.not)(schValid), validateClause(\"else\"));\n }\n cxt.pass(valid, () => cxt.error(true));\n function validateIf() {\n const schCxt = cxt.subschema({\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, schValid);\n cxt.mergeEvaluated(schCxt);\n }\n function validateClause(keyword, ifClause) {\n return () => {\n const schCxt = cxt.subschema({ keyword }, schValid);\n gen.assign(valid, schValid);\n cxt.mergeValidEvaluated(schCxt, valid);\n if (ifClause)\n gen.assign(ifClause, (0, codegen_1._) `${keyword}`);\n else\n cxt.setParams({ ifClause: keyword });\n };\n }\n },\n};\nfunction hasSchema(it, keyword) {\n const schema = it.schema[keyword];\n return schema !== undefined && !(0, util_1.alwaysValidSchema)(it, schema);\n}\nexports.default = def;\n//# sourceMappingURL=if.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({ keyword, parentSchema, it }) {\n if (parentSchema.if === undefined)\n (0, util_1.checkStrictMode)(it, `\"${keyword}\" without \"if\" is ignored`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=thenElse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst additionalItems_1 = require(\"./additionalItems\");\nconst prefixItems_1 = require(\"./prefixItems\");\nconst items_1 = require(\"./items\");\nconst items2020_1 = require(\"./items2020\");\nconst contains_1 = require(\"./contains\");\nconst dependencies_1 = require(\"./dependencies\");\nconst propertyNames_1 = require(\"./propertyNames\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst properties_1 = require(\"./properties\");\nconst patternProperties_1 = require(\"./patternProperties\");\nconst not_1 = require(\"./not\");\nconst anyOf_1 = require(\"./anyOf\");\nconst oneOf_1 = require(\"./oneOf\");\nconst allOf_1 = require(\"./allOf\");\nconst if_1 = require(\"./if\");\nconst thenElse_1 = require(\"./thenElse\");\nfunction getApplicator(draft2020 = false) {\n const applicator = [\n // any\n not_1.default,\n anyOf_1.default,\n oneOf_1.default,\n allOf_1.default,\n if_1.default,\n thenElse_1.default,\n // object\n propertyNames_1.default,\n additionalProperties_1.default,\n dependencies_1.default,\n properties_1.default,\n patternProperties_1.default,\n ];\n // array\n if (draft2020)\n applicator.push(prefixItems_1.default, items2020_1.default);\n else\n applicator.push(additionalItems_1.default, items_1.default);\n applicator.push(contains_1.default);\n return applicator;\n}\nexports.default = getApplicator;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match format \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{format: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt, ruleType) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n const { opts, errSchemaPath, schemaEnv, self } = it;\n if (!opts.validateFormats)\n return;\n if ($data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fDef = gen.const(\"fDef\", (0, codegen_1._) `${fmts}[${schemaCode}]`);\n const fType = gen.let(\"fType\");\n const format = gen.let(\"format\");\n // TODO simplify\n gen.if((0, codegen_1._) `typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._) `${fDef}.type || \"string\"`).assign(format, (0, codegen_1._) `${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._) `\"string\"`).assign(format, fDef));\n cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt()));\n function unknownFmt() {\n if (opts.strictSchema === false)\n return codegen_1.nil;\n return (0, codegen_1._) `${schemaCode} && !${format}`;\n }\n function invalidFmt() {\n const callFormat = schemaEnv.$async\n ? (0, codegen_1._) `(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : (0, codegen_1._) `${format}(${data})`;\n const validData = (0, codegen_1._) `(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`;\n return (0, codegen_1._) `${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`;\n }\n }\n function validateFormat() {\n const formatDef = self.formats[schema];\n if (!formatDef) {\n unknownFormat();\n return;\n }\n if (formatDef === true)\n return;\n const [fmtType, format, fmtRef] = getFormat(formatDef);\n if (fmtType === ruleType)\n cxt.pass(validCondition());\n function unknownFormat() {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg());\n return;\n }\n throw new Error(unknownMsg());\n function unknownMsg() {\n return `unknown format \"${schema}\" ignored in schema at path \"${errSchemaPath}\"`;\n }\n }\n function getFormat(fmtDef) {\n const code = fmtDef instanceof RegExp\n ? (0, codegen_1.regexpCode)(fmtDef)\n : opts.code.formats\n ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(schema)}`\n : undefined;\n const fmt = gen.scopeValue(\"formats\", { key: schema, ref: fmtDef, code });\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, (0, codegen_1._) `${fmt}.validate`];\n }\n return [\"string\", fmtDef, fmt];\n }\n function validCondition() {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async)\n throw new Error(\"async format in sync schema\");\n return (0, codegen_1._) `await ${fmtRef}(${data})`;\n }\n return typeof format == \"function\" ? (0, codegen_1._) `${fmtRef}(${data})` : (0, codegen_1._) `${fmtRef}.test(${data})`;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=format.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst format_1 = require(\"./format\");\nconst format = [format_1.default];\nexports.default = format;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentVocabulary = exports.metadataVocabulary = void 0;\nexports.metadataVocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n];\nexports.contentVocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n];\n//# sourceMappingURL=metadata.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"./core\");\nconst validation_1 = require(\"./validation\");\nconst applicator_1 = require(\"./applicator\");\nconst format_1 = require(\"./format\");\nconst metadata_1 = require(\"./metadata\");\nconst draft7Vocabularies = [\n core_1.default,\n validation_1.default,\n (0, applicator_1.default)(),\n format_1.default,\n metadata_1.metadataVocabulary,\n metadata_1.contentVocabulary,\n];\nexports.default = draft7Vocabularies;\n//# sourceMappingURL=draft7.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiscrError = void 0;\nvar DiscrError;\n(function (DiscrError) {\n DiscrError[\"Tag\"] = \"tag\";\n DiscrError[\"Mapping\"] = \"mapping\";\n})(DiscrError || (exports.DiscrError = DiscrError = {}));\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst types_1 = require(\"../discriminator/types\");\nconst compile_1 = require(\"../../compile\");\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._) `{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n};\nconst def = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt) {\n const { gen, data, schema, parentSchema, it } = cxt;\n const { oneOf } = parentSchema;\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\");\n }\n const tagName = schema.propertyName;\n if (typeof tagName != \"string\")\n throw new Error(\"discriminator: requires propertyName\");\n if (schema.mapping)\n throw new Error(\"discriminator: mapping is not supported\");\n if (!oneOf)\n throw new Error(\"discriminator: requires oneOf keyword\");\n const valid = gen.let(\"valid\", false);\n const tag = gen.const(\"tag\", (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(tagName)}`);\n gen.if((0, codegen_1._) `typeof ${tag} == \"string\"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName }));\n cxt.ok(valid);\n function validateMapping() {\n const mapping = getMapping();\n gen.if(false);\n for (const tagValue in mapping) {\n gen.elseIf((0, codegen_1._) `${tag} === ${tagValue}`);\n gen.assign(valid, applyTagSchema(mapping[tagValue]));\n }\n gen.else();\n cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName });\n gen.endIf();\n }\n function applyTagSchema(schemaProp) {\n const _valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({ keyword: \"oneOf\", schemaProp }, _valid);\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n return _valid;\n }\n function getMapping() {\n var _a;\n const oneOfMapping = {};\n const topRequired = hasRequired(parentSchema);\n let tagRequired = true;\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i];\n if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {\n const ref = sch.$ref;\n sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref);\n if (sch instanceof compile_1.SchemaEnv)\n sch = sch.schema;\n if (sch === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, it.baseId, ref);\n }\n const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];\n if (typeof propSch != \"object\") {\n throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`);\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch));\n addMappings(propSch, i);\n }\n if (!tagRequired)\n throw new Error(`discriminator: \"${tagName}\" must be required`);\n return oneOfMapping;\n function hasRequired({ required }) {\n return Array.isArray(required) && required.includes(tagName);\n }\n function addMappings(sch, i) {\n if (sch.const) {\n addMapping(sch.const, i);\n }\n else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i);\n }\n }\n else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`);\n }\n }\n function addMapping(tagValue, i) {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`);\n }\n oneOfMapping[tagValue] = i;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0;\nconst core_1 = require(\"./core\");\nconst draft7_1 = require(\"./vocabularies/draft7\");\nconst discriminator_1 = require(\"./vocabularies/discriminator\");\nconst draft7MetaSchema = require(\"./refs/json-schema-draft-07.json\");\nconst META_SUPPORT_DATA = [\"/properties\"];\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\";\nclass Ajv extends core_1.default {\n _addVocabularies() {\n super._addVocabularies();\n draft7_1.default.forEach((v) => this.addVocabulary(v));\n if (this.opts.discriminator)\n this.addKeyword(discriminator_1.default);\n }\n _addDefaultMetaSchema() {\n super._addDefaultMetaSchema();\n if (!this.opts.meta)\n return;\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n : draft7MetaSchema;\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false);\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID;\n }\n defaultMeta() {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined));\n }\n}\nexports.Ajv = Ajv;\nmodule.exports = exports = Ajv;\nmodule.exports.Ajv = Ajv;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Ajv;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nvar validation_error_1 = require(\"./runtime/validation_error\");\nObject.defineProperty(exports, \"ValidationError\", { enumerable: true, get: function () { return validation_error_1.default; } });\nvar ref_error_1 = require(\"./compile/ref_error\");\nObject.defineProperty(exports, \"MissingRefError\", { enumerable: true, get: function () { return ref_error_1.default; } });\n//# sourceMappingURL=ajv.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatNames = exports.fastFormats = exports.fullFormats = void 0;\nfunction fmtDef(validate, compare) {\n return { validate, compare };\n}\nexports.fullFormats = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: fmtDef(date, compareDate),\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: fmtDef(time, compareTime),\n \"date-time\": fmtDef(date_time, compareDateTime),\n // duration: https://tools.ietf.org/html/rfc3339#appendix-A\n duration: /^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/,\n uri,\n \"uri-reference\": /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,\n // uri-template: https://tools.ietf.org/html/rfc6570\n \"uri-template\": /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i,\n // For the source: https://gist.github.com/dperini/729294\n // For test cases: https://mathiasbynens.be/demo/url-regex\n url: /^(?:https?|ftp):\\/\\/(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))$/i,\n regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n \"json-pointer\": /^(?:\\/(?:[^~/]|~0|~1)*)*$/,\n \"json-pointer-uri-fragment\": /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n \"relative-json-pointer\": /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/,\n // the following formats are used by the openapi specification: https://spec.openapis.org/oas/v3.0.0#data-types\n // byte: https://github.com/miguelmota/is-base64\n byte,\n // signed 32 bit integer\n int32: { type: \"number\", validate: validateInt32 },\n // signed 64 bit integer\n int64: { type: \"number\", validate: validateInt64 },\n // C-type float\n float: { type: \"number\", validate: validateNumber },\n // C-type double\n double: { type: \"number\", validate: validateNumber },\n // hint to the UI to hide input strings\n password: true,\n // unchecked string payload\n binary: true,\n};\nexports.fastFormats = {\n ...exports.fullFormats,\n date: fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/, compareDate),\n time: fmtDef(/^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i, compareTime),\n \"date-time\": fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i, compareDateTime),\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n \"uri-reference\": /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'wilful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n};\nexports.formatNames = Object.keys(exports.fullFormats);\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\nconst DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nconst DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n const matches = DATE.exec(str);\n if (!matches)\n return false;\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n return (month >= 1 &&\n month <= 12 &&\n day >= 1 &&\n day <= (month === 2 && isLeapYear(year) ? 29 : DAYS[month]));\n}\nfunction compareDate(d1, d2) {\n if (!(d1 && d2))\n return undefined;\n if (d1 > d2)\n return 1;\n if (d1 < d2)\n return -1;\n return 0;\n}\nconst TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d(?::?\\d\\d)?)?$/i;\nfunction time(str, withTimeZone) {\n const matches = TIME.exec(str);\n if (!matches)\n return false;\n const hour = +matches[1];\n const minute = +matches[2];\n const second = +matches[3];\n const timeZone = matches[5];\n return (((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour === 23 && minute === 59 && second === 60)) &&\n (!withTimeZone || timeZone !== \"\"));\n}\nfunction compareTime(t1, t2) {\n if (!(t1 && t2))\n return undefined;\n const a1 = TIME.exec(t1);\n const a2 = TIME.exec(t2);\n if (!(a1 && a2))\n return undefined;\n t1 = a1[1] + a1[2] + a1[3] + (a1[4] || \"\");\n t2 = a2[1] + a2[2] + a2[3] + (a2[4] || \"\");\n if (t1 > t2)\n return 1;\n if (t1 < t2)\n return -1;\n return 0;\n}\nconst DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n const dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length === 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\nfunction compareDateTime(dt1, dt2) {\n if (!(dt1 && dt2))\n return undefined;\n const [d1, t1] = dt1.split(DATE_TIME_SEPARATOR);\n const [d2, t2] = dt2.split(DATE_TIME_SEPARATOR);\n const res = compareDate(d1, d2);\n if (res === undefined)\n return undefined;\n return res || compareTime(t1, t2);\n}\nconst NOT_URI_FRAGMENT = /\\/|:/;\nconst URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\nconst BYTE = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;\nfunction byte(str) {\n BYTE.lastIndex = 0;\n return BYTE.test(str);\n}\nconst MIN_INT32 = -(2 ** 31);\nconst MAX_INT32 = 2 ** 31 - 1;\nfunction validateInt32(value) {\n return Number.isInteger(value) && value <= MAX_INT32 && value >= MIN_INT32;\n}\nfunction validateInt64(value) {\n // JSON and javascript max Int is 2**53, so any int that passes isInteger is valid for Int64\n return Number.isInteger(value);\n}\nfunction validateNumber() {\n return true;\n}\nconst Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str))\n return false;\n try {\n new RegExp(str);\n return true;\n }\n catch (e) {\n return false;\n }\n}\n//# sourceMappingURL=formats.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nclass _CodeOrName {\n}\nexports._CodeOrName = _CodeOrName;\nexports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nclass Name extends _CodeOrName {\n constructor(s) {\n super();\n if (!exports.IDENTIFIER.test(s))\n throw new Error(\"CodeGen: name must be a valid identifier\");\n this.str = s;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n return false;\n }\n get names() {\n return { [this.str]: 1 };\n }\n}\nexports.Name = Name;\nclass _Code extends _CodeOrName {\n constructor(code) {\n super();\n this._items = typeof code === \"string\" ? [code] : code;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n if (this._items.length > 1)\n return false;\n const item = this._items[0];\n return item === \"\" || item === '\"\"';\n }\n get str() {\n var _a;\n return ((_a = this._str) !== null && _a !== void 0 ? _a : (this._str = this._items.reduce((s, c) => `${s}${c}`, \"\")));\n }\n get names() {\n var _a;\n return ((_a = this._names) !== null && _a !== void 0 ? _a : (this._names = this._items.reduce((names, c) => {\n if (c instanceof Name)\n names[c.str] = (names[c.str] || 0) + 1;\n return names;\n }, {})));\n }\n}\nexports._Code = _Code;\nexports.nil = new _Code(\"\");\nfunction _(strs, ...args) {\n const code = [strs[0]];\n let i = 0;\n while (i < args.length) {\n addCodeArg(code, args[i]);\n code.push(strs[++i]);\n }\n return new _Code(code);\n}\nexports._ = _;\nconst plus = new _Code(\"+\");\nfunction str(strs, ...args) {\n const expr = [safeStringify(strs[0])];\n let i = 0;\n while (i < args.length) {\n expr.push(plus);\n addCodeArg(expr, args[i]);\n expr.push(plus, safeStringify(strs[++i]));\n }\n optimize(expr);\n return new _Code(expr);\n}\nexports.str = str;\nfunction addCodeArg(code, arg) {\n if (arg instanceof _Code)\n code.push(...arg._items);\n else if (arg instanceof Name)\n code.push(arg);\n else\n code.push(interpolate(arg));\n}\nexports.addCodeArg = addCodeArg;\nfunction optimize(expr) {\n let i = 1;\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1]);\n if (res !== undefined) {\n expr.splice(i - 1, 3, res);\n continue;\n }\n expr[i++] = \"+\";\n }\n i++;\n }\n}\nfunction mergeExprItems(a, b) {\n if (b === '\"\"')\n return a;\n if (a === '\"\"')\n return b;\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"')\n return;\n if (typeof b != \"string\")\n return `${a.slice(0, -1)}${b}\"`;\n if (b[0] === '\"')\n return a.slice(0, -1) + b.slice(1);\n return;\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name))\n return `\"${a}${b.slice(1)}`;\n return;\n}\nfunction strConcat(c1, c2) {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str `${c1}${c2}`;\n}\nexports.strConcat = strConcat;\n// TODO do not allow arrays here\nfunction interpolate(x) {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x);\n}\nfunction stringify(x) {\n return new _Code(safeStringify(x));\n}\nexports.stringify = stringify;\nfunction safeStringify(x) {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\");\n}\nexports.safeStringify = safeStringify;\nfunction getProperty(key) {\n return typeof key == \"string\" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _ `[${key}]`;\n}\nexports.getProperty = getProperty;\n//Does best effort to format the name properly\nfunction getEsmExportName(key) {\n if (typeof key == \"string\" && exports.IDENTIFIER.test(key)) {\n return new _Code(`${key}`);\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`);\n}\nexports.getEsmExportName = getEsmExportName;\nfunction regexpCode(rx) {\n return new _Code(rx.toString());\n}\nexports.regexpCode = regexpCode;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;\nconst code_1 = require(\"./code\");\nclass ValueError extends Error {\n constructor(name) {\n super(`CodeGen: \"code\" for ${name} not defined`);\n this.value = name.value;\n }\n}\nvar UsedValueState;\n(function (UsedValueState) {\n UsedValueState[UsedValueState[\"Started\"] = 0] = \"Started\";\n UsedValueState[UsedValueState[\"Completed\"] = 1] = \"Completed\";\n})(UsedValueState || (exports.UsedValueState = UsedValueState = {}));\nexports.varKinds = {\n const: new code_1.Name(\"const\"),\n let: new code_1.Name(\"let\"),\n var: new code_1.Name(\"var\"),\n};\nclass Scope {\n constructor({ prefixes, parent } = {}) {\n this._names = {};\n this._prefixes = prefixes;\n this._parent = parent;\n }\n toName(nameOrPrefix) {\n return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);\n }\n name(prefix) {\n return new code_1.Name(this._newName(prefix));\n }\n _newName(prefix) {\n const ng = this._names[prefix] || this._nameGroup(prefix);\n return `${prefix}${ng.index++}`;\n }\n _nameGroup(prefix) {\n var _a, _b;\n if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`);\n }\n return (this._names[prefix] = { prefix, index: 0 });\n }\n}\nexports.Scope = Scope;\nclass ValueScopeName extends code_1.Name {\n constructor(prefix, nameStr) {\n super(nameStr);\n this.prefix = prefix;\n }\n setValue(value, { property, itemIndex }) {\n this.value = value;\n this.scopePath = (0, code_1._) `.${new code_1.Name(property)}[${itemIndex}]`;\n }\n}\nexports.ValueScopeName = ValueScopeName;\nconst line = (0, code_1._) `\\n`;\nclass ValueScope extends Scope {\n constructor(opts) {\n super(opts);\n this._values = {};\n this._scope = opts.scope;\n this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };\n }\n get() {\n return this._scope;\n }\n name(prefix) {\n return new ValueScopeName(prefix, this._newName(prefix));\n }\n value(nameOrPrefix, value) {\n var _a;\n if (value.ref === undefined)\n throw new Error(\"CodeGen: ref must be passed in value\");\n const name = this.toName(nameOrPrefix);\n const { prefix } = name;\n const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;\n let vs = this._values[prefix];\n if (vs) {\n const _name = vs.get(valueKey);\n if (_name)\n return _name;\n }\n else {\n vs = this._values[prefix] = new Map();\n }\n vs.set(valueKey, name);\n const s = this._scope[prefix] || (this._scope[prefix] = []);\n const itemIndex = s.length;\n s[itemIndex] = value.ref;\n name.setValue(value, { property: prefix, itemIndex });\n return name;\n }\n getValue(prefix, keyOrRef) {\n const vs = this._values[prefix];\n if (!vs)\n return;\n return vs.get(keyOrRef);\n }\n scopeRefs(scopeName, values = this._values) {\n return this._reduceValues(values, (name) => {\n if (name.scopePath === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return (0, code_1._) `${scopeName}${name.scopePath}`;\n });\n }\n scopeCode(values = this._values, usedValues, getCode) {\n return this._reduceValues(values, (name) => {\n if (name.value === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return name.value.code;\n }, usedValues, getCode);\n }\n _reduceValues(values, valueCode, usedValues = {}, getCode) {\n let code = code_1.nil;\n for (const prefix in values) {\n const vs = values[prefix];\n if (!vs)\n continue;\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());\n vs.forEach((name) => {\n if (nameSet.has(name))\n return;\n nameSet.set(name, UsedValueState.Started);\n let c = valueCode(name);\n if (c) {\n const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;\n code = (0, code_1._) `${code}${def} ${name} = ${c};${this.opts._n}`;\n }\n else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {\n code = (0, code_1._) `${code}${c}${this.opts._n}`;\n }\n else {\n throw new ValueError(name);\n }\n nameSet.set(name, UsedValueState.Completed);\n });\n }\n return code;\n }\n}\nexports.ValueScope = ValueScope;\n//# sourceMappingURL=scope.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;\nconst code_1 = require(\"./code\");\nconst scope_1 = require(\"./scope\");\nvar code_2 = require(\"./code\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return code_2._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return code_2.str; } });\nObject.defineProperty(exports, \"strConcat\", { enumerable: true, get: function () { return code_2.strConcat; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return code_2.nil; } });\nObject.defineProperty(exports, \"getProperty\", { enumerable: true, get: function () { return code_2.getProperty; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return code_2.stringify; } });\nObject.defineProperty(exports, \"regexpCode\", { enumerable: true, get: function () { return code_2.regexpCode; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return code_2.Name; } });\nvar scope_2 = require(\"./scope\");\nObject.defineProperty(exports, \"Scope\", { enumerable: true, get: function () { return scope_2.Scope; } });\nObject.defineProperty(exports, \"ValueScope\", { enumerable: true, get: function () { return scope_2.ValueScope; } });\nObject.defineProperty(exports, \"ValueScopeName\", { enumerable: true, get: function () { return scope_2.ValueScopeName; } });\nObject.defineProperty(exports, \"varKinds\", { enumerable: true, get: function () { return scope_2.varKinds; } });\nexports.operators = {\n GT: new code_1._Code(\">\"),\n GTE: new code_1._Code(\">=\"),\n LT: new code_1._Code(\"<\"),\n LTE: new code_1._Code(\"<=\"),\n EQ: new code_1._Code(\"===\"),\n NEQ: new code_1._Code(\"!==\"),\n NOT: new code_1._Code(\"!\"),\n OR: new code_1._Code(\"||\"),\n AND: new code_1._Code(\"&&\"),\n ADD: new code_1._Code(\"+\"),\n};\nclass Node {\n optimizeNodes() {\n return this;\n }\n optimizeNames(_names, _constants) {\n return this;\n }\n}\nclass Def extends Node {\n constructor(varKind, name, rhs) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.rhs = rhs;\n }\n render({ es5, _n }) {\n const varKind = es5 ? scope_1.varKinds.var : this.varKind;\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`;\n return `${varKind} ${this.name}${rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (!names[this.name.str])\n return;\n if (this.rhs)\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};\n }\n}\nclass Assign extends Node {\n constructor(lhs, rhs, sideEffects) {\n super();\n this.lhs = lhs;\n this.rhs = rhs;\n this.sideEffects = sideEffects;\n }\n render({ _n }) {\n return `${this.lhs} = ${this.rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)\n return;\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };\n return addExprNames(names, this.rhs);\n }\n}\nclass AssignOp extends Assign {\n constructor(lhs, op, rhs, sideEffects) {\n super(lhs, rhs, sideEffects);\n this.op = op;\n }\n render({ _n }) {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n;\n }\n}\nclass Label extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n return `${this.label}:` + _n;\n }\n}\nclass Break extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n const label = this.label ? ` ${this.label}` : \"\";\n return `break${label};` + _n;\n }\n}\nclass Throw extends Node {\n constructor(error) {\n super();\n this.error = error;\n }\n render({ _n }) {\n return `throw ${this.error};` + _n;\n }\n get names() {\n return this.error.names;\n }\n}\nclass AnyCode extends Node {\n constructor(code) {\n super();\n this.code = code;\n }\n render({ _n }) {\n return `${this.code};` + _n;\n }\n optimizeNodes() {\n return `${this.code}` ? this : undefined;\n }\n optimizeNames(names, constants) {\n this.code = optimizeExpr(this.code, names, constants);\n return this;\n }\n get names() {\n return this.code instanceof code_1._CodeOrName ? this.code.names : {};\n }\n}\nclass ParentNode extends Node {\n constructor(nodes = []) {\n super();\n this.nodes = nodes;\n }\n render(opts) {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\");\n }\n optimizeNodes() {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n const n = nodes[i].optimizeNodes();\n if (Array.isArray(n))\n nodes.splice(i, 1, ...n);\n else if (n)\n nodes[i] = n;\n else\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n optimizeNames(names, constants) {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i];\n if (n.optimizeNames(names, constants))\n continue;\n subtractNames(names, n.names);\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n get names() {\n return this.nodes.reduce((names, n) => addNames(names, n.names), {});\n }\n}\nclass BlockNode extends ParentNode {\n render(opts) {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n;\n }\n}\nclass Root extends ParentNode {\n}\nclass Else extends BlockNode {\n}\nElse.kind = \"else\";\nclass If extends BlockNode {\n constructor(condition, nodes) {\n super(nodes);\n this.condition = condition;\n }\n render(opts) {\n let code = `if(${this.condition})` + super.render(opts);\n if (this.else)\n code += \"else \" + this.else.render(opts);\n return code;\n }\n optimizeNodes() {\n super.optimizeNodes();\n const cond = this.condition;\n if (cond === true)\n return this.nodes; // else is ignored here\n let e = this.else;\n if (e) {\n const ns = e.optimizeNodes();\n e = this.else = Array.isArray(ns) ? new Else(ns) : ns;\n }\n if (e) {\n if (cond === false)\n return e instanceof If ? e : e.nodes;\n if (this.nodes.length)\n return this;\n return new If(not(cond), e instanceof If ? [e] : e.nodes);\n }\n if (cond === false || !this.nodes.length)\n return undefined;\n return this;\n }\n optimizeNames(names, constants) {\n var _a;\n this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n if (!(super.optimizeNames(names, constants) || this.else))\n return;\n this.condition = optimizeExpr(this.condition, names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n addExprNames(names, this.condition);\n if (this.else)\n addNames(names, this.else.names);\n return names;\n }\n}\nIf.kind = \"if\";\nclass For extends BlockNode {\n}\nFor.kind = \"for\";\nclass ForLoop extends For {\n constructor(iteration) {\n super();\n this.iteration = iteration;\n }\n render(opts) {\n return `for(${this.iteration})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iteration = optimizeExpr(this.iteration, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iteration.names);\n }\n}\nclass ForRange extends For {\n constructor(varKind, name, from, to) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.from = from;\n this.to = to;\n }\n render(opts) {\n const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;\n const { name, from, to } = this;\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);\n }\n get names() {\n const names = addExprNames(super.names, this.from);\n return addExprNames(names, this.to);\n }\n}\nclass ForIter extends For {\n constructor(loop, varKind, name, iterable) {\n super();\n this.loop = loop;\n this.varKind = varKind;\n this.name = name;\n this.iterable = iterable;\n }\n render(opts) {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iterable = optimizeExpr(this.iterable, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iterable.names);\n }\n}\nclass Func extends BlockNode {\n constructor(name, args, async) {\n super();\n this.name = name;\n this.args = args;\n this.async = async;\n }\n render(opts) {\n const _async = this.async ? \"async \" : \"\";\n return `${_async}function ${this.name}(${this.args})` + super.render(opts);\n }\n}\nFunc.kind = \"func\";\nclass Return extends ParentNode {\n render(opts) {\n return \"return \" + super.render(opts);\n }\n}\nReturn.kind = \"return\";\nclass Try extends BlockNode {\n render(opts) {\n let code = \"try\" + super.render(opts);\n if (this.catch)\n code += this.catch.render(opts);\n if (this.finally)\n code += this.finally.render(opts);\n return code;\n }\n optimizeNodes() {\n var _a, _b;\n super.optimizeNodes();\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();\n return this;\n }\n optimizeNames(names, constants) {\n var _a, _b;\n super.optimizeNames(names, constants);\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n if (this.catch)\n addNames(names, this.catch.names);\n if (this.finally)\n addNames(names, this.finally.names);\n return names;\n }\n}\nclass Catch extends BlockNode {\n constructor(error) {\n super();\n this.error = error;\n }\n render(opts) {\n return `catch(${this.error})` + super.render(opts);\n }\n}\nCatch.kind = \"catch\";\nclass Finally extends BlockNode {\n render(opts) {\n return \"finally\" + super.render(opts);\n }\n}\nFinally.kind = \"finally\";\nclass CodeGen {\n constructor(extScope, opts = {}) {\n this._values = {};\n this._blockStarts = [];\n this._constants = {};\n this.opts = { ...opts, _n: opts.lines ? \"\\n\" : \"\" };\n this._extScope = extScope;\n this._scope = new scope_1.Scope({ parent: extScope });\n this._nodes = [new Root()];\n }\n toString() {\n return this._root.render(this.opts);\n }\n // returns unique name in the internal scope\n name(prefix) {\n return this._scope.name(prefix);\n }\n // reserves unique name in the external scope\n scopeName(prefix) {\n return this._extScope.name(prefix);\n }\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName, value) {\n const name = this._extScope.value(prefixOrName, value);\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set());\n vs.add(name);\n return name;\n }\n getScopeValue(prefix, keyOrRef) {\n return this._extScope.getValue(prefix, keyOrRef);\n }\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName) {\n return this._extScope.scopeRefs(scopeName, this._values);\n }\n scopeCode() {\n return this._extScope.scopeCode(this._values);\n }\n _def(varKind, nameOrPrefix, rhs, constant) {\n const name = this._scope.toName(nameOrPrefix);\n if (rhs !== undefined && constant)\n this._constants[name.str] = rhs;\n this._leafNode(new Def(varKind, name, rhs));\n return name;\n }\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);\n }\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);\n }\n // `var` declaration with optional assignment\n var(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);\n }\n // assignment code\n assign(lhs, rhs, sideEffects) {\n return this._leafNode(new Assign(lhs, rhs, sideEffects));\n }\n // `+=` code\n add(lhs, rhs) {\n return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));\n }\n // appends passed SafeExpr to code or executes Block\n code(c) {\n if (typeof c == \"function\")\n c();\n else if (c !== code_1.nil)\n this._leafNode(new AnyCode(c));\n return this;\n }\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues) {\n const code = [\"{\"];\n for (const [key, value] of keyValues) {\n if (code.length > 1)\n code.push(\",\");\n code.push(key);\n if (key !== value || this.opts.es5) {\n code.push(\":\");\n (0, code_1.addCodeArg)(code, value);\n }\n }\n code.push(\"}\");\n return new code_1._Code(code);\n }\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition, thenBody, elseBody) {\n this._blockNode(new If(condition));\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf();\n }\n else if (thenBody) {\n this.code(thenBody).endIf();\n }\n else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body');\n }\n return this;\n }\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition) {\n return this._elseNode(new If(condition));\n }\n // `else` clause - only valid after `if` or `else if` clauses\n else() {\n return this._elseNode(new Else());\n }\n // end `if` statement (needed if gen.if was used only with condition)\n endIf() {\n return this._endBlockNode(If, Else);\n }\n _for(node, forBody) {\n this._blockNode(node);\n if (forBody)\n this.code(forBody).endFor();\n return this;\n }\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration, forBody) {\n return this._for(new ForLoop(iteration), forBody);\n }\n // `for` statement for a range of values\n forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name));\n }\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {\n const name = this._scope.toName(nameOrPrefix);\n if (this.opts.es5) {\n const arr = iterable instanceof code_1.Name ? iterable : this.var(\"_arr\", iterable);\n return this.forRange(\"_i\", 0, (0, code_1._) `${arr}.length`, (i) => {\n this.var(name, (0, code_1._) `${arr}[${i}]`);\n forBody(name);\n });\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name));\n }\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, (0, code_1._) `Object.keys(${obj})`, forBody);\n }\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name));\n }\n // end `for` loop\n endFor() {\n return this._endBlockNode(For);\n }\n // `label` statement\n label(label) {\n return this._leafNode(new Label(label));\n }\n // `break` statement\n break(label) {\n return this._leafNode(new Break(label));\n }\n // `return` statement\n return(value) {\n const node = new Return();\n this._blockNode(node);\n this.code(value);\n if (node.nodes.length !== 1)\n throw new Error('CodeGen: \"return\" should have one node');\n return this._endBlockNode(Return);\n }\n // `try` statement\n try(tryBody, catchCode, finallyCode) {\n if (!catchCode && !finallyCode)\n throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"');\n const node = new Try();\n this._blockNode(node);\n this.code(tryBody);\n if (catchCode) {\n const error = this.name(\"e\");\n this._currNode = node.catch = new Catch(error);\n catchCode(error);\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally();\n this.code(finallyCode);\n }\n return this._endBlockNode(Catch, Finally);\n }\n // `throw` statement\n throw(error) {\n return this._leafNode(new Throw(error));\n }\n // start self-balancing block\n block(body, nodeCount) {\n this._blockStarts.push(this._nodes.length);\n if (body)\n this.code(body).endBlock(nodeCount);\n return this;\n }\n // end the current self-balancing block\n endBlock(nodeCount) {\n const len = this._blockStarts.pop();\n if (len === undefined)\n throw new Error(\"CodeGen: not in self-balancing block\");\n const toClose = this._nodes.length - len;\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`);\n }\n this._nodes.length = len;\n return this;\n }\n // `function` heading (or definition if funcBody is passed)\n func(name, args = code_1.nil, async, funcBody) {\n this._blockNode(new Func(name, args, async));\n if (funcBody)\n this.code(funcBody).endFunc();\n return this;\n }\n // end function definition\n endFunc() {\n return this._endBlockNode(Func);\n }\n optimize(n = 1) {\n while (n-- > 0) {\n this._root.optimizeNodes();\n this._root.optimizeNames(this._root.names, this._constants);\n }\n }\n _leafNode(node) {\n this._currNode.nodes.push(node);\n return this;\n }\n _blockNode(node) {\n this._currNode.nodes.push(node);\n this._nodes.push(node);\n }\n _endBlockNode(N1, N2) {\n const n = this._currNode;\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop();\n return this;\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`);\n }\n _elseNode(node) {\n const n = this._currNode;\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"');\n }\n this._currNode = n.else = node;\n return this;\n }\n get _root() {\n return this._nodes[0];\n }\n get _currNode() {\n const ns = this._nodes;\n return ns[ns.length - 1];\n }\n set _currNode(node) {\n const ns = this._nodes;\n ns[ns.length - 1] = node;\n }\n}\nexports.CodeGen = CodeGen;\nfunction addNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) + (from[n] || 0);\n return names;\n}\nfunction addExprNames(names, from) {\n return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;\n}\nfunction optimizeExpr(expr, names, constants) {\n if (expr instanceof code_1.Name)\n return replaceName(expr);\n if (!canOptimize(expr))\n return expr;\n return new code_1._Code(expr._items.reduce((items, c) => {\n if (c instanceof code_1.Name)\n c = replaceName(c);\n if (c instanceof code_1._Code)\n items.push(...c._items);\n else\n items.push(c);\n return items;\n }, []));\n function replaceName(n) {\n const c = constants[n.str];\n if (c === undefined || names[n.str] !== 1)\n return n;\n delete names[n.str];\n return c;\n }\n function canOptimize(e) {\n return (e instanceof code_1._Code &&\n e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== undefined));\n }\n}\nfunction subtractNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) - (from[n] || 0);\n}\nfunction not(x) {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : (0, code_1._) `!${par(x)}`;\n}\nexports.not = not;\nconst andCode = mappend(exports.operators.AND);\n// boolean AND (&&) expression with the passed arguments\nfunction and(...args) {\n return args.reduce(andCode);\n}\nexports.and = and;\nconst orCode = mappend(exports.operators.OR);\n// boolean OR (||) expression with the passed arguments\nfunction or(...args) {\n return args.reduce(orCode);\n}\nexports.or = or;\nfunction mappend(op) {\n return (x, y) => (x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._) `${par(x)} ${op} ${par(y)}`);\n}\nfunction par(x) {\n return x instanceof code_1.Name ? x : (0, code_1._) `(${x})`;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst code_1 = require(\"./codegen/code\");\n// TODO refactor to use Set\nfunction toHash(arr) {\n const hash = {};\n for (const item of arr)\n hash[item] = true;\n return hash;\n}\nexports.toHash = toHash;\nfunction alwaysValidSchema(it, schema) {\n if (typeof schema == \"boolean\")\n return schema;\n if (Object.keys(schema).length === 0)\n return true;\n checkUnknownRules(it, schema);\n return !schemaHasRules(schema, it.self.RULES.all);\n}\nexports.alwaysValidSchema = alwaysValidSchema;\nfunction checkUnknownRules(it, schema = it.schema) {\n const { opts, self } = it;\n if (!opts.strictSchema)\n return;\n if (typeof schema === \"boolean\")\n return;\n const rules = self.RULES.keywords;\n for (const key in schema) {\n if (!rules[key])\n checkStrictMode(it, `unknown keyword: \"${key}\"`);\n }\n}\nexports.checkUnknownRules = checkUnknownRules;\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (rules[key])\n return true;\n return false;\n}\nexports.schemaHasRules = schemaHasRules;\nfunction schemaHasRulesButRef(schema, RULES) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (key !== \"$ref\" && RULES.all[key])\n return true;\n return false;\n}\nexports.schemaHasRulesButRef = schemaHasRulesButRef;\nfunction schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\")\n return schema;\n if (typeof schema == \"string\")\n return (0, codegen_1._) `${schema}`;\n }\n return (0, codegen_1._) `${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`;\n}\nexports.schemaRefOrVal = schemaRefOrVal;\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\nexports.unescapeFragment = unescapeFragment;\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\nexports.escapeFragment = escapeFragment;\nfunction escapeJsonPointer(str) {\n if (typeof str == \"number\")\n return `${str}`;\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nexports.escapeJsonPointer = escapeJsonPointer;\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\nexports.unescapeJsonPointer = unescapeJsonPointer;\nfunction eachItem(xs, f) {\n if (Array.isArray(xs)) {\n for (const x of xs)\n f(x);\n }\n else {\n f(xs);\n }\n}\nexports.eachItem = eachItem;\nfunction makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName, }) {\n return (gen, from, to, toName) => {\n const res = to === undefined\n ? from\n : to instanceof codegen_1.Name\n ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof codegen_1.Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to);\n return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;\n };\n}\nexports.mergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => {\n gen.if((0, codegen_1._) `${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._) `${to} || {}`).code((0, codegen_1._) `Object.assign(${to}, ${from})`));\n }),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true);\n }\n else {\n gen.assign(to, (0, codegen_1._) `${to} || {}`);\n setEvaluated(gen, to, from);\n }\n }),\n mergeValues: (from, to) => (from === true ? true : { ...from, ...to }),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._) `${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._) `${to} > ${from} ? ${to} : ${from}`)),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n};\nfunction evaluatedPropsToName(gen, ps) {\n if (ps === true)\n return gen.var(\"props\", true);\n const props = gen.var(\"props\", (0, codegen_1._) `{}`);\n if (ps !== undefined)\n setEvaluated(gen, props, ps);\n return props;\n}\nexports.evaluatedPropsToName = evaluatedPropsToName;\nfunction setEvaluated(gen, props, ps) {\n Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._) `${props}${(0, codegen_1.getProperty)(p)}`, true));\n}\nexports.setEvaluated = setEvaluated;\nconst snippets = {};\nfunction useFunc(gen, f) {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)),\n });\n}\nexports.useFunc = useFunc;\nvar Type;\n(function (Type) {\n Type[Type[\"Num\"] = 0] = \"Num\";\n Type[Type[\"Str\"] = 1] = \"Str\";\n})(Type || (exports.Type = Type = {}));\nfunction getErrorPath(dataProp, dataPropType, jsPropertySyntax) {\n // let path\n if (dataProp instanceof codegen_1.Name) {\n const isNumber = dataPropType === Type.Num;\n return jsPropertySyntax\n ? isNumber\n ? (0, codegen_1._) `\"[\" + ${dataProp} + \"]\"`\n : (0, codegen_1._) `\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? (0, codegen_1._) `\"/\" + ${dataProp}`\n : (0, codegen_1._) `\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`; // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp);\n}\nexports.getErrorPath = getErrorPath;\nfunction checkStrictMode(it, msg, mode = it.opts.strictSchema) {\n if (!mode)\n return;\n msg = `strict mode: ${msg}`;\n if (mode === true)\n throw new Error(msg);\n it.self.logger.warn(msg);\n}\nexports.checkStrictMode = checkStrictMode;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"./codegen\");\nconst names = {\n // validation function arguments\n data: new codegen_1.Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new codegen_1.Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new codegen_1.Name(\"instancePath\"),\n parentData: new codegen_1.Name(\"parentData\"),\n parentDataProperty: new codegen_1.Name(\"parentDataProperty\"),\n rootData: new codegen_1.Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new codegen_1.Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new codegen_1.Name(\"vErrors\"), // null or array of validation errors\n errors: new codegen_1.Name(\"errors\"), // counter of validation errors\n this: new codegen_1.Name(\"this\"),\n // \"globals\"\n self: new codegen_1.Name(\"self\"),\n scope: new codegen_1.Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new codegen_1.Name(\"json\"),\n jsonPos: new codegen_1.Name(\"jsonPos\"),\n jsonLen: new codegen_1.Name(\"jsonLen\"),\n jsonPart: new codegen_1.Name(\"jsonPart\"),\n};\nexports.default = names;\n//# sourceMappingURL=names.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst util_1 = require(\"./util\");\nconst names_1 = require(\"./names\");\nexports.keywordError = {\n message: ({ keyword }) => (0, codegen_1.str) `must pass \"${keyword}\" keyword validation`,\n};\nexports.keyword$DataError = {\n message: ({ keyword, schemaType }) => schemaType\n ? (0, codegen_1.str) `\"${keyword}\" keyword must be ${schemaType} ($data)`\n : (0, codegen_1.str) `\"${keyword}\" keyword is invalid ($data)`,\n};\nfunction reportError(cxt, error = exports.keywordError, errorPaths, overrideAllErrors) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : (compositeRule || allErrors)) {\n addError(gen, errObj);\n }\n else {\n returnErrors(it, (0, codegen_1._) `[${errObj}]`);\n }\n}\nexports.reportError = reportError;\nfunction reportExtraError(cxt, error = exports.keywordError, errorPaths) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n addError(gen, errObj);\n if (!(compositeRule || allErrors)) {\n returnErrors(it, names_1.default.vErrors);\n }\n}\nexports.reportExtraError = reportExtraError;\nfunction resetErrorsCount(gen, errsCount) {\n gen.assign(names_1.default.errors, errsCount);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._) `${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));\n}\nexports.resetErrorsCount = resetErrorsCount;\nfunction extendErrors({ gen, keyword, schemaValue, data, errsCount, it, }) {\n /* istanbul ignore if */\n if (errsCount === undefined)\n throw new Error(\"ajv implementation error\");\n const err = gen.name(\"err\");\n gen.forRange(\"i\", errsCount, names_1.default.errors, (i) => {\n gen.const(err, (0, codegen_1._) `${names_1.default.vErrors}[${i}]`);\n gen.if((0, codegen_1._) `${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._) `${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath)));\n gen.assign((0, codegen_1._) `${err}.schemaPath`, (0, codegen_1.str) `${it.errSchemaPath}/${keyword}`);\n if (it.opts.verbose) {\n gen.assign((0, codegen_1._) `${err}.schema`, schemaValue);\n gen.assign((0, codegen_1._) `${err}.data`, data);\n }\n });\n}\nexports.extendErrors = extendErrors;\nfunction addError(gen, errObj) {\n const err = gen.const(\"err\", errObj);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._) `[${err}]`), (0, codegen_1._) `${names_1.default.vErrors}.push(${err})`);\n gen.code((0, codegen_1._) `${names_1.default.errors}++`);\n}\nfunction returnErrors(it, errs) {\n const { gen, validateName, schemaEnv } = it;\n if (schemaEnv.$async) {\n gen.throw((0, codegen_1._) `new ${it.ValidationError}(${errs})`);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, errs);\n gen.return(false);\n }\n}\nconst E = {\n keyword: new codegen_1.Name(\"keyword\"),\n schemaPath: new codegen_1.Name(\"schemaPath\"), // also used in JTD errors\n params: new codegen_1.Name(\"params\"),\n propertyName: new codegen_1.Name(\"propertyName\"),\n message: new codegen_1.Name(\"message\"),\n schema: new codegen_1.Name(\"schema\"),\n parentSchema: new codegen_1.Name(\"parentSchema\"),\n};\nfunction errorObjectCode(cxt, error, errorPaths) {\n const { createErrors } = cxt.it;\n if (createErrors === false)\n return (0, codegen_1._) `{}`;\n return errorObject(cxt, error, errorPaths);\n}\nfunction errorObject(cxt, error, errorPaths = {}) {\n const { gen, it } = cxt;\n const keyValues = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ];\n extraErrorProps(cxt, error, keyValues);\n return gen.object(...keyValues);\n}\nfunction errorInstancePath({ errorPath }, { instancePath }) {\n const instPath = instancePath\n ? (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}`\n : errorPath;\n return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)];\n}\nfunction errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) {\n let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str) `${errSchemaPath}/${keyword}`;\n if (schemaPath) {\n schPath = (0, codegen_1.str) `${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`;\n }\n return [E.schemaPath, schPath];\n}\nfunction extraErrorProps(cxt, { params, message }, keyValues) {\n const { keyword, data, schemaValue, it } = cxt;\n const { opts, propertyName, topSchemaRef, schemaPath } = it;\n keyValues.push([E.keyword, keyword], [E.params, typeof params == \"function\" ? params(cxt) : params || (0, codegen_1._) `{}`]);\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message]);\n }\n if (opts.verbose) {\n keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._) `${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);\n }\n if (propertyName)\n keyValues.push([E.propertyName, propertyName]);\n}\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst boolError = {\n message: \"boolean schema is false\",\n};\nfunction topBoolOrEmptySchema(it) {\n const { gen, schema, validateName } = it;\n if (schema === false) {\n falseSchemaError(it, false);\n }\n else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(names_1.default.data);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, null);\n gen.return(true);\n }\n}\nexports.topBoolOrEmptySchema = topBoolOrEmptySchema;\nfunction boolOrEmptySchema(it, valid) {\n const { gen, schema } = it;\n if (schema === false) {\n gen.var(valid, false); // TODO var\n falseSchemaError(it);\n }\n else {\n gen.var(valid, true); // TODO var\n }\n}\nexports.boolOrEmptySchema = boolOrEmptySchema;\nfunction falseSchemaError(it, overrideAllErrors) {\n const { gen, data } = it;\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n };\n (0, errors_1.reportError)(cxt, boolError, undefined, overrideAllErrors);\n}\n//# sourceMappingURL=boolSchema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRules = exports.isJSONType = void 0;\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"];\nconst jsonTypes = new Set(_jsonTypes);\nfunction isJSONType(x) {\n return typeof x == \"string\" && jsonTypes.has(x);\n}\nexports.isJSONType = isJSONType;\nfunction getRules() {\n const groups = {\n number: { type: \"number\", rules: [] },\n string: { type: \"string\", rules: [] },\n array: { type: \"array\", rules: [] },\n object: { type: \"object\", rules: [] },\n };\n return {\n types: { ...groups, integer: true, boolean: true, null: true },\n rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object],\n post: { rules: [] },\n all: {},\n keywords: {},\n };\n}\nexports.getRules = getRules;\n//# sourceMappingURL=rules.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;\nfunction schemaHasRulesForType({ schema, self }, type) {\n const group = self.RULES.types[type];\n return group && group !== true && shouldUseGroup(schema, group);\n}\nexports.schemaHasRulesForType = schemaHasRulesForType;\nfunction shouldUseGroup(schema, group) {\n return group.rules.some((rule) => shouldUseRule(schema, rule));\n}\nexports.shouldUseGroup = shouldUseGroup;\nfunction shouldUseRule(schema, rule) {\n var _a;\n return (schema[rule.keyword] !== undefined ||\n ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== undefined)));\n}\nexports.shouldUseRule = shouldUseRule;\n//# sourceMappingURL=applicability.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;\nconst rules_1 = require(\"../rules\");\nconst applicability_1 = require(\"./applicability\");\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nvar DataType;\n(function (DataType) {\n DataType[DataType[\"Correct\"] = 0] = \"Correct\";\n DataType[DataType[\"Wrong\"] = 1] = \"Wrong\";\n})(DataType || (exports.DataType = DataType = {}));\nfunction getSchemaTypes(schema) {\n const types = getJSONTypes(schema.type);\n const hasNull = types.includes(\"null\");\n if (hasNull) {\n if (schema.nullable === false)\n throw new Error(\"type: null contradicts nullable: false\");\n }\n else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"');\n }\n if (schema.nullable === true)\n types.push(\"null\");\n }\n return types;\n}\nexports.getSchemaTypes = getSchemaTypes;\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction getJSONTypes(ts) {\n const types = Array.isArray(ts) ? ts : ts ? [ts] : [];\n if (types.every(rules_1.isJSONType))\n return types;\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"));\n}\nexports.getJSONTypes = getJSONTypes;\nfunction coerceAndCheckDataType(it, types) {\n const { gen, data, opts } = it;\n const coerceTo = coerceToTypes(types, opts.coerceTypes);\n const checkTypes = types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0]));\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong);\n gen.if(wrongType, () => {\n if (coerceTo.length)\n coerceData(it, types, coerceTo);\n else\n reportTypeError(it);\n });\n }\n return checkTypes;\n}\nexports.coerceAndCheckDataType = coerceAndCheckDataType;\nconst COERCIBLE = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nfunction coerceToTypes(types, coerceTypes) {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : [];\n}\nfunction coerceData(it, types, coerceTo) {\n const { gen, data, opts } = it;\n const dataType = gen.let(\"dataType\", (0, codegen_1._) `typeof ${data}`);\n const coerced = gen.let(\"coerced\", (0, codegen_1._) `undefined`);\n if (opts.coerceTypes === \"array\") {\n gen.if((0, codegen_1._) `${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen\n .assign(data, (0, codegen_1._) `${data}[0]`)\n .assign(dataType, (0, codegen_1._) `typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));\n }\n gen.if((0, codegen_1._) `${coerced} !== undefined`);\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t);\n }\n }\n gen.else();\n reportTypeError(it);\n gen.endIf();\n gen.if((0, codegen_1._) `${coerced} !== undefined`, () => {\n gen.assign(data, coerced);\n assignParentData(it, coerced);\n });\n function coerceSpecificType(t) {\n switch (t) {\n case \"string\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, (0, codegen_1._) `\"\" + ${data}`)\n .elseIf((0, codegen_1._) `${data} === null`)\n .assign(coerced, (0, codegen_1._) `\"\"`);\n return;\n case \"number\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"integer\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"boolean\":\n gen\n .elseIf((0, codegen_1._) `${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf((0, codegen_1._) `${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true);\n return;\n case \"null\":\n gen.elseIf((0, codegen_1._) `${data} === \"\" || ${data} === 0 || ${data} === false`);\n gen.assign(coerced, null);\n return;\n case \"array\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`)\n .assign(coerced, (0, codegen_1._) `[${data}]`);\n }\n }\n}\nfunction assignParentData({ gen, parentData, parentDataProperty }, expr) {\n // TODO use gen.property\n gen.if((0, codegen_1._) `${parentData} !== undefined`, () => gen.assign((0, codegen_1._) `${parentData}[${parentDataProperty}]`, expr));\n}\nfunction checkDataType(dataType, data, strictNums, correct = DataType.Correct) {\n const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;\n let cond;\n switch (dataType) {\n case \"null\":\n return (0, codegen_1._) `${data} ${EQ} null`;\n case \"array\":\n cond = (0, codegen_1._) `Array.isArray(${data})`;\n break;\n case \"object\":\n cond = (0, codegen_1._) `${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`;\n break;\n case \"integer\":\n cond = numCond((0, codegen_1._) `!(${data} % 1) && !isNaN(${data})`);\n break;\n case \"number\":\n cond = numCond();\n break;\n default:\n return (0, codegen_1._) `typeof ${data} ${EQ} ${dataType}`;\n }\n return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);\n function numCond(_cond = codegen_1.nil) {\n return (0, codegen_1.and)((0, codegen_1._) `typeof ${data} == \"number\"`, _cond, strictNums ? (0, codegen_1._) `isFinite(${data})` : codegen_1.nil);\n }\n}\nexports.checkDataType = checkDataType;\nfunction checkDataTypes(dataTypes, data, strictNums, correct) {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct);\n }\n let cond;\n const types = (0, util_1.toHash)(dataTypes);\n if (types.array && types.object) {\n const notObj = (0, codegen_1._) `typeof ${data} != \"object\"`;\n cond = types.null ? notObj : (0, codegen_1._) `!${data} || ${notObj}`;\n delete types.null;\n delete types.array;\n delete types.object;\n }\n else {\n cond = codegen_1.nil;\n }\n if (types.number)\n delete types.integer;\n for (const t in types)\n cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));\n return cond;\n}\nexports.checkDataTypes = checkDataTypes;\nconst typeError = {\n message: ({ schema }) => `must be ${schema}`,\n params: ({ schema, schemaValue }) => typeof schema == \"string\" ? (0, codegen_1._) `{type: ${schema}}` : (0, codegen_1._) `{type: ${schemaValue}}`,\n};\nfunction reportTypeError(it) {\n const cxt = getTypeErrorContext(it);\n (0, errors_1.reportError)(cxt, typeError);\n}\nexports.reportTypeError = reportTypeError;\nfunction getTypeErrorContext(it) {\n const { gen, data, schema } = it;\n const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, \"type\");\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n };\n}\n//# sourceMappingURL=dataType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assignDefaults = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction assignDefaults(it, ty) {\n const { properties, items } = it.schema;\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default);\n }\n }\n else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i) => assignDefault(it, i, sch.default));\n }\n}\nexports.assignDefaults = assignDefaults;\nfunction assignDefault(it, prop, defaultValue) {\n const { gen, compositeRule, data, opts } = it;\n if (defaultValue === undefined)\n return;\n const childData = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(prop)}`;\n if (compositeRule) {\n (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`);\n return;\n }\n let condition = (0, codegen_1._) `${childData} === undefined`;\n if (opts.useDefaults === \"empty\") {\n condition = (0, codegen_1._) `${condition} || ${childData} === null || ${childData} === \"\"`;\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, (0, codegen_1._) `${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);\n}\n//# sourceMappingURL=defaults.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;\nconst codegen_1 = require(\"../compile/codegen\");\nconst util_1 = require(\"../compile/util\");\nconst names_1 = require(\"../compile/names\");\nconst util_2 = require(\"../compile/util\");\nfunction checkReportMissingProp(cxt, prop) {\n const { gen, data, it } = cxt;\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({ missingProperty: (0, codegen_1._) `${prop}` }, true);\n cxt.error();\n });\n}\nexports.checkReportMissingProp = checkReportMissingProp;\nfunction checkMissingProp({ gen, data, it: { opts } }, properties, missing) {\n return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._) `${missing} = ${prop}`)));\n}\nexports.checkMissingProp = checkMissingProp;\nfunction reportMissingProp(cxt, missing) {\n cxt.setParams({ missingProperty: missing }, true);\n cxt.error();\n}\nexports.reportMissingProp = reportMissingProp;\nfunction hasPropFunc(gen) {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: (0, codegen_1._) `Object.prototype.hasOwnProperty`,\n });\n}\nexports.hasPropFunc = hasPropFunc;\nfunction isOwnProperty(gen, data, property) {\n return (0, codegen_1._) `${hasPropFunc(gen)}.call(${data}, ${property})`;\n}\nexports.isOwnProperty = isOwnProperty;\nfunction propertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} !== undefined`;\n return ownProperties ? (0, codegen_1._) `${cond} && ${isOwnProperty(gen, data, property)}` : cond;\n}\nexports.propertyInData = propertyInData;\nfunction noPropertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} === undefined`;\n return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;\n}\nexports.noPropertyInData = noPropertyInData;\nfunction allSchemaProperties(schemaMap) {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : [];\n}\nexports.allSchemaProperties = allSchemaProperties;\nfunction schemaProperties(it, schemaMap) {\n return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));\n}\nexports.schemaProperties = schemaProperties;\nfunction callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {\n const dataAndSchema = passSchema ? (0, codegen_1._) `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;\n const valCxt = [\n [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],\n [names_1.default.parentData, it.parentData],\n [names_1.default.parentDataProperty, it.parentDataProperty],\n [names_1.default.rootData, names_1.default.rootData],\n ];\n if (it.opts.dynamicRef)\n valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);\n const args = (0, codegen_1._) `${dataAndSchema}, ${gen.object(...valCxt)}`;\n return context !== codegen_1.nil ? (0, codegen_1._) `${func}.call(${context}, ${args})` : (0, codegen_1._) `${func}(${args})`;\n}\nexports.callValidateCode = callValidateCode;\nconst newRegExp = (0, codegen_1._) `new RegExp`;\nfunction usePattern({ gen, it: { opts } }, pattern) {\n const u = opts.unicodeRegExp ? \"u\" : \"\";\n const { regExp } = opts.code;\n const rx = regExp(pattern, u);\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: (0, codegen_1._) `${regExp.code === \"new RegExp\" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`,\n });\n}\nexports.usePattern = usePattern;\nfunction validateArray(cxt) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true);\n validateItems(() => gen.assign(validArr, false));\n return validArr;\n }\n gen.var(valid, true);\n validateItems(() => gen.break());\n return valid;\n function validateItems(notValid) {\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword,\n dataProp: i,\n dataPropType: util_1.Type.Num,\n }, valid);\n gen.if((0, codegen_1.not)(valid), notValid);\n });\n }\n}\nexports.validateArray = validateArray;\nfunction validateUnion(cxt) {\n const { gen, schema, keyword, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));\n if (alwaysValid && !it.opts.unevaluated)\n return;\n const valid = gen.let(\"valid\", false);\n const schValid = gen.name(\"_valid\");\n gen.block(() => schema.forEach((_sch, i) => {\n const schCxt = cxt.subschema({\n keyword,\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n gen.assign(valid, (0, codegen_1._) `${valid} || ${schValid}`);\n const merged = cxt.mergeValidEvaluated(schCxt, schValid);\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged)\n gen.if((0, codegen_1.not)(valid));\n }));\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n}\nexports.validateUnion = validateUnion;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst code_1 = require(\"../../vocabularies/code\");\nconst errors_1 = require(\"../errors\");\nfunction macroKeywordCode(cxt, def) {\n const { gen, keyword, schema, parentSchema, it } = cxt;\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it);\n const schemaRef = useKeyword(gen, keyword, macroSchema);\n if (it.opts.validateSchema !== false)\n it.self.validateSchema(macroSchema, true);\n const valid = gen.name(\"valid\");\n cxt.subschema({\n schema: macroSchema,\n schemaPath: codegen_1.nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n }, valid);\n cxt.pass(valid, () => cxt.error(true));\n}\nexports.macroKeywordCode = macroKeywordCode;\nfunction funcKeywordCode(cxt, def) {\n var _a;\n const { gen, keyword, schema, parentSchema, $data, it } = cxt;\n checkAsyncKeyword(it, def);\n const validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate;\n const validateRef = useKeyword(gen, keyword, validate);\n const valid = gen.let(\"valid\");\n cxt.block$data(valid, validateKeyword);\n cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid);\n function validateKeyword() {\n if (def.errors === false) {\n assignValid();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => cxt.error());\n }\n else {\n const ruleErrs = def.async ? validateAsync() : validateSync();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => addErrs(cxt, ruleErrs));\n }\n }\n function validateAsync() {\n const ruleErrs = gen.let(\"ruleErrs\", null);\n gen.try(() => assignValid((0, codegen_1._) `await `), (e) => gen.assign(valid, false).if((0, codegen_1._) `${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._) `${e}.errors`), () => gen.throw(e)));\n return ruleErrs;\n }\n function validateSync() {\n const validateErrs = (0, codegen_1._) `${validateRef}.errors`;\n gen.assign(validateErrs, null);\n assignValid(codegen_1.nil);\n return validateErrs;\n }\n function assignValid(_await = def.async ? (0, codegen_1._) `await ` : codegen_1.nil) {\n const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false);\n gen.assign(valid, (0, codegen_1._) `${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);\n }\n function reportErrs(errors) {\n var _a;\n gen.if((0, codegen_1.not)((_a = def.valid) !== null && _a !== void 0 ? _a : valid), errors);\n }\n}\nexports.funcKeywordCode = funcKeywordCode;\nfunction modifyData(cxt) {\n const { gen, data, it } = cxt;\n gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._) `${it.parentData}[${it.parentDataProperty}]`));\n}\nfunction addErrs(cxt, errs) {\n const { gen } = cxt;\n gen.if((0, codegen_1._) `Array.isArray(${errs})`, () => {\n gen\n .assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`)\n .assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n (0, errors_1.extendErrors)(cxt);\n }, () => cxt.error());\n}\nfunction checkAsyncKeyword({ schemaEnv }, def) {\n if (def.async && !schemaEnv.$async)\n throw new Error(\"async keyword in sync schema\");\n}\nfunction useKeyword(gen, keyword, result) {\n if (result === undefined)\n throw new Error(`keyword \"${keyword}\" failed to compile`);\n return gen.scopeValue(\"keyword\", typeof result == \"function\" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) });\n}\nfunction validSchemaType(schema, schemaType, allowUndefined = false) {\n // TODO add tests\n return (!schemaType.length ||\n schemaType.some((st) => st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")));\n}\nexports.validSchemaType = validSchemaType;\nfunction validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\");\n }\n const deps = def.dependencies;\n if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`);\n }\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword]);\n if (!valid) {\n const msg = `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors);\n if (opts.validateSchema === \"log\")\n self.logger.error(msg);\n else\n throw new Error(msg);\n }\n }\n}\nexports.validateKeywordUsage = validateKeywordUsage;\n//# sourceMappingURL=keyword.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');\n }\n if (keyword !== undefined) {\n const sch = it.schema[keyword];\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`,\n };\n }\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"');\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n };\n }\n throw new Error('either \"keyword\" or \"schema\" must be passed');\n}\nexports.getSubschema = getSubschema;\nfunction extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');\n }\n const { gen } = it;\n if (dataProp !== undefined) {\n const { errorPath, dataPathArr, opts } = it;\n const nextData = gen.let(\"data\", (0, codegen_1._) `${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);\n dataContextProps(nextData);\n subschema.errorPath = (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;\n subschema.parentDataProperty = (0, codegen_1._) `${dataProp}`;\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];\n }\n if (data !== undefined) {\n const nextData = data instanceof codegen_1.Name ? data : gen.let(\"data\", data, true); // replaceable if used once?\n dataContextProps(nextData);\n if (propertyName !== undefined)\n subschema.propertyName = propertyName;\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n if (dataTypes)\n subschema.dataTypes = dataTypes;\n function dataContextProps(_nextData) {\n subschema.data = _nextData;\n subschema.dataLevel = it.dataLevel + 1;\n subschema.dataTypes = [];\n it.definedProperties = new Set();\n subschema.parentData = it.data;\n subschema.dataNames = [...it.dataNames, _nextData];\n }\n}\nexports.extendSubschemaData = extendSubschemaData;\nfunction extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {\n if (compositeRule !== undefined)\n subschema.compositeRule = compositeRule;\n if (createErrors !== undefined)\n subschema.createErrors = createErrors;\n if (allErrors !== undefined)\n subschema.allErrors = allErrors;\n subschema.jtdDiscriminator = jtdDiscriminator; // not inherited\n subschema.jtdMetadata = jtdMetadata; // not inherited\n}\nexports.extendSubschemaMode = extendSubschemaMode;\n//# sourceMappingURL=subschema.js.map","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i (count += countKeys(sch)));\n }\n if (count === Infinity)\n return Infinity;\n }\n return count;\n}\nfunction getFullPath(resolver, id = \"\", normalize) {\n if (normalize !== false)\n id = normalizeId(id);\n const p = resolver.parse(id);\n return _getFullPath(resolver, p);\n}\nexports.getFullPath = getFullPath;\nfunction _getFullPath(resolver, p) {\n const serialized = resolver.serialize(p);\n return serialized.split(\"#\")[0] + \"#\";\n}\nexports._getFullPath = _getFullPath;\nconst TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\";\n}\nexports.normalizeId = normalizeId;\nfunction resolveUrl(resolver, baseId, id) {\n id = normalizeId(id);\n return resolver.resolve(baseId, id);\n}\nexports.resolveUrl = resolveUrl;\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i;\nfunction getSchemaRefs(schema, baseId) {\n if (typeof schema == \"boolean\")\n return {};\n const { schemaId, uriResolver } = this.opts;\n const schId = normalizeId(schema[schemaId] || baseId);\n const baseIds = { \"\": schId };\n const pathPrefix = getFullPath(uriResolver, schId, false);\n const localRefs = {};\n const schemaRefs = new Set();\n traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined)\n return;\n const fullPath = pathPrefix + jsonPtr;\n let innerBaseId = baseIds[parentJsonPtr];\n if (typeof sch[schemaId] == \"string\")\n innerBaseId = addRef.call(this, sch[schemaId]);\n addAnchor.call(this, sch.$anchor);\n addAnchor.call(this, sch.$dynamicAnchor);\n baseIds[jsonPtr] = innerBaseId;\n function addRef(ref) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve;\n ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref);\n if (schemaRefs.has(ref))\n throw ambiguos(ref);\n schemaRefs.add(ref);\n let schOrRef = this.refs[ref];\n if (typeof schOrRef == \"string\")\n schOrRef = this.refs[schOrRef];\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref);\n }\n else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref);\n localRefs[ref] = sch;\n }\n else {\n this.refs[ref] = fullPath;\n }\n }\n return ref;\n }\n function addAnchor(anchor) {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor))\n throw new Error(`invalid anchor \"${anchor}\"`);\n addRef.call(this, `#${anchor}`);\n }\n }\n });\n return localRefs;\n function checkAmbiguosRef(sch1, sch2, ref) {\n if (sch2 !== undefined && !equal(sch1, sch2))\n throw ambiguos(ref);\n }\n function ambiguos(ref) {\n return new Error(`reference \"${ref}\" resolves to more than one schema`);\n }\n}\nexports.getSchemaRefs = getSchemaRefs;\n//# sourceMappingURL=resolve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;\nconst boolSchema_1 = require(\"./boolSchema\");\nconst dataType_1 = require(\"./dataType\");\nconst applicability_1 = require(\"./applicability\");\nconst dataType_2 = require(\"./dataType\");\nconst defaults_1 = require(\"./defaults\");\nconst keyword_1 = require(\"./keyword\");\nconst subschema_1 = require(\"./subschema\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst resolve_1 = require(\"../resolve\");\nconst util_1 = require(\"../util\");\nconst errors_1 = require(\"../errors\");\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nfunction validateFunctionCode(it) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it);\n return;\n }\n }\n validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));\n}\nexports.validateFunctionCode = validateFunctionCode;\nfunction validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {\n if (opts.code.es5) {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {\n gen.code((0, codegen_1._) `\"use strict\"; ${funcSourceUrl(schema, opts)}`);\n destructureValCxtES5(gen, opts);\n gen.code(body);\n });\n }\n else {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));\n }\n}\nfunction destructureValCxt(opts) {\n return (0, codegen_1._) `{${names_1.default.instancePath}=\"\", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._) `, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;\n}\nfunction destructureValCxtES5(gen, opts) {\n gen.if(names_1.default.valCxt, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.instancePath}`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentData}`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);\n gen.var(names_1.default.rootData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.rootData}`);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);\n }, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `\"\"`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.rootData, names_1.default.data);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `{}`);\n });\n}\nfunction topSchemaObjCode(it) {\n const { schema, opts, gen } = it;\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n checkNoDefault(it);\n gen.let(names_1.default.vErrors, null);\n gen.let(names_1.default.errors, 0);\n if (opts.unevaluated)\n resetEvaluated(it);\n typeAndKeywords(it);\n returnResults(it);\n });\n return;\n}\nfunction resetEvaluated(it) {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const { gen, validateName } = it;\n it.evaluated = gen.const(\"evaluated\", (0, codegen_1._) `${validateName}.evaluated`);\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._) `${it.evaluated}.props`, (0, codegen_1._) `undefined`));\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._) `${it.evaluated}.items`, (0, codegen_1._) `undefined`));\n}\nfunction funcSourceUrl(schema, opts) {\n const schId = typeof schema == \"object\" && schema[opts.schemaId];\n return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._) `/*# sourceURL=${schId} */` : codegen_1.nil;\n}\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it, valid) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid);\n return;\n }\n }\n (0, boolSchema_1.boolOrEmptySchema)(it, valid);\n}\nfunction schemaCxtHasRules({ schema, self }) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (self.RULES.all[key])\n return true;\n return false;\n}\nfunction isSchemaObj(it) {\n return typeof it.schema != \"boolean\";\n}\nfunction subSchemaObjCode(it, valid) {\n const { schema, gen, opts } = it;\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n updateContext(it);\n checkAsyncSchema(it);\n const errsCount = gen.const(\"_errs\", names_1.default.errors);\n typeAndKeywords(it, errsCount);\n // TODO var\n gen.var(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n}\nfunction checkKeywords(it) {\n (0, util_1.checkUnknownRules)(it);\n checkRefsAndKeywords(it);\n}\nfunction typeAndKeywords(it, errsCount) {\n if (it.opts.jtd)\n return schemaKeywords(it, [], false, errsCount);\n const types = (0, dataType_1.getSchemaTypes)(it.schema);\n const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);\n schemaKeywords(it, types, !checkedTypes, errsCount);\n}\nfunction checkRefsAndKeywords(it) {\n const { schema, errSchemaPath, opts, self } = it;\n if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`);\n }\n}\nfunction checkNoDefault(it) {\n const { schema, opts } = it;\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n (0, util_1.checkStrictMode)(it, \"default is ignored in the schema root\");\n }\n}\nfunction updateContext(it) {\n const schId = it.schema[it.opts.schemaId];\n if (schId)\n it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);\n}\nfunction checkAsyncSchema(it) {\n if (it.schema.$async && !it.schemaEnv.$async)\n throw new Error(\"async schema in sync schema\");\n}\nfunction commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {\n const msg = schema.$comment;\n if (opts.$comment === true) {\n gen.code((0, codegen_1._) `${names_1.default.self}.logger.log(${msg})`);\n }\n else if (typeof opts.$comment == \"function\") {\n const schemaPath = (0, codegen_1.str) `${errSchemaPath}/$comment`;\n const rootName = gen.scopeValue(\"root\", { ref: schemaEnv.root });\n gen.code((0, codegen_1._) `${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);\n }\n}\nfunction returnResults(it) {\n const { gen, schemaEnv, validateName, ValidationError, opts } = it;\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if((0, codegen_1._) `${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._) `new ${ValidationError}(${names_1.default.vErrors})`));\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, names_1.default.vErrors);\n if (opts.unevaluated)\n assignEvaluated(it);\n gen.return((0, codegen_1._) `${names_1.default.errors} === 0`);\n }\n}\nfunction assignEvaluated({ gen, evaluated, props, items }) {\n if (props instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.props`, props);\n if (items instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.items`, items);\n}\nfunction schemaKeywords(it, types, typeErrors, errsCount) {\n const { gen, schema, data, allErrors, opts, self } = it;\n const { RULES } = self;\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", RULES.all.$ref.definition)); // TODO typecast\n return;\n }\n if (!opts.jtd)\n checkStrictTypes(it, types);\n gen.block(() => {\n for (const group of RULES.rules)\n groupKeywords(group);\n groupKeywords(RULES.post);\n });\n function groupKeywords(group) {\n if (!(0, applicability_1.shouldUseGroup)(schema, group))\n return;\n if (group.type) {\n gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));\n iterateKeywords(it, group);\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else();\n (0, dataType_2.reportTypeError)(it);\n }\n gen.endIf();\n }\n else {\n iterateKeywords(it, group);\n }\n // TODO make it \"ok\" call?\n if (!allErrors)\n gen.if((0, codegen_1._) `${names_1.default.errors} === ${errsCount || 0}`);\n }\n}\nfunction iterateKeywords(it, group) {\n const { gen, schema, opts: { useDefaults }, } = it;\n if (useDefaults)\n (0, defaults_1.assignDefaults)(it, group.type);\n gen.block(() => {\n for (const rule of group.rules) {\n if ((0, applicability_1.shouldUseRule)(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type);\n }\n }\n });\n}\nfunction checkStrictTypes(it, types) {\n if (it.schemaEnv.meta || !it.opts.strictTypes)\n return;\n checkContextTypes(it, types);\n if (!it.opts.allowUnionTypes)\n checkMultipleTypes(it, types);\n checkKeywordTypes(it, it.dataTypes);\n}\nfunction checkContextTypes(it, types) {\n if (!types.length)\n return;\n if (!it.dataTypes.length) {\n it.dataTypes = types;\n return;\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`);\n }\n });\n narrowSchemaTypes(it, types);\n}\nfunction checkMultipleTypes(it, ts) {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\");\n }\n}\nfunction checkKeywordTypes(it, ts) {\n const rules = it.self.RULES.all;\n for (const keyword in rules) {\n const rule = rules[keyword];\n if (typeof rule == \"object\" && (0, applicability_1.shouldUseRule)(it.schema, rule)) {\n const { type } = rule.definition;\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`);\n }\n }\n }\n}\nfunction hasApplicableType(schTs, kwdT) {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"));\n}\nfunction includesType(ts, t) {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"));\n}\nfunction narrowSchemaTypes(it, withTypes) {\n const ts = [];\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t))\n ts.push(t);\n else if (withTypes.includes(\"integer\") && t === \"number\")\n ts.push(\"integer\");\n }\n it.dataTypes = ts;\n}\nfunction strictTypesError(it, msg) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n msg += ` at \"${schemaPath}\" (strictTypes)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);\n}\nclass KeywordCxt {\n constructor(it, def, keyword) {\n (0, keyword_1.validateKeywordUsage)(it, def, keyword);\n this.gen = it.gen;\n this.allErrors = it.allErrors;\n this.keyword = keyword;\n this.data = it.data;\n this.schema = it.schema[keyword];\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data;\n this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data);\n this.schemaType = def.schemaType;\n this.parentSchema = it.schema;\n this.params = {};\n this.it = it;\n this.def = def;\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it));\n }\n else {\n this.schemaCode = this.schemaValue;\n if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);\n }\n }\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", names_1.default.errors);\n }\n }\n result(condition, successAction, failAction) {\n this.failResult((0, codegen_1.not)(condition), successAction, failAction);\n }\n failResult(condition, successAction, failAction) {\n this.gen.if(condition);\n if (failAction)\n failAction();\n else\n this.error();\n if (successAction) {\n this.gen.else();\n successAction();\n if (this.allErrors)\n this.gen.endIf();\n }\n else {\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n }\n pass(condition, failAction) {\n this.failResult((0, codegen_1.not)(condition), undefined, failAction);\n }\n fail(condition) {\n if (condition === undefined) {\n this.error();\n if (!this.allErrors)\n this.gen.if(false); // this branch will be removed by gen.optimize\n return;\n }\n this.gen.if(condition);\n this.error();\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n fail$data(condition) {\n if (!this.$data)\n return this.fail(condition);\n const { schemaCode } = this;\n this.fail((0, codegen_1._) `${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);\n }\n error(append, errorParams, errorPaths) {\n if (errorParams) {\n this.setParams(errorParams);\n this._error(append, errorPaths);\n this.setParams({});\n return;\n }\n this._error(append, errorPaths);\n }\n _error(append, errorPaths) {\n ;\n (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);\n }\n $dataError() {\n (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);\n }\n reset() {\n if (this.errsCount === undefined)\n throw new Error('add \"trackErrors\" to keyword definition');\n (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);\n }\n ok(cond) {\n if (!this.allErrors)\n this.gen.if(cond);\n }\n setParams(obj, assign) {\n if (assign)\n Object.assign(this.params, obj);\n else\n this.params = obj;\n }\n block$data(valid, codeBlock, $dataValid = codegen_1.nil) {\n this.gen.block(() => {\n this.check$data(valid, $dataValid);\n codeBlock();\n });\n }\n check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {\n if (!this.$data)\n return;\n const { gen, schemaCode, schemaType, def } = this;\n gen.if((0, codegen_1.or)((0, codegen_1._) `${schemaCode} === undefined`, $dataValid));\n if (valid !== codegen_1.nil)\n gen.assign(valid, true);\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data());\n this.$dataError();\n if (valid !== codegen_1.nil)\n gen.assign(valid, false);\n }\n gen.else();\n }\n invalid$data() {\n const { gen, schemaCode, schemaType, def, it } = this;\n return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());\n function wrong$DataType() {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof codegen_1.Name))\n throw new Error(\"ajv implementation error\");\n const st = Array.isArray(schemaType) ? schemaType : [schemaType];\n return (0, codegen_1._) `${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;\n }\n return codegen_1.nil;\n }\n function invalid$DataSchema() {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", { ref: def.validateSchema }); // TODO value.code for standalone\n return (0, codegen_1._) `!${validateSchemaRef}(${schemaCode})`;\n }\n return codegen_1.nil;\n }\n }\n subschema(appl, valid) {\n const subschema = (0, subschema_1.getSubschema)(this.it, appl);\n (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);\n (0, subschema_1.extendSubschemaMode)(subschema, appl);\n const nextContext = { ...this.it, ...subschema, items: undefined, props: undefined };\n subschemaCode(nextContext, valid);\n return nextContext;\n }\n mergeEvaluated(schemaCxt, toName) {\n const { it, gen } = this;\n if (!it.opts.unevaluated)\n return;\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);\n }\n }\n mergeValidEvaluated(schemaCxt, valid) {\n const { it, gen } = this;\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));\n return true;\n }\n }\n}\nexports.KeywordCxt = KeywordCxt;\nfunction keywordCode(it, keyword, def, ruleType) {\n const cxt = new KeywordCxt(it, def, keyword);\n if (\"code\" in def) {\n def.code(cxt, ruleType);\n }\n else if (cxt.$data && def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n else if (\"macro\" in def) {\n (0, keyword_1.macroKeywordCode)(cxt, def);\n }\n else if (def.compile || def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n}\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, { dataLevel, dataNames, dataPathArr }) {\n let jsonPointer;\n let data;\n if ($data === \"\")\n return names_1.default.rootData;\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data))\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n jsonPointer = $data;\n data = names_1.default.rootData;\n }\n else {\n const matches = RELATIVE_JSON_POINTER.exec($data);\n if (!matches)\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n const up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer === \"#\") {\n if (up >= dataLevel)\n throw new Error(errorMsg(\"property/index\", up));\n return dataPathArr[dataLevel - up];\n }\n if (up > dataLevel)\n throw new Error(errorMsg(\"data\", up));\n data = dataNames[dataLevel - up];\n if (!jsonPointer)\n return data;\n }\n let expr = data;\n const segments = jsonPointer.split(\"/\");\n for (const segment of segments) {\n if (segment) {\n data = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;\n expr = (0, codegen_1._) `${expr} && ${data}`;\n }\n }\n return expr;\n function errorMsg(pointerType, up) {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;\n }\n}\nexports.getData = getData;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass ValidationError extends Error {\n constructor(errors) {\n super(\"validation failed\");\n this.errors = errors;\n this.ajv = this.validation = true;\n }\n}\nexports.default = ValidationError;\n//# sourceMappingURL=validation_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst resolve_1 = require(\"./resolve\");\nclass MissingRefError extends Error {\n constructor(resolver, baseId, ref, msg) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`);\n this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref);\n this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef));\n }\n}\nexports.default = MissingRefError;\n//# sourceMappingURL=ref_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst validation_error_1 = require(\"../runtime/validation_error\");\nconst names_1 = require(\"./names\");\nconst resolve_1 = require(\"./resolve\");\nconst util_1 = require(\"./util\");\nconst validate_1 = require(\"./validate\");\nclass SchemaEnv {\n constructor(env) {\n var _a;\n this.refs = {};\n this.dynamicAnchors = {};\n let schema;\n if (typeof env.schema == \"object\")\n schema = env.schema;\n this.schema = env.schema;\n this.schemaId = env.schemaId;\n this.root = env.root || this;\n this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || \"$id\"]);\n this.schemaPath = env.schemaPath;\n this.localRefs = env.localRefs;\n this.meta = env.meta;\n this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;\n this.refs = {};\n }\n}\nexports.SchemaEnv = SchemaEnv;\n// let codeSize = 0\n// let nodeCount = 0\n// Compiles schema in SchemaEnv\nfunction compileSchema(sch) {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch);\n if (_sch)\n return _sch;\n const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); // TODO if getFullPath removed 1 tests fails\n const { es5, lines } = this.opts.code;\n const { ownProperties } = this.opts;\n const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties });\n let _ValidationError;\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: validation_error_1.default,\n code: (0, codegen_1._) `require(\"ajv/dist/runtime/validation_error\").default`,\n });\n }\n const validateName = gen.scopeName(\"validate\");\n sch.validateName = validateName;\n const schemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: names_1.default.data,\n parentData: names_1.default.parentData,\n parentDataProperty: names_1.default.parentDataProperty,\n dataNames: [names_1.default.data],\n dataPathArr: [codegen_1.nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set(),\n topSchemaRef: gen.scopeValue(\"schema\", this.opts.code.source === true\n ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) }\n : { ref: sch.schema }),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: codegen_1.nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: (0, codegen_1._) `\"\"`,\n opts: this.opts,\n self: this,\n };\n let sourceCode;\n try {\n this._compilations.add(sch);\n (0, validate_1.validateFunctionCode)(schemaCxt);\n gen.optimize(this.opts.code.optimize);\n // gen.optimize(1)\n const validateCode = gen.toString();\n sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process)\n sourceCode = this.opts.code.process(sourceCode, sch);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);\n const validate = makeValidate(this, this.scope.get());\n this.scope.value(validateName, { ref: validate });\n validate.errors = null;\n validate.schema = sch.schema;\n validate.schemaEnv = sch;\n if (sch.$async)\n validate.$async = true;\n if (this.opts.code.source === true) {\n validate.source = { validateName, validateCode, scopeValues: gen._values };\n }\n if (this.opts.unevaluated) {\n const { props, items } = schemaCxt;\n validate.evaluated = {\n props: props instanceof codegen_1.Name ? undefined : props,\n items: items instanceof codegen_1.Name ? undefined : items,\n dynamicProps: props instanceof codegen_1.Name,\n dynamicItems: items instanceof codegen_1.Name,\n };\n if (validate.source)\n validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated);\n }\n sch.validate = validate;\n return sch;\n }\n catch (e) {\n delete sch.validate;\n delete sch.validateName;\n if (sourceCode)\n this.logger.error(\"Error compiling schema, function code:\", sourceCode);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e;\n }\n finally {\n this._compilations.delete(sch);\n }\n}\nexports.compileSchema = compileSchema;\nfunction resolveRef(root, baseId, ref) {\n var _a;\n ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);\n const schOrFunc = root.refs[ref];\n if (schOrFunc)\n return schOrFunc;\n let _sch = resolve.call(this, root, ref);\n if (_sch === undefined) {\n const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; // TODO maybe localRefs should hold SchemaEnv\n const { schemaId } = this.opts;\n if (schema)\n _sch = new SchemaEnv({ schema, schemaId, root, baseId });\n }\n if (_sch === undefined)\n return;\n return (root.refs[ref] = inlineOrCompile.call(this, _sch));\n}\nexports.resolveRef = resolveRef;\nfunction inlineOrCompile(sch) {\n if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs))\n return sch.schema;\n return sch.validate ? sch : compileSchema.call(this, sch);\n}\n// Index of schema compilation in the currently compiled list\nfunction getCompilingSchema(schEnv) {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv))\n return sch;\n }\n}\nexports.getCompilingSchema = getCompilingSchema;\nfunction sameSchemaEnv(s1, s2) {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;\n}\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(root, // information about the root schema for the current schema\nref // reference to resolve\n) {\n let sch;\n while (typeof (sch = this.refs[ref]) == \"string\")\n ref = sch;\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);\n}\n// Resolve schema, its root and baseId\nfunction resolveSchema(root, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\nref // reference to resolve\n) {\n const p = this.opts.uriResolver.parse(ref);\n const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);\n let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, undefined);\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root);\n }\n const id = (0, resolve_1.normalizeId)(refPath);\n const schOrRef = this.refs[id] || this.schemas[id];\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef);\n if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== \"object\")\n return;\n return getJsonPointer.call(this, p, sch);\n }\n if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== \"object\")\n return;\n if (!schOrRef.validate)\n compileSchema.call(this, schOrRef);\n if (id === (0, resolve_1.normalizeId)(ref)) {\n const { schema } = schOrRef;\n const { schemaId } = this.opts;\n const schId = schema[schemaId];\n if (schId)\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n return new SchemaEnv({ schema, schemaId, root, baseId });\n }\n return getJsonPointer.call(this, p, schOrRef);\n}\nexports.resolveSchema = resolveSchema;\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n]);\nfunction getJsonPointer(parsedRef, { baseId, schema, root }) {\n var _a;\n if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== \"/\")\n return;\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\")\n return;\n const partSchema = schema[(0, util_1.unescapeFragment)(part)];\n if (partSchema === undefined)\n return;\n schema = partSchema;\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId];\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n }\n }\n let env;\n if (typeof schema != \"boolean\" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {\n const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref);\n env = resolveSchema.call(this, root, $ref);\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const { schemaId } = this.opts;\n env = env || new SchemaEnv({ schema, schemaId, root, baseId });\n if (env.schema !== env.root.schema)\n return env;\n return undefined;\n}\n//# sourceMappingURL=index.js.map","'use strict'\n\n/** @type {(value: string) => boolean} */\nconst isUUID = RegExp.prototype.test.bind(/^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)$/u)\n\n/** @type {(value: string) => boolean} */\nconst isPort = RegExp.prototype.test.bind(/^\\d*$/u)\n\n/** @type {(value: string) => boolean} */\nconst isHexPair = RegExp.prototype.test.bind(/^[\\da-f]{2}$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isUnreserved = RegExp.prototype.test.bind(/^[\\da-z\\-._~]$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isPathCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\\-._~!$&'()*+,;=:@/]$/u)\n\n/** @type {(value: string) => boolean} */\nconst isQueryFragmentCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\\-._~!$&'()*+,;=:@/?]$/u)\n\n/** @type {(value: string) => boolean} */\nconst isUserinfoCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\\-._~!$&'()*+,;=:]$/u)\n\nconst BYTE_HEX = new Array(256)\n{\n const HEX_DIGITS = '0123456789ABCDEF'\n for (let i = 0; i < 256; i++) {\n BYTE_HEX[i] = '%' + HEX_DIGITS[i >> 4] + HEX_DIGITS[i & 0xF]\n }\n}\nfunction percentEncodeNonAscii (cp) {\n if (cp < 0x800) {\n return BYTE_HEX[0xC0 | (cp >> 6)] +\n BYTE_HEX[0x80 | (cp & 0x3F)]\n }\n if (cp < 0x10000) {\n return BYTE_HEX[0xE0 | (cp >> 12)] +\n BYTE_HEX[0x80 | ((cp >> 6) & 0x3F)] +\n BYTE_HEX[0x80 | (cp & 0x3F)]\n }\n return BYTE_HEX[0xF0 | (cp >> 18)] +\n BYTE_HEX[0x80 | ((cp >> 12) & 0x3F)] +\n BYTE_HEX[0x80 | ((cp >> 6) & 0x3F)] +\n BYTE_HEX[0x80 | (cp & 0x3F)]\n}\n\n/**\n * @param {Array} input\n * @returns {string}\n */\nfunction stringArrayToHexStripped (input) {\n let acc = ''\n let code = 0\n let i = 0\n\n for (i = 0; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (code === 48) {\n continue\n }\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n break\n }\n\n for (i += 1; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n }\n return acc\n}\n\n/** @type {(value: string) => boolean} */\nconst isHextet = RegExp.prototype.test.bind(/^[\\dA-Fa-f]{1,4}$/)\n\n/** @type {(value: string) => boolean} */\nconst isIPvFuture = RegExp.prototype.test.bind(/^[vV][\\dA-Fa-f]+\\.[A-Za-z\\d\\-._~!$&'()*+,;=:]+$/)\n\n/** @type {(value: string) => boolean} */\nconst isZoneCharacter = RegExp.prototype.test.bind(/^[A-Za-z\\d\\-._~]$/)\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nconst nonSimpleDomain = RegExp.prototype.test.bind(/[^!\"$&'()*+,\\-.;=_`a-z{}~]/u)\n\n/**\n * @param {string} zone\n * @returns {boolean}\n */\nfunction isZoneIdentifier (zone) {\n if (zone.length === 0) return false\n\n for (let i = 0; i < zone.length; i++) {\n if (isZoneCharacter(zone[i])) continue\n if (zone[i] === '%' && i + 2 < zone.length && isHexPair(zone.slice(i + 1, i + 3))) {\n i += 2\n continue\n }\n return false\n }\n\n return true\n}\n\n/**\n * Compresses the longest run of zero hextets to \"::\" per RFC 5952. A run of a\n * single zero hextet is left uncompressed. On ties the leftmost run wins.\n *\n * @param {string[]} hextets\n * @returns {string}\n */\nfunction compressIPv6ZeroRun (hextets) {\n let bestStart = -1\n let bestLength = 0\n let runStart = -1\n let runLength = 0\n for (let i = 0; i < hextets.length; i++) {\n if (hextets[i] === '0') {\n if (runStart === -1) runStart = i\n runLength++\n if (runLength > bestLength) {\n bestLength = runLength\n bestStart = runStart\n }\n } else {\n runStart = -1\n runLength = 0\n }\n }\n\n if (bestLength < 2) return hextets.join(':')\n\n const head = hextets.slice(0, bestStart).join(':')\n const tail = hextets.slice(bestStart + bestLength).join(':')\n return head + '::' + tail\n}\n\n/**\n * Validates an IPv6 address against the alternatives in RFC 3986 section\n * 3.2.2 and returns the same address with leading hextet zeroes removed.\n * An embedded IPv4 address counts as two hextets and is only valid at the end.\n *\n * @param {string} input\n * @returns {string|undefined}\n */\nfunction normalizeIPv6Address (input) {\n const compression = input.indexOf('::')\n if (compression !== -1 && input.indexOf('::', compression + 1) !== -1) return undefined\n\n const left = compression === -1 ? input.split(':') : input.slice(0, compression).split(':')\n const right = compression === -1 ? [] : input.slice(compression + 2).split(':')\n if (compression !== -1) {\n if (left.length === 1 && left[0] === '') left.length = 0\n if (right.length === 1 && right[0] === '') right.length = 0\n }\n\n const parts = left.concat(right)\n let hextetCount = 0\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i]\n if (part === '') return undefined\n\n if (part.indexOf('.') !== -1) {\n if (i !== parts.length - 1 || (compression !== -1 && right.length === 0) || !isIPv4(part)) return undefined\n hextetCount += 2\n continue\n }\n\n if (!isHextet(part)) return undefined\n parts[i] = parseInt(part, 16).toString(16)\n hextetCount++\n }\n\n if (compression === -1) {\n if (hextetCount !== 8) return undefined\n return compressIPv6ZeroRun(parts)\n }\n if (hextetCount >= 8) return undefined\n\n // expand \"::\" then re-compress the longest run for a canonical result\n const expanded = parts.slice(0, left.length)\n for (let i = hextetCount; i < 8; i++) expanded.push('0')\n for (let i = left.length; i < parts.length; i++) expanded.push(parts[i])\n return compressIPv6ZeroRun(expanded)\n}\n\n/**\n * @typedef {Object} NormalizeIPv6Result\n * @property {string} host - The normalized host.\n * @property {string} [escapedHost] - The escaped host.\n * @property {boolean} isIPV6 - Indicates if the host is an IPv6 address.\n * @property {boolean} [isIPVFuture] - Indicates if the host is an IPvFuture literal.\n * @property {boolean} [error] - Indicates if a bracketed IP literal is malformed.\n */\n\n/**\n * Validates and normalizes a bracketed IP literal. Raw zone separators remain\n * accepted for backwards compatibility, while encoded separators and zone\n * contents follow RFC 6874.\n *\n * @param {string} host\n * @returns {NormalizeIPv6Result}\n */\nfunction normalizeIPv6 (host) {\n const bracketed = host[0] === '[' && host[host.length - 1] === ']'\n const hasBracket = host[0] === '[' || host[host.length - 1] === ']'\n if (hasBracket && !bracketed) return { host, isIPV6: false, error: true }\n\n let input = bracketed ? host.slice(1, -1) : host\n if (bracketed && isIPvFuture(input)) {\n input = input.toLowerCase()\n return { host: `[${input}]`, escapedHost: input, isIPV6: false, isIPVFuture: true }\n }\n\n if (findToken(input, ':') < 2) {\n return { host, isIPV6: false, error: bracketed }\n }\n\n let zoneIdentifier = ''\n const zoneSeparator = input.indexOf('%')\n if (zoneSeparator !== -1) {\n const separatorLength = input.slice(zoneSeparator, zoneSeparator + 3).toLowerCase() === '%25' ? 3 : 1\n zoneIdentifier = input.slice(zoneSeparator + separatorLength)\n if (!isZoneIdentifier(zoneIdentifier)) return { host, isIPV6: false, error: true }\n input = input.slice(0, zoneSeparator)\n }\n\n const address = normalizeIPv6Address(input)\n if (address === undefined) return { host, isIPV6: false, error: true }\n\n return {\n host: address + (zoneIdentifier ? '%' + zoneIdentifier : ''),\n escapedHost: address + (zoneIdentifier ? '%25' + zoneIdentifier : ''),\n isIPV6: true\n }\n}\n\n/**\n * @param {string} str\n * @param {string} token\n * @returns {number}\n */\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\n/**\n * @param {string} path\n * @returns {string}\n *\n * @see https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n */\nfunction removeDotSegments (path) {\n let input = path\n const output = []\n let nextSlash = -1\n let len = 0\n\n // eslint-disable-next-line no-cond-assign\n while (len = input.length) {\n if (len === 1) {\n if (input === '.') {\n break\n } else if (input === '/') {\n output.push('/')\n break\n } else {\n output.push(input)\n break\n }\n } else if (len === 2) {\n if (input[0] === '.') {\n if (input[1] === '.') {\n break\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.' || input[1] === '/') {\n output.push('/')\n break\n }\n }\n } else if (len === 3) {\n if (input === '/..') {\n if (output.length !== 0) {\n output.pop()\n }\n output.push('/')\n break\n }\n }\n if (input[0] === '.') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(3)\n continue\n }\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(2)\n continue\n } else if (input[2] === '.') {\n if (input[3] === '/') {\n input = input.slice(3)\n if (output.length !== 0) {\n output.pop()\n }\n continue\n }\n }\n }\n }\n\n // Rule 2E: Move normal path segment to output\n if ((nextSlash = input.indexOf('/', 1)) === -1) {\n output.push(input)\n break\n } else {\n output.push(input.slice(0, nextSlash))\n input = input.slice(nextSlash)\n }\n }\n\n return output.join('')\n}\n\n/**\n * Re-escape RFC 3986 gen-delims that must not appear literally in the host.\n * After the URI regex parses, these characters cannot be literal in the host\n * field, so any that appear after decoding came from percent-encoding and\n * must be restored to prevent authority structure changes.\n *\n * @param {string} host\n * @param {boolean} isIP - true for IPv4/IPv6 hosts (skip colon re-escaping)\n * @returns {string}\n */\nconst HOST_DELIMS = { '@': '%40', '/': '%2F', '?': '%3F', '#': '%23', ':': '%3A' }\nconst HOST_DELIM_RE = /[@/?#:]/g\nconst HOST_DELIM_NO_COLON_RE = /[@/?#]/g\n\nfunction reescapeHostDelimiters (host, isIP) {\n const re = isIP ? HOST_DELIM_NO_COLON_RE : HOST_DELIM_RE\n re.lastIndex = 0\n return host.replace(re, (ch) => HOST_DELIMS[ch])\n}\n\n/**\n * Normalizes percent escapes and optionally decodes only unreserved ASCII bytes.\n * Reserved delimiters such as `%2F` stay escaped; `%2E` is unreserved.\n *\n * @param {string} input\n * @param {boolean} [decodeUnreserved=false]\n * @returns {string}\n */\nfunction normalizePercentEncoding (input, decodeUnreserved = false) {\n if (input.indexOf('%') === -1) {\n return input\n }\n\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n if (input[i] === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n const normalizedHex = hex.toUpperCase()\n const decoded = String.fromCharCode(parseInt(normalizedHex, 16))\n\n if (decodeUnreserved && isUnreserved(decoded)) {\n output += decoded\n } else {\n output += '%' + normalizedHex\n }\n\n i += 2\n continue\n }\n }\n\n output += input[i]\n }\n\n return output\n}\n\n/**\n * Normalizes path data without turning reserved escapes into live path syntax.\n * Valid escapes are uppercased, raw unsafe characters are escaped, and only\n * unreserved bytes that are not `.` are decoded.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizePathEncoding (input) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n const normalizedHex = hex.toUpperCase()\n const decoded = String.fromCharCode(parseInt(normalizedHex, 16))\n\n if (decoded !== '.' && isUnreserved(decoded)) {\n output += decoded\n } else {\n output += '%' + normalizedHex\n }\n\n i += 2\n continue\n }\n }\n\n if (isPathCharacter(ch)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += isEscapeSafe(code) ? ch : BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Serializes a path without rewriting reserved data. Raw RFC 3986 path\n * characters remain literal, valid escapes are preserved and uppercased, and\n * everything else is UTF-8 percent-encoded. In a path-noscheme, a colon in the\n * first segment must be escaped so the result cannot be parsed as a scheme.\n *\n * @param {string} input\n * @param {boolean} [pathNoScheme=false]\n * @returns {string}\n */\nfunction serializePathEncoding (input, pathNoScheme = false) {\n let output = ''\n let firstSegment = pathNoScheme && input[0] !== '/'\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n output += '%' + hex.toUpperCase()\n i += 2\n continue\n }\n }\n\n if (ch === '/') {\n firstSegment = false\n }\n\n if (isPathCharacter(ch) && (ch !== ':' || !firstSegment)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Percent-encodes a URI component using its RFC 3986 literal character set.\n * Existing valid escapes are preserved and normalized to uppercase hex.\n *\n * @param {string} input\n * @param {(value: string) => boolean} isAllowed\n * @returns {string}\n */\nfunction encodeComponent (input, isAllowed) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n output += '%' + hex.toUpperCase()\n i += 2\n continue\n }\n }\n\n if (isAllowed(ch)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Encodes userinfo while preserving its RFC 3986 §3.2.1 literal characters.\n * In particular, authority delimiters such as `@`, `/`, `?`, and `#` are data.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction encodeUserinfo (input) {\n return encodeComponent(input, isUserinfoCharacter)\n}\n\n/**\n * Encodes query data using the RFC 3986 §3.4 grammar. A literal `#` must be\n * escaped because it would otherwise begin the fragment component.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction encodeQuery (input) {\n return encodeComponent(input, isQueryFragmentCharacter)\n}\n\n/**\n * Encodes fragment data using the RFC 3986 §3.5 grammar.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction encodeFragment (input) {\n return encodeComponent(input, isQueryFragmentCharacter)\n}\n\nfunction isEscapeSafe (cp) {\n return (\n (cp >= 0x30 && cp <= 0x39) ||\n (cp >= 0x41 && cp <= 0x5A) ||\n (cp >= 0x61 && cp <= 0x7A) ||\n cp === 0x2A || cp === 0x2B || cp === 0x2D || cp === 0x2E ||\n cp === 0x2F || cp === 0x40 || cp === 0x5F\n )\n}\n\n/**\n * Normalizes the percent-encoding of a query or fragment component.\n *\n * Like `normalizePathEncoding`, but uses the query/fragment character set\n * (which additionally allows `?`) and decodes `.` since it has no dot-segment\n * meaning outside of a path.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizeQueryFragmentEncoding (input) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]\n if (ch === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n const normalizedHex = hex.toUpperCase()\n const decoded = String.fromCharCode(parseInt(normalizedHex, 16))\n\n if (isUnreserved(decoded)) {\n output += decoded\n } else {\n output += '%' + normalizedHex\n }\n\n i += 2\n continue\n }\n }\n\n if (isQueryFragmentCharacter(ch)) {\n output += ch\n } else {\n const code = input.charCodeAt(i)\n if (code < 0x80) {\n output += isEscapeSafe(code) ? ch : BYTE_HEX[code]\n } else if (code < 0xD800 || code > 0xDFFF) {\n output += percentEncodeNonAscii(code)\n } else if (code <= 0xDBFF && i + 1 < input.length) {\n const low = input.charCodeAt(i + 1)\n if (low >= 0xDC00 && low <= 0xDFFF) {\n output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))\n i++\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n } else {\n output += percentEncodeNonAscii(0xFFFD)\n }\n }\n }\n\n return output\n}\n\n/**\n * Escapes a component while preserving existing valid percent escapes.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction escapePreservingEscapes (input) {\n let output = ''\n\n for (let i = 0; i < input.length; i++) {\n if (input[i] === '%' && i + 2 < input.length) {\n const hex = input.slice(i + 1, i + 3)\n if (isHexPair(hex)) {\n output += '%' + hex.toUpperCase()\n i += 2\n continue\n }\n }\n\n output += escape(input[i])\n }\n\n return output\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @returns {string|undefined}\n */\nfunction recomposeAuthority (component) {\n const uriTokens = []\n\n if (component.userinfo !== undefined) {\n uriTokens.push(encodeUserinfo(component.userinfo))\n uriTokens.push('@')\n }\n\n if (component.host !== undefined) {\n let host = component.host\n if (!isIPv4(host)) {\n let ipV6res = normalizeIPv6(host)\n if (ipV6res.isIPV6 !== true && ipV6res.isIPVFuture !== true) {\n // Decode only unreserved bytes, once. In particular, keep %25 encoded\n // so it cannot introduce a second escape during recomposition.\n host = normalizePercentEncoding(host, true)\n ipV6res = normalizeIPv6(host)\n }\n if (ipV6res.isIPV6 === true || ipV6res.isIPVFuture === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = reescapeHostDelimiters(host, false)\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof component.port === 'number' || typeof component.port === 'string') {\n const port = String(component.port)\n if (!isPort(port)) {\n throw new TypeError('URI port is malformed.')\n }\n uriTokens.push(':')\n uriTokens.push(port)\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n nonSimpleDomain,\n recomposeAuthority,\n reescapeHostDelimiters,\n normalizePercentEncoding,\n normalizePathEncoding,\n serializePathEncoding,\n normalizeQueryFragmentEncoding,\n encodeUserinfo,\n encodeQuery,\n encodeFragment,\n escapePreservingEscapes,\n removeDotSegments,\n isIPv4,\n isUUID,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n","'use strict'\n\nconst { isUUID } = require('./utils')\nconst URN_REG = /^([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-./:;=@]|%[\\da-f]{2})+)$/iu\n\nconst supportedSchemeNames = /** @type {const} */ (['http', 'https', 'ws',\n 'wss', 'urn', 'urn:uuid'])\n\n/** @typedef {supportedSchemeNames[number]} SchemeName */\n\n/**\n * @param {string} name\n * @returns {name is SchemeName}\n */\nfunction isValidSchemeName (name) {\n return supportedSchemeNames.indexOf(/** @type {*} */ (name)) !== -1\n}\n\n/**\n * @callback SchemeFn\n * @param {import('../types/index').URIComponent} component\n * @param {import('../types/index').Options} options\n * @returns {import('../types/index').URIComponent}\n */\n\n/**\n * @typedef {Object} SchemeHandler\n * @property {SchemeName} scheme - The scheme name.\n * @property {boolean} [domainHost] - Indicates if the scheme supports domain hosts.\n * @property {SchemeFn} parse - Function to parse the URI component for this scheme.\n * @property {SchemeFn} serialize - Function to serialize the URI component for this scheme.\n * @property {boolean} [skipNormalize] - Indicates if normalization should be skipped for this scheme.\n * @property {boolean} [absolutePath] - Indicates if the scheme uses absolute paths.\n * @property {boolean} [unicodeSupport] - Indicates if the scheme supports Unicode.\n */\n\n/**\n * @param {import('../types/index').URIComponent} wsComponent\n * @returns {boolean}\n */\nfunction wsIsSecure (wsComponent) {\n if (wsComponent.secure === true) {\n return true\n } else if (wsComponent.secure === false) {\n return false\n } else if (wsComponent.scheme) {\n return (\n wsComponent.scheme.length === 3 &&\n (wsComponent.scheme[0] === 'w' || wsComponent.scheme[0] === 'W') &&\n (wsComponent.scheme[1] === 's' || wsComponent.scheme[1] === 'S') &&\n (wsComponent.scheme[2] === 's' || wsComponent.scheme[2] === 'S')\n )\n } else {\n return false\n }\n}\n\n/** @type {SchemeFn} */\nfunction httpParse (component) {\n if (!component.host) {\n component.error = component.error || 'HTTP URIs must have a host.'\n }\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction httpSerialize (component) {\n const secure = String(component.scheme).toLowerCase() === 'https'\n\n // normalize the default port\n if (component.port === (secure ? 443 : 80) || component.port === '') {\n component.port = undefined\n }\n\n // normalize the empty path\n if (!component.path) {\n component.path = '/'\n }\n\n // NOTE: We do not parse query strings for HTTP URIs\n // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n // and not the HTTP spec.\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction wsParse (wsComponent) {\n// indicate if the secure flag is set\n wsComponent.secure = wsIsSecure(wsComponent)\n\n // construct resouce name\n wsComponent.resourceName = (wsComponent.path || '/') + (wsComponent.query ? '?' + wsComponent.query : '')\n wsComponent.path = undefined\n wsComponent.query = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction wsSerialize (wsComponent) {\n// normalize the default port\n if (wsComponent.port === (wsIsSecure(wsComponent) ? 443 : 80) || wsComponent.port === '') {\n wsComponent.port = undefined\n }\n\n // ensure scheme matches secure flag\n if (typeof wsComponent.secure === 'boolean') {\n wsComponent.scheme = (wsComponent.secure ? 'wss' : 'ws')\n wsComponent.secure = undefined\n }\n\n // reconstruct path from resource name\n if (wsComponent.resourceName) {\n const queryIndex = wsComponent.resourceName.indexOf('?')\n const path = queryIndex === -1\n ? wsComponent.resourceName\n : wsComponent.resourceName.slice(0, queryIndex)\n wsComponent.path = (path && path !== '/' ? path : undefined)\n wsComponent.query = queryIndex === -1\n ? undefined\n : wsComponent.resourceName.slice(queryIndex + 1)\n wsComponent.resourceName = undefined\n }\n\n // forbid fragment component\n wsComponent.fragment = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnParse (urnComponent, options) {\n if (!urnComponent.path) {\n urnComponent.error = 'URN can not be parsed'\n return urnComponent\n }\n const matches = urnComponent.path.match(URN_REG)\n if (matches && matches[0] === urnComponent.path) {\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n urnComponent.nid = matches[1].toLowerCase()\n urnComponent.nss = matches[2]\n const urnScheme = `${scheme}:${options.nid || urnComponent.nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n urnComponent.path = undefined\n\n if (schemeHandler) {\n urnComponent = schemeHandler.parse(urnComponent, options)\n }\n } else {\n urnComponent.error = urnComponent.error || 'URN can not be parsed.'\n }\n\n return urnComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnSerialize (urnComponent, options) {\n if (urnComponent.nid === undefined) {\n throw new Error('URN without nid cannot be serialized')\n }\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n const nid = urnComponent.nid.toLowerCase()\n const urnScheme = `${scheme}:${options.nid || nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n\n if (schemeHandler) {\n urnComponent = schemeHandler.serialize(urnComponent, options)\n }\n\n const uriComponent = urnComponent\n const nss = urnComponent.nss\n uriComponent.path = `${nid || options.nid}:${nss}`\n\n options.skipEscape = true\n return uriComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidParse (urnComponent, options) {\n const uuidComponent = urnComponent\n uuidComponent.uuid = uuidComponent.nss\n uuidComponent.nss = undefined\n\n if (!options.tolerant && (!uuidComponent.uuid || !isUUID(uuidComponent.uuid))) {\n uuidComponent.error = uuidComponent.error || 'UUID is not valid.'\n }\n\n return uuidComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidSerialize (uuidComponent) {\n const urnComponent = uuidComponent\n // normalize UUID\n urnComponent.nss = (uuidComponent.uuid || '').toLowerCase()\n return urnComponent\n}\n\nconst http = /** @type {SchemeHandler} */ ({\n scheme: 'http',\n domainHost: true,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst https = /** @type {SchemeHandler} */ ({\n scheme: 'https',\n domainHost: http.domainHost,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst ws = /** @type {SchemeHandler} */ ({\n scheme: 'ws',\n domainHost: true,\n parse: wsParse,\n serialize: wsSerialize\n})\n\nconst wss = /** @type {SchemeHandler} */ ({\n scheme: 'wss',\n domainHost: ws.domainHost,\n parse: ws.parse,\n serialize: ws.serialize\n})\n\nconst urn = /** @type {SchemeHandler} */ ({\n scheme: 'urn',\n parse: urnParse,\n serialize: urnSerialize,\n skipNormalize: true\n})\n\nconst urnuuid = /** @type {SchemeHandler} */ ({\n scheme: 'urn:uuid',\n parse: urnuuidParse,\n serialize: urnuuidSerialize,\n skipNormalize: true\n})\n\nconst SCHEMES = /** @type {Record} */ ({\n http,\n https,\n ws,\n wss,\n urn,\n 'urn:uuid': urnuuid\n})\n\nObject.setPrototypeOf(SCHEMES, null)\n\n/**\n * @param {string|undefined} scheme\n * @returns {SchemeHandler|undefined}\n */\nfunction getSchemeHandler (scheme) {\n return (\n scheme && (\n SCHEMES[/** @type {SchemeName} */ (scheme)] ||\n SCHEMES[/** @type {SchemeName} */(scheme.toLowerCase())])\n ) ||\n undefined\n}\n\nmodule.exports = {\n wsIsSecure,\n SCHEMES,\n isValidSchemeName,\n getSchemeHandler,\n}\n","'use strict'\n\nconst { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, serializePathEncoding, normalizeQueryFragmentEncoding, encodeQuery, encodeFragment, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require('./lib/utils')\nconst { SCHEMES, getSchemeHandler } = require('./lib/schemes')\n\nconst VALID_SCHEME = /^[A-Za-z][A-Za-z0-9+.-]*$/u\nconst MALFORMED_SCHEME_ERROR = 'URI scheme is malformed.'\n\n/**\n * @param {string} scheme\n * @returns {string}\n */\nfunction decodeValidScheme (scheme) {\n const decodedScheme = unescape(String(scheme))\n if (!VALID_SCHEME.test(decodedScheme)) {\n throw new TypeError(MALFORMED_SCHEME_ERROR)\n }\n return decodedScheme\n}\n\n/**\n * @template {import('./types/index').URIComponent|string} T\n * @param {T} uri\n * @param {import('./types/index').Options} [options]\n * @returns {T}\n */\nfunction normalize (uri, options) {\n if (typeof uri === 'string') {\n uri = /** @type {T} */ (normalizeString(uri, options))\n } else if (typeof uri === 'object') {\n uri = /** @type {T} */ (parse(serialize(uri, options), options))\n }\n return uri\n}\n\n/**\n * @param {string} baseURI\n * @param {string} relativeURI\n * @param {import('./types/index').Options} [options]\n * @returns {string}\n */\nfunction resolve (baseURI, relativeURI, options) {\n const schemelessOptions = options ? Object.assign({ scheme: 'null' }, options) : { scheme: 'null' }\n const {\n parsed: baseParsed,\n malformedAuthorityOrPort: baseMalformed,\n malformedPercentEncoding: baseMalformedPercentEncoding,\n malformedSchemeSpecific: baseMalformedSchemeSpecific,\n malformedHost: baseMalformedHost,\n malformedScheme: baseMalformedScheme\n } = parseWithStatus(baseURI, schemelessOptions)\n const {\n parsed: relativeParsed,\n malformedAuthorityOrPort: relativeMalformed,\n malformedPercentEncoding: relativeMalformedPercentEncoding,\n malformedSchemeSpecific: relativeMalformedSchemeSpecific,\n malformedHost: relativeMalformedHost,\n malformedScheme: relativeMalformedScheme\n } = parseWithStatus(relativeURI, schemelessOptions)\n if (\n baseMalformed ||\n relativeMalformed ||\n baseMalformedPercentEncoding ||\n relativeMalformedPercentEncoding ||\n baseMalformedSchemeSpecific ||\n relativeMalformedSchemeSpecific ||\n baseMalformedHost ||\n relativeMalformedHost ||\n baseMalformedScheme ||\n relativeMalformedScheme\n ) {\n throw new Error(baseParsed.error || relativeParsed.error || 'URI is malformed.')\n }\n const resolved = resolveComponent(baseParsed, relativeParsed, schemelessOptions, true)\n const resolvedSchemeHandler = getSchemeHandler((options && options.scheme) || resolved.scheme)\n const resolvedHost = resolved.host\n const resolvedHostIsIP = resolvedHost !== undefined && resolvedHost !== '' &&\n (isIPv4(resolvedHost) || normalizeIPv6(resolvedHost).isIPV6)\n canonicalizeHost(resolved, options || {}, resolvedSchemeHandler, resolvedHostIsIP)\n // Percent escapes in an ASCII reg-name are encoded data. The WHATWG hostname\n // parser can reject them even though fast-uri preserves them safely as RFC\n // 3986 data. A raw non-ASCII host must still fail closed if conversion fails.\n const encodedASCIIHost = resolvedHost && resolvedHost.indexOf('%') !== -1 &&\n !/\\P{ASCII}/u.test(resolvedHost)\n if (resolved.error && !encodedASCIIHost) {\n throw new Error(resolved.error)\n }\n schemelessOptions.skipEscape = true\n return serialize(resolved, schemelessOptions)\n}\n\n/**\n * @param {import ('./types/index').URIComponent} base\n * @param {import ('./types/index').URIComponent} relative\n * @param {import('./types/index').Options} [options]\n * @param {boolean} [skipNormalization=false]\n * @returns {import ('./types/index').URIComponent}\n */\nfunction resolveComponent (base, relative, options, skipNormalization) {\n /** @type {import('./types/index').URIComponent} */\n const target = {}\n if (!skipNormalization) {\n base = parse(serialize(base, options), options) // normalize base component\n relative = parse(serialize(relative, options), options) // normalize relative component\n }\n options = options || {}\n\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (!relative.path) {\n target.path = base.path\n if (relative.query !== undefined) {\n target.query = relative.query\n } else {\n target.query = base.query\n }\n } else {\n if (relative.path[0] === '/') {\n target.path = removeDotSegments(relative.path)\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = '/' + relative.path\n } else if (!base.path) {\n target.path = relative.path\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf('/') + 1) + relative.path\n }\n target.path = removeDotSegments(target.path)\n }\n target.query = relative.query\n }\n // target.authority = base.authority;\n target.userinfo = base.userinfo\n target.host = base.host\n target.port = base.port\n }\n target.scheme = base.scheme\n }\n\n target.fragment = relative.fragment\n\n return target\n}\n\n/**\n * @param {import ('./types/index').URIComponent|string} uriA\n * @param {import ('./types/index').URIComponent|string} uriB\n * @param {import ('./types/index').Options} options\n * @returns {boolean}\n */\nfunction equal (uriA, uriB, options) {\n const normalizedA = normalizeComparableURI(uriA, options)\n const normalizedB = normalizeComparableURI(uriB, options)\n\n return normalizedA !== undefined && normalizedB !== undefined && normalizedA === normalizedB\n}\n\n/**\n * @param {Readonly} cmpts\n * @param {import('./types/index').Options} [opts]\n * @returns {string}\n */\nfunction serialize (cmpts, opts) {\n const component = {\n host: cmpts.host,\n scheme: cmpts.scheme,\n userinfo: cmpts.userinfo,\n port: cmpts.port,\n path: cmpts.path,\n query: cmpts.query,\n nid: cmpts.nid,\n nss: cmpts.nss,\n uuid: cmpts.uuid,\n fragment: cmpts.fragment,\n reference: cmpts.reference,\n resourceName: cmpts.resourceName,\n secure: cmpts.secure,\n error: ''\n }\n const options = Object.assign({}, opts)\n const uriTokens = []\n\n if (component.scheme) {\n component.scheme = decodeValidScheme(component.scheme)\n }\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || component.scheme)\n\n // perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options)\n\n const hasAuthority = component.userinfo !== undefined || component.host !== undefined || component.port !== undefined\n const pathNoScheme = !options.skipEscape && component.scheme === undefined && !hasAuthority\n\n if (component.path !== undefined) {\n if (!options.skipEscape) {\n component.path = serializePathEncoding(component.path, pathNoScheme)\n } else {\n component.path = normalizePercentEncoding(component.path)\n }\n }\n\n if (options.reference !== 'suffix' && component.scheme) {\n // Scheme handlers may replace the scheme during serialization.\n component.scheme = decodeValidScheme(component.scheme)\n uriTokens.push(component.scheme, ':')\n }\n\n const authority = recomposeAuthority(component)\n if (authority !== undefined) {\n if (options.reference !== 'suffix') {\n uriTokens.push('//')\n }\n\n uriTokens.push(authority)\n\n if (component.path && component.path[0] !== '/') {\n uriTokens.push('/')\n }\n }\n if (component.path !== undefined) {\n let s = component.path\n\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s)\n }\n\n // Dot-segment removal can expose a colon that was not originally in the\n // first segment (for example, \"./a:b\"). Reapply path-noscheme encoding so\n // the serialized relative reference cannot be reparsed as a URI scheme.\n if (pathNoScheme) {\n s = serializePathEncoding(s, true)\n }\n\n if (\n authority === undefined &&\n s[0] === '/' &&\n s[1] === '/'\n ) {\n // don't allow the path to start with \"//\"\n s = '/%2F' + s.slice(2)\n }\n\n uriTokens.push(s)\n }\n\n if (component.query !== undefined) {\n uriTokens.push('?', encodeQuery(component.query))\n }\n\n if (component.fragment !== undefined) {\n uriTokens.push('#', encodeFragment(component.fragment))\n }\n return uriTokens.join('')\n}\n\nconst URI_PARSE = /^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u\n\n// Captures the authority component (between \"//\" and the next \"/\", \"?\" or \"#\"),\n// with or without a scheme prefix, for the literal-backslash rejection below.\nconst AUTHORITY_PREFIX = /^(?:[^#/:?]+:)?\\/\\/([^/?#]*)/\n\n// Captures the leading authority-introducer region after an optional scheme: a\n// run of forward slashes, backslashes, and the characters the WHATWG URL parser\n// removes before parsing (TAB U+0009, LF U+000A, CR U+000D). A valid introducer\n// is exactly \"//\". Node treats \"\\\" as \"/\" on special schemes and strips those\n// characters first, so forms like \"\\\\\", \"/\\\", \"\\/\", \"//\", or a leading\n// \"//\" reach an authority in Node while fast-uri's URI_PARSE folds them into\n// the path group (host confusion / SSRF / redirect bypass).\nconst AUTHORITY_INTRODUCER_REGION = /^(?:[^#/:?]+:)?([/\\\\\\t\\n\\r]*)/\n\n/**\n * @param {import('./types/index').URIComponent} parsed\n * @param {RegExpMatchArray} matches\n * @returns {string|undefined}\n */\nfunction getParseError (parsed, matches) {\n if (matches[2] !== undefined && parsed.path && parsed.path[0] !== '/') {\n return 'URI path must start with \"/\" when authority is present.'\n }\n\n if (typeof parsed.port === 'number' && (parsed.port < 0 || parsed.port > 65535)) {\n return 'URI port is malformed.'\n }\n\n return undefined\n}\n\n/**\n * Checks percent syntax without decoding the represented octets. RFC 3986\n * percent-encoding is byte-oriented, so sequences such as `%FF` are valid even\n * though they are not independently valid UTF-8.\n *\n * @param {string|undefined} component\n * @returns {boolean}\n */\nfunction hasMalformedPercentEncoding (component) {\n if (component === undefined) return false\n\n let percent = component.indexOf('%')\n while (percent !== -1) {\n if (percent + 2 >= component.length || !/^[\\da-f]{2}$/iu.test(component.slice(percent + 1, percent + 3))) {\n return true\n }\n percent = component.indexOf('%', percent + 3)\n }\n\n return false\n}\n\n/**\n * Whether the host is a bracketed IP literal (RFC 3986 `IP-literal`).\n * An unterminated `[` is not a literal, so it must still be validated as a\n * reg-name instead of being waved through as an IP.\n *\n * @param {string} host\n * @returns {boolean}\n */\nfunction isIPLiteral (host) {\n return host[0] === '[' && host[host.length - 1] === ']'\n}\n\n/**\n * @param {RegExpMatchArray} matches\n * @returns {boolean}\n */\nfunction hasMalformedComponentPercentEncoding (matches) {\n // Bracketed IP literals use a raw \"%\" as the zone separator for historical\n // compatibility. Their parsing is intentionally left to normalizeIPv6.\n const host = matches[4]\n return hasMalformedPercentEncoding(matches[3]) ||\n (host !== undefined && !isIPLiteral(host) && hasMalformedPercentEncoding(host)) ||\n hasMalformedPercentEncoding(matches[6]) ||\n hasMalformedPercentEncoding(matches[7]) ||\n hasMalformedPercentEncoding(matches[8])\n}\n\n/**\n * @param {import('./types/index').URIComponent} parsed\n * @param {import('./types/index').Options} options\n * @param {{ domainHost?: boolean, unicodeSupport?: boolean }|undefined} schemeHandler\n * @param {boolean} isIP\n * @returns {boolean} whether host conversion failed\n */\nfunction canonicalizeHost (parsed, options, schemeHandler, isIP) {\n if (\n !options.unicodeSupport &&\n (!schemeHandler || !schemeHandler.unicodeSupport) &&\n parsed.host &&\n !isIPLiteral(parsed.host) &&\n (options.domainHost || (schemeHandler && schemeHandler.domainHost)) &&\n isIP === false &&\n nonSimpleDomain(parsed.host)\n ) {\n try {\n parsed.host = new URL('http://' + parsed.host).hostname\n } catch (e) {\n parsed.error = parsed.error || \"Host's domain name can not be converted to ASCII: \" + e\n return true\n }\n }\n return false\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {{ parsed: import('./types/index').URIComponent, malformedAuthorityOrPort: boolean, malformedPercentEncoding: boolean, malformedSchemeSpecific: boolean, malformedHost: boolean, malformedScheme: boolean }}\n */\nfunction parseWithStatus (uri, opts) {\n const options = Object.assign({}, opts)\n /** @type {import('./types/index').URIComponent} */\n const parsed = {\n scheme: undefined,\n userinfo: undefined,\n host: '',\n port: undefined,\n path: '',\n query: undefined,\n fragment: undefined\n }\n\n let malformedAuthorityOrPort = false\n let malformedPercentEncoding = false\n let malformedSchemeSpecific = false\n let malformedHost = false\n let malformedIPLiteral = false\n let malformedScheme = false\n\n let isIP = false\n if (options.reference === 'suffix') {\n if (options.scheme) {\n uri = options.scheme + ':' + uri\n } else {\n uri = '//' + uri\n }\n }\n\n // A literal backslash (U+005C) is not a valid RFC 3986 URI character and is\n // not an authority delimiter. Reject it in the authority rather than\n // rewriting it: normalizing \"\\\" -> \"/\" (WHATWG error recovery) could silently\n // change the resource identified by an otherwise-invalid input, and lets \"\\\"\n // act as a host delimiter here while Node's native URL parses a different\n // host (SSRF / redirect / origin-allowlist bypass). Percent-encoded %5C is\n // untouched and remains valid encoded data.\n const authorityMatch = uri.match(AUTHORITY_PREFIX)\n if (authorityMatch !== null && authorityMatch[1].indexOf('\\\\') !== -1) {\n parsed.error = 'URI authority must not contain a literal backslash.'\n malformedAuthorityOrPort = true\n }\n\n // Reject a malformed or whitespace-smuggled authority introducer. fast-uri\n // only recognizes a literal \"//\"; anything else in the leading separator run\n // (a backslash, or a \"//\" that appears only after removing the TAB/LF/CR that\n // Node strips) means the authority fast-uri parses differs from the one Node's\n // URL resolves. Reject rather than rewrite, mirroring the literal-backslash\n // guard above. Percent-encoded forms (%5C, %09) are untouched, valid data.\n const introducerMatch = uri.match(AUTHORITY_INTRODUCER_REGION)\n if (introducerMatch !== null) {\n const region = introducerMatch[1]\n const normalizedRegion = region.replace(/[\\t\\n\\r]/g, '')\n // Two or more leading separators introduce an authority.\n if (normalizedRegion.length >= 2) {\n if (normalizedRegion.slice(0, 2) !== '//') {\n parsed.error = parsed.error || 'URI authority must not contain a literal backslash.'\n malformedAuthorityOrPort = true\n } else if (region.length !== normalizedRegion.length) {\n parsed.error = parsed.error || 'URI authority introducer must not contain whitespace.'\n malformedAuthorityOrPort = true\n }\n }\n }\n\n const matches = uri.match(URI_PARSE)\n\n if (matches) {\n // store each component\n parsed.scheme = matches[1]\n parsed.userinfo = matches[3]\n parsed.host = matches[4]\n parsed.port = parseInt(matches[5], 10)\n parsed.path = matches[6] || ''\n parsed.query = matches[7]\n parsed.fragment = matches[8]\n\n if (parsed.scheme !== undefined) {\n const decodedScheme = unescape(parsed.scheme)\n if (VALID_SCHEME.test(decodedScheme)) {\n parsed.scheme = decodedScheme.toLowerCase()\n } else {\n parsed.error = parsed.error || MALFORMED_SCHEME_ERROR\n malformedScheme = true\n }\n }\n\n malformedPercentEncoding = hasMalformedComponentPercentEncoding(matches)\n if (malformedPercentEncoding) {\n parsed.error = parsed.error || 'URI contains malformed percent-encoding.'\n }\n\n // fix port number\n if (isNaN(parsed.port)) {\n parsed.port = matches[5]\n }\n\n const parseError = getParseError(parsed, matches)\n if (parseError !== undefined) {\n parsed.error = parsed.error || parseError\n malformedAuthorityOrPort = true\n }\n\n if (parsed.host) {\n const ipv4result = isIPv4(parsed.host)\n if (ipv4result === false) {\n const bracketedIPLiteral = isIPLiteral(parsed.host)\n const hasIPLiteralBracket = parsed.host.indexOf('[') !== -1 || parsed.host.indexOf(']') !== -1\n const ipv6result = normalizeIPv6(parsed.host)\n isIP = ipv6result.isIPV6 || ipv6result.isIPVFuture === true\n malformedIPLiteral = hasIPLiteralBracket && (!bracketedIPLiteral || ipv6result.error === true)\n parsed.host = isIP ? ipv6result.host : ipv6result.host.toLowerCase()\n\n if (malformedIPLiteral) {\n parsed.error = parsed.error || 'URI host is malformed.'\n malformedAuthorityOrPort = true\n }\n } else {\n isIP = true\n }\n }\n if (parsed.scheme === undefined && parsed.userinfo === undefined && parsed.host === undefined && parsed.port === undefined && parsed.query === undefined && !parsed.path) {\n parsed.reference = 'same-document'\n } else if (parsed.scheme === undefined) {\n parsed.reference = 'relative'\n } else if (parsed.fragment === undefined) {\n parsed.reference = 'absolute'\n } else {\n parsed.reference = 'uri'\n }\n\n // check for reference errors\n if (options.reference && options.reference !== 'suffix' && options.reference !== parsed.reference) {\n parsed.error = parsed.error || 'URI is not a ' + options.reference + ' reference.'\n }\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme)\n\n // convert Unicode IDN -> ASCII IDN when the effective scheme uses domain hosts\n if (!malformedIPLiteral) {\n malformedHost = canonicalizeHost(parsed, options, schemeHandler, isIP)\n }\n\n if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {\n if (uri.indexOf('%') !== -1) {\n if (parsed.host !== undefined && !malformedIPLiteral) {\n const host = isIP ? parsed.host : normalizePercentEncoding(parsed.host, true)\n parsed.host = reescapeHostDelimiters(host, isIP)\n }\n }\n if (parsed.path) {\n parsed.path = normalizePathEncoding(parsed.path)\n }\n if (parsed.query) {\n parsed.query = normalizeQueryFragmentEncoding(parsed.query)\n }\n if (parsed.fragment) {\n parsed.fragment = normalizeQueryFragmentEncoding(parsed.fragment)\n }\n }\n\n // perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(parsed, options)\n if (schemeHandler === SCHEMES.urn && parsed.nid === undefined) {\n malformedSchemeSpecific = true\n }\n }\n } else {\n parsed.error = parsed.error || 'URI can not be parsed.'\n }\n return { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme }\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns\n */\nfunction parse (uri, opts) {\n return parseWithStatus(uri, opts).parsed\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {string}\n */\nfunction normalizeString (uri, opts) {\n return normalizeStringWithStatus(uri, opts).normalized\n}\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {{ normalized: string, malformedAuthorityOrPort: boolean, malformedPercentEncoding: boolean, malformedSchemeSpecific: boolean, malformedHost: boolean, malformedScheme: boolean }}\n */\nfunction normalizeStringWithStatus (uri, opts) {\n const { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = parseWithStatus(uri, opts)\n return {\n normalized: malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? uri : serialize(parsed, opts),\n malformedAuthorityOrPort,\n malformedPercentEncoding,\n malformedSchemeSpecific,\n malformedHost,\n malformedScheme\n }\n}\n\n/**\n * @param {import ('./types/index').URIComponent|string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns {string|undefined}\n */\nfunction normalizeComparableURI (uri, opts) {\n if (typeof uri !== 'string' && typeof uri !== 'object') {\n return undefined\n }\n\n let value\n try {\n value = typeof uri === 'string' ? uri : serialize(uri, opts)\n } catch {\n return undefined\n }\n const { normalized, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = normalizeStringWithStatus(value, opts)\n return malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? undefined : normalized\n}\n\nconst fastUri = {\n SCHEMES,\n normalize,\n resolve,\n resolveComponent,\n equal,\n serialize,\n parse\n}\n\nmodule.exports = fastUri\nmodule.exports.default = fastUri\nmodule.exports.fastUri = fastUri\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst uri = require(\"fast-uri\");\nuri.code = 'require(\"ajv/dist/runtime/uri\").default';\nexports.default = uri;\n//# sourceMappingURL=uri.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nconst validation_error_1 = require(\"./runtime/validation_error\");\nconst ref_error_1 = require(\"./compile/ref_error\");\nconst rules_1 = require(\"./compile/rules\");\nconst compile_1 = require(\"./compile\");\nconst codegen_2 = require(\"./compile/codegen\");\nconst resolve_1 = require(\"./compile/resolve\");\nconst dataType_1 = require(\"./compile/validate/dataType\");\nconst util_1 = require(\"./compile/util\");\nconst $dataRefSchema = require(\"./refs/data.json\");\nconst uri_1 = require(\"./runtime/uri\");\nconst defaultRegExp = (str, flags) => new RegExp(str, flags);\ndefaultRegExp.code = \"new RegExp\";\nconst META_IGNORE_OPTIONS = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"];\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n]);\nconst removedOptions = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n};\nconst deprecatedOptions = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n};\nconst MAX_EXPRESSION = 200;\n// eslint-disable-next-line complexity\nfunction requiredOptions(o) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;\n const s = o.strict;\n const _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize;\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0;\n const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp;\n const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default;\n return {\n strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true,\n strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true,\n strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : \"log\",\n strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : \"log\",\n strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false,\n code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp },\n loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION,\n loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION,\n meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true,\n messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true,\n inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true,\n schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : \"$id\",\n addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true,\n validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true,\n validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true,\n unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true,\n int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true,\n uriResolver: uriResolver,\n };\n}\nclass Ajv {\n constructor(opts = {}) {\n this.schemas = {};\n this.refs = {};\n this.formats = Object.create(null);\n this._compilations = new Set();\n this._loading = {};\n this._cache = new Map();\n opts = this.opts = { ...opts, ...requiredOptions(opts) };\n const { es5, lines } = this.opts.code;\n this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines });\n this.logger = getLogger(opts.logger);\n const formatOpt = opts.validateFormats;\n opts.validateFormats = false;\n this.RULES = (0, rules_1.getRules)();\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\");\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\");\n this._metaOpts = getMetaSchemaOptions.call(this);\n if (opts.formats)\n addInitialFormats.call(this);\n this._addVocabularies();\n this._addDefaultMetaSchema();\n if (opts.keywords)\n addInitialKeywords.call(this, opts.keywords);\n if (typeof opts.meta == \"object\")\n this.addMetaSchema(opts.meta);\n addInitialSchemas.call(this);\n opts.validateFormats = formatOpt;\n }\n _addVocabularies() {\n this.addKeyword(\"$async\");\n }\n _addDefaultMetaSchema() {\n const { $data, meta, schemaId } = this.opts;\n let _dataRefSchema = $dataRefSchema;\n if (schemaId === \"id\") {\n _dataRefSchema = { ...$dataRefSchema };\n _dataRefSchema.id = _dataRefSchema.$id;\n delete _dataRefSchema.$id;\n }\n if (meta && $data)\n this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false);\n }\n defaultMeta() {\n const { meta, schemaId } = this.opts;\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined);\n }\n validate(schemaKeyRef, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data // to be validated\n ) {\n let v;\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema(schemaKeyRef);\n if (!v)\n throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`);\n }\n else {\n v = this.compile(schemaKeyRef);\n }\n const valid = v(data);\n if (!(\"$async\" in v))\n this.errors = v.errors;\n return valid;\n }\n compile(schema, _meta) {\n const sch = this._addSchema(schema, _meta);\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n compileAsync(schema, meta) {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\");\n }\n const { loadSchema } = this.opts;\n return runCompileAsync.call(this, schema, meta);\n async function runCompileAsync(_schema, _meta) {\n await loadMetaSchema.call(this, _schema.$schema);\n const sch = this._addSchema(_schema, _meta);\n return sch.validate || _compileAsync.call(this, sch);\n }\n async function loadMetaSchema($ref) {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, { $ref }, true);\n }\n }\n async function _compileAsync(sch) {\n try {\n return this._compileSchemaEnv(sch);\n }\n catch (e) {\n if (!(e instanceof ref_error_1.default))\n throw e;\n checkLoaded.call(this, e);\n await loadMissingSchema.call(this, e.missingSchema);\n return _compileAsync.call(this, sch);\n }\n }\n function checkLoaded({ missingSchema: ref, missingRef }) {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`);\n }\n }\n async function loadMissingSchema(ref) {\n const _schema = await _loadSchema.call(this, ref);\n if (!this.refs[ref])\n await loadMetaSchema.call(this, _schema.$schema);\n if (!this.refs[ref])\n this.addSchema(_schema, ref, meta);\n }\n async function _loadSchema(ref) {\n const p = this._loading[ref];\n if (p)\n return p;\n try {\n return await (this._loading[ref] = loadSchema(ref));\n }\n finally {\n delete this._loading[ref];\n }\n }\n }\n // Adds schema to the instance\n addSchema(schema, // If array is passed, `key` will be ignored\n key, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ) {\n if (Array.isArray(schema)) {\n for (const sch of schema)\n this.addSchema(sch, undefined, _meta, _validateSchema);\n return this;\n }\n let id;\n if (typeof schema === \"object\") {\n const { schemaId } = this.opts;\n id = schema[schemaId];\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`);\n }\n }\n key = (0, resolve_1.normalizeId)(key || id);\n this._checkUnique(key);\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true);\n return this;\n }\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(schema, key, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ) {\n this.addSchema(schema, key, true, _validateSchema);\n return this;\n }\n // Validate schema against its meta-schema\n validateSchema(schema, throwOrLogError) {\n if (typeof schema == \"boolean\")\n return true;\n let $schema;\n $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\");\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta();\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\");\n this.errors = null;\n return true;\n }\n const valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText();\n if (this.opts.validateSchema === \"log\")\n this.logger.error(message);\n else\n throw new Error(message);\n }\n return valid;\n }\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema(keyRef) {\n let sch;\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\")\n keyRef = sch;\n if (sch === undefined) {\n const { schemaId } = this.opts;\n const root = new compile_1.SchemaEnv({ schema: {}, schemaId });\n sch = compile_1.resolveSchema.call(this, root, keyRef);\n if (!sch)\n return;\n this.refs[keyRef] = sch;\n }\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef);\n this._removeAllSchemas(this.refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas);\n this._removeAllSchemas(this.refs);\n this._cache.clear();\n return this;\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef);\n if (typeof sch == \"object\")\n this._cache.delete(sch.schema);\n delete this.schemas[schemaKeyRef];\n delete this.refs[schemaKeyRef];\n return this;\n }\n case \"object\": {\n const cacheKey = schemaKeyRef;\n this._cache.delete(cacheKey);\n let id = schemaKeyRef[this.opts.schemaId];\n if (id) {\n id = (0, resolve_1.normalizeId)(id);\n delete this.schemas[id];\n delete this.refs[id];\n }\n return this;\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\");\n }\n }\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions) {\n for (const def of definitions)\n this.addKeyword(def);\n return this;\n }\n addKeyword(kwdOrDef, def // deprecated\n ) {\n let keyword;\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef;\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\");\n def.keyword = keyword;\n }\n }\n else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef;\n keyword = def.keyword;\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\");\n }\n }\n else {\n throw new Error(\"invalid addKeywords parameters\");\n }\n checkKeyword.call(this, keyword, def);\n if (!def) {\n (0, util_1.eachItem)(keyword, (kwd) => addRule.call(this, kwd));\n return this;\n }\n keywordMetaschema.call(this, def);\n const definition = {\n ...def,\n type: (0, dataType_1.getJSONTypes)(def.type),\n schemaType: (0, dataType_1.getJSONTypes)(def.schemaType),\n };\n (0, util_1.eachItem)(keyword, definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t)));\n return this;\n }\n getKeyword(keyword) {\n const rule = this.RULES.all[keyword];\n return typeof rule == \"object\" ? rule.definition : !!rule;\n }\n // Remove keyword\n removeKeyword(keyword) {\n // TODO return type should be Ajv\n const { RULES } = this;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword);\n if (i >= 0)\n group.rules.splice(i, 1);\n }\n return this;\n }\n // Add format\n addFormat(name, format) {\n if (typeof format == \"string\")\n format = new RegExp(format);\n this.formats[name] = format;\n return this;\n }\n errorsText(errors = this.errors, // optional array of validation errors\n { separator = \", \", dataVar = \"data\" } = {} // optional options with properties `separator` and `dataVar`\n ) {\n if (!errors || errors.length === 0)\n return \"No errors\";\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg);\n }\n $dataMetaSchema(metaSchema, keywordsJsonPointers) {\n const rules = this.RULES.all;\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1); // first segment is an empty string\n let keywords = metaSchema;\n for (const seg of segments)\n keywords = keywords[seg];\n for (const key in rules) {\n const rule = rules[key];\n if (typeof rule != \"object\")\n continue;\n const { $data } = rule.definition;\n const schema = keywords[key];\n if ($data && schema)\n keywords[key] = schemaOrData(schema);\n }\n }\n return metaSchema;\n }\n _removeAllSchemas(schemas, regex) {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef];\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef];\n }\n else if (sch && !sch.meta) {\n this._cache.delete(sch.schema);\n delete schemas[keyRef];\n }\n }\n }\n }\n _addSchema(schema, meta, baseId, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) {\n let id;\n const { schemaId } = this.opts;\n if (typeof schema == \"object\") {\n id = schema[schemaId];\n }\n else {\n if (this.opts.jtd)\n throw new Error(\"schema must be object\");\n else if (typeof schema != \"boolean\")\n throw new Error(\"schema must be object or boolean\");\n }\n let sch = this._cache.get(schema);\n if (sch !== undefined)\n return sch;\n baseId = (0, resolve_1.normalizeId)(id || baseId);\n const localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId);\n sch = new compile_1.SchemaEnv({ schema, schemaId, meta, baseId, localRefs });\n this._cache.set(sch.schema, sch);\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId)\n this._checkUnique(baseId);\n this.refs[baseId] = sch;\n }\n if (validateSchema)\n this.validateSchema(schema, true);\n return sch;\n }\n _checkUnique(id) {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`);\n }\n }\n _compileSchemaEnv(sch) {\n if (sch.meta)\n this._compileMetaSchema(sch);\n else\n compile_1.compileSchema.call(this, sch);\n /* istanbul ignore if */\n if (!sch.validate)\n throw new Error(\"ajv implementation error\");\n return sch.validate;\n }\n _compileMetaSchema(sch) {\n const currentOpts = this.opts;\n this.opts = this._metaOpts;\n try {\n compile_1.compileSchema.call(this, sch);\n }\n finally {\n this.opts = currentOpts;\n }\n }\n}\nAjv.ValidationError = validation_error_1.default;\nAjv.MissingRefError = ref_error_1.default;\nexports.default = Ajv;\nfunction checkOptions(checkOpts, options, msg, log = \"error\") {\n for (const key in checkOpts) {\n const opt = key;\n if (opt in options)\n this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`);\n }\n}\nfunction getSchEnv(keyRef) {\n keyRef = (0, resolve_1.normalizeId)(keyRef); // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef];\n}\nfunction addInitialSchemas() {\n const optsSchemas = this.opts.schemas;\n if (!optsSchemas)\n return;\n if (Array.isArray(optsSchemas))\n this.addSchema(optsSchemas);\n else\n for (const key in optsSchemas)\n this.addSchema(optsSchemas[key], key);\n}\nfunction addInitialFormats() {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name];\n if (format)\n this.addFormat(name, format);\n }\n}\nfunction addInitialKeywords(defs) {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs);\n return;\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\");\n for (const keyword in defs) {\n const def = defs[keyword];\n if (!def.keyword)\n def.keyword = keyword;\n this.addKeyword(def);\n }\n}\nfunction getMetaSchemaOptions() {\n const metaOpts = { ...this.opts };\n for (const opt of META_IGNORE_OPTIONS)\n delete metaOpts[opt];\n return metaOpts;\n}\nconst noLogs = { log() { }, warn() { }, error() { } };\nfunction getLogger(logger) {\n if (logger === false)\n return noLogs;\n if (logger === undefined)\n return console;\n if (logger.log && logger.warn && logger.error)\n return logger;\n throw new Error(\"logger must implement log, warn and error methods\");\n}\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i;\nfunction checkKeyword(keyword, def) {\n const { RULES } = this;\n (0, util_1.eachItem)(keyword, (kwd) => {\n if (RULES.keywords[kwd])\n throw new Error(`Keyword ${kwd} is already defined`);\n if (!KEYWORD_NAME.test(kwd))\n throw new Error(`Keyword ${kwd} has invalid name`);\n });\n if (!def)\n return;\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function');\n }\n}\nfunction addRule(keyword, definition, dataType) {\n var _a;\n const post = definition === null || definition === void 0 ? void 0 : definition.post;\n if (dataType && post)\n throw new Error('keyword with \"post\" flag cannot have \"type\"');\n const { RULES } = this;\n let ruleGroup = post ? RULES.post : RULES.rules.find(({ type: t }) => t === dataType);\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.rules.push(ruleGroup);\n }\n RULES.keywords[keyword] = true;\n if (!definition)\n return;\n const rule = {\n keyword,\n definition: {\n ...definition,\n type: (0, dataType_1.getJSONTypes)(definition.type),\n schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType),\n },\n };\n if (definition.before)\n addBeforeRule.call(this, ruleGroup, rule, definition.before);\n else\n ruleGroup.rules.push(rule);\n RULES.all[keyword] = rule;\n (_a = definition.implements) === null || _a === void 0 ? void 0 : _a.forEach((kwd) => this.addKeyword(kwd));\n}\nfunction addBeforeRule(ruleGroup, rule, before) {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before);\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule);\n }\n else {\n ruleGroup.rules.push(rule);\n this.logger.warn(`rule ${before} is not defined`);\n }\n}\nfunction keywordMetaschema(def) {\n let { metaSchema } = def;\n if (metaSchema === undefined)\n return;\n if (def.$data && this.opts.$data)\n metaSchema = schemaOrData(metaSchema);\n def.validateSchema = this.compile(metaSchema, true);\n}\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n};\nfunction schemaOrData(schema) {\n return { anyOf: [schema, $dataRef] };\n}\n//# sourceMappingURL=core.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst def = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID');\n },\n};\nexports.default = def;\n//# sourceMappingURL=id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callRef = exports.getValidate = void 0;\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst compile_1 = require(\"../../compile\");\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt) {\n const { gen, schema: $ref, it } = cxt;\n const { baseId, schemaEnv: env, validateName, opts, self } = it;\n const { root } = env;\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId)\n return callRootRef();\n const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref);\n if (schOrEnv === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref);\n if (schOrEnv instanceof compile_1.SchemaEnv)\n return callValidate(schOrEnv);\n return inlineRefSchema(schOrEnv);\n function callRootRef() {\n if (env === root)\n return callRef(cxt, validateName, env, env.$async);\n const rootName = gen.scopeValue(\"root\", { ref: root });\n return callRef(cxt, (0, codegen_1._) `${rootName}.validate`, root, root.$async);\n }\n function callValidate(sch) {\n const v = getValidate(cxt, sch);\n callRef(cxt, v, sch, sch.$async);\n }\n function inlineRefSchema(sch) {\n const schName = gen.scopeValue(\"schema\", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch });\n const valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({\n schema: sch,\n dataTypes: [],\n schemaPath: codegen_1.nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n }, valid);\n cxt.mergeEvaluated(schCxt);\n cxt.ok(valid);\n }\n },\n};\nfunction getValidate(cxt, sch) {\n const { gen } = cxt;\n return sch.validate\n ? gen.scopeValue(\"validate\", { ref: sch.validate })\n : (0, codegen_1._) `${gen.scopeValue(\"wrapper\", { ref: sch })}.validate`;\n}\nexports.getValidate = getValidate;\nfunction callRef(cxt, v, sch, $async) {\n const { gen, it } = cxt;\n const { allErrors, schemaEnv: env, opts } = it;\n const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil;\n if ($async)\n callAsyncRef();\n else\n callSyncRef();\n function callAsyncRef() {\n if (!env.$async)\n throw new Error(\"async schema referenced by sync schema\");\n const valid = gen.let(\"valid\");\n gen.try(() => {\n gen.code((0, codegen_1._) `await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`);\n addEvaluatedFrom(v); // TODO will not work with async, it has to be returned with the result\n if (!allErrors)\n gen.assign(valid, true);\n }, (e) => {\n gen.if((0, codegen_1._) `!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e));\n addErrorsFrom(e);\n if (!allErrors)\n gen.assign(valid, false);\n });\n cxt.ok(valid);\n }\n function callSyncRef() {\n cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v));\n }\n function addErrorsFrom(source) {\n const errs = (0, codegen_1._) `${source}.errors`;\n gen.assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`); // TODO tagged\n gen.assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n }\n function addEvaluatedFrom(source) {\n var _a;\n if (!it.opts.unevaluated)\n return;\n const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated;\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props);\n }\n }\n else {\n const props = gen.var(\"props\", (0, codegen_1._) `${source}.evaluated.props`);\n it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name);\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items);\n }\n }\n else {\n const items = gen.var(\"items\", (0, codegen_1._) `${source}.evaluated.items`);\n it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name);\n }\n }\n }\n}\nexports.callRef = callRef;\nexports.default = def;\n//# sourceMappingURL=ref.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst id_1 = require(\"./id\");\nconst ref_1 = require(\"./ref\");\nconst core = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n { keyword: \"$comment\" },\n \"definitions\",\n id_1.default,\n ref_1.default,\n];\nexports.default = core;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n maximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n minimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n exclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n exclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => (0, codegen_1.str) `must be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n cxt.fail$data((0, codegen_1._) `${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitNumber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must be multiple of ${schemaCode}`,\n params: ({ schemaCode }) => (0, codegen_1._) `{multipleOf: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, it } = cxt;\n // const bdt = bad$DataType(schemaCode, def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision;\n const res = gen.let(\"res\");\n const invalid = prec\n ? (0, codegen_1._) `Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : (0, codegen_1._) `${res} !== parseInt(${res})`;\n cxt.fail$data((0, codegen_1._) `(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=multipleOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nfunction ucs2length(str) {\n const len = str.length;\n let length = 0;\n let pos = 0;\n let value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xfc00) === 0xdc00)\n pos++; // low surrogate\n }\n }\n return length;\n}\nexports.default = ucs2length;\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default';\n//# sourceMappingURL=ucs2length.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst ucs2length_1 = require(\"../../runtime/ucs2length\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} characters`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode, it } = cxt;\n const op = keyword === \"maxLength\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n const len = it.opts.unicode === false ? (0, codegen_1._) `${data}.length` : (0, codegen_1._) `${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`;\n cxt.fail$data((0, codegen_1._) `${len} ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitLength.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match pattern \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{pattern: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n const u = it.opts.unicodeRegExp ? \"u\" : \"\";\n if ($data) {\n const { regExp } = it.opts.code;\n const regExpCode = regExp.code === \"new RegExp\" ? (0, codegen_1._) `new RegExp` : (0, util_1.useFunc)(gen, regExp);\n const valid = gen.let(\"valid\");\n gen.try(() => gen.assign(valid, (0, codegen_1._) `${regExpCode}(${schemaCode}, ${u}).test(${data})`), () => gen.assign(valid, false));\n cxt.fail$data((0, codegen_1._) `!${valid}`);\n }\n else {\n const regExp = (0, code_1.usePattern)(cxt, schema);\n cxt.fail$data((0, codegen_1._) `!${regExp}.test(${data})`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=pattern.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} properties`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxProperties\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `Object.keys(${data}).length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { missingProperty } }) => (0, codegen_1.str) `must have required property '${missingProperty}'`,\n params: ({ params: { missingProperty } }) => (0, codegen_1._) `{missingProperty: ${missingProperty}}`,\n};\nconst def = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, schema, schemaCode, data, $data, it } = cxt;\n const { opts } = it;\n if (!$data && schema.length === 0)\n return;\n const useLoop = schema.length >= opts.loopRequired;\n if (it.allErrors)\n allErrorsMode();\n else\n exitOnErrorMode();\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties;\n const { definedProperties } = cxt.it;\n for (const requiredKey of schema) {\n if ((props === null || props === void 0 ? void 0 : props[requiredKey]) === undefined && !definedProperties.has(requiredKey)) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictRequired);\n }\n }\n }\n function allErrorsMode() {\n if (useLoop || $data) {\n cxt.block$data(codegen_1.nil, loopAllRequired);\n }\n else {\n for (const prop of schema) {\n (0, code_1.checkReportMissingProp)(cxt, prop);\n }\n }\n }\n function exitOnErrorMode() {\n const missing = gen.let(\"missing\");\n if (useLoop || $data) {\n const valid = gen.let(\"valid\", true);\n cxt.block$data(valid, () => loopUntilMissing(missing, valid));\n cxt.ok(valid);\n }\n else {\n gen.if((0, code_1.checkMissingProp)(cxt, schema, missing));\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n function loopAllRequired() {\n gen.forOf(\"prop\", schemaCode, (prop) => {\n cxt.setParams({ missingProperty: prop });\n gen.if((0, code_1.noPropertyInData)(gen, data, prop, opts.ownProperties), () => cxt.error());\n });\n }\n function loopUntilMissing(missing, valid) {\n cxt.setParams({ missingProperty: missing });\n gen.forOf(missing, schemaCode, () => {\n gen.assign(valid, (0, code_1.propertyInData)(gen, data, missing, opts.ownProperties));\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error();\n gen.break();\n });\n }, codegen_1.nil);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=required.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} items`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxItems\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `${data}.length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/ajv-validator/ajv/issues/889\nconst equal = require(\"fast-deep-equal\");\nequal.code = 'require(\"ajv/dist/runtime/equal\").default';\nexports.default = equal;\n//# sourceMappingURL=equal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dataType_1 = require(\"../../compile/validate/dataType\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: ({ params: { i, j } }) => (0, codegen_1.str) `must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({ params: { i, j } }) => (0, codegen_1._) `{i: ${i}, j: ${j}}`,\n};\nconst def = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;\n if (!$data && !schema)\n return;\n const valid = gen.let(\"valid\");\n const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : [];\n cxt.block$data(valid, validateUniqueItems, (0, codegen_1._) `${schemaCode} === false`);\n cxt.ok(valid);\n function validateUniqueItems() {\n const i = gen.let(\"i\", (0, codegen_1._) `${data}.length`);\n const j = gen.let(\"j\");\n cxt.setParams({ i, j });\n gen.assign(valid, true);\n gen.if((0, codegen_1._) `${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));\n }\n function canOptimize() {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\");\n }\n function loopN(i, j) {\n const item = gen.name(\"item\");\n const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong);\n const indices = gen.const(\"indices\", (0, codegen_1._) `{}`);\n gen.for((0, codegen_1._) `;${i}--;`, () => {\n gen.let(item, (0, codegen_1._) `${data}[${i}]`);\n gen.if(wrongType, (0, codegen_1._) `continue`);\n if (itemTypes.length > 1)\n gen.if((0, codegen_1._) `typeof ${item} == \"string\"`, (0, codegen_1._) `${item} += \"_\"`);\n gen\n .if((0, codegen_1._) `typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, (0, codegen_1._) `${indices}[${item}]`);\n cxt.error();\n gen.assign(valid, false).break();\n })\n .code((0, codegen_1._) `${indices}[${item}] = ${i}`);\n });\n }\n function loopN2(i, j) {\n const eql = (0, util_1.useFunc)(gen, equal_1.default);\n const outer = gen.name(\"outer\");\n gen.label(outer).for((0, codegen_1._) `;${i}--;`, () => gen.for((0, codegen_1._) `${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._) `${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error();\n gen.assign(valid, false).break(outer);\n })));\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=uniqueItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to constant\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValue: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schemaCode, schema } = cxt;\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data((0, codegen_1._) `!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`);\n }\n else {\n cxt.fail((0, codegen_1._) `${schema} !== ${data}`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=const.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to one of the allowed values\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValues: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n if (!$data && schema.length === 0)\n throw new Error(\"enum must have non-empty array\");\n const useLoop = schema.length >= it.opts.loopEnum;\n let eql;\n const getEql = () => (eql !== null && eql !== void 0 ? eql : (eql = (0, util_1.useFunc)(gen, equal_1.default)));\n let valid;\n if (useLoop || $data) {\n valid = gen.let(\"valid\");\n cxt.block$data(valid, loopEnum);\n }\n else {\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const vSchema = gen.const(\"vSchema\", schemaCode);\n valid = (0, codegen_1.or)(...schema.map((_x, i) => equalCode(vSchema, i)));\n }\n cxt.pass(valid);\n function loopEnum() {\n gen.assign(valid, false);\n gen.forOf(\"v\", schemaCode, (v) => gen.if((0, codegen_1._) `${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break()));\n }\n function equalCode(vSchema, i) {\n const sch = schema[i];\n return typeof sch === \"object\" && sch !== null\n ? (0, codegen_1._) `${getEql()}(${data}, ${vSchema}[${i}])`\n : (0, codegen_1._) `${data} === ${sch}`;\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=enum.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst limitNumber_1 = require(\"./limitNumber\");\nconst multipleOf_1 = require(\"./multipleOf\");\nconst limitLength_1 = require(\"./limitLength\");\nconst pattern_1 = require(\"./pattern\");\nconst limitProperties_1 = require(\"./limitProperties\");\nconst required_1 = require(\"./required\");\nconst limitItems_1 = require(\"./limitItems\");\nconst uniqueItems_1 = require(\"./uniqueItems\");\nconst const_1 = require(\"./const\");\nconst enum_1 = require(\"./enum\");\nconst validation = [\n // number\n limitNumber_1.default,\n multipleOf_1.default,\n // string\n limitLength_1.default,\n pattern_1.default,\n // object\n limitProperties_1.default,\n required_1.default,\n // array\n limitItems_1.default,\n uniqueItems_1.default,\n // any\n { keyword: \"type\", schemaType: [\"string\", \"array\"] },\n { keyword: \"nullable\", schemaType: \"boolean\" },\n const_1.default,\n enum_1.default,\n];\nexports.default = validation;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateAdditionalItems = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"additionalItems\",\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { parentSchema, it } = cxt;\n const { items } = parentSchema;\n if (!Array.isArray(items)) {\n (0, util_1.checkStrictMode)(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas');\n return;\n }\n validateAdditionalItems(cxt, items);\n },\n};\nfunction validateAdditionalItems(cxt, items) {\n const { gen, schema, data, keyword, it } = cxt;\n it.items = true;\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n if (schema === false) {\n cxt.setParams({ len: items.length });\n cxt.pass((0, codegen_1._) `${len} <= ${items.length}`);\n }\n else if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.var(\"valid\", (0, codegen_1._) `${len} <= ${items.length}`); // TODO var\n gen.if((0, codegen_1.not)(valid), () => validateItems(valid));\n cxt.ok(valid);\n }\n function validateItems(valid) {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid);\n if (!it.allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n });\n }\n}\nexports.validateAdditionalItems = validateAdditionalItems;\nexports.default = def;\n//# sourceMappingURL=additionalItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTuple = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt) {\n const { schema, it } = cxt;\n if (Array.isArray(schema))\n return validateTuple(cxt, \"additionalItems\", schema);\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nfunction validateTuple(cxt, extraItems, schArr = cxt.schema) {\n const { gen, parentSchema, data, keyword, it } = cxt;\n checkStrictTuple(parentSchema);\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = util_1.mergeEvaluated.items(gen, schArr.length, it.items);\n }\n const valid = gen.name(\"valid\");\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n schArr.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n gen.if((0, codegen_1._) `${len} > ${i}`, () => cxt.subschema({\n keyword,\n schemaProp: i,\n dataProp: i,\n }, valid));\n cxt.ok(valid);\n });\n function checkStrictTuple(sch) {\n const { opts, errSchemaPath } = it;\n const l = schArr.length;\n const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false);\n if (opts.strictTuples && !fullTuple) {\n const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`;\n (0, util_1.checkStrictMode)(it, msg, opts.strictTuples);\n }\n }\n}\nexports.validateTuple = validateTuple;\nexports.default = def;\n//# sourceMappingURL=items.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst items_1 = require(\"./items\");\nconst def = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => (0, items_1.validateTuple)(cxt, \"items\"),\n};\nexports.default = def;\n//# sourceMappingURL=prefixItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst additionalItems_1 = require(\"./additionalItems\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { schema, parentSchema, it } = cxt;\n const { prefixItems } = parentSchema;\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n if (prefixItems)\n (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);\n else\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nexports.default = def;\n//# sourceMappingURL=items2020.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { min, max } }) => max === undefined\n ? (0, codegen_1.str) `must contain at least ${min} valid item(s)`\n : (0, codegen_1.str) `must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({ params: { min, max } }) => max === undefined ? (0, codegen_1._) `{minContains: ${min}}` : (0, codegen_1._) `{minContains: ${min}, maxContains: ${max}}`,\n};\nconst def = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n let min;\n let max;\n const { minContains, maxContains } = parentSchema;\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains;\n max = maxContains;\n }\n else {\n min = 1;\n }\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n cxt.setParams({ min, max });\n if (max === undefined && min === 0) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`);\n return;\n }\n if (max !== undefined && min > max) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" > \"maxContains\" is always invalid`);\n cxt.fail();\n return;\n }\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n let cond = (0, codegen_1._) `${len} >= ${min}`;\n if (max !== undefined)\n cond = (0, codegen_1._) `${cond} && ${len} <= ${max}`;\n cxt.pass(cond);\n return;\n }\n it.items = true;\n const valid = gen.name(\"valid\");\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()));\n }\n else if (min === 0) {\n gen.let(valid, true);\n if (max !== undefined)\n gen.if((0, codegen_1._) `${data}.length > 0`, validateItemsWithCount);\n }\n else {\n gen.let(valid, false);\n validateItemsWithCount();\n }\n cxt.result(valid, () => cxt.reset());\n function validateItemsWithCount() {\n const schValid = gen.name(\"_valid\");\n const count = gen.let(\"count\", 0);\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));\n }\n function validateItems(_valid, block) {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword: \"contains\",\n dataProp: i,\n dataPropType: util_1.Type.Num,\n compositeRule: true,\n }, _valid);\n block();\n });\n }\n function checkLimits(count) {\n gen.code((0, codegen_1._) `${count}++`);\n if (max === undefined) {\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true).break());\n }\n else {\n gen.if((0, codegen_1._) `${count} > ${max}`, () => gen.assign(valid, false).break());\n if (min === 1)\n gen.assign(valid, true);\n else\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true));\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=contains.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nexports.error = {\n message: ({ params: { property, depsCount, deps } }) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\";\n return (0, codegen_1.str) `must have ${property_ies} ${deps} when property ${property} is present`;\n },\n params: ({ params: { property, depsCount, deps, missingProperty } }) => (0, codegen_1._) `{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n};\nconst def = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error: exports.error,\n code(cxt) {\n const [propDeps, schDeps] = splitDependencies(cxt);\n validatePropertyDeps(cxt, propDeps);\n validateSchemaDeps(cxt, schDeps);\n },\n};\nfunction splitDependencies({ schema }) {\n const propertyDeps = {};\n const schemaDeps = {};\n for (const key in schema) {\n if (key === \"__proto__\")\n continue;\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps;\n deps[key] = schema[key];\n }\n return [propertyDeps, schemaDeps];\n}\nfunction validatePropertyDeps(cxt, propertyDeps = cxt.schema) {\n const { gen, data, it } = cxt;\n if (Object.keys(propertyDeps).length === 0)\n return;\n const missing = gen.let(\"missing\");\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop];\n if (deps.length === 0)\n continue;\n const hasProperty = (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties);\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n });\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n (0, code_1.checkReportMissingProp)(cxt, depProp);\n }\n });\n }\n else {\n gen.if((0, codegen_1._) `${hasProperty} && (${(0, code_1.checkMissingProp)(cxt, deps, missing)})`);\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n}\nexports.validatePropertyDeps = validatePropertyDeps;\nfunction validateSchemaDeps(cxt, schemaDeps = cxt.schema) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n for (const prop in schemaDeps) {\n if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop]))\n continue;\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties), () => {\n const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid);\n cxt.mergeValidEvaluated(schCxt, valid);\n }, () => gen.var(valid, true) // TODO var\n );\n cxt.ok(valid);\n }\n}\nexports.validateSchemaDeps = validateSchemaDeps;\nexports.default = def;\n//# sourceMappingURL=dependencies.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"property name must be valid\",\n params: ({ params }) => (0, codegen_1._) `{propertyName: ${params.propertyName}}`,\n};\nconst def = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt) {\n const { gen, schema, data, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n const valid = gen.name(\"valid\");\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({ propertyName: key });\n cxt.subschema({\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n }, valid);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error(true);\n if (!it.allErrors)\n gen.break();\n });\n });\n cxt.ok(valid);\n },\n};\nexports.default = def;\n//# sourceMappingURL=propertyNames.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must NOT have additional properties\",\n params: ({ params }) => (0, codegen_1._) `{additionalProperty: ${params.additionalProperty}}`,\n};\nconst def = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, errsCount, it } = cxt;\n /* istanbul ignore if */\n if (!errsCount)\n throw new Error(\"ajv implementation error\");\n const { allErrors, opts } = it;\n it.props = true;\n if (opts.removeAdditional !== \"all\" && (0, util_1.alwaysValidSchema)(it, schema))\n return;\n const props = (0, code_1.allSchemaProperties)(parentSchema.properties);\n const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties);\n checkAdditionalProperties();\n cxt.ok((0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n function checkAdditionalProperties() {\n gen.forIn(\"key\", data, (key) => {\n if (!props.length && !patProps.length)\n additionalPropertyCode(key);\n else\n gen.if(isAdditional(key), () => additionalPropertyCode(key));\n });\n }\n function isAdditional(key) {\n let definedProp;\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, \"properties\");\n definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key);\n }\n else if (props.length) {\n definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._) `${key} === ${p}`));\n }\n else {\n definedProp = codegen_1.nil;\n }\n if (patProps.length) {\n definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._) `${(0, code_1.usePattern)(cxt, p)}.test(${key})`));\n }\n return (0, codegen_1.not)(definedProp);\n }\n function deleteAdditional(key) {\n gen.code((0, codegen_1._) `delete ${data}[${key}]`);\n }\n function additionalPropertyCode(key) {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key);\n return;\n }\n if (schema === false) {\n cxt.setParams({ additionalProperty: key });\n cxt.error();\n if (!allErrors)\n gen.break();\n return;\n }\n if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.name(\"valid\");\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.reset();\n deleteAdditional(key);\n });\n }\n else {\n applyAdditionalSchema(key, valid);\n if (!allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n }\n }\n function applyAdditionalSchema(key, valid, errors) {\n const subschema = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: util_1.Type.Str,\n };\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n });\n }\n cxt.subschema(subschema, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=additionalProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_1 = require(\"../../compile/validate\");\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst def = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, \"additionalProperties\"));\n }\n const allProps = (0, code_1.allSchemaProperties)(schema);\n for (const prop of allProps) {\n it.definedProperties.add(prop);\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);\n }\n const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));\n if (properties.length === 0)\n return;\n const valid = gen.name(\"valid\");\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop);\n }\n else {\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));\n applyPropertySchema(prop);\n if (!it.allErrors)\n gen.else().var(valid, true);\n gen.endIf();\n }\n cxt.it.definedProperties.add(prop);\n cxt.ok(valid);\n }\n function hasDefault(prop) {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;\n }\n function applyPropertySchema(prop) {\n cxt.subschema({\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n }, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=properties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst util_2 = require(\"../../compile/util\");\nconst def = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, data, parentSchema, it } = cxt;\n const { opts } = it;\n const patterns = (0, code_1.allSchemaProperties)(schema);\n const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));\n if (patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))) {\n return;\n }\n const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;\n const valid = gen.name(\"valid\");\n if (it.props !== true && !(it.props instanceof codegen_1.Name)) {\n it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);\n }\n const { props } = it;\n validatePatternProperties();\n function validatePatternProperties() {\n for (const pat of patterns) {\n if (checkProperties)\n checkMatchingProperties(pat);\n if (it.allErrors) {\n validateProperties(pat);\n }\n else {\n gen.var(valid, true); // TODO var\n validateProperties(pat);\n gen.if(valid);\n }\n }\n }\n function checkMatchingProperties(pat) {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);\n }\n }\n }\n function validateProperties(pat) {\n gen.forIn(\"key\", data, (key) => {\n gen.if((0, codegen_1._) `${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat);\n if (!alwaysValid) {\n cxt.subschema({\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: util_2.Type.Str,\n }, valid);\n }\n if (it.opts.unevaluated && props !== true) {\n gen.assign((0, codegen_1._) `${props}[${key}]`, true);\n }\n else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=patternProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt) {\n const { gen, schema, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n cxt.fail();\n return;\n }\n const valid = gen.name(\"valid\");\n cxt.subschema({\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, valid);\n cxt.failResult(valid, () => cxt.reset(), () => cxt.error());\n },\n error: { message: \"must NOT be valid\" },\n};\nexports.default = def;\n//# sourceMappingURL=not.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: code_1.validateUnion,\n error: { message: \"must match a schema in anyOf\" },\n};\nexports.default = def;\n//# sourceMappingURL=anyOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must match exactly one schema in oneOf\",\n params: ({ params }) => (0, codegen_1._) `{passingSchemas: ${params.passing}}`,\n};\nconst def = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n if (it.opts.discriminator && parentSchema.discriminator)\n return;\n const schArr = schema;\n const valid = gen.let(\"valid\", false);\n const passing = gen.let(\"passing\", null);\n const schValid = gen.name(\"_valid\");\n cxt.setParams({ passing });\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n gen.block(validateOneOf);\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n function validateOneOf() {\n schArr.forEach((sch, i) => {\n let schCxt;\n if ((0, util_1.alwaysValidSchema)(it, sch)) {\n gen.var(schValid, true);\n }\n else {\n schCxt = cxt.subschema({\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n }\n if (i > 0) {\n gen\n .if((0, codegen_1._) `${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, (0, codegen_1._) `[${passing}, ${i}]`)\n .else();\n }\n gen.if(schValid, () => {\n gen.assign(valid, true);\n gen.assign(passing, i);\n if (schCxt)\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=oneOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt) {\n const { gen, schema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const valid = gen.name(\"valid\");\n schema.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n const schCxt = cxt.subschema({ keyword: \"allOf\", schemaProp: i }, valid);\n cxt.ok(valid);\n cxt.mergeEvaluated(schCxt);\n });\n },\n};\nexports.default = def;\n//# sourceMappingURL=allOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params }) => (0, codegen_1.str) `must match \"${params.ifClause}\" schema`,\n params: ({ params }) => (0, codegen_1._) `{failingKeyword: ${params.ifClause}}`,\n};\nconst def = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, parentSchema, it } = cxt;\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n (0, util_1.checkStrictMode)(it, '\"if\" without \"then\" and \"else\" is ignored');\n }\n const hasThen = hasSchema(it, \"then\");\n const hasElse = hasSchema(it, \"else\");\n if (!hasThen && !hasElse)\n return;\n const valid = gen.let(\"valid\", true);\n const schValid = gen.name(\"_valid\");\n validateIf();\n cxt.reset();\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\");\n cxt.setParams({ ifClause });\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause));\n }\n else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"));\n }\n else {\n gen.if((0, codegen_1.not)(schValid), validateClause(\"else\"));\n }\n cxt.pass(valid, () => cxt.error(true));\n function validateIf() {\n const schCxt = cxt.subschema({\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, schValid);\n cxt.mergeEvaluated(schCxt);\n }\n function validateClause(keyword, ifClause) {\n return () => {\n const schCxt = cxt.subschema({ keyword }, schValid);\n gen.assign(valid, schValid);\n cxt.mergeValidEvaluated(schCxt, valid);\n if (ifClause)\n gen.assign(ifClause, (0, codegen_1._) `${keyword}`);\n else\n cxt.setParams({ ifClause: keyword });\n };\n }\n },\n};\nfunction hasSchema(it, keyword) {\n const schema = it.schema[keyword];\n return schema !== undefined && !(0, util_1.alwaysValidSchema)(it, schema);\n}\nexports.default = def;\n//# sourceMappingURL=if.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({ keyword, parentSchema, it }) {\n if (parentSchema.if === undefined)\n (0, util_1.checkStrictMode)(it, `\"${keyword}\" without \"if\" is ignored`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=thenElse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst additionalItems_1 = require(\"./additionalItems\");\nconst prefixItems_1 = require(\"./prefixItems\");\nconst items_1 = require(\"./items\");\nconst items2020_1 = require(\"./items2020\");\nconst contains_1 = require(\"./contains\");\nconst dependencies_1 = require(\"./dependencies\");\nconst propertyNames_1 = require(\"./propertyNames\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst properties_1 = require(\"./properties\");\nconst patternProperties_1 = require(\"./patternProperties\");\nconst not_1 = require(\"./not\");\nconst anyOf_1 = require(\"./anyOf\");\nconst oneOf_1 = require(\"./oneOf\");\nconst allOf_1 = require(\"./allOf\");\nconst if_1 = require(\"./if\");\nconst thenElse_1 = require(\"./thenElse\");\nfunction getApplicator(draft2020 = false) {\n const applicator = [\n // any\n not_1.default,\n anyOf_1.default,\n oneOf_1.default,\n allOf_1.default,\n if_1.default,\n thenElse_1.default,\n // object\n propertyNames_1.default,\n additionalProperties_1.default,\n dependencies_1.default,\n properties_1.default,\n patternProperties_1.default,\n ];\n // array\n if (draft2020)\n applicator.push(prefixItems_1.default, items2020_1.default);\n else\n applicator.push(additionalItems_1.default, items_1.default);\n applicator.push(contains_1.default);\n return applicator;\n}\nexports.default = getApplicator;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match format \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{format: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt, ruleType) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n const { opts, errSchemaPath, schemaEnv, self } = it;\n if (!opts.validateFormats)\n return;\n if ($data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fDef = gen.const(\"fDef\", (0, codegen_1._) `${fmts}[${schemaCode}]`);\n const fType = gen.let(\"fType\");\n const format = gen.let(\"format\");\n // TODO simplify\n gen.if((0, codegen_1._) `typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._) `${fDef}.type || \"string\"`).assign(format, (0, codegen_1._) `${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._) `\"string\"`).assign(format, fDef));\n cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt()));\n function unknownFmt() {\n if (opts.strictSchema === false)\n return codegen_1.nil;\n return (0, codegen_1._) `${schemaCode} && !${format}`;\n }\n function invalidFmt() {\n const callFormat = schemaEnv.$async\n ? (0, codegen_1._) `(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : (0, codegen_1._) `${format}(${data})`;\n const validData = (0, codegen_1._) `(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`;\n return (0, codegen_1._) `${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`;\n }\n }\n function validateFormat() {\n const formatDef = self.formats[schema];\n if (!formatDef) {\n unknownFormat();\n return;\n }\n if (formatDef === true)\n return;\n const [fmtType, format, fmtRef] = getFormat(formatDef);\n if (fmtType === ruleType)\n cxt.pass(validCondition());\n function unknownFormat() {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg());\n return;\n }\n throw new Error(unknownMsg());\n function unknownMsg() {\n return `unknown format \"${schema}\" ignored in schema at path \"${errSchemaPath}\"`;\n }\n }\n function getFormat(fmtDef) {\n const code = fmtDef instanceof RegExp\n ? (0, codegen_1.regexpCode)(fmtDef)\n : opts.code.formats\n ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(schema)}`\n : undefined;\n const fmt = gen.scopeValue(\"formats\", { key: schema, ref: fmtDef, code });\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, (0, codegen_1._) `${fmt}.validate`];\n }\n return [\"string\", fmtDef, fmt];\n }\n function validCondition() {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async)\n throw new Error(\"async format in sync schema\");\n return (0, codegen_1._) `await ${fmtRef}(${data})`;\n }\n return typeof format == \"function\" ? (0, codegen_1._) `${fmtRef}(${data})` : (0, codegen_1._) `${fmtRef}.test(${data})`;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=format.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst format_1 = require(\"./format\");\nconst format = [format_1.default];\nexports.default = format;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentVocabulary = exports.metadataVocabulary = void 0;\nexports.metadataVocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n];\nexports.contentVocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n];\n//# sourceMappingURL=metadata.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"./core\");\nconst validation_1 = require(\"./validation\");\nconst applicator_1 = require(\"./applicator\");\nconst format_1 = require(\"./format\");\nconst metadata_1 = require(\"./metadata\");\nconst draft7Vocabularies = [\n core_1.default,\n validation_1.default,\n (0, applicator_1.default)(),\n format_1.default,\n metadata_1.metadataVocabulary,\n metadata_1.contentVocabulary,\n];\nexports.default = draft7Vocabularies;\n//# sourceMappingURL=draft7.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiscrError = void 0;\nvar DiscrError;\n(function (DiscrError) {\n DiscrError[\"Tag\"] = \"tag\";\n DiscrError[\"Mapping\"] = \"mapping\";\n})(DiscrError || (exports.DiscrError = DiscrError = {}));\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst types_1 = require(\"../discriminator/types\");\nconst compile_1 = require(\"../../compile\");\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._) `{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n};\nconst def = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt) {\n const { gen, data, schema, parentSchema, it } = cxt;\n const { oneOf } = parentSchema;\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\");\n }\n const tagName = schema.propertyName;\n if (typeof tagName != \"string\")\n throw new Error(\"discriminator: requires propertyName\");\n if (schema.mapping)\n throw new Error(\"discriminator: mapping is not supported\");\n if (!oneOf)\n throw new Error(\"discriminator: requires oneOf keyword\");\n const valid = gen.let(\"valid\", false);\n const tag = gen.const(\"tag\", (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(tagName)}`);\n gen.if((0, codegen_1._) `typeof ${tag} == \"string\"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName }));\n cxt.ok(valid);\n function validateMapping() {\n const mapping = getMapping();\n gen.if(false);\n for (const tagValue in mapping) {\n gen.elseIf((0, codegen_1._) `${tag} === ${tagValue}`);\n gen.assign(valid, applyTagSchema(mapping[tagValue]));\n }\n gen.else();\n cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName });\n gen.endIf();\n }\n function applyTagSchema(schemaProp) {\n const _valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({ keyword: \"oneOf\", schemaProp }, _valid);\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n return _valid;\n }\n function getMapping() {\n var _a;\n const oneOfMapping = {};\n const topRequired = hasRequired(parentSchema);\n let tagRequired = true;\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i];\n if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {\n const ref = sch.$ref;\n sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref);\n if (sch instanceof compile_1.SchemaEnv)\n sch = sch.schema;\n if (sch === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, it.baseId, ref);\n }\n const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];\n if (typeof propSch != \"object\") {\n throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`);\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch));\n addMappings(propSch, i);\n }\n if (!tagRequired)\n throw new Error(`discriminator: \"${tagName}\" must be required`);\n return oneOfMapping;\n function hasRequired({ required }) {\n return Array.isArray(required) && required.includes(tagName);\n }\n function addMappings(sch, i) {\n if (sch.const) {\n addMapping(sch.const, i);\n }\n else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i);\n }\n }\n else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`);\n }\n }\n function addMapping(tagValue, i) {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`);\n }\n oneOfMapping[tagValue] = i;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0;\nconst core_1 = require(\"./core\");\nconst draft7_1 = require(\"./vocabularies/draft7\");\nconst discriminator_1 = require(\"./vocabularies/discriminator\");\nconst draft7MetaSchema = require(\"./refs/json-schema-draft-07.json\");\nconst META_SUPPORT_DATA = [\"/properties\"];\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\";\nclass Ajv extends core_1.default {\n _addVocabularies() {\n super._addVocabularies();\n draft7_1.default.forEach((v) => this.addVocabulary(v));\n if (this.opts.discriminator)\n this.addKeyword(discriminator_1.default);\n }\n _addDefaultMetaSchema() {\n super._addDefaultMetaSchema();\n if (!this.opts.meta)\n return;\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n : draft7MetaSchema;\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false);\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID;\n }\n defaultMeta() {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined));\n }\n}\nexports.Ajv = Ajv;\nmodule.exports = exports = Ajv;\nmodule.exports.Ajv = Ajv;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Ajv;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nvar validation_error_1 = require(\"./runtime/validation_error\");\nObject.defineProperty(exports, \"ValidationError\", { enumerable: true, get: function () { return validation_error_1.default; } });\nvar ref_error_1 = require(\"./compile/ref_error\");\nObject.defineProperty(exports, \"MissingRefError\", { enumerable: true, get: function () { return ref_error_1.default; } });\n//# sourceMappingURL=ajv.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatLimitDefinition = void 0;\nconst ajv_1 = require(\"ajv\");\nconst codegen_1 = require(\"ajv/dist/compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n formatMaximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n formatMinimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n formatExclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n formatExclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => codegen_1.str `should be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => codegen_1._ `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nexports.formatLimitDefinition = {\n keyword: Object.keys(KWDs),\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, keyword, it } = cxt;\n const { opts, self } = it;\n if (!opts.validateFormats)\n return;\n const fCxt = new ajv_1.KeywordCxt(it, self.RULES.all.format.definition, \"format\");\n if (fCxt.$data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fmt = gen.const(\"fmt\", codegen_1._ `${fmts}[${fCxt.schemaCode}]`);\n cxt.fail$data(codegen_1.or(codegen_1._ `typeof ${fmt} != \"object\"`, codegen_1._ `${fmt} instanceof RegExp`, codegen_1._ `typeof ${fmt}.compare != \"function\"`, compareCode(fmt)));\n }\n function validateFormat() {\n const format = fCxt.schema;\n const fmtDef = self.formats[format];\n if (!fmtDef || fmtDef === true)\n return;\n if (typeof fmtDef != \"object\" ||\n fmtDef instanceof RegExp ||\n typeof fmtDef.compare != \"function\") {\n throw new Error(`\"${keyword}\": format \"${format}\" does not define \"compare\" function`);\n }\n const fmt = gen.scopeValue(\"formats\", {\n key: format,\n ref: fmtDef,\n code: opts.code.formats ? codegen_1._ `${opts.code.formats}${codegen_1.getProperty(format)}` : undefined,\n });\n cxt.fail$data(compareCode(fmt));\n }\n function compareCode(fmt) {\n return codegen_1._ `${fmt}.compare(${data}, ${schemaCode}) ${KWDs[keyword].fail} 0`;\n }\n },\n dependencies: [\"format\"],\n};\nconst formatLimitPlugin = (ajv) => {\n ajv.addKeyword(exports.formatLimitDefinition);\n return ajv;\n};\nexports.default = formatLimitPlugin;\n//# sourceMappingURL=limit.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst formats_1 = require(\"./formats\");\nconst limit_1 = require(\"./limit\");\nconst codegen_1 = require(\"ajv/dist/compile/codegen\");\nconst fullName = new codegen_1.Name(\"fullFormats\");\nconst fastName = new codegen_1.Name(\"fastFormats\");\nconst formatsPlugin = (ajv, opts = { keywords: true }) => {\n if (Array.isArray(opts)) {\n addFormats(ajv, opts, formats_1.fullFormats, fullName);\n return ajv;\n }\n const [formats, exportName] = opts.mode === \"fast\" ? [formats_1.fastFormats, fastName] : [formats_1.fullFormats, fullName];\n const list = opts.formats || formats_1.formatNames;\n addFormats(ajv, list, formats, exportName);\n if (opts.keywords)\n limit_1.default(ajv);\n return ajv;\n};\nformatsPlugin.get = (name, mode = \"full\") => {\n const formats = mode === \"fast\" ? formats_1.fastFormats : formats_1.fullFormats;\n const f = formats[name];\n if (!f)\n throw new Error(`Unknown format \"${name}\"`);\n return f;\n};\nfunction addFormats(ajv, list, fs, exportName) {\n var _a;\n var _b;\n (_a = (_b = ajv.opts.code).formats) !== null && _a !== void 0 ? _a : (_b.formats = codegen_1._ `require(\"ajv-formats/dist/formats\").${exportName}`);\n for (const f of list)\n ajv.addFormat(f, fs[f]);\n}\nmodule.exports = exports = formatsPlugin;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = formatsPlugin;\n//# sourceMappingURL=index.js.map","import { isObject, RJSF_ADDITIONAL_PROPERTIES_FLAG } from '@rjsf/utils';\nimport Ajv from 'ajv';\nimport addFormats from 'ajv-formats';\nexport const AJV_CONFIG = {\n allErrors: true,\n multipleOfPrecision: 8,\n strict: false,\n verbose: true,\n discriminator: false, // TODO enable this in V6\n};\nexport const COLOR_FORMAT_REGEX = /^(#?([0-9A-Fa-f]{3}){1,2}\\b|aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow|(rgb\\(\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*,\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*,\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*\\))|(rgb\\(\\s*(\\d?\\d%|100%)+\\s*,\\s*(\\d?\\d%|100%)+\\s*,\\s*(\\d?\\d%|100%)+\\s*\\)))$/;\nexport const DATA_URL_FORMAT_REGEX = /^data:([a-z]+\\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/;\n/** Creates an Ajv version 8 implementation object with standard support for the 'color` and `data-url` custom formats.\n * If `additionalMetaSchemas` are provided then the Ajv instance is modified to add each of the meta schemas in the\n * list. If `customFormats` are provided then those additional formats are added to the list of supported formats. If\n * `ajvOptionsOverrides` are provided then they are spread on top of the default `AJV_CONFIG` options when constructing\n * the `Ajv` instance. With Ajv v8, the JSON Schema formats are not provided by default, but can be plugged in. By\n * default, all formats from the `ajv-formats` library are added. To disable this capability, set the `ajvFormatOptions`\n * parameter to `false`. Additionally, you can configure the `ajv-formats` by providing a custom set of\n * [format options](https://github.com/ajv-validator/ajv-formats) to the `ajvFormatOptions` parameter.\n *\n * @param [additionalMetaSchemas] - The list of additional meta schemas that the validator can access\n * @param [customFormats] - The set of additional custom formats that the validator will support\n * @param [ajvOptionsOverrides={}] - The set of validator config override options\n * @param [ajvFormatOptions] - The `ajv-format` options to use when adding formats to `ajv`; pass `false` to disable it\n * @param [AjvClass] - The `Ajv` class to use when creating the validator instance\n * @param [extenderFn] - A function to call to extend AJV, such as `ajvErrors()`\n */\nexport default function createAjvInstance(additionalMetaSchemas, customFormats, ajvOptionsOverrides = {}, ajvFormatOptions, AjvClass = Ajv, extenderFn) {\n let ajv = new AjvClass({ ...AJV_CONFIG, ...ajvOptionsOverrides });\n if (ajvFormatOptions) {\n addFormats(ajv, ajvFormatOptions);\n }\n else if (ajvFormatOptions !== false) {\n addFormats(ajv);\n }\n // add custom formats\n ajv.addFormat('data-url', DATA_URL_FORMAT_REGEX);\n ajv.addFormat('color', COLOR_FORMAT_REGEX);\n // Register the remaining string-keyed RJSF property so AJV strict mode doesn't reject it.\n // ADDITIONAL_PROPERTY_FLAG, RJSF_REF_KEY, and RJSF_REF_CYCLE_KEY are now Symbols and\n // invisible to AJV, so they no longer need to be registered as keywords.\n ajv.addKeyword(RJSF_ADDITIONAL_PROPERTIES_FLAG);\n // add more schemas to validate against\n if (Array.isArray(additionalMetaSchemas)) {\n ajv.addMetaSchema(additionalMetaSchemas);\n }\n // add more custom formats to validate against\n if (isObject(customFormats)) {\n Object.keys(customFormats).forEach((formatName) => {\n ajv.addFormat(formatName, customFormats[formatName]);\n });\n }\n if (extenderFn) {\n ajv = extenderFn(ajv);\n }\n return ajv;\n}\n//# sourceMappingURL=createAjvInstance.js.map","import { deepEquals, ID_KEY, ROOT_SCHEMA_PREFIX, withIdRefPrefix, hashForSchema } from '@rjsf/utils';\nimport createAjvInstance from \"./createAjvInstance.js\";\nimport processRawValidationErrors from \"./processRawValidationErrors.js\";\n/** `ValidatorType` implementation that uses the AJV 8 validation mechanism.\n */\nexport default class AJV8Validator {\n /** The AJV instance to use for all validations\n *\n * @private\n */\n ajv;\n /** The Localizer function to use for localizing Ajv errors\n *\n * @private\n */\n localizer;\n /** Controls which duplicate error filtering is suppressed; see `filterDuplicateErrors`\n *\n * @private\n */\n suppressDuplicateFiltering;\n /** Most recent `rootSchema` reference processed by `handleSchemaUpdate`.\n *\n * @private\n */\n lastSeenRootSchema;\n /** True once a `rootSchema` has been registered with Ajv in this lifecycle.\n *\n * @private\n */\n hasRegisteredRootSchema = false;\n /** Constructs an `AJV8Validator` instance using the `options`\n *\n * @param options - The `CustomValidatorOptionsType` options that are used to create the AJV instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\n constructor(options, localizer) {\n const { additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass, extenderFn, suppressDuplicateFiltering, } = options;\n this.ajv = createAjvInstance(additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass, extenderFn);\n this.localizer = localizer;\n this.suppressDuplicateFiltering = suppressDuplicateFiltering;\n }\n /** Resets the internal AJV validator to clear schemas from it. Can be helpful for resetting the validator for tests.\n */\n reset() {\n this.ajv.removeSchema();\n this.lastSeenRootSchema = undefined;\n this.hasRegisteredRootSchema = false;\n }\n /** Runs the pure validation of the `schema` and `formData` without any of the RJSF functionality. Provided for use\n * by the playground. Returns the `errors` from the validation\n *\n * @param schema - The schema against which to validate the form data * @param schema\n * @param formData - The form data to validate\n */\n rawValidation(schema, formData) {\n let compilationError = undefined;\n let compiledValidator;\n try {\n if (schema[ID_KEY]) {\n compiledValidator = this.ajv.getSchema(schema[ID_KEY]);\n }\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schema);\n }\n compiledValidator(formData);\n }\n catch (err) {\n compilationError = err;\n // AJV registers a schema in its internal cache before running meta-schema\n // validation. When that check throws, the broken schema stays cached so\n // subsequent compile() calls skip revalidation and return silently. Remove\n // the entry so every call with an invalid schema consistently produces a\n // compilation error. For schemas with $id the cache key is the id string;\n // for anonymous schemas AJV uses the object reference as the key.\n // Guard with compiledValidator === undefined so that a runtime error thrown\n // by compiledValidator(formData) does not evict a correctly-compiled schema.\n if (compiledValidator === undefined) {\n this.ajv.removeSchema(schema[ID_KEY] !== undefined ? schema[ID_KEY] : schema);\n }\n }\n let errors;\n if (compiledValidator) {\n if (typeof this.localizer === 'function') {\n // Properties need to be enclosed with quotes so that\n // `AJV8Validator#transformRJSFValidationErrors` replaces property names\n // with `title` or `ui:title`. See #4348, #4349, #4387, and #4402.\n (compiledValidator.errors ?? []).forEach((error) => {\n ['missingProperty', 'property'].forEach((key) => {\n if (error.params?.[key]) {\n // oxlint-disable-next-line no-param-reassign\n error.params[key] = `'${error.params[key]}'`;\n }\n });\n if (error.params?.deps) {\n // As `error.params.deps` is the comma+space separated list of missing dependencies, enclose each dependency separately.\n // For example, `A, B` is converted into `'A', 'B'`.\n // oxlint-disable-next-line no-param-reassign\n error.params.deps = error.params.deps\n .split(', ')\n .map((v) => `'${v}'`)\n .join(', ');\n }\n });\n this.localizer(compiledValidator.errors);\n // Revert to originals\n (compiledValidator.errors ?? []).forEach((error) => {\n ['missingProperty', 'property'].forEach((key) => {\n if (error.params?.[key]) {\n // oxlint-disable-next-line no-param-reassign\n error.params[key] = error.params[key].slice(1, -1);\n }\n });\n if (error.params?.deps) {\n // Remove surrounding quotes from each missing dependency. For example, `'A', 'B'` is reverted to `A, B`.\n // oxlint-disable-next-line no-param-reassign\n error.params.deps = error.params.deps\n .split(', ')\n .map((v) => v.slice(1, -1))\n .join(', ');\n }\n });\n }\n errors = compiledValidator.errors || undefined;\n // Clear errors to prevent persistent errors, see #1104\n compiledValidator.errors = null;\n }\n return {\n errors: errors,\n validationError: compilationError,\n };\n }\n /** This function processes the `formData` with an optional user contributed `customValidate` function, which receives\n * the form data and a `errorHandler` function that will be used to add custom validation errors for each field. Also\n * supports a `transformErrors` function that will take the raw AJV validation errors, prior to custom validation and\n * transform them in what ever way it chooses.\n *\n * @param formData - The form data to validate\n * @param schema - The schema against which to validate the form data\n * @param [customValidate] - An optional function that is used to perform custom validation\n * @param [transformErrors] - An optional function that is used to transform errors after AJV validation\n * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`\n */\n validateFormData(formData, schema, customValidate, transformErrors, uiSchema) {\n const rawErrors = this.rawValidation(schema, formData);\n return processRawValidationErrors(this, rawErrors, formData, schema, customValidate, transformErrors, uiSchema, this.suppressDuplicateFiltering);\n }\n /**\n * This function checks if a schema needs to be added and if the root schemas don't match it removes the old root schema from the ajv instance and adds the new one.\n * When called repeatedly with the same `rootSchema` reference the deep-equality check is skipped.\n *\n * @param rootSchema - The root schema used to provide $ref resolutions\n */\n handleSchemaUpdate(rootSchema) {\n if (this.lastSeenRootSchema === rootSchema && this.hasRegisteredRootSchema) {\n return;\n }\n const rootSchemaId = rootSchema[ID_KEY] ?? ROOT_SCHEMA_PREFIX;\n // add the rootSchema ROOT_SCHEMA_PREFIX as id.\n // if schema validator instance doesn't exist, add it.\n // else if the root schemas don't match, we should remove and add the root schema so we don't have to remove and recompile the schema every run.\n if (this.ajv.getSchema(rootSchemaId) === undefined) {\n this.ajv.addSchema(rootSchema, rootSchemaId);\n }\n else if (!deepEquals(rootSchema, this.ajv.getSchema(rootSchemaId)?.schema)) {\n this.ajv.removeSchema(rootSchemaId);\n this.ajv.addSchema(rootSchema, rootSchemaId);\n }\n this.lastSeenRootSchema = rootSchema;\n this.hasRegisteredRootSchema = true;\n }\n /** Validates data against a schema, returning true if the data is valid, or\n * false otherwise. If the schema is invalid, then this function will return\n * false.\n *\n * @param schema - The schema against which to validate the form data\n * @param formData - The form data to validate\n * @param rootSchema - The root schema used to provide $ref resolutions\n */\n isValid(schema, formData, rootSchema) {\n // schemaId and compiled are declared outside the try so the catch block can\n // conditionally remove the broken schema from AJV's registry.\n let schemaId;\n let compiled = false;\n try {\n this.handleSchemaUpdate(rootSchema);\n // then rewrite the schema ref's to point to the rootSchema\n // this accounts for the case where schema have references to models\n // that lives in the rootSchema but not in the schema in question.\n const schemaWithIdRefPrefix = withIdRefPrefix(schema);\n schemaId = schemaWithIdRefPrefix[ID_KEY] ?? hashForSchema(schemaWithIdRefPrefix);\n let compiledValidator;\n compiledValidator = this.ajv.getSchema(schemaId);\n if (compiledValidator === undefined) {\n // Add schema by an explicit ID so it can be fetched later\n // Fall back to using compile if necessary\n // https://ajv.js.org/guide/managing-schemas.html#pre-adding-all-schemas-vs-adding-on-demand\n compiledValidator =\n this.ajv.addSchema(schemaWithIdRefPrefix, schemaId).getSchema(schemaId) ||\n this.ajv.compile(schemaWithIdRefPrefix);\n }\n compiled = true;\n const result = compiledValidator(formData);\n return result;\n }\n catch (e) {\n // oxlint-disable-next-line no-console\n console.warn('Error encountered compiling schema:', e);\n // Remove the broken schema from AJV's registry so a subsequent rawValidation\n // or isValid call does not silently reuse a cached entry that bypassed\n // meta-schema validation. Guard with !compiled so that a runtime error thrown\n // by compiledValidator(formData) does not evict a correctly-compiled schema.\n if (!compiled && schemaId !== undefined) {\n this.ajv.removeSchema(schemaId);\n }\n return false;\n }\n }\n}\n//# sourceMappingURL=validator.js.map","import AJV8Validator from \"./validator.js\";\n/** Creates and returns a customized implementation of the `ValidatorType` with the given customization `options` if\n * provided. If a `localizer` is provided, it is used to translate the messages generated by the underlying AJV\n * validation.\n *\n * @param [options={}] - The `CustomValidatorOptionsType` options that are used to create the `ValidatorType` instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n * @returns - The custom validator implementation resulting from the set of parameters provided\n */\nexport default function customizeValidator(options = {}, localizer) {\n return new AJV8Validator(options, localizer);\n}\n//# sourceMappingURL=customizeValidator.js.map","import createPrecompiledValidator from \"./createPrecompiledValidator.js\";\nimport customizeValidator from \"./customizeValidator.js\";\nexport { customizeValidator, createPrecompiledValidator };\nexport default customizeValidator();\n//# sourceMappingURL=index.js.map","// Schema-Generated Configuration Form\n// Purpose: Renders the server-provided JSON Schema as an ordered, indented tree resembling the configuration's YAML structure.\n// Scope: Defines one generic RJSF presentation; it never names or special-cases an individual service or setting.\nimport { createContext, useContext, useMemo } from 'react';\nimport Form from '@rjsf/core';\nimport validator from '@rjsf/validator-ajv8';\nimport CardFrame from '../../components/CardFrame/index.jsx';\n\n/*\n Structural colors repeat only after six levels, which is deeper than the\n current configuration document but remains safe for future service-owned\n schemas. Depth is carried through React context because RJSF's array-item\n template does not receive a field path; context keeps objects, arrays, and\n array items in one generic hierarchy without attaching UI metadata to the\n server's schema.\n*/\nconst CONFIGURATION_LAYER_COLORS = [\n '#0ea5e9', // sky\n '#6366f1', // indigo\n '#a855f7', // purple\n '#14b8a6', // teal\n '#f59e0b', // amber\n '#ec4899', // pink\n];\nconst ConfigurationLayerDepthContext = createContext(0);\n\nfunction useConfigurationLayer() {\n const depth = useContext(ConfigurationLayerDepthContext);\n return {\n color: CONFIGURATION_LAYER_COLORS[depth % CONFIGURATION_LAYER_COLORS.length],\n depth,\n };\n}\n\nfunction buildUiSchema(schema, path = '') {\n /*\n `writeOnly` is standard JSON Schema metadata and is the sole reason a field\n needs a special widget. The walk records its dotted path for the existing\n server secret-operation protocol; it contains no service or field names.\n */\n if (!schema || typeof schema !== 'object') return {};\n const firstExample = Array.isArray(schema.examples) ? schema.examples[0] : undefined;\n const placeholder = firstExample === undefined ? {} : { 'ui:placeholder': String(firstExample) };\n\n if (schema.writeOnly === true) {\n return {\n 'ui:widget': 'SecretWidget',\n 'ui:options': { secretPath: path },\n ...placeholder,\n };\n }\n\n if (schema.type === 'boolean') {\n /*\n RJSF's checkbox is unusual: unless it is explicitly selected, it renders\n the schema description and field name inside the widget as well as\n passing them to FieldTemplate. This generic option makes the surrounding\n YAML-like row the sole owner of that text, eliminating duplicates without\n maintaining a list of boolean setting names.\n */\n return {\n 'ui:widget': 'checkbox',\n 'ui:options': { label: false },\n };\n }\n\n if (schema.type === 'array' && schema.items) {\n /*\n Array item schemas need the same generic metadata walk as ordinary object\n properties. Otherwise fields created by Add item would lose their\n schema-owned placeholders even though the backend described them.\n */\n return {\n items: buildUiSchema(schema.items, path ? `${path}[]` : '[]'),\n };\n }\n\n if (schema.type !== 'object' || !schema.properties) return placeholder;\n return Object.fromEntries(Object.entries(schema.properties).map(([key, childSchema]) => [\n key,\n buildUiSchema(childSchema, path ? `${path}.${key}` : key),\n ]));\n}\n\nfunction SecretWidget({ id, disabled, readonly, options, placeholder, registry }) {\n const secretPath = options.secretPath;\n const context = registry.formContext || {};\n const operation = context.secretOperations?.[secretPath];\n const configured = Boolean(context.configuredSecrets?.[secretPath]);\n const replacing = operation?.action === 'replace';\n const clearing = operation?.action === 'clear';\n const unavailable = disabled || readonly;\n\n function setOperation(nextOperation) {\n if (!unavailable) context.setSecretOperation?.(secretPath, nextOperation);\n }\n\n return (\n
\n {/* Secret actions stay beside their status. A wide configuration card\n must not turn related controls into a trip across the screen. */}\n
\n \n {clearing ? 'Will be cleared when saved' : replacing ? 'Replacement pending' : configured ? 'Configured' : 'Not configured'}\n \n
\n \n \n
\n
\n {replacing ? (\n setOperation({ action: 'replace', value: event.target.value })}\n />\n ) : null}\n
\n );\n}\n\nfunction ConfigurationFieldTemplate({\n children,\n classNames,\n description,\n errors,\n help,\n hidden,\n id,\n label,\n required,\n schema,\n style,\n}) {\n if (hidden) return
{children}
;\n\n const containerField = schema?.type === 'object' || schema?.type === 'array';\n if (containerField) {\n // Objects and arrays own their visible boundaries and headings in the\n // templates below. Keeping this wrapper structural avoids duplicated\n // titles while retaining RJSF's useful field-type classes for layout.\n return
{children}{errors}{help}
;\n }\n\n return (\n
\n
\n {/* Boolean widgets deliberately hide their internal duplicate label, so\n every scalar can use this same key column and preserve YAML order. */}\n \n
\n
\n {/* Descriptions belong with the editable value rather than inside the\n narrow key column. This keeps long operational guidance readable\n without weakening the YAML-like key/value alignment. */}\n {description ?
{description}
: null}\n {children}\n {errors}\n {help}\n
\n
\n );\n}\n\nfunction ConfigurationObjectTemplate({ description, fieldPathId, properties, title }) {\n const visibleProperties = properties.filter((property) => !property.hidden);\n const propertyLines = visibleProperties.map((property) => property.content);\n const topLevel = fieldPathId.path.length === 1;\n const layer = useConfigurationLayer();\n\n if (fieldPathId.path.length === 0) {\n // The outer configuration card already names the root document. Rendering\n // its properties directly makes their schema order read like YAML lines.\n // The root description remains outside that stack so its introductory\n // text does not accidentally become another configuration section.\n return (\n
\n {description ?
{description}
: null}\n {/* The invisible schema root establishes depth zero. Every visible\n structural CardFrame below it advances the context by one level. */}\n \n
{propertyLines}
\n
\n
\n );\n }\n\n if (typeof fieldPathId.path.at(-1) === 'number') {\n // Array items receive their numbered heading and action row from the array\n // item CardFrame. Rendering only their description and ordered properties\n // prevents a redundant anonymous card inside that visible item boundary.\n return (\n
\n {description ?
{description}
: null}\n {propertyLines}\n
\n );\n }\n\n return (\n \n {description ?
{description}
: null}\n \n
{propertyLines}
\n
\n \n );\n}\n\nfunction ConfigurationArrayItemTemplate({ buttonsProps, children, hasToolbar, index }) {\n const unavailable = buttonsProps.disabled || buttonsProps.readonly;\n const layer = useConfigurationLayer();\n\n return (\n \n {hasToolbar ? (\n // Actions remain at the beginning of the card body instead of using\n // CardFrame's right-aligned action slot. Even on a wide editor, item\n // controls therefore stay next to the content they affect.\n
\n {(buttonsProps.hasMoveUp || buttonsProps.hasMoveDown) ? (\n \n ) : null}\n {(buttonsProps.hasMoveUp || buttonsProps.hasMoveDown) ? (\n \n ) : null}\n {buttonsProps.hasCopy ? (\n \n ) : null}\n {buttonsProps.hasRemove ? (\n \n ) : null}\n
\n ) : null}\n \n
{children}
\n
\n \n );\n}\n\nfunction ConfigurationArrayTemplate({ canAdd, disabled, fieldPathId, items, onAddClick, readonly, schema, title }) {\n const topLevel = fieldPathId.path.length === 1;\n const layer = useConfigurationLayer();\n\n return (\n \n {schema.description ?
{schema.description}
: null}\n {canAdd ? (\n // Adding belongs to the collection as a whole, but stays left-aligned\n // with that collection's contents rather than at the viewport edge.\n
\n \n
\n ) : null}\n \n
\n {items.length ? items :

No items configured.

}\n
\n
\n \n );\n}\n\nexport default function SchemaConfigurationForm({ schema, value, onChange, configuredSecrets, secretOperations, setSecretOperation }) {\n const uiSchema = useMemo(() => buildUiSchema(schema), [schema]);\n const widgets = useMemo(() => ({ SecretWidget }), []);\n const templates = useMemo(() => ({\n ArrayFieldItemTemplate: ConfigurationArrayItemTemplate,\n ArrayFieldTemplate: ConfigurationArrayTemplate,\n FieldTemplate: ConfigurationFieldTemplate,\n ObjectFieldTemplate: ConfigurationObjectTemplate,\n }), []);\n const formContext = useMemo(() => ({\n configuredSecrets,\n secretOperations,\n setSecretOperation,\n }), [configuredSecrets, secretOperations, setSecretOperation]);\n\n return (\n
\n onChange(formData)}\n >\n {/* Saving is owned by the sticky revision-aware toolbar above the form. */}\n <>\n \n
\n );\n}\n","// Complete Configuration Editor\n// Purpose: Connects the one hierarchical configuration form to revision, secret, validation, and save behavior.\n// Scope: Edits and saves one complete configuration document as one immutable revision.\nimport { useEffect, useMemo, useState } from 'react';\nimport CardFrame from '../../components/CardFrame/index.jsx';\nimport { updateConfiguration } from '../api.js';\nimport SchemaConfigurationForm from './SchemaConfigurationForm.jsx';\n\nfunction clone(value) {\n return JSON.parse(JSON.stringify(value));\n}\n\nexport default function ConfigurationEditor({ snapshot, socket, runSensitive, onSnapshot, onReload }) {\n const serverValue = snapshot?.configuration?.config;\n const schema = snapshot?.configuration?.schema;\n const revision = snapshot?.configuration?.revision;\n const [draft, setDraft] = useState(() => clone(serverValue));\n const [secretOperations, setSecretOperations] = useState({});\n const [saving, setSaving] = useState(false);\n const [error, setError] = useState('');\n const [validationErrors, setValidationErrors] = useState([]);\n\n useEffect(() => {\n setDraft(clone(serverValue));\n setSecretOperations({});\n setError('');\n setValidationErrors([]);\n }, [revision, serverValue]);\n\n const dirty = useMemo(\n () => JSON.stringify(draft) !== JSON.stringify(serverValue) || Object.keys(secretOperations).length > 0,\n [draft, secretOperations, serverValue],\n );\n\n if (!serverValue || !schema) {\n return

The configuration document is unavailable.

;\n }\n\n const setSecretOperation = (path, operation) => setSecretOperations((current) => {\n const next = { ...current };\n if (operation) next[path] = operation;\n else delete next[path];\n return next;\n });\n\n async function save() {\n setSaving(true);\n setError('');\n setValidationErrors([]);\n try {\n const response = await runSensitive(() => updateConfiguration(socket, {\n value: draft,\n expectedRevision: revision,\n secretOperations,\n }));\n onSnapshot(response.snapshot);\n } catch (saveError) {\n setError(saveError.message);\n setValidationErrors(saveError.validationErrors || []);\n } finally {\n setSaving(false);\n }\n }\n\n return (\n \n
\n

Saved changes apply after an application restart.

\n {/* All document actions stay together at the start of the toolbar. The\n editor may use a wide canvas, but width is never used to separate a\n control from the content that explains it. */}\n
\n \n \n \n
\n
\n {error ?

{error}

: null}\n {validationErrors.length ? (\n
\n

Configuration could not be saved

\n
    \n {validationErrors.map((validationError, index) => (\n
  • {validationError.path}: {validationError.message}
  • \n ))}\n
\n
\n ) : null}\n \n
\n );\n}\n","// Password Confirmation Dialog\n// Purpose: Collects recent password proof for sensitive administrative mutations without storing it in page state longer than necessary.\n// Scope: Handles confirmation presentation only; retry ownership remains in AdminApp.\nimport { useState } from 'react';\n\nexport default function PasswordConfirmationDialog({ open, busy, error, onCancel, onConfirm }) {\n const [password, setPassword] = useState('');\n if (!open) return null;\n\n async function submit(event) {\n event.preventDefault();\n await onConfirm(password);\n setPassword('');\n }\n\n function cancel() {\n // Clear the credential before closing because this component remains\n // mounted beneath the admin shell and would otherwise retain it in memory.\n setPassword('');\n onCancel();\n }\n\n return (\n
\n
\n

Confirm password

\n

This sensitive action requires recent confirmation of your administrator password.

\n setPassword(event.target.value)}\n />\n {error ?

{error}

: null}\n
\n \n \n
\n \n
\n );\n}\n","// Central Administration Application\n// Purpose: Composes authentication, operational controls, users, and one complete configuration editor under /admin.\n// Scope: Reuses existing admin/identity components while shared infrastructure owns revisions and sensitive-action behavior.\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { useSearchParams } from 'react-router-dom';\nimport AuthPanel from '../components/AuthPanel/index.jsx';\nimport AdminPanelContent from '../components/AdminPanel/AdminPanelContent.jsx';\nimport CardFrame from '../components/CardFrame/index.jsx';\nimport SocketConnectionPill from '../components/SocketConnectionPill/index.jsx';\nimport Tabs, { Tab, TabList, TabPanels } from '../components/Tabs/index.jsx';\nimport { useSessionSelector } from '../context/SessionContext.jsx';\nimport { useSocket } from '../context/SocketContext.jsx';\nimport IdentityDatabasePanel from '../database/IdentityDatabasePanel.jsx';\nimport useUserIdentitySync from '../hooks/useUserIdentitySync.js';\nimport { useSettingsNamespace } from '../settings/index.js';\nimport { DEFAULT_PAGE_THEME_KEY, usePageThemeClass } from '../themes/index.js';\nimport { confirmAdminPassword, getAdminSnapshot } from './api.js';\nimport AdministratorAccounts from './components/AdministratorAccounts.jsx';\nimport AdminOverview from './components/AdminOverview.jsx';\nimport ConfigurationEditor from './components/ConfigurationEditor.jsx';\nimport PasswordConfirmationDialog from './components/PasswordConfirmationDialog.jsx';\nimport './styles.css';\n\nconst TOP_LEVEL_SECTIONS = [\n { key: 'overview', label: 'Overview' },\n { key: 'fleet', label: 'Fleet operations' },\n { key: 'users', label: 'Users and administrators', lockdownOnly: true },\n { key: 'configuration', label: 'Configuration', lockdownOnly: true },\n];\n\nexport default function AdminApp() {\n useUserIdentitySync({ identitySurface: 'passive' });\n const socket = useSocket();\n const role = useSessionSelector((state) => state.session?.role || 'user');\n const connected = useSessionSelector((state) => state.connected);\n const [searchParams, setSearchParams] = useSearchParams();\n const selected = searchParams.get('section') || 'overview';\n const [snapshot, setSnapshot] = useState(null);\n const [loadingError, setLoadingError] = useState('');\n const pendingSensitiveAction = useRef(null);\n const [confirmationOpen, setConfirmationOpen] = useState(false);\n const [confirmationBusy, setConfirmationBusy] = useState(false);\n const [confirmationError, setConfirmationError] = useState('');\n const { value: pageSettings } = useSettingsNamespace('page', { backgroundTheme: DEFAULT_PAGE_THEME_KEY });\n const pageBackgroundClass = usePageThemeClass(pageSettings?.backgroundTheme);\n const isAdmin = role === 'admin' || role === 'lockdown';\n const isLockdown = role === 'lockdown';\n\n const loadSnapshot = useCallback(async () => {\n if (!isLockdown) {\n setSnapshot(null);\n return;\n }\n setLoadingError('');\n try {\n setSnapshot(await getAdminSnapshot(socket));\n } catch (error) {\n setLoadingError(error.message);\n }\n }, [isLockdown, socket]);\n\n useEffect(() => {\n loadSnapshot();\n }, [loadSnapshot, connected]);\n\n const runSensitive = useCallback(async (operation) => {\n try {\n return await operation();\n } catch (error) {\n if (error.code !== 'PASSWORD_CONFIRMATION_REQUIRED') throw error;\n /*\n Suspend exactly the rejected operation. After password confirmation the\n same closure reruns with its original revision and payload, so normal\n conflict detection still protects against changes made while waiting.\n */\n return new Promise((resolve, reject) => {\n pendingSensitiveAction.current = { operation, resolve, reject };\n setConfirmationError('');\n setConfirmationOpen(true);\n });\n }\n }, []);\n\n async function submitPasswordConfirmation(password) {\n setConfirmationBusy(true);\n setConfirmationError('');\n try {\n await confirmAdminPassword(socket, password);\n const pending = pendingSensitiveAction.current;\n pendingSensitiveAction.current = null;\n setConfirmationOpen(false);\n if (pending) {\n try {\n pending.resolve(await pending.operation());\n } catch (error) {\n pending.reject(error);\n }\n }\n } catch (error) {\n setConfirmationError(error.message);\n } finally {\n setConfirmationBusy(false);\n }\n }\n\n function cancelPasswordConfirmation() {\n const pending = pendingSensitiveAction.current;\n pendingSensitiveAction.current = null;\n setConfirmationOpen(false);\n if (pending) pending.reject(new Error('Sensitive action cancelled.'));\n }\n\n function selectSection(key) {\n setSearchParams(key === 'overview' ? {} : { section: key });\n }\n\n const navigationOptions = TOP_LEVEL_SECTIONS.filter((entry) => !entry.lockdownOnly || isLockdown);\n const activeSection = navigationOptions.some((entry) => entry.key === selected) ? selected : 'overview';\n\n let content;\n if (!isAdmin) {\n content =
;\n } else if (activeSection === 'fleet') {\n content = ;\n } else if (!isLockdown) {\n content = (\n \n

Routine fleet operations are available. Configuration, users, secrets, and system administration require a lockdown administrator.

\n
\n );\n } else if (!snapshot) {\n content =

{loadingError || 'Loading configuration and audit state…'}

;\n } else if (activeSection === 'users') {\n content = (\n
\n \n \n
\n );\n } else if (activeSection === 'configuration') {\n content = ;\n } else {\n content = ;\n }\n\n return (\n
\n \n \n
\n \n

{snapshot ? `Active configuration revision ${snapshot.configuration.revision}.${snapshot.restartRequired ? ' An application restart is required to apply saved changes.' : ' The running application has loaded this revision.'}` : 'Central server administration and configuration.'}

\n
\n {isAdmin ? (\n \n {/* Reusing the same responsive tab surface as the driver page makes\n administration feel like another MultiRover workspace instead\n of a separate desktop-oriented application. */}\n \n
{content}
\n
\n ) :
{content}
}\n
\n
\n );\n}\n"],"names":["emitIdentityAdmin","socket","eventName","payload","resolve","reject","resp","listUsers","getUser","userId","addSignal","type","value","removeSignal","setVerified","enabled","setDeterrence","reason","setMuted","setPermission","permissionKey","updateFeatureState","namespace","deleteFeatureState","SIGNAL_LABELS","SIGNAL_FIELDS","maskValue","text","formatDateTime","ts","userMatchesQuery","user","query","needle","permission","userMatchesFilter","filter","stringifyJson","parseEditableJson","parsed","FILTERS","StatusPill","active","children","jsx","UserListCard","users","selectedUserId","loading","onQuery","onFilter","onRefresh","onSelect","filtered","useMemo","actions","jsxs","CardFrame","event","entry","UserDetailsCard","SignalEditor","onAdd","onRemove","draft","setDraft","useState","values","submit","SignalsCard","onAddSignal","onRemoveSignal","StatusCard","onVerified","onDeterrence","onMuted","setReason","FeatureStateCard","onSaveFeature","onDeleteFeature","namespaces","initialNamespace","setNamespace","setText","error","setError","save","ns","err","remove","next","RawRecordCard","PermissionsCard","permissions","onPermission","grantedKeys","IdentityDatabasePanel","useSocket","setUsers","setPermissions","selectedUser","setSelectedUser","setQuery","setFilter","setLoading","message","setMessage","refreshUsers","useCallback","updated","selectUser","applyUserUpdate","prev","runMutation","operation","successMessage","useEffect","handleAddSignal","handleRemoveSignal","handleVerified","handleDeterrence","handleMuted","handlePermission","handleSaveFeature","handleDeleteFeature","Fragment","Tabs","TabList","Tab","TabPanels","TabPanel","AdministratorRow","administrator","runSensitive","onSnapshot","busy","setBusy","perform","work","response","actionError","deleteAdministrator","updateAdministrator","AdministratorAccounts","administrators","create","createAdministrator","formatDate","AdminOverview","snapshot","config","restore","revision","restoreConfigurationRevision","Link","isObject","thing","allowAdditionalItems","schema","getDecimalSeparator","languages","locales","part","asNumber","separator","standardValue","ADDITIONAL_PROPERTY_FLAG","ADDITIONAL_PROPERTIES_KEY","ALL_OF_KEY","ANY_OF_KEY","CONST_KEY","DEFAULT_KEY","DEPENDENCIES_KEY","ENUM_KEY","ERRORS_KEY","ID_KEY","IF_KEY","ITEMS_KEY","JUNK_OPTION_ID","NAME_KEY","ONE_OF_KEY","PATTERN_PROPERTIES_KEY","PROPERTIES_KEY","READONLY_KEY","REQUIRED_KEY","SUBMIT_BTN_OPTIONS_KEY","REF_KEY","RJSF_REF_KEY","RJSF_REF_CYCLE_KEY","SCHEMA_KEY","DEFAULT_ID_PREFIX","DEFAULT_ID_SEPARATOR","DISCRIMINATOR_PATH","FORM_CONTEXT_NAME","LOOKUP_MAP_NAME","RJSF_PREFIX_KEY","RJSF_ADDITIONAL_PROPERTIES_FLAG","ROOT_SCHEMA_PREFIX","UI_FIELD_KEY","UI_WIDGET_KEY","UI_OPTIONS_KEY","UI_GLOBAL_OPTIONS_KEY","UI_DEFINITIONS_KEY","JSON_SCHEMA_DRAFT_2019_09","JSON_SCHEMA_DRAFT_2020_12","getUiOptions","uiSchema","globalOptions","key","options","canExpand","formData","expandable","isPlainObject","proto","createErrorHandler","handler","acc","getOwnPropertyNames","getOwnPropertySymbols","hasOwnProperty","combineComparators","comparatorA","comparatorB","a","b","state","createIsCircular","areItemsEqual","cache","cachedA","cachedB","result","getStrictProperties","object","symbols","hasOwn","property","PREACT_VNODE","PREACT_OWNER","REACT_OWNER","HAS_FLOAT_16_ARRAY","getOwnPropertyDescriptor","keys","sameValueEqual","strictEqual","areArrayBuffersEqual","areTypedArraysEqual","areArraysEqual","index","areDataViewsEqual","areDatesEqual","areErrorsEqual","areMapsEqual","size","matchedIndices","aIterable","aResult","bResult","bIterable","hasMatch","matchIndex","aEntry","bEntry","areObjectsEqual","properties","isPropertyEqual","areObjectsEqualStrict","descriptorA","descriptorB","arePrimitiveWrappersEqual","areRegExpsEqual","areSetsEqual","areUrlsEqual","areSearchParamsEqual","serializedA","serializedB","sortSearchParams","serialized","toString","createEqualityComparator","supportedComparatorMap","createSupportedComparatorMap","areFunctionsEqual","areNumbersEqual","getUnsupportedCustomComparator","constructor","tag","supportedComparator","unsupportedCustomComparator","createEqualityComparatorConfig","circular","createCustomConfig","strict","createInternalEqualityComparator","compare","_indexOrKeyA","_indexOrKeyB","_parentA","_parentB","createIsEqual","comparator","createState","equals","meta","createCustomEqual","createCustomInternalComparator","deepEquals","_a","isUUID","isIPv4","isPort","isHexPair","isUnreserved","isPathCharacter","isQueryFragmentCharacter","isUserinfoCharacter","stringArrayToHexStripped","input","code","i","isHextet","isIPvFuture","isZoneCharacter","nonSimpleDomain","nonSimpleDomainChars","numericLastLabel","nonSimpleMailtoDomain","domain","isZoneIdentifier","zone","compressIPv6ZeroRun","hextets","bestStart","bestLength","runStart","runLength","head","tail","normalizeIPv6Address","compression","left","right","parts","hextetCount","expanded","normalizeIPv6","host","bracketed","findToken","zoneIdentifier","zoneSeparator","separatorLength","address","str","token","ind","removeDotSegments","path","output","nextSlash","len","HOST_DELIMS","HOST_DELIM_RE","HOST_DELIM_NO_COLON_RE","reescapeHostDelimiters","isIP","re","ch","normalizePercentEncoding","decodeUnreserved","hex","normalizedHex","decoded","BYTE_HEX","HEX_DIGITS","isEscapeSafe","cp","percentEncodeNonAscii","normalizePathEncoding","low","serializePathEncoding","pathNoScheme","firstSegment","normalizeQueryFragmentEncoding","encodeComponent","isAllowed","encodeUserinfo","encodeQuery","encodeFragment","escapePreservingEscapes","recomposeAuthority","component","uriTokens","ipV6res","port","utils","require$$0","URN_REG","supportedSchemeNames","isValidSchemeName","name","wsIsSecure","wsComponent","httpParse","httpSerialize","secure","wsParse","wsSerialize","queryIndex","urnParse","urnComponent","matches","scheme","urnScheme","schemeHandler","getSchemeHandler","urnSerialize","nid","uriComponent","nss","urnuuidParse","uuidComponent","urnuuidSerialize","http","https","ws","wss","urn","urnuuid","LOCAL_PART_ALLOWED","HFNAME_ALLOWED","DTEXT_ALLOWED","allowSet","chars","allowNonAscii","table","escaped","cls","LOCAL_PART","HFNAME","DTEXT","DTEXT_IRI","HEX_PAIR","MAILTO_DOMAIN_LITERAL","MAILTO_DOMAIN_ERROR","HAS_SURROGATE","decodeHex","replaceLoneSurrogates","encodeWithAllow","set","mailtoNormalizeDomain","normalizedDomain","parsedDomain","mailtoEncodeDomain","mailtoParse","mailtoComponent","rawPath","rawQuery","to","headers","start","end","eqIdx","addrs","j","rawAddr","atIdx","local","mailtoSerialize","addr","rawLocal","rawDomain","decodedDomain","count","SCHEMES","schemes","require$$1","VALID_SCHEME","MALFORMED_SCHEME_ERROR","decodeValidScheme","decodedScheme","normalize","uri","normalizeString","parse","serialize","baseURI","relativeURI","schemelessOptions","baseParsed","baseMalformed","baseMalformedPercentEncoding","baseMalformedSchemeSpecific","baseMalformedHost","baseMalformedScheme","parseWithStatus","relativeParsed","relativeMalformed","relativeMalformedPercentEncoding","relativeMalformedSchemeSpecific","relativeMalformedHost","relativeMalformedScheme","resolved","resolveComponent","resolvedSchemeHandler","resolvedHost","resolvedHostIsIP","canonicalizeHost","encodedASCIIHost","base","relative","skipNormalization","target","equal","uriA","uriB","normalizedA","normalizeComparableURI","normalizedB","cmpts","opts","hasAuthority","authority","s","URI_PARSE","AUTHORITY_PREFIX","AUTHORITY_INTRODUCER_REGION","getParseError","hasMalformedPercentEncoding","percent","isIPLiteral","hasMalformedComponentPercentEncoding","bracketedIPLiteral","e","malformedAuthorityOrPort","malformedPercentEncoding","malformedSchemeSpecific","malformedHost","malformedIPLiteral","malformedScheme","authorityMatch","introducerMatch","region","normalizedRegion","parseError","hasIPLiteralBracket","ipv6result","normalizeStringWithStatus","normalized","fastUri","fastUriModule","hasExcape","escapeMatcher","escapeReplacer","m","untilde","setter","obj","pointer","hasNextPart","p","oldValue","compilePointer","get","compile","compiled","jsonpointer","findEmbeddedSchemaRecursive","ref","UriResolver","subSchema","item","makeAllReferencesAbsolute","currentURI","splitKeyElementFromObject","remaining","findSchemaDefinitionRecursive","$ref","rootSchema","recurseList","current","currentBaseURI","decodedRef","resolvedRef","refId","refAnchor","nextRef","firstRef","restRefs","circularPath","theRef","findSchemaDefinition","reIsIndex","toPath","normalizePath","isUnsafeSegment","segment","isIndex","isSettable","getByPath","defaultValue","setByPath","createIntermediateObjects","segments","existing","hasByPath","unsetByPath","parent","getDiscriminatorFieldFromSchema","discriminator","maybeString","guessType","getSchemaType","t","mergeSchemas","obj1","obj2","accumulator","sym","getPropertySchema","getOptionMatchingSimpleDiscriminator","discriminatorField","option","getFirstMatchingOption","validator","simpleDiscriminatorMatch","requiresAnyOf","augmentedSchema","shallowClone","objProto","isRecordEmpty","rec","JSON_SCHEMA_TYPE_NAMES","RECORDS_OF_SUB_SCHEMAS","ARRAYS_OF_SUB_SCHEMAS","SUB_SCHEMAS","isSchemaObject","schemaDef","isAllowAnySchema","def","ascComparator","union","larger","smaller","ll","sl","tmp","data","intersection","setB","val","isArrayEmpty","arr","createArrayComparator","d","createDeduplicator","threshold","al","rl","outer","sorted","wIndex","rIndex","createIntersector","bl","tmpArr","tmpL","aSorted","bSorted","cmp","memoize","func","arg","ret","weakMemoize","zero","isUndefined","v","isSchemaPrimitiveExceptNull","PRIMITIVE_TYPE_ORDER","compareSchemaPrimitive","ta","tb","insertUniqueValues","mutableTarget","mutableSource","tl","seen","l","createCmpMatcher","isEmpty","compareEmpty","createOptionalComparator","createNarrowingOptionalComparator","createArrayOrItemComparator","compareArray","compareOptionalSameTypeSchemaPrimitives","compareNumbersWithZeroDefault","createComparator","deduplicationCache","sortedKeysCache","getSortedKeys","createRecordsComparator","aKeys","bKeys","createArrayComparatorWithDeduplication","deduplicate","compareArrayOfSameTypePrimitivesWithDeduplication","compareSchemaDefinitions","allKeys","COMPARATORS","compareOptionalSchemaValues","compareSchemaValues","compareNonNullSchemaValue","compareOptionalSchemaDefinitions","compareRecordOfOptionalSchemasWithEmptyRecordDefault","compareOptionalArrayOfSchemasWithDeduplication","compareSchemaDefinitionsWithEmptyDefinitionDefault","isAArr","isBArr","identity","gcd","lcm","simplePatternsMerger","createPairCombinations","r","action","lv","mergeBooleans","createRecordsMerge","merge","createMap","items","map","pair","assignSchemaDefinitionOrRecordOfSchemaDefinitions","PROPERTIES_ASSIGNER_KEYS","compilePatterns","patterns","source","EMPTY_PATTERNS_AND_KEYS","appendKeyConstraints","ITEMS_ASSIGNER_KEYS","CONDITION_ASSIGNER_KEYS","assignCondition","intersectSchemaTypes","check","createChecksMap","checks","fn","k","DEFAULT_CHECKS","createMerger","mergePatterns","isSubRegExp","intersectJson","deduplicateJsonSchemaDef","defaultMerger","assigners","mergers","mergeArrayOfSchemaDefinitions","schemas","mergeSchemaDefinitions","createProperty","constraints","oppositeValue","oppositePatterns","oppositeAdditional","isNotYetAllowed","assignPatternPropertiesAndAdditionalPropertiesMerge","patternKeys","matchedPatterns","isOppositeTruthy","pattern","propertiesAssigner","lProps","lPatterns","lAdditional","rProps","rPatterns","rAdditional","isLAddTruthy","isRAddTruthy","mergeRecordsOfSchemaDefinitions","additionalProperties","lKeys","lKeysLen","lCompiledPatterns","lPatternKeys","rCompiledPatterns","rPatternKeys","lKeysSet","mappedRAdditional","prop","rKeys","rKeysLen","mappedLAdditional","lKey","rKey","itemsAssigner","lItems","rItems","isLArr","isRArr","itemsArray","additional","isAdditionalTruthy","conditionAssigner","cond","mergeArraysOfSchemaDefinition","definitions","ASSIGNERS_MAP","CHECKS_MAP","rv","checkData","assign","MERGERS","x","y","el","factor","getAllOfSchemas","stack","allOf","rest","createShallowAllOfMerge","shallowAllOfMerge","retrieveSchema","rawFormData","experimental_customMergeAllOf","resolveAnyOfOrOneOfRefs","retrieveSchemaInternal","normalizeBooleanSchema","resolveCondition","expandAllBranches","expression","then","otherwise","resolvedSchemaLessConditional","conditionValue","resolvedSchemas","thenSchema","otherwiseSchema","conditionalBranch","conditionalSchema","getAllPermutationsOfXxxOf","listOfLists","permutations","list","element","permutation","getMatchingPatternProperties","patternProperties","resolveSchema","updatedSchemas","resolveReference","resolveDependencies","allOfSchemaElements","allOfSubschema","updatedSchema","resolveAllReferences","markCycleOnDetection","resolvedSchema","localSchema","childrenLists","updatedProps","childList","stubExistingAdditionalProperties","theSchema","aFormData","matchingProperties","mergeAllOf","restOfSchema","withContainsSchemas","withoutContainsSchemas","allOfSymbols","allOfItem","resolvedSchemaWithoutAllOf","resolveAnyOrOneOfSchemas","anyOrOneOf","oneOf","anyOf","relaxed","relaxOptionsForScoring","resolveRefs","dependencies","remainingSchema","processDependencies","dependencyKey","remainingDependencies","dependencyValue","withDependentProperties","withDependentSchema","additionallyRequired","required","dependent","dependentSchema","mergedSchema","resolvedOneOfs","subschema","resolvedOneOf","withExactlyOneSubschema","validSubschemas","conditionPropertySchema","conditionSchema","dependentSubschema","resolvedSubschema","findSelectedOptionInXxxOf","fallbackField","xxx","selectorField","xxxOfs","xxxOf","xxxOfOption","getFromSchemaInternal","fieldSchema","pathList","nestedPath","getFromSchema","NOT_FOUND_SCHEMA","findFieldInSchema","parentField","fieldName","fieldNameKey","subPath","field","requiredArray","isRequired","JUNK_OPTION","calculateIndexScore","totalScore","score","formValue","newSchema","xxxOfKey","getClosestMatchingOption","newScore","selectedOption","resolvedOptions","allValidIndexes","validList","scoreCount","bestIndex","scoreData","bestScore","constIsAjvDataReference","schemaConst","schemaType","isConstant","isFixedItems","mergeDefaultsWithFormData","defaults","mergeExtraArrayDefaults","defaultSupercedesUndefined","overrideFormDataWithDefaults","defaultsArray","overrideArray","overrideOppositeArray","mapped","idx","formDataObj","defaultsObj","keyValue","keyExistsInDefaults","keyExistsInFormData","keyDefault","defaultValueNeedsDeepMerge","keyDefaultIsObject","keyHasFormDataObject","mergeObjects","concatArrays","toMerge","toConstant","applyEnumOrder","order","optionsByValue","opt","orderedKeys","optionsList","enumNames","enumOrder","uiEnumNames","uiEnumOrder","altSchemas","altUiSchemas","optionsSchemaSelector","aSchemaDef","title","aSchema","label","innerSchema","isSelect","altSchema","isMultiSelect","PRIMITIVE_TYPES","AdditionalItemsHandling","getInnerSchemaForArrayItem","additionalItems","hasContent","computeDefaultBasedOnSchemaTypeAndDefaults","computedDefault","schemaDefault","maybeAddDefaultToObject","includeUndefinedValues","isParentRequired","requiredFields","experimental_defaultFormStateBehavior","isConst","isNullType","emptyObjectFields","isSelfOrParentRequired","computeDefaults","rawSchema","computeDefaultsProps","parentDefaults","_recurseList","shouldMergeDefaultsIntoFormData","initialDefaultsGenerated","preferParentDefaults","schemaToCompute","experimental_dfsb_to_compute","updatedRecurseList","refName","hasNoExistingData","defaultFormData","getDefaultBasedOnSchemaType","itemSchema","defaultsWithFormData","arrayMinItems","mergeExtraDefaults","matchingFormData","ensureFormDataMatchingSchema","shouldRetrieveAllOf","schemaToMatch","isSelectField","validFormData","propertySchema","getObjectDefaults","retrievedSchema","parentConst","objectDefaults","hasParentConst","hasConst","additionalPropertiesSchema","formDataRequired","getArrayDefaults","requiredAsRoot","initialDefaults","arrayMinItemsStateBehavior","arrayMinItemsPopulate","arrayMergeExtraDefaults","neverPopulate","ignoreMinItemsFlagSet","isPopulateAll","computeSkipPopulate","emptyDefault","schemaItem","itemFormData","itemDefaults","defaultsLength","arrayDefault","defaultEntries","fillerSchema","fillerDefault","fillerEntries","getDefaultFormState","mergeDefaultsIntoFormData","isCustomWidget","isFilesArray","itemsSchema","getDisplayLabel","uiOptions","displayLabel","addedByAdditionalProperty","getUsedFormData","fields","getFieldNames","pathSchema","formValueHasData","isLeaf","getAllPaths","_obj","paths","objKeys","newPaths","isValueEmpty","doMergeAllOf","omitExtraData","isObjectValue","isSchemaObj","handleObject","childSchema","requiredSet","setProperty","omit","sd","innerRequired","patternPropertiesRest","knownProperties","matched","addlSchema","handleArray","tupleLength","handleConditions","condition","branch","handleOneOf","scoringOptions","winning","handleAnyOf","handleDependencies","deps","useSourceAsFallback","remainingAllOf","afterConditions","knownKeys","NO_VALUE","enumValuesForSchema","replacementForInvalidEnumValue","enumValues","sanitizeDataForNewSchema","oldSchema","newFormData","newProperties","removeOldSchemaData","oldProperties","nestedData","isNewProperty","oldKeyedSchema","newKeyedSchema","oldSchemaTypeForKey","newSchemaTypeForKey","itemData","newOptionDefault","oldOptionDefault","newOptionConst","oldOptionConst","enumReplacement","oldSchemaItems","newSchemaItems","oldSchemaType","newSchemaType","maxItems","newValue","aValue","itemValue","newItemEnumValues","filteredData","toPathSchemaInternal","additionalSchema","definedProperties","schemaItems","schemaAdditionalItems","toPathSchema","SchemaUtils","createSchemaUtils","dataURItoBlob","dataURILike","splitted","media","base64","mime","mediaparams","param","binary","array","pad","num","width","dateRangeOptions","stop","bothRelative","eitherNegative","currentYear","resolvedStart","resolvedStop","replaceStringParameters","inputString","params","partIndex","englishStringTranslator","stringToTranslate","enumOptionsValueForIndex","valueIndex","allEnumOptions","emptyValue","enumOptionsDeselectValue","selected","enumOptionsIsSelected","sel","enumOptionsIndexForValue","multiple","selectedIndexes","enumOptionSelectedValue","enumOptions","format","indexes","enumOptionsSelectValue","all","decodeSingle","match","enumOptionValueDecoder","enumOptionValueEncoder","ErrorSchemaBuilder","initialSchema","pathOfError","errorBlock","errorOrList","errorsList","listToAdd","getChangedDescendants","getChangedFields","descendants","deep","aKeySet","unequalFields","diffFields","getDateElementProps","date","time","yearRange","day","month","year","hour","minute","second","dayObj","monthObj","yearObj","dateElementProp","rangeSpec","spec","getInputProps","defaultType","autoDefaultStepAny","inputProps","getOptionValueFormat","DEFAULT_OPTIONS","getSubmitButtonOptions","getTemplate","registry","templates","testIdCounter","getTestIds","ids","c","f","g","h","n","q","u","reactIs_production_min","reactIsModule","widgetMap","mergeWidgetOptions","AWidget","MergedWidget","defaultOptions","props","_jsx","getWidget","widget","registeredWidgets","ReactIs","createElement","registeredWidget","hashString","string","hash","chr","sortedJSONStringify","shouldIncludeValue","record","hashObject","hashForSchema","hasWidget","idGenerator","id","suffix","descriptionId","errorId","examplesId","helpId","titleId","ariaDescribedByIds","includeExamples","examples","optionId","optionIndex","buttonId","btn","optionalControlsId","isFormDataAvailable","isRootSchema","schemaToCompare","schemaUtils","labelValue","hideLabel","fallback","localToUTC","dateString","logUnsupportedDefaultForEnum","lookupFromFormContext","regOrFc","toLookup","lookupPath","noop","orderProperties","arrayToHash","curr","errorPropList","propertyHash","orderFiltered","orderHash","restIndex","complete","parseDateString","includeTime","resolveUiSchema","localUiSchema","definitionUiSchema","keyword","schemaOptions","currentUiSchemaArray","uiSchemaArray","hasExpanded","optionRef","optionUiSchema","schemaRequiresTrueValue","schemaSome","SelectedOptionDescription","enumValue","description","DescriptionFieldTemplate","shallowEquals","keysA","keysB","shouldRender","nextProps","nextState","updateStrategy","getSchemaTypesForXxxOf","allTypes","shouldRenderOptionalField","enableOptionalDataFieldForType","toDateString","dateObject","utcTime","datetime","toErrorList","errorSchema","fieldPath","errorsFrom","errors","errorList","currentList","toErrorSchema","builder","toFieldPathId","globalFormOptions","parentPath","isMultiValue","basePath","childPath","unwrapErrorHandler","errorHandler","unwrapErrors","readyForChange","DateElement","className","range","select","rootId","disabled","readonly","autofocus","onBlur","onFocus","SelectWidget","onChange","useAltDateWidgetProps","setState","handleChange","handleClear","handleSetNow","useDeepCompareMemo","valueRef","useRef","addNameToDataURL","dataURL","processFile","file","reader","processFiles","files","extractFileInfo","dataURLs","blob","useFileWidgetProps","filesInfo","fileInfo","handleRemove","_","utcToLocal","jsonDate","yyyy","MM","dd","hh","mm","ss","SSS","validationDataMerge","validationData","additionalErrorSchema","preventDuplicates","oldErrors","oldErrorSchema","withIdRefPrefixObject","node","realObj","withIdRefPrefix","withIdRefPrefixArray","schemaNode","TranslatableString","rowIdCounter","generateRowId","generateKeyedFormData","keyedToPlainFormData","keyedFormData","keyedItem","isItemRequired","canAddItem","formItems","addable","computeItemUiSchema","formContext","getNewFormDataRow","ArrayAsMultiSelect","fieldPathId","placeholder","rawErrors","onSelectChange","widgets","globalUiOptions","itemsUiSchema","uiTitle","Widget","multiValueFieldPathId","ArrayAsCustomWidget","hideError","ArrayAsFiles","ArrayFieldItemInner","itemKey","parentUiSchema","canAdd","canRemove","canMoveUp","canMoveDown","rawItemSchema","itemUiSchema","parentFieldPathId","itemErrorSchema","totalItems","handleAddItem","handleCopyItem","handleRemoveItem","handleReorderItems","ArraySchemaField","SchemaField","ItemSchemaField","ArrayFieldItemTemplate","hasDescription","orderable","removable","copyable","has","onAddItem","onCopyItem","onRemoveItem","onMoveUpItem","onMoveDownItem","templateProps","ArrayFieldItem","memo","NormalArray","formDataFromProps","fieldTitle","OptionalDataControlsField","renderOptionalField","hasFormData","actualFormData","extraClass","childFieldPathId","optionalDataControl","arrayProps","itemCast","itemProps","Template","FixedArray","hasAdditionalItems","useKeyedFormData","newHash","formDataHash","nextFormData","previousKeyedFormData","previousKeyedFormDatum","updateKeyedFormData","newData","plainFormData","updatedHash","ArrayField","translateString","keyedFormDataRef","errorSchemaRef","newErrorSchema","newKeyedFormDataRow","newKeyedFormData","newIndex","reOrderArray","lastPathIsItemIndex","arrayAsMultiProps","UnsupportedFieldTemplate","fallbackSchema","BooleanField","schemaTitle","yes","no","o","enums","onWidgetChange","CyclicSchemaField","setExpanded","CyclicSchemaExpandTemplate","getFallbackTypeSelectionSchema","getTypeOfFormData","dataType","castToNewType","newType","castedNumber","FallbackField","setType","typeSelectorInnerFieldPathId","typesOptionSchema","onTypeChange","FallbackFieldTemplate","GridType","Operators","LOOKUP_REGEX","LAYOUT_GRID_UI_OPTION","getNonNullishValue","isNumericIndex","LAYOUT_GRID_FIELD_TEST_IDS","computeFieldUiSchema","uiProps","schemaReadonly","forceReadonly","localUiOptions","fieldUiSchema","uiReadonly","fieldUiOptions","conditionMatches","operator","datum","findChildrenAndProps","layoutGridSchema","schemaKey","gridProps","elements","toMapClassNames","otherProps","ele","computeArraySchemasIfPresent","potentialIndex","resultPathId","getSchemaDetailsForField","dottedPath","initialFieldIdPath","leafPath","innerData","isReadonly","schemaProperties","selectedSchema","optionsInfo","getCustomRenderComponent","render","customRenderer","computeUIComponentPropsFromGridSchema","gridSchema","UIComponent","rendered","innerName","innerProps","lookupName","LayoutGridFieldChildren","childrenLayoutGridSchemaId","layoutGridFieldProps","_createElement","LayoutGridField","LayoutGridCondition","fieldData","LayoutGridCol","GridTemplate","LayoutGridColumns","child","LayoutGridRow","LayoutGridFieldComponent","LayoutMultiSchemaField","uiComponentProps","fieldIdSchema","memoFieldPathId","Field","namePath","LayoutHeaderField","TitleFieldTemplate","getSelectedOption","selector","computeEnumOptions","realOptions","tempSchema","baseType","setEnumOptions","FieldErrorTemplate","FieldTemplate","schemaHash","optionsHash","uiSchemaHash","uiSchemaHideError","optionSchema","hideFieldError","fieldErrorSchema","onOptionChange","newOption","oldOption","widgetOptions","AnyOfField","retrievedOptions","setSelectedOption","skipNextOptionRecalculation","prevFormDataRef","prevFieldIdRef","prevFormData","prevFieldId","matchingOption","fieldId","intOption","SchemaFieldComponent","MultiSchemaFieldTemplate","isOptionalRender","autocomplete","schemaRequired","parentProps","optionsUiSchema","translateEnum","translateParams","optionsSchemaField","NullField","trailingCharMatcherWithPrefix","trailingCharMatcher","NumberField","initialValue","lastValue","setLastValue","StringField","escapedSeparator","normalizedValue","processed","displayValue","defaultWidget","B","z","I","w","v5","Z0","b0","A0","W5","V5","M9","K5","T0","P0","O0","Y0","k9","J5","c0","O9","m0","D9","L5","A9","C5","s5","x9","Y$","c$","l$","r$","j9","t5","Q5","j0","f5","T5","y5","E0","S5","E9","z5","F5","o$","i$","a$","n$","V$","K$","g9","V0","q0","U9","U5","I6","X4","$","t$","Q","Z","X","Y","V","L6","K","P6","w6","R6","U$","Y4","I5","N6","s$","H5","o0","t0","g0","N5","e$","Q9","h5","$4","$9","Z4","b6","M5","k5","V4","K4","J4","e5","U4","G4","f9","q4","T6","W4","Z9","G$","J","z4","G","U","W","y6","Q4","q$","H","F","F4","m5","H4","S6","M4","h9","O4","k6","C9","W$","D4","z$","I9","h4","m4","D$","N9","x6","j4","F$","B4","u4","_4","p4","d4","c4","E6","g6","C6","f6","h6","A$","v4","w5","M","D","A","N","L","O","P","T","G5","m6","l4","p9","C","q9","X5","B9","I4","R$","j$","B$","d9","G0","v9","N4","e0","l5","U0","Q0","L0","u6","p6","W9","d6","d5","P4","w4","R4","c6","b4","l6","r6","S","X0","I0","c5","r4","u5","G9","L4","T4","E","u0","B0","W0","H0","D0","K0","y0","S0","_0","w0","z0","F0","M0","f0","v0","k0","h0","p0","N0","x0","R","J0","a0","q5","$0","C0","d0","n0","$5","l0","s0","r5","x5","R0","o5","w9","b5","i5","E5","j5","Z5","B5","V9","a5","A5","l9","P5","p5","o6","r9","_$","o4","i6","s4","t4","K9","Y5","J9","e4","$6","Z6","Q6","S$","k$","a9","X6","Y6","x$","V6","K6","J6","z9","_5","E$","g$","R9","n9","C$","s9","f$","h$","b9","U6","t9","e9","m$","u$","L9","$$","r0","g5","Z$","p$","T9","n5","F9","G6","y9","S9","q6","W6","z6","F6","H6","M6","O6","D6","Q$","d$","H9","A6","X$","j6","B6","_6","v6","y4","S4","a6","n6","s6","R5","t6","b$","e6","$Z","ZZ","k4","x4","QZ","XZ","m9","E4","v$","g4","I$","C4","N$","H$","O5","YZ","c9","M$","u9","O$","f4","i4","o9","P$","VZ","KZ","JZ","w$","X9","UZ","GZ","qZ","_9","WZ","a4","P9","L$","Y9","i0.createElement","T$","D5","i9","i0.createContext","n4","i0.Fragment","HZ","MZ","OZ","y$","DZ","i0.useRef","AZ","i0.useContext","i0.useMemo","ADDITIONAL_PROPERTY_KEY_REMOVE","IS_RESET","getDefaultValue","isAdditionalPropertySchema","getAdditionalPropertyOrder","ObjectFieldPropertyFn","propertyName","handleKeyRename","handleRemoveProperty","addedByAdditionalProperties","wasPropertyKeyModified","setWasPropertyKeyModified","innerFieldIdPathId","onPropertyChange","onKeyRename","onKeyRenameBlur","onRemoveProperty","ObjectFieldProperty","ObjectField","formDataRef","lastRenamedProperty","additionalPropertyOrder","setAdditionalPropertyOrder","definedPropertyOrder","additionalPropertySet","templateTitle","orderedProperties","getAvailableKey","preferredKey","existingFormData","duplicateKeySuffixSeparator","newKey","onAddProperty","constValue","apSchema","oldKey","currentFormData","actualNewKey","newKeys","keyValues","renamedObj","getStableKey","definedPropertySet","currentAdditionalProperties","_jsxs","Markdown","hidden","OptionalDataControlsTemplate","onAddClick","onRemoveClick","labelEnum","COMPONENT_TYPES","getFieldComponent","schemaId","componentName","SchemaFieldRender","_schema","_uiSchema","_AnyOfField","_OneOfField","handleFieldComponentChange","FieldHelpTemplate","FieldComponent","deprecatedHandling","isReplacingAnyOrOneOf","XxxOfField","XxxOfOptions","fieldPathIdProps","xxxOfSchema","__errors","consumedUiClassNames","consumedClassNames","consumedUiStyle","consumedOptionClassNames","consumedOptionStyle","help","classNames","helpComponent","errorsComponent","fieldProps","_Fragment","prevProps","experimental_componentUpdateStrategy","MultiSchemaField","ArrayFieldDescriptionTemplate","ArrayFieldItemButtonsTemplate","hasCopy","hasMoveDown","hasMoveUp","hasRemove","CopyButton","MoveDownButton","MoveUpButton","RemoveButton","buttonsProps","hasToolbar","btnStyle","margin","containerStyle","toolbarStyle","ArrayFieldTemplate","ArrayFieldTitleTemplate","showOptionalDataControlInTitle","AddButton","SchemaExamples","example","BaseInputTemplate","htmlName","onChangeOverride","ClearButton","inputValue","handleBlur","handleFocus","IconButtonFn","iconType","icon","IconButton","CopyButtonFn","MoveDownButtonFn","MoveUpButtonFn","RemoveButtonFn","ClearButtonFn","onClick","SubmitButton","submitText","norender","submitButtonProps","buttonTemplates","onExpand","TEST_IDS","RichDescription","DescriptionField","ErrorList","typeSelector","schemaField","elem","RichHelp","REQUIRED_FIELD_SYMBOL","Label","WrapIfAdditionalTemplate","isCheckbox","column","optionSchemaField","ObjectFieldTemplate","TitleField","UnsupportedField","style","rawDescription","keyLabel","classNamesList","uiClassNames","ButtonTemplates","AltDateTimeWidget","AltDateWidget","elemProps","CheckboxesWidget","inline","enumDisabled","optionValueFormat","checkboxesValues","checked","itemDisabled","disabledCls","checkbox","CheckboxWidget","trueValueRequired","ColorWidget","DateTimeWidget","DateWidget","EmailWidget","FileInfoPreview","previewLabel","FilesInfo","preview","FileWidget","handleOnChangeEvent","HiddenWidget","PasswordWidget","RadioWidget","radio","RangeWidget","RatingWidget","stars","shape","numStars","min","handleStarClick","starValue","getSymbol","isFilled","getValue","optEmptyVal","selectValue","showPlaceholderOption","enumLabel","isDisabled","TextareaWidget","TextWidget","TimeWidget","hasSecondPrecision","UpDownWidget","URLWidget","getDefaultRegistry","toIChangeEvent","status","edit","Form","Component","baseErrors","propsFormData","initialFormData","createRef","prevState","formDataChangedFields","stateDataChangedFields","isSchemaChanged","isFormDataChanged","isStateDataChanged","shouldUpdate","nextStateDiffersFromProps","wasProcessingUserChange","inputFormData","getFormDataChangedFields","skipLiveValidate","shouldSanitize","isUncontrolled","liveValidate","mustValidate","defaultsFormData","computedRetrievedSchema","wasSanitized","preventInfiniteSanitize","formHash","sanitizedFormData","sanitizedFormHash","getCurrentErrors","schemaValidationErrors","schemaValidationErrorSchema","liveValidation","currentErrors","pathOfField","mergedErrors","newRegistry","altSchemaUtils","customValidate","transformErrors","validationSchema","validationFormData","ErrorListTemplate","schemaValidation","extraErrors","customErrors","merged","originalErrorSchema","mergeIntoOriginalErrorSchema","liveOmit","noValidate","oldFormData","mergeBaseErrorSchema","rootPathId","isRootPath","hasOnlyUndefinedValues","wasPreviouslyNull","inputForDefaults","plainLeafWasCleared","valueForPath","leaf","newState","oldValidationError","pathErrors","hasChanges","oldData","onSubmit","idSeparator","idPrefix","nameGenerator","useFallbackUiForUnsupportedType","customTranslateString","submitCustomEvent","elementId","extraErrorsBlockSubmit","focusOnFirstError","onError","prevErrors","hasError","tagName","method","autoComplete","enctype","acceptCharset","noHtml5Validate","showErrorList","_internalFormWrapper","as","FormTag","submitOptions","submitUiSchema","filterDuplicateErrors","suppressDuplicateFiltering","schemaPath","anyOfIndex","oneOfIndex","schemaPrefix","transformRJSFValidationErrors","instancePath","parentSchema","rawPropertyNames","currentProperty","uiSchemaTitle","uiSchemaPath","propParts","parentSchemaTitle","aSchemaPath","rootSchemaTitle","processRawValidationErrors","invalidSchemaError","userErrorSchema","exports","_CodeOrName","Name","_Code","names","strs","args","addCodeArg","plus","expr","safeStringify","optimize","interpolate","res","mergeExprItems","strConcat","c1","c2","stringify","getProperty","getEsmExportName","regexpCode","rx","code_1","ValueError","UsedValueState","Scope","prefixes","nameOrPrefix","prefix","ng","_b","ValueScopeName","nameStr","itemIndex","line","ValueScope","valueKey","vs","_name","keyOrRef","scopeName","usedValues","getCode","valueCode","nameSet","scope_1","code_2","scope_2","Node","_names","_constants","Def","varKind","rhs","es5","_n","constants","optimizeExpr","Assign","lhs","sideEffects","addExprNames","AssignOp","op","Break","Throw","AnyCode","ParentNode","nodes","subtractNames","addNames","BlockNode","Root","Else","If","not","For","ForLoop","iteration","ForRange","from","ForIter","loop","iterable","Func","async","Return","Try","Catch","Finally","CodeGen","extScope","prefixOrName","constant","_constant","thenBody","elseBody","forBody","tryBody","catchCode","finallyCode","body","nodeCount","toClose","funcBody","N1","N2","replaceName","canOptimize","par","andCode","mappend","and","orCode","or","util","codegen_1","toHash","alwaysValidSchema","it","checkUnknownRules","schemaHasRules","self","rules","checkStrictMode","schemaHasRulesButRef","RULES","schemaRefOrVal","topSchemaRef","$data","unescapeFragment","unescapeJsonPointer","escapeFragment","escapeJsonPointer","eachItem","xs","makeMergeEvaluated","mergeNames","mergeToName","mergeValues","resultToName","gen","toName","setEvaluated","evaluatedPropsToName","ps","snippets","useFunc","Type","getErrorPath","dataProp","dataPropType","jsPropertySyntax","isNumber","msg","mode","names_1","util_1","require$$2","reportError","cxt","errorPaths","overrideAllErrors","compositeRule","allErrors","errObj","errorObjectCode","addError","returnErrors","reportExtraError","resetErrorsCount","errsCount","extendErrors","schemaValue","errs","validateName","schemaEnv","createErrors","errorObject","errorInstancePath","errorSchemaPath","extraErrorProps","errorPath","instPath","errSchemaPath","schPath","boolSchema","errors_1","boolError","topBoolOrEmptySchema","falseSchemaError","boolOrEmptySchema","valid","_jsonTypes","jsonTypes","isJSONType","getRules","groups","applicability","schemaHasRulesForType","group","shouldUseGroup","rule","shouldUseRule","kwd","rules_1","applicability_1","require$$3","require$$4","DataType","getSchemaTypes","types","getJSONTypes","coerceAndCheckDataType","coerceTo","coerceToTypes","checkTypes","wrongType","checkDataTypes","coerceData","reportTypeError","COERCIBLE","coerceTypes","coerced","coerceSpecificType","assignParentData","parentData","parentDataProperty","checkDataType","strictNums","correct","EQ","numCond","_cond","dataTypes","notObj","typeError","getTypeErrorContext","schemaCode","assignDefaults","ty","assignDefault","sch","childData","util_2","checkReportMissingProp","noPropertyInData","checkMissingProp","missing","reportMissingProp","hasPropFunc","isOwnProperty","propertyInData","ownProperties","allSchemaProperties","schemaMap","callValidateCode","context","passSchema","dataAndSchema","valCxt","newRegExp","usePattern","regExp","validateArray","validArr","validateItems","notValid","validateUnion","schValid","_sch","schCxt","macroKeywordCode","macroSchema","schemaRef","useKeyword","funcKeywordCode","checkAsyncKeyword","validate","validateRef","validateKeyword","assignValid","modifyData","reportErrs","ruleErrs","validateAsync","validateSync","addErrs","validateErrs","_await","passCxt","validSchemaType","allowUndefined","st","validateKeywordUsage","getSubschema","schemaProp","extendSubschemaData","dpType","dataPathArr","nextData","dataContextProps","_nextData","extendSubschemaMode","jtdDiscriminator","jtdMetadata","fastDeepEqual","length","traverse","jsonSchemaTraverseModule","cb","pre","post","_traverse","jsonPtr","parentJsonPtr","parentKeyword","keyIndex","escapeJsonPtr","SIMPLE_INLINED","inlineRef","limit","hasRef","countKeys","REF_KEYWORDS","getFullPath","resolver","normalizeId","_getFullPath","TRAILING_SLASH_HASH","resolveUrl","baseId","ANCHOR","getSchemaRefs","uriResolver","schId","baseIds","pathPrefix","localRefs","schemaRefs","fullPath","innerBaseId","addRef","addAnchor","_resolve","ambiguos","schOrRef","checkAmbiguosRef","anchor","sch1","sch2","boolSchema_1","dataType_1","dataType_2","defaults_1","keyword_1","subschema_1","require$$5","require$$6","require$$7","resolve_1","require$$8","require$$9","require$$10","validateFunctionCode","checkKeywords","schemaCxtHasRules","topSchemaObjCode","validateFunction","funcSourceUrl","destructureValCxtES5","destructureValCxt","commentKeyword","checkNoDefault","resetEvaluated","typeAndKeywords","returnResults","subschemaCode","subSchemaObjCode","updateContext","checkAsyncSchema","checkRefsAndKeywords","schemaKeywords","checkedTypes","rootName","ValidationError","assignEvaluated","evaluated","typeErrors","keywordCode","checkStrictTypes","groupKeywords","iterateKeywords","useDefaults","checkContextTypes","checkMultipleTypes","checkKeywordTypes","includesType","strictTypesError","narrowSchemaTypes","hasApplicableType","schTs","kwdT","withTypes","KeywordCxt","getData","successAction","failAction","append","errorParams","codeBlock","$dataValid","wrong$DataType","invalid$DataSchema","validateSchemaRef","appl","nextContext","schemaCxt","ruleType","JSON_POINTER","RELATIVE_JSON_POINTER","dataLevel","dataNames","jsonPointer","up","errorMsg","pointerType","validation_error","ref_error","MissingRefError","validation_error_1","validate_1","SchemaEnv","env","compileSchema","getCompilingSchema","lines","_ValidationError","sourceCode","validateCode","resolveRef","root","schOrFunc","inlineOrCompile","schEnv","sameSchemaEnv","s1","s2","refPath","getJsonPointer","PREVENT_SCOPE_CHANGE","parsedRef","partSchema","uri_1","ref_error_1","compile_1","codegen_2","$dataRefSchema","defaultRegExp","flags","META_IGNORE_OPTIONS","EXT_SCOPE_NAMES","removedOptions","deprecatedOptions","MAX_EXPRESSION","requiredOptions","_c","_d","_e","_f","_g","_h","_j","_k","_l","_m","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","_optz","Ajv","getLogger","formatOpt","checkOptions","getMetaSchemaOptions","addInitialFormats","addInitialKeywords","addInitialSchemas","_dataRefSchema","schemaKeyRef","_meta","loadSchema","runCompileAsync","loadMetaSchema","_compileAsync","checkLoaded","loadMissingSchema","missingRef","_loadSchema","_validateSchema","throwOrLogError","$schema","keyRef","getSchEnv","cacheKey","kwdOrDef","checkKeyword","addRule","keywordMetaschema","definition","dataVar","metaSchema","keywordsJsonPointers","keywords","seg","schemaOrData","regex","validateSchema","addSchema","currentOpts","checkOpts","log","optsSchemas","defs","metaOpts","noLogs","logger","KEYWORD_NAME","ruleGroup","addBeforeRule","before","_rule","$dataRef","callRootRef","schOrEnv","callValidate","inlineRefSchema","callRef","getValidate","schName","$async","callAsyncRef","callSyncRef","addEvaluatedFrom","addErrorsFrom","schEvaluated","core_1","id_1","ref_1","core","limitNumber","ops","KWDs","multipleOf","prec","invalid","ucs2length_1","ucs2length","pos","limitLength","comp","regExpCode","limitProperties","missingProperty","useLoop","allErrorsMode","exitOnErrorMode","requiredKey","loopAllRequired","loopUntilMissing","limitItems","equal_1","uniqueItems","itemTypes","validateUniqueItems","loopN","loopN2","indices","eql","_const","_enum","getEql","loopEnum","vSchema","equalCode","validation_1","limitNumber_1","multipleOf_1","limitLength_1","pattern_1","limitProperties_1","required_1","limitItems_1","uniqueItems_1","const_1","enum_1","validation","validateAdditionalItems","validateTuple","extraItems","schArr","checkStrictTuple","fullTuple","prefixItems","items_1","items2020","additionalItems_1","contains","max","minContains","maxContains","validateItemsWithCount","checkLimits","_valid","block","depsCount","property_ies","propDeps","schDeps","splitDependencies","validatePropertyDeps","validateSchemaDeps","propertyDeps","schemaDeps","hasProperty","depProp","propertyNames","patProps","checkAdditionalProperties","additionalPropertyCode","isAdditional","definedProp","propsSchema","deleteAdditional","applyAdditionalSchema","additionalProperties_1","allProps","hasDefault","applyPropertySchema","alwaysValidPatterns","checkProperties","validatePatternProperties","pat","checkMatchingProperties","validateProperties","alwaysValid","passing","validateOneOf","_if","hasThen","hasSchema","hasElse","validateIf","ifClause","validateClause","thenElse","applicator","prefixItems_1","items2020_1","contains_1","dependencies_1","propertyNames_1","properties_1","patternProperties_1","not_1","anyOf_1","require$$11","oneOf_1","require$$12","allOf_1","require$$13","if_1","require$$14","thenElse_1","require$$15","getApplicator","draft2020","validate$DataFormat","validateFormat","fmts","fDef","fType","unknownFmt","invalidFmt","callFormat","validData","formatDef","unknownFormat","fmtType","fmtRef","getFormat","validCondition","unknownMsg","fmtDef","fmt","format_2","metadata","draft7","applicator_1","format_1","metadata_1","draft7Vocabularies","DiscrError","types_1","discrError","validateMapping","mapping","getMapping","tagValue","applyTagSchema","oneOfMapping","topRequired","hasRequired","tagRequired","propSch","addMappings","addMapping","draft7_1","discriminator_1","draft7MetaSchema","META_SUPPORT_DATA","META_SCHEMA_ID","module","compareDate","compareTime","date_time","compareDateTime","byte","validateInt32","validateInt64","validateNumber","isLeapYear","DATE","DAYS","d1","d2","TIME","withTimeZone","timeZone","t1","t2","a1","a2","DATE_TIME_SEPARATOR","dateTime","dt1","dt2","NOT_URI_FRAGMENT","URI","BYTE","MIN_INT32","MAX_INT32","Z_ANCHOR","ajv_1","fCxt","compareCode","formatLimitPlugin","ajv","formats_1","limit_1","fullName","fastName","formatsPlugin","addFormats","formats","exportName","fs","AJV_CONFIG","COLOR_FORMAT_REGEX","DATA_URL_FORMAT_REGEX","createAjvInstance","additionalMetaSchemas","customFormats","ajvOptionsOverrides","ajvFormatOptions","AjvClass","extenderFn","formatName","AJV8Validator","localizer","compilationError","compiledValidator","rootSchemaId","schemaWithIdRefPrefix","customizeValidator","CONFIGURATION_LAYER_COLORS","ConfigurationLayerDepthContext","createContext","useConfigurationLayer","depth","useContext","buildUiSchema","firstExample","SecretWidget","secretPath","configured","replacing","clearing","unavailable","setOperation","nextOperation","ConfigurationFieldTemplate","ConfigurationObjectTemplate","propertyLines","topLevel","layer","ConfigurationArrayItemTemplate","ConfigurationArrayTemplate","SchemaConfigurationForm","configuredSecrets","secretOperations","setSecretOperation","clone","ConfigurationEditor","onReload","serverValue","setSecretOperations","saving","setSaving","validationErrors","setValidationErrors","dirty","updateConfiguration","saveError","validationError","PasswordConfirmationDialog","open","onCancel","onConfirm","password","setPassword","cancel","TOP_LEVEL_SECTIONS","AdminApp","useUserIdentitySync","role","useSessionSelector","connected","searchParams","setSearchParams","useSearchParams","setSnapshot","loadingError","setLoadingError","pendingSensitiveAction","confirmationOpen","setConfirmationOpen","confirmationBusy","setConfirmationBusy","confirmationError","setConfirmationError","pageSettings","useSettingsNamespace","DEFAULT_PAGE_THEME_KEY","pageBackgroundClass","usePageThemeClass","isAdmin","isLockdown","loadSnapshot","getAdminSnapshot","submitPasswordConfirmation","confirmAdminPassword","pending","cancelPasswordConfirmation","selectSection","navigationOptions","activeSection","content","AdminPanelContent","AuthPanel","SocketConnectionPill"],"mappings":"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","x_google_ignoreList":[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326]} \ No newline at end of file diff --git a/server/public/assets/FleetReportsApp-D0ASy3FH.js b/server/public/assets/FleetReportsApp-Uxtf9sUZ.js similarity index 99% rename from server/public/assets/FleetReportsApp-D0ASy3FH.js rename to server/public/assets/FleetReportsApp-Uxtf9sUZ.js index 7bc8c84a..73de7905 100644 --- a/server/public/assets/FleetReportsApp-D0ASy3FH.js +++ b/server/public/assets/FleetReportsApp-Uxtf9sUZ.js @@ -1,4 +1,4 @@ -import{g as Me,u as Ae,a as Ne,i as De,b as Ie,D as Le,c as Te,j as e,S as Fe,t as Pe,C as de,L as Oe,r as he,d as We,e as Ue}from"./index-D5baJIet.js";var be={exports:{}};var He=be.exports,Ce;function $e(){return Ce||(Ce=1,(function(S,M){(($,b)=>{S.exports=b()})(He,function $(){var b=typeof self<"u"?self:typeof window<"u"?window:b!==void 0?b:{},B,z=!b.document&&!!b.postMessage,f=b.IS_PAPA_WORKER||!1,ie={},w=0,o={};function j(t){return t.charCodeAt(0)===65279?t.slice(1):t}function C(t){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine="",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},(function(r){var s=je(r);s.chunkSize=parseInt(s.chunkSize),r.step||r.chunk||(s.chunkSize=null),this._handle=new pe(s),(this._handle.streamer=this)._config=s}).call(this,t),this.parseChunk=function(r,s){var i=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&0=this._config.preview),f)b.postMessage({results:n,workerId:o.WORKER_ID,finished:i});else if(E(this._config.chunk)&&!s){if(this._config.chunk(n,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);this._completeResults=n=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(n.data),this._completeResults.errors=this._completeResults.errors.concat(n.errors),this._completeResults.meta=n.meta),this._completed||!i||!E(this._config.complete)||n&&n.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),i||n&&n.meta.paused||this._nextChunk(),n}this._halted=!0},this._sendError=function(r){E(this._config.error)?this._config.error(r):f&&this._config.error&&b.postMessage({workerId:o.WORKER_ID,error:r,finished:!1})}}function re(t){var r;(t=t||{}).chunkSize||(t.chunkSize=o.RemoteChunkSize),C.call(this,t),this._nextChunk=z?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(s){this._input=s,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(r=new XMLHttpRequest,this._config.withCredentials&&(r.withCredentials=this._config.withCredentials),z||(r.onload=ae(this._chunkLoaded,this),r.onerror=ae(this._chunkError,this)),r.open(this._config.downloadRequestBody?"POST":"GET",this._input,!z),this._config.downloadRequestHeaders){var s,i=this._config.downloadRequestHeaders;for(s in i)r.setRequestHeader(s,i[s])}var n;this._config.chunkSize&&(n=this._start+this._config.chunkSize-1,r.setRequestHeader("Range","bytes="+this._start+"-"+n));try{r.send(this._config.downloadRequestBody)}catch(p){this._chunkError(p.message)}z&&r.status===0&&this._chunkError()}},this._chunkLoaded=function(){r.readyState===4&&(r.status<200||400<=r.status?this._chunkError():(this._start+=this._config.chunkSize||r.responseText.length,this._finished=!this._config.chunkSize||this._start>=(s=>(s=s.getResponseHeader("Content-Range"))!==null?parseInt(s.substring(s.lastIndexOf("/")+1)):-1)(r),this.parseChunk(r.responseText)))},this._chunkError=function(s){s=r.statusText||s,this._sendError(new Error(s))}}function O(t){(t=t||{}).chunkSize||(t.chunkSize=o.LocalChunkSize),C.call(this,t);var r,s,i=typeof FileReader<"u";this.stream=function(n){this._input=n,s=n.slice||n.webkitSlice||n.mozSlice,i?((r=new FileReader).onload=ae(this._chunkLoaded,this),r.onerror=ae(this._chunkError,this)):r=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(n.target.result)},this._chunkError=function(){this._sendError(r.error)}}function l(t){var r;C.call(this,t=t||{}),this.stream=function(s){return r=s,this._nextChunk()},this._nextChunk=function(){var s,i;if(!this._finished)return s=this._config.chunkSize,r=s?(i=r.substring(0,s),r.substring(s)):(i=r,""),this._finished=!r,this.parseChunk(i)}}function v(t){C.call(this,t=t||{});var r=[],s=!0,i=!1;this.pause=function(){C.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){C.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(n){this._input=n,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){i&&r.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),r.length?this.parseChunk(r.shift()):s=!0},this._streamData=ae(function(n){try{r.push(typeof n=="string"?n:n.toString(this._config.encoding)),s&&(s=!1,this._checkIsFinished(),this.parseChunk(r.shift()))}catch(p){this._streamError(p)}},this),this._streamError=ae(function(n){this._streamCleanUp(),this._sendError(n)},this),this._streamEnd=ae(function(){this._streamCleanUp(),i=!0,this._streamData("")},this),this._streamCleanUp=ae(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function pe(t){var r,s,i,n,p=Math.pow(2,53),L=-p,V=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,G=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,m=this,T=0,d=0,K=!1,c=!1,g=[],a={data:[],errors:[],meta:{}};function J(_){return t.skipEmptyLines==="greedy"?_.join("").trim()==="":_.length===1&&_[0].length===0}function A(){if(a&&i&&(Y("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+o.DefaultDelimiter+"'"),i=!1),t.skipEmptyLines&&(a.data=a.data.filter(function(h){return!J(h)})),P()){let h=function(D,U){D=j(D),E(t.transformHeader)&&(D=t.transformHeader(D,U)),g.push(D)};if(a)if(Array.isArray(a.data[0])){for(var _=0;P()&&_(I=>(t.dynamicTypingFunction&&t.dynamicTyping[I]===void 0&&(t.dynamicTyping[I]=t.dynamicTypingFunction(I)),(t.dynamicTyping[I]||t.dynamicTyping)===!0))(Z)?u==="true"||u==="TRUE"||u!=="false"&&u!=="FALSE"&&((I=>{if(V.test(I)&&(I=parseFloat(I),L=g.length?"__parsed_extra":g[R]:N,y=t.transform?t.transform(y,N):y);N==="__parsed_extra"?(U[N]=U[N]||[],U[N].push(y)):U[N]=y}return t.header&&(R>g.length?Y("FieldMismatch","TooManyFields","Too many fields: expected "+g.length+" fields but parsed "+R,d+D):Rt.preview?s.abort():(a.data=a.data[0],n(a,m))))}),this.parse=function(_,x,F){var h=t.quoteChar||'"',h=(t.newline||(t.newline=this.guessLineEndings(_,h)),i=!1,t.delimiter?E(t.delimiter)&&(t.delimiter=t.delimiter(_),a.meta.delimiter=t.delimiter):((h=((D,U,R,N,y)=>{var Z,u,I,le;y=y||[","," ","|",";",o.RECORD_SEP,o.UNIT_SEP];for(var ue=0;ue{S.exports=b()})(He,function $(){var b=typeof self<"u"?self:typeof window<"u"?window:b!==void 0?b:{},B,z=!b.document&&!!b.postMessage,f=b.IS_PAPA_WORKER||!1,ie={},w=0,o={};function j(t){return t.charCodeAt(0)===65279?t.slice(1):t}function C(t){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine="",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},(function(r){var s=je(r);s.chunkSize=parseInt(s.chunkSize),r.step||r.chunk||(s.chunkSize=null),this._handle=new pe(s),(this._handle.streamer=this)._config=s}).call(this,t),this.parseChunk=function(r,s){var i=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&0=this._config.preview),f)b.postMessage({results:n,workerId:o.WORKER_ID,finished:i});else if(E(this._config.chunk)&&!s){if(this._config.chunk(n,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);this._completeResults=n=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(n.data),this._completeResults.errors=this._completeResults.errors.concat(n.errors),this._completeResults.meta=n.meta),this._completed||!i||!E(this._config.complete)||n&&n.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),i||n&&n.meta.paused||this._nextChunk(),n}this._halted=!0},this._sendError=function(r){E(this._config.error)?this._config.error(r):f&&this._config.error&&b.postMessage({workerId:o.WORKER_ID,error:r,finished:!1})}}function re(t){var r;(t=t||{}).chunkSize||(t.chunkSize=o.RemoteChunkSize),C.call(this,t),this._nextChunk=z?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(s){this._input=s,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(r=new XMLHttpRequest,this._config.withCredentials&&(r.withCredentials=this._config.withCredentials),z||(r.onload=ae(this._chunkLoaded,this),r.onerror=ae(this._chunkError,this)),r.open(this._config.downloadRequestBody?"POST":"GET",this._input,!z),this._config.downloadRequestHeaders){var s,i=this._config.downloadRequestHeaders;for(s in i)r.setRequestHeader(s,i[s])}var n;this._config.chunkSize&&(n=this._start+this._config.chunkSize-1,r.setRequestHeader("Range","bytes="+this._start+"-"+n));try{r.send(this._config.downloadRequestBody)}catch(p){this._chunkError(p.message)}z&&r.status===0&&this._chunkError()}},this._chunkLoaded=function(){r.readyState===4&&(r.status<200||400<=r.status?this._chunkError():(this._start+=this._config.chunkSize||r.responseText.length,this._finished=!this._config.chunkSize||this._start>=(s=>(s=s.getResponseHeader("Content-Range"))!==null?parseInt(s.substring(s.lastIndexOf("/")+1)):-1)(r),this.parseChunk(r.responseText)))},this._chunkError=function(s){s=r.statusText||s,this._sendError(new Error(s))}}function O(t){(t=t||{}).chunkSize||(t.chunkSize=o.LocalChunkSize),C.call(this,t);var r,s,i=typeof FileReader<"u";this.stream=function(n){this._input=n,s=n.slice||n.webkitSlice||n.mozSlice,i?((r=new FileReader).onload=ae(this._chunkLoaded,this),r.onerror=ae(this._chunkError,this)):r=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(n.target.result)},this._chunkError=function(){this._sendError(r.error)}}function l(t){var r;C.call(this,t=t||{}),this.stream=function(s){return r=s,this._nextChunk()},this._nextChunk=function(){var s,i;if(!this._finished)return s=this._config.chunkSize,r=s?(i=r.substring(0,s),r.substring(s)):(i=r,""),this._finished=!r,this.parseChunk(i)}}function v(t){C.call(this,t=t||{});var r=[],s=!0,i=!1;this.pause=function(){C.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){C.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(n){this._input=n,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){i&&r.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),r.length?this.parseChunk(r.shift()):s=!0},this._streamData=ae(function(n){try{r.push(typeof n=="string"?n:n.toString(this._config.encoding)),s&&(s=!1,this._checkIsFinished(),this.parseChunk(r.shift()))}catch(p){this._streamError(p)}},this),this._streamError=ae(function(n){this._streamCleanUp(),this._sendError(n)},this),this._streamEnd=ae(function(){this._streamCleanUp(),i=!0,this._streamData("")},this),this._streamCleanUp=ae(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function pe(t){var r,s,i,n,p=Math.pow(2,53),L=-p,V=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,G=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,m=this,T=0,d=0,K=!1,c=!1,g=[],a={data:[],errors:[],meta:{}};function J(_){return t.skipEmptyLines==="greedy"?_.join("").trim()==="":_.length===1&&_[0].length===0}function A(){if(a&&i&&(Y("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+o.DefaultDelimiter+"'"),i=!1),t.skipEmptyLines&&(a.data=a.data.filter(function(h){return!J(h)})),P()){let h=function(D,U){D=j(D),E(t.transformHeader)&&(D=t.transformHeader(D,U)),g.push(D)};if(a)if(Array.isArray(a.data[0])){for(var _=0;P()&&_(I=>(t.dynamicTypingFunction&&t.dynamicTyping[I]===void 0&&(t.dynamicTyping[I]=t.dynamicTypingFunction(I)),(t.dynamicTyping[I]||t.dynamicTyping)===!0))(Z)?u==="true"||u==="TRUE"||u!=="false"&&u!=="FALSE"&&((I=>{if(V.test(I)&&(I=parseFloat(I),L=g.length?"__parsed_extra":g[R]:N,y=t.transform?t.transform(y,N):y);N==="__parsed_extra"?(U[N]=U[N]||[],U[N].push(y)):U[N]=y}return t.header&&(R>g.length?Y("FieldMismatch","TooManyFields","Too many fields: expected "+g.length+" fields but parsed "+R,d+D):Rt.preview?s.abort():(a.data=a.data[0],n(a,m))))}),this.parse=function(_,x,F){var h=t.quoteChar||'"',h=(t.newline||(t.newline=this.guessLineEndings(_,h)),i=!1,t.delimiter?E(t.delimiter)&&(t.delimiter=t.delimiter(_),a.meta.delimiter=t.delimiter):((h=((D,U,R,N,y)=>{var Z,u,I,le;y=y||[","," ","|",";",o.RECORD_SEP,o.UNIT_SEP];for(var ue=0;ue=F.length/2?`\r @@ -8,4 +8,4 @@ import{g as Me,u as Ae,a as Ne,i as De,b as Ie,D as Le,c as Te,j as e,S as Fe,t `);var d=0,K=!1;this.parse=function(c,g,a){if(typeof c!="string")throw new Error("Input must be a string");var J=c.length,A=r.length,P=s.length,Y=i.length,_=E(n),x=[],F=[],h=[],D=d=0;if(!c)return q();if(L||L!==!1&&c.indexOf(m)===-1){for(var U=c.split(s),R=0;R=p)return q(!0);break}F.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:x.length,index:d}),u++}}else if(i&&h.length===0&&c.substring(d,d+Y)===i){if(y===-1)return q();d=y+P,y=c.indexOf(s,d),N=c.indexOf(r,d)}else if(N!==-1&&(N=p)return q(!0)}return X();function le(H){x.push(H),D=d}function ue(H){var Q=0;return Q=H!==-1&&(H=c.substring(u+1,H))&&H.trim()===""?H.length:Q}function X(H){return a||(H===void 0&&(H=c.substring(d)),h.push(H),d=J,le(h),_&&ee()),q()}function me(H){d=H,le(h),h=[],y=c.indexOf(s,d)}function q(H){if(t.header&&!g&&x.length&&!G){var Q=x[0],ne=Object.create(null),_e=new Set(Q);let we=!1;for(let fe=0;fe{var i;return!!o.WORKERS_SUPPORTED&&(i=(()=>{var n=b.URL||b.webkitURL||null,p=$.toString();return o.BLOB_URL||(o.BLOB_URL=n.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",p,")();"],{type:"text/javascript"})))})(),(i=new b.Worker(i)).onmessage=ye,i.id=w++,ie[i.id]=i)})()).userStep=r.step,s.userChunk=r.chunk,s.userComplete=r.complete,s.userError=r.error,r.step=E(r.step),r.chunk=E(r.chunk),r.complete=E(r.complete),r.error=E(r.error),delete r.worker,s.postMessage({input:t,config:r,workerId:s.id})},o.unparse=function(t,r){var s=!1,i=!0,n=",",p=`\r `,L='"',V=L+L,G=!1,m=null,T=!1,d=((()=>{if(typeof r=="object"){if(typeof r.delimiter!="string"||o.BAD_DELIMITERS.filter(function(g){return r.delimiter.indexOf(g)!==-1}).length||(n=r.delimiter),typeof r.quotes!="boolean"&&typeof r.quotes!="function"&&!Array.isArray(r.quotes)||(s=r.quotes),typeof r.skipEmptyLines!="boolean"&&typeof r.skipEmptyLines!="string"||(G=r.skipEmptyLines),typeof r.newline=="string"&&(p=r.newline),typeof r.quoteChar=="string"&&(L=r.quoteChar,V=L+L),typeof r.header=="boolean"&&(i=r.header),Array.isArray(r.columns)){if(r.columns.length===0)throw new Error("Option columns is empty");m=r.columns}r.escapeChar!==void 0&&(V=r.escapeChar+L),r.escapeFormulae instanceof RegExp?T=r.escapeFormulae:typeof r.escapeFormulae=="boolean"&&r.escapeFormulae&&(T=/^[=+\-@\t\r].*$/)}})(),new RegExp(se(L),"g"));if(typeof t=="string"&&(t=JSON.parse(t)),Array.isArray(t)){if(!t.length||Array.isArray(t[0]))return K(null,t,G);if(typeof t[0]=="object")return K(m||Object.keys(t[0]),t,G)}else if(typeof t=="object")return typeof t.data=="string"&&(t.data=JSON.parse(t.data)),Array.isArray(t.data)&&(t.fields||(t.fields=t.meta&&t.meta.fields||m),t.fields||(t.fields=Array.isArray(t.data[0])?t.fields:typeof t.data[0]=="object"?Object.keys(t.data[0]):[]),Array.isArray(t.data[0])||typeof t.data[0]=="object"||(t.data=[t.data])),K(t.fields||[],t.data||[],G);throw new Error("Unable to serialize unrecognized input");function K(g,a,J){var A="",P=(typeof g=="string"&&(g=JSON.parse(g)),typeof a=="string"&&(a=JSON.parse(a)),Array.isArray(g)&&0{for(var x=0;x<_.length;x++)if(-1=1e6?`${k(M/1e6)} km`:`${k(M/1e3,1)} m`}function Be(S){const M=Ke.unparse(S.map(B=>({...B,batteryHealth:JSON.stringify(B.batteryHealth)}))),$=URL.createObjectURL(new Blob([M],{type:"text/csv;charset=utf-8"})),b=document.createElement("a");b.href=$,b.download="fleet-battery-efficiency.csv",b.click(),URL.revokeObjectURL($)}function oe({label:S,value:M,detail:$}){return e.jsxs("div",{className:"surface min-w-0 px-1 py-0.5",children:[e.jsx("div",{className:"text-[0.68rem] text-slate-400",children:S}),e.jsx("div",{className:"truncate text-sm font-semibold text-slate-100",children:M}),$?e.jsx("div",{className:"truncate text-[0.68rem] text-slate-500",children:$}):null]})}function W({field:S,sort:M,onSort:$,children:b}){return e.jsx("th",{children:e.jsxs("button",{type:"button",className:"whitespace-nowrap text-left",onClick:()=>$(S),children:[b,M.key===S?M.descending?" ↓":" ↑":""]})})}function Qe({report:S,refresh:M}){const $=Ue(),b=Ne(j=>j.session?.role||null),B=b==="admin"||b==="lockdown",[z,f]=he.useState({roverId:S.rovers[0]?.roverId||"",chemistry:"unknown",ratedCapacityMah:"",installedDate:new Date().toISOString().slice(0,10),notes:""}),[ie,w]=he.useState("");function o(j){j.preventDefault(),w("Saving…"),$.emit("fleetReports:replaceBattery",{...z,ratedCapacityMah:Number(z.ratedCapacityMah),installedAt:new Date(`${z.installedDate}T12:00:00`).getTime()},(C={})=>{w(C.error||`Registered ${C.battery?.batteryKey||"battery"}`),C.error||M()})}return e.jsxs(de,{title:"Battery identity and baselines",meta:`${S.batteryRegistry.length} records`,bodyClassName:"space-y-0.5 p-0.5",children:[e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full whitespace-nowrap text-left text-xs",children:[e.jsx("thead",{className:"text-slate-400",children:e.jsxs("tr",{children:[e.jsx("th",{children:"Rover"}),e.jsx("th",{children:"Battery"}),e.jsx("th",{children:"Chemistry"}),e.jsx("th",{children:"Rated mAh"}),e.jsx("th",{children:"Installed"}),e.jsx("th",{children:"Retired"}),e.jsx("th",{children:"Learned baseline mAh"}),e.jsx("th",{children:"Notes"})]})}),e.jsx("tbody",{children:S.batteryRegistry.map(j=>e.jsxs("tr",{className:"border-t border-neutral-700/70 text-slate-200",children:[e.jsx("td",{children:j.roverId}),e.jsx("td",{children:j.batteryKey}),e.jsx("td",{children:j.chemistry||"--"}),e.jsx("td",{children:k(j.ratedCapacityMah,0)}),e.jsx("td",{children:xe(j.installedAt)}),e.jsx("td",{children:xe(j.retiredAt)}),e.jsx("td",{children:k(j.healthyBaselineMah,0)}),e.jsx("td",{children:j.notes||"--"})]},j.batteryKey))})]})}),B?e.jsxs("form",{className:"surface grid gap-0.5 p-1 text-xs md:grid-cols-2 xl:grid-cols-6",onSubmit:o,children:[e.jsxs("label",{children:[e.jsx("span",{className:"text-slate-400",children:"Rover"}),e.jsx("select",{className:"w-full bg-neutral-800 p-0.5",value:z.roverId,onChange:j=>f(C=>({...C,roverId:j.target.value})),children:S.rovers.map(j=>e.jsx("option",{value:j.roverId,children:j.name},j.roverId))})]}),e.jsxs("label",{children:[e.jsx("span",{className:"text-slate-400",children:"Chemistry"}),e.jsxs("select",{className:"w-full bg-neutral-800 p-0.5",value:z.chemistry,onChange:j=>f(C=>({...C,chemistry:j.target.value})),children:[e.jsx("option",{value:"unknown",children:"Unknown"}),e.jsx("option",{value:"NiMH",children:"NiMH"}),e.jsx("option",{value:"Li-ion",children:"Li-ion"})]})]}),e.jsxs("label",{children:[e.jsx("span",{className:"text-slate-400",children:"Rated capacity mAh"}),e.jsx("input",{required:!0,min:"1",max:"65535",type:"number",className:"w-full bg-neutral-800 p-0.5",value:z.ratedCapacityMah,onChange:j=>f(C=>({...C,ratedCapacityMah:j.target.value}))})]}),e.jsxs("label",{children:[e.jsx("span",{className:"text-slate-400",children:"Installed"}),e.jsx("input",{required:!0,type:"date",className:"w-full bg-neutral-800 p-0.5",value:z.installedDate,onChange:j=>f(C=>({...C,installedDate:j.target.value}))})]}),e.jsxs("label",{children:[e.jsx("span",{className:"text-slate-400",children:"Notes"}),e.jsx("input",{className:"w-full bg-neutral-800 p-0.5",value:z.notes,onChange:j=>f(C=>({...C,notes:j.target.value}))})]}),e.jsxs("div",{className:"flex items-end gap-0.5",children:[e.jsx("button",{type:"submit",className:"button-dark px-1 py-0.5",children:"Install or replace"}),e.jsx("span",{className:"text-slate-400",children:ie})]})]}):null]})}function Ve(){const[S,M]=he.useState(Ee[1].ms),[$,b]=he.useState(()=>Date.now()),[B,z]=he.useState(""),[f,ie]=he.useState({key:"name",descending:!1}),{report:w,loading:o,error:j,refresh:C}=We({since:$-S,until:$,includeEvents:!1}),re=he.useMemo(()=>[...(w?.rovers||[]).filter(v=>`${v.name} ${v.roverId}`.toLowerCase().includes(B.trim().toLowerCase()))].sort((v,pe)=>{const se=f.key.startsWith("batteryHealth.")?v.batteryHealth?.[f.key.slice(14)]:v[f.key],ce=f.key.startsWith("batteryHealth.")?pe.batteryHealth?.[f.key.slice(14)]:pe[f.key],ye=typeof se=="string"?se.localeCompare(String(ce??"")):(Number(se)||0)-(Number(ce)||0);return f.descending?-ye:ye}),[B,w,f]);function O(l){ie(v=>({key:l,descending:v.key===l?!v.descending:!1}))}return e.jsxs(e.Fragment,{children:[e.jsxs(de,{title:"Fleet battery health and efficiency",meta:w?xe(w.generatedAt):"Loading",bodyClassName:"space-y-0.5 p-0.5",children:[e.jsxs("div",{className:"surface flex flex-wrap items-end gap-0.5 p-0.5 text-xs",children:[e.jsxs("label",{children:[e.jsx("span",{className:"mr-0.5 text-slate-400",children:"Range"}),e.jsx("select",{className:"bg-neutral-800 p-0.5",value:S,onChange:l=>M(Number(l.target.value)),children:Ee.map(l=>e.jsx("option",{value:l.ms,children:l.label},l.ms))})]}),e.jsxs("label",{children:[e.jsx("span",{className:"mr-0.5 text-slate-400",children:"Find rover"}),e.jsx("input",{className:"bg-neutral-800 p-0.5",value:B,onChange:l=>z(l.target.value)})]}),e.jsx("button",{type:"button",className:"button-dark px-1 py-0.5",onClick:()=>{b(Date.now()),C()},children:"Refresh"}),e.jsx(Oe,{className:"button-dark px-1 py-0.5",to:"/",children:"Back"})]}),o&&!w?e.jsx("p",{className:"text-slate-400",children:"Loading fleet metrics…"}):null,j?e.jsx("p",{className:"text-red-300",children:j}):null,w?e.jsxs("div",{className:"grid grid-cols-2 gap-0.5 md:grid-cols-4 xl:grid-cols-8",children:[e.jsx(oe,{label:"Rovers online",value:`${w.totals.onlineRoverCount}/${w.totals.roverCount}`}),e.jsx(oe,{label:"Distance",value:ve(w.totals.distanceMm)}),e.jsx(oe,{label:"Energy used",value:`${k(w.totals.dischargedWh)} Wh`}),e.jsx(oe,{label:"Fleet Wh/km",value:w.totals.overallWhPerKm==null?"--":k(w.totals.overallWhPerKm)}),e.jsx(oe,{label:"Moving Wh/km",value:w.totals.movingWhPerKm==null?"--":k(w.totals.movingWhPerKm)}),e.jsx(oe,{label:"Moving energy",value:`${k(w.totals.movingDischargedWh)} Wh`}),e.jsx(oe,{label:"Stationary energy",value:`${k(w.totals.stationaryDischargedWh)} Wh`}),e.jsx(oe,{label:"Attention",value:k(w.totals.attentionCount,0)})]}):null]}),w?e.jsxs(e.Fragment,{children:[e.jsx(de,{title:"All rovers",meta:`${re.length} visible`,actions:e.jsx("button",{type:"button",className:"button-dark px-1 py-0.25 text-xs",onClick:()=>Be(re),children:"Export CSV"}),bodyClassName:"overflow-x-auto p-0.5",children:e.jsxs("table",{className:"w-full whitespace-nowrap text-left text-xs",children:[e.jsx("thead",{className:"sticky top-0 bg-neutral-900 text-slate-400",children:e.jsxs("tr",{children:[e.jsx(W,{field:"name",sort:f,onSort:O,children:"Rover"}),e.jsx(W,{field:"online",sort:f,onSort:O,children:"State"}),e.jsx(W,{field:"batteryHealth.capacityRetentionPercent",sort:f,onSort:O,children:"Health"}),e.jsx(W,{field:"batteryHealth.measuredUsableMah",sort:f,onSort:O,children:"Usable Ah"}),e.jsx(W,{field:"batteryHealth.measuredUsableWh",sort:f,onSort:O,children:"Usable Wh"}),e.jsx(W,{field:"batteryHealth.confidence",sort:f,onSort:O,children:"Confidence"}),e.jsx(W,{field:"overallWhPerKm",sort:f,onSort:O,children:"Wh/km"}),e.jsx(W,{field:"movingWhPerKm",sort:f,onSort:O,children:"Moving Wh/km"}),e.jsx(W,{field:"distanceMm",sort:f,onSort:O,children:"Distance"}),e.jsx(W,{field:"dischargedWh",sort:f,onSort:O,children:"Used Wh"}),e.jsx(W,{field:"movingDischargedWh",sort:f,onSort:O,children:"Moving Wh"}),e.jsx(W,{field:"stationaryDischargedWh",sort:f,onSort:O,children:"Stationary Wh"}),e.jsx(W,{field:"movingMs",sort:f,onSort:O,children:"Moving time"}),e.jsx(W,{field:"averageSpeedMmPerSecond",sort:f,onSort:O,children:"Average speed"}),e.jsx(W,{field:"maximumSpeedMmPerSecond",sort:f,onSort:O,children:"Maximum speed"}),e.jsx(W,{field:"latestChargeMah",sort:f,onSort:O,children:"Charge"}),e.jsx(W,{field:"averageVoltageMv",sort:f,onSort:O,children:"Voltage"}),e.jsx(W,{field:"averageCurrentMa",sort:f,onSort:O,children:"Current"}),e.jsx(W,{field:"maximumTemperatureC",sort:f,onSort:O,children:"Temperature"}),e.jsx(W,{field:"lastSampleAt",sort:f,onSort:O,children:"Last data"})]})}),e.jsx("tbody",{children:re.map(l=>{const v=l.batteryHealth;return e.jsxs("tr",{className:"border-t border-neutral-700/70 text-slate-200",children:[e.jsx("td",{className:"sticky left-0 bg-neutral-900 font-semibold",children:l.name}),e.jsx("td",{children:l.online?"online":"offline"}),e.jsx("td",{children:v.capacityRetentionPercent==null?"--":`${k(v.capacityRetentionPercent,1)}%`}),e.jsx("td",{children:v.measuredUsableMah==null?"--":k(v.measuredUsableMah/1e3,3)}),e.jsx("td",{children:k(v.measuredUsableWh)}),e.jsx("td",{title:v.confidenceReason,children:v.confidence}),e.jsx("td",{children:l.overallWhPerKm==null?`need ${ve(l.efficiencyDistanceRequiredMm)}`:k(l.overallWhPerKm)}),e.jsx("td",{children:k(l.movingWhPerKm)}),e.jsx("td",{children:ve(l.distanceMm)}),e.jsx("td",{children:k(l.dischargedWh)}),e.jsx("td",{children:k(l.movingDischargedWh)}),e.jsx("td",{children:k(l.stationaryDischargedWh)}),e.jsx("td",{children:qe(l.movingMs)}),e.jsx("td",{children:l.averageSpeedMmPerSecond==null?"--":`${k(l.averageSpeedMmPerSecond)} mm/s`}),e.jsx("td",{children:l.maximumSpeedMmPerSecond==null?"--":`${k(l.maximumSpeedMmPerSecond)} mm/s`}),e.jsxs("td",{children:[k(l.latestChargeMah,0)," mAh"]}),e.jsxs("td",{children:[k(l.averageVoltageMv,0)," mV"]}),e.jsxs("td",{children:[k(l.averageCurrentMa,0)," mA"]}),e.jsxs("td",{children:[k(l.maximumTemperatureC,1)," °C"]}),e.jsx("td",{children:xe(l.lastSampleAt)})]},l.roverId)})})]})}),e.jsx(de,{title:"Battery-health evidence",meta:"All rovers",bodyClassName:"overflow-x-auto p-0.5",children:e.jsxs("table",{className:"w-full whitespace-nowrap text-left text-xs",children:[e.jsx("thead",{className:"text-slate-400",children:e.jsxs("tr",{children:[e.jsx("th",{children:"Rover"}),e.jsx("th",{children:"Battery"}),e.jsx("th",{children:"Reference mAh"}),e.jsx("th",{children:"Estimated usable mAh"}),e.jsx("th",{children:"Observed range floor"}),e.jsx("th",{children:"Retention"}),e.jsx("th",{children:"Observations"}),e.jsx("th",{children:"Average depth"}),e.jsx("th",{children:"Throughput"}),e.jsx("th",{children:"Latest evidence"}),e.jsx("th",{children:"Confidence basis"})]})}),e.jsx("tbody",{children:re.map(l=>{const v=l.batteryHealth;return e.jsxs("tr",{className:"border-t border-neutral-700/70 text-slate-200",children:[e.jsx("td",{children:l.name}),e.jsx("td",{children:v.batteryKey}),e.jsx("td",{children:k(v.referenceMah,0)}),e.jsx("td",{children:k(v.measuredUsableMah,0)}),e.jsx("td",{children:k(v.observedUsableFloorMah,0)}),e.jsx("td",{children:v.capacityRetentionPercent==null?"--":`${k(v.capacityRetentionPercent,1)}%`}),e.jsx("td",{children:k(v.observationCount,0)}),e.jsxs("td",{children:[k(v.averageObservationDepthPercent,1),"%"]}),e.jsxs("td",{children:[k(v.dischargedThroughputMah,0)," mAh"]}),e.jsx("td",{children:xe(v.latestObservationAt)}),e.jsx("td",{children:v.confidenceReason})]},l.roverId)})})]})}),w.attention.length?e.jsx(de,{title:"Attention",meta:w.attention.length,bodyClassName:"p-0.5 text-xs",children:e.jsxs("table",{className:"w-full text-left",children:[e.jsx("thead",{className:"text-slate-400",children:e.jsxs("tr",{children:[e.jsx("th",{children:"Rover"}),e.jsx("th",{children:"Severity"}),e.jsx("th",{children:"Reason"})]})}),e.jsx("tbody",{children:w.attention.map(l=>e.jsxs("tr",{className:"border-t border-neutral-700/70",children:[e.jsx("td",{children:l.roverId}),e.jsx("td",{children:l.severity}),e.jsx("td",{children:l.title})]},l.key))})]})}):null,e.jsx(Qe,{report:w,refresh:C}),e.jsxs(de,{title:"Methodology",bodyClassName:"space-y-0.5 p-1 text-xs text-slate-300",children:[e.jsx("p",{children:"Energy is integrated per sensor interval from OI voltage and signed current. Existing odometer distance and speed are consumed directly; reporting does not calculate a competing speed value."}),e.jsx("p",{children:"Capacity combines partial discharge current with packet 25 charge movement. Every usable observation contributes; deeper observations increase confidence without labeling cycles good or bad. Packet 26 is only a fixed reference."}),e.jsx("p",{children:"Wh/km appears after 25 m of selected-range odometer travel. Existing historical rows predate exact power integration, so their Wh fields remain zero rather than being backfilled with false precision."})]})]}):null]})}function Ge(){Ae({identitySurface:"passive"});const S=Ne(b=>De(b,"fleetReports")),{value:M}=Ie("page",{backgroundTheme:Le}),$=Te(M?.backgroundTheme);return e.jsxs("div",{className:`${$} min-h-screen text-slate-100`,children:[e.jsx(Fe,{}),e.jsx("main",{className:`mx-auto flex min-h-screen w-full max-w-[120rem] flex-col ${Pe} p-1`,children:S?e.jsx(Ve,{}):e.jsxs(de,{title:"Fleet reports unavailable",bodyClassName:"space-y-0.5 p-1 text-sm text-slate-300",children:[e.jsx("p",{children:"This server has not enabled fleet reporting."}),e.jsx(Oe,{className:"button-dark inline-block px-1 py-0.5 text-xs",to:"/",children:"Back to rover page"})]})})]})}export{Ge as default}; -//# sourceMappingURL=FleetReportsApp-D0ASy3FH.js.map +//# sourceMappingURL=FleetReportsApp-Uxtf9sUZ.js.map diff --git a/server/public/assets/FleetReportsApp-D0ASy3FH.js.map b/server/public/assets/FleetReportsApp-Uxtf9sUZ.js.map similarity index 99% rename from server/public/assets/FleetReportsApp-D0ASy3FH.js.map rename to server/public/assets/FleetReportsApp-Uxtf9sUZ.js.map index a8ebb180..ca3fa6f1 100644 --- a/server/public/assets/FleetReportsApp-D0ASy3FH.js.map +++ b/server/public/assets/FleetReportsApp-Uxtf9sUZ.js.map @@ -1 +1 @@ -{"version":3,"file":"FleetReportsApp-D0ASy3FH.js","sources":["../../../webui/node_modules/papaparse/papaparse.min.js","../../../webui/src/reports/FleetReportsApp.jsx"],"sourcesContent":["/* @license\nPapa Parse\nv5.5.4\nhttps://github.com/mholt/PapaParse\nLicense: MIT\n*/\n((e,t)=>{\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof module&&\"undefined\"!=typeof exports?module.exports=t():e.Papa=t()})(this,function r(){var n=\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:void 0!==n?n:{};var d,s=!n.document&&!!n.postMessage,a=n.IS_PAPA_WORKER||!1,o={},h=0,v={};function P(e){return 65279===e.charCodeAt(0)?e.slice(1):e}function u(e){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine=\"\",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},function(e){var t=b(e);t.chunkSize=parseInt(t.chunkSize),e.step||e.chunk||(t.chunkSize=null);this._handle=new i(t),(this._handle.streamer=this)._config=t}.call(this,e),this.parseChunk=function(t,e){var i=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&0=this._config.preview);if(a)n.postMessage({results:r,workerId:v.WORKER_ID,finished:i});else if(q(this._config.chunk)&&!e){if(this._config.chunk(r,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);this._completeResults=r=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(r.data),this._completeResults.errors=this._completeResults.errors.concat(r.errors),this._completeResults.meta=r.meta),this._completed||!i||!q(this._config.complete)||r&&r.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),i||r&&r.meta.paused||this._nextChunk(),r}this._halted=!0},this._sendError=function(e){q(this._config.error)?this._config.error(e):a&&this._config.error&&n.postMessage({workerId:v.WORKER_ID,error:e,finished:!1})}}function f(e){var r;(e=e||{}).chunkSize||(e.chunkSize=v.RemoteChunkSize),u.call(this,e),this._nextChunk=s?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(r=new XMLHttpRequest,this._config.withCredentials&&(r.withCredentials=this._config.withCredentials),s||(r.onload=y(this._chunkLoaded,this),r.onerror=y(this._chunkError,this)),r.open(this._config.downloadRequestBody?\"POST\":\"GET\",this._input,!s),this._config.downloadRequestHeaders){var e,t=this._config.downloadRequestHeaders;for(e in t)r.setRequestHeader(e,t[e])}var i;this._config.chunkSize&&(i=this._start+this._config.chunkSize-1,r.setRequestHeader(\"Range\",\"bytes=\"+this._start+\"-\"+i));try{r.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}s&&0===r.status&&this._chunkError()}},this._chunkLoaded=function(){4===r.readyState&&(r.status<200||400<=r.status?this._chunkError():(this._start+=this._config.chunkSize||r.responseText.length,this._finished=!this._config.chunkSize||this._start>=(e=>null!==(e=e.getResponseHeader(\"Content-Range\"))?parseInt(e.substring(e.lastIndexOf(\"/\")+1)):-1)(r),this.parseChunk(r.responseText)))},this._chunkError=function(e){e=r.statusText||e;this._sendError(new Error(e))}}function l(e){(e=e||{}).chunkSize||(e.chunkSize=v.LocalChunkSize),u.call(this,e);var i,r,n=\"undefined\"!=typeof FileReader;this.stream=function(e){this._input=e,r=e.slice||e.webkitSlice||e.mozSlice,n?((i=new FileReader).onload=y(this._chunkLoaded,this),i.onerror=y(this._chunkError,this)):i=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(i.error)}}function c(e){var i;u.call(this,e=e||{}),this.stream=function(e){return i=e,this._nextChunk()},this._nextChunk=function(){var e,t;if(!this._finished)return e=this._config.chunkSize,i=e?(t=i.substring(0,e),i.substring(e)):(t=i,\"\"),this._finished=!i,this.parseChunk(t)}}function p(e){u.call(this,e=e||{});var t=[],i=!0,r=!1;this.pause=function(){u.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){u.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on(\"data\",this._streamData),this._input.on(\"end\",this._streamEnd),this._input.on(\"error\",this._streamError)},this._checkIsFinished=function(){r&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):i=!0},this._streamData=y(function(e){try{t.push(\"string\"==typeof e?e:e.toString(this._config.encoding)),i&&(i=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}},this),this._streamError=y(function(e){this._streamCleanUp(),this._sendError(e)},this),this._streamEnd=y(function(){this._streamCleanUp(),r=!0,this._streamData(\"\")},this),this._streamCleanUp=y(function(){this._input.removeListener(\"data\",this._streamData),this._input.removeListener(\"end\",this._streamEnd),this._input.removeListener(\"error\",this._streamError)},this)}function i(m){var n,s,a,t,o=Math.pow(2,53),h=-o,u=/^\\s*-?(\\d+\\.?|\\.\\d+|\\d+\\.\\d+)([eE][-+]?\\d+)?\\s*$/,d=/^((\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z)))$/,i=this,r=0,f=0,l=!1,e=!1,c=[],p={data:[],errors:[],meta:{}};function y(e){return\"greedy\"===m.skipEmptyLines?\"\"===e.join(\"\").trim():1===e.length&&0===e[0].length}function g(){if(p&&a&&(k(\"Delimiter\",\"UndetectableDelimiter\",\"Unable to auto-detect delimiting character; defaulted to '\"+v.DefaultDelimiter+\"'\"),a=!1),m.skipEmptyLines&&(p.data=p.data.filter(function(e){return!y(e)})),_()){if(p)if(Array.isArray(p.data[0])){for(var e=0;_()&&e(e=>(m.dynamicTypingFunction&&void 0===m.dynamicTyping[e]&&(m.dynamicTyping[e]=m.dynamicTypingFunction(e)),!0===(m.dynamicTyping[e]||m.dynamicTyping)))(e)?\"true\"===t||\"TRUE\"===t||\"false\"!==t&&\"FALSE\"!==t&&((e=>{if(u.test(e)){e=parseFloat(e);if(h=c.length?\"__parsed_extra\":c[r]:n,s=m.transform?m.transform(s,n):s);\"__parsed_extra\"===n?(i[n]=i[n]||[],i[n].push(s)):i[n]=s}return m.header&&(r>c.length?k(\"FieldMismatch\",\"TooManyFields\",\"Too many fields: expected \"+c.length+\" fields but parsed \"+r,f+t):rm.preview?s.abort():(p.data=p.data[0],t(p,i))))}),this.parse=function(e,t,i){var r=m.quoteChar||'\"',r=(m.newline||(m.newline=this.guessLineEndings(e,r)),a=!1,m.delimiter?q(m.delimiter)&&(m.delimiter=m.delimiter(e),p.meta.delimiter=m.delimiter):((r=((e,t,i,r,n)=>{var s,a,o,h;n=n||[\",\",\"\\t\",\"|\",\";\",v.RECORD_SEP,v.UNIT_SEP];for(var u=0;u=i.length/2?\"\\r\\n\":\"\\r\"}}function U(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")}function E(C){var S=(C=C||{}).delimiter,O=C.newline,x=C.comments,I=C.step,A=C.preview,T=C.fastMode,D=null,L=!1,F=null==C.quoteChar?'\"':C.quoteChar,j=F;if(void 0!==C.escapeChar&&(j=C.escapeChar),(\"string\"!=typeof S||-1=A)return w(!0);break}u.push({type:\"Quotes\",code:\"InvalidQuotes\",message:\"Trailing quote on quoted field is malformed\",row:h.length,index:z}),m++}}else if(x&&0===d.length&&i.substring(z,z+a)===x){if(-1===g)return w();z=g+s,g=i.indexOf(O,z),p=i.indexOf(S,z)}else if(-1!==p&&(p=A)return w(!0)}return E();function k(e){h.push(e),f=z}function v(e){var t=0;return t=-1!==e&&(e=i.substring(m+1,e))&&\"\"===e.trim()?e.length:t}function E(e){return r||(void 0===e&&(e=i.substring(z)),d.push(e),z=n,k(d),o&&R()),w()}function b(e){z=e,k(d),d=[],g=i.indexOf(O,z)}function w(e){if(C.header&&!t&&h.length&&!L){var s=h[0],a=Object.create(null),o=new Set(s);let n=!1;for(let r=0;r{var e;return!!v.WORKERS_SUPPORTED&&(e=(()=>{var e=n.URL||n.webkitURL||null,t=r.toString();return v.BLOB_URL||(v.BLOB_URL=e.createObjectURL(new Blob([\"var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; \",\"(\",t,\")();\"],{type:\"text/javascript\"})))})(),(e=new n.Worker(e)).onmessage=g,e.id=h++,o[e.id]=e)})()).userStep=t.step,i.userChunk=t.chunk,i.userComplete=t.complete,i.userError=t.error,t.step=q(t.step),t.chunk=q(t.chunk),t.complete=q(t.complete),t.error=q(t.error),delete t.worker,i.postMessage({input:e,config:t,workerId:i.id})},v.unparse=function(e,t){var s=!1,_=!0,m=\",\",y=\"\\r\\n\",a='\"',o=a+a,i=!1,r=null,h=!1,u=((()=>{if(\"object\"==typeof t){if(\"string\"!=typeof t.delimiter||v.BAD_DELIMITERS.filter(function(e){return-1!==t.delimiter.indexOf(e)}).length||(m=t.delimiter),\"boolean\"!=typeof t.quotes&&\"function\"!=typeof t.quotes&&!Array.isArray(t.quotes)||(s=t.quotes),\"boolean\"!=typeof t.skipEmptyLines&&\"string\"!=typeof t.skipEmptyLines||(i=t.skipEmptyLines),\"string\"==typeof t.newline&&(y=t.newline),\"string\"==typeof t.quoteChar&&(a=t.quoteChar,o=a+a),\"boolean\"==typeof t.header&&(_=t.header),Array.isArray(t.columns)){if(0===t.columns.length)throw new Error(\"Option columns is empty\");r=t.columns}void 0!==t.escapeChar&&(o=t.escapeChar+a),t.escapeFormulae instanceof RegExp?h=t.escapeFormulae:\"boolean\"==typeof t.escapeFormulae&&t.escapeFormulae&&(h=/^[=+\\-@\\t\\r].*$/)}})(),new RegExp(U(a),\"g\"));\"string\"==typeof e&&(e=JSON.parse(e));if(Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return n(null,e,i);if(\"object\"==typeof e[0])return n(r||Object.keys(e[0]),e,i)}else if(\"object\"==typeof e)return\"string\"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields||r),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:\"object\"==typeof e.data[0]?Object.keys(e.data[0]):[]),Array.isArray(e.data[0])||\"object\"==typeof e.data[0]||(e.data=[e.data])),n(e.fields||[],e.data||[],i);throw new Error(\"Unable to serialize unrecognized input\");function n(e,t,i){var r=\"\",n=(\"string\"==typeof e&&(e=JSON.parse(e)),\"string\"==typeof t&&(t=JSON.parse(t)),Array.isArray(e)&&0{for(var i=0;i= 1e6 ? `${number(millimeters / 1e6)} km` : `${number(millimeters / 1000, 1)} m`;\n}\n\nfunction exportCsv(rows) {\n // Papa Parse owns quoting and escaping so new metric columns cannot silently\n // corrupt exports when rover names or confidence explanations contain commas.\n const csv = Papa.unparse(rows.map((rover) => ({\n ...rover,\n batteryHealth: JSON.stringify(rover.batteryHealth),\n })));\n const url = URL.createObjectURL(new Blob([csv], { type: 'text/csv;charset=utf-8' }));\n const anchor = document.createElement('a');\n anchor.href = url;\n anchor.download = 'fleet-battery-efficiency.csv';\n anchor.click();\n URL.revokeObjectURL(url);\n}\n\nfunction Metric({ label, value, detail }) {\n return (\n
\n
{label}
\n
{value}
\n {detail ?
{detail}
: null}\n
\n );\n}\n\nfunction SortHeading({ field, sort, onSort, children }) {\n // Sorting is an explicit table interaction rather than hidden column state;\n // the arrow tells users which fleet comparison currently controls row order.\n return ;\n}\n\nfunction BatteryRegistry({ report, refresh }) {\n const socket = useSocket();\n const role = useSessionSelector((state) => state.session?.role || null);\n const canEdit = role === 'admin' || role === 'lockdown';\n const [draft, setDraft] = useState({\n roverId: report.rovers[0]?.roverId || '',\n chemistry: 'unknown',\n ratedCapacityMah: '',\n installedDate: new Date().toISOString().slice(0, 10),\n notes: '',\n });\n const [status, setStatus] = useState('');\n\n function submit(event) {\n event.preventDefault();\n setStatus('Saving…');\n socket.emit('fleetReports:replaceBattery', {\n ...draft,\n ratedCapacityMah: Number(draft.ratedCapacityMah),\n installedAt: new Date(`${draft.installedDate}T12:00:00`).getTime(),\n }, (response = {}) => {\n setStatus(response.error || `Registered ${response.battery?.batteryKey || 'battery'}`);\n if (!response.error) refresh();\n });\n }\n\n return (\n \n
\n \n \n {report.batteryRegistry.map((battery) => (\n \n \n \n \n \n ))}\n
RoverBatteryChemistryRated mAhInstalledRetiredLearned baseline mAhNotes
{battery.roverId}{battery.batteryKey}{battery.chemistry || '--'}{number(battery.ratedCapacityMah, 0)}{timestamp(battery.installedAt)}{timestamp(battery.retiredAt)}{number(battery.healthyBaselineMah, 0)}{battery.notes || '--'}
\n
\n {canEdit ? (\n
\n \n \n \n \n \n
{status}
\n
\n ) : null}\n
\n );\n}\n\nfunction FullReportContent() {\n const [rangeMs, setRangeMs] = useState(RANGE_OPTIONS[1].ms);\n const [rangeEnd, setRangeEnd] = useState(() => Date.now());\n const [query, setQuery] = useState('');\n const [sort, setSort] = useState({ key: 'name', descending: false });\n const { report, loading, error, refresh } = useFleetReport({\n since: rangeEnd - rangeMs,\n until: rangeEnd,\n includeEvents: false,\n });\n\n const rows = useMemo(() => {\n const filtered = (report?.rovers || []).filter((rover) =>\n `${rover.name} ${rover.roverId}`.toLowerCase().includes(query.trim().toLowerCase()),\n );\n return [...filtered].sort((left, right) => {\n const leftValue = sort.key.startsWith('batteryHealth.')\n ? left.batteryHealth?.[sort.key.slice('batteryHealth.'.length)]\n : left[sort.key];\n const rightValue = sort.key.startsWith('batteryHealth.')\n ? right.batteryHealth?.[sort.key.slice('batteryHealth.'.length)]\n : right[sort.key];\n const result = typeof leftValue === 'string'\n ? leftValue.localeCompare(String(rightValue ?? ''))\n : (Number(leftValue) || 0) - (Number(rightValue) || 0);\n return sort.descending ? -result : result;\n });\n }, [query, report, sort]);\n\n function sortBy(key) {\n setSort((current) => ({ key, descending: current.key === key ? !current.descending : false }));\n }\n\n return (\n <>\n \n
\n \n \n \n Back\n
\n {loading && !report ?

Loading fleet metrics…

: null}\n {error ?

{error}

: null}\n {report ? (\n
\n \n \n \n \n \n \n \n \n
\n ) : null}\n
\n\n {report ? (\n <>\n exportCsv(rows)}>Export CSV}\n bodyClassName=\"overflow-x-auto p-0.5\"\n >\n \n \n RoverState\n HealthUsable Ah\n Usable WhConfidence\n Wh/kmMoving Wh/km\n DistanceUsed Wh\n Moving WhStationary Wh\n Moving timeAverage speed\n Maximum speedCharge\n VoltageCurrent\n TemperatureLast data\n \n {rows.map((rover) => {\n const health = rover.batteryHealth;\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n })}\n
{rover.name}{rover.online ? 'online' : 'offline'}{health.capacityRetentionPercent == null ? '--' : `${number(health.capacityRetentionPercent, 1)}%`}{health.measuredUsableMah == null ? '--' : number(health.measuredUsableMah / 1000, 3)}{number(health.measuredUsableWh)}{health.confidence}{rover.overallWhPerKm == null ? `need ${distance(rover.efficiencyDistanceRequiredMm)}` : number(rover.overallWhPerKm)}{number(rover.movingWhPerKm)}{distance(rover.distanceMm)}{number(rover.dischargedWh)}{number(rover.movingDischargedWh)}{number(rover.stationaryDischargedWh)}{duration(rover.movingMs)}{rover.averageSpeedMmPerSecond == null ? '--' : `${number(rover.averageSpeedMmPerSecond)} mm/s`}{rover.maximumSpeedMmPerSecond == null ? '--' : `${number(rover.maximumSpeedMmPerSecond)} mm/s`}{number(rover.latestChargeMah, 0)} mAh{number(rover.averageVoltageMv, 0)} mV{number(rover.averageCurrentMa, 0)} mA{number(rover.maximumTemperatureC, 1)} °C{timestamp(rover.lastSampleAt)}
\n \n\n \n \n \n {rows.map((rover) => {\n const health = rover.batteryHealth;\n return ;\n })}\n
RoverBatteryReference mAhEstimated usable mAhObserved range floorRetentionObservationsAverage depthThroughputLatest evidenceConfidence basis
{rover.name}{health.batteryKey}{number(health.referenceMah, 0)}{number(health.measuredUsableMah, 0)}{number(health.observedUsableFloorMah, 0)}{health.capacityRetentionPercent == null ? '--' : `${number(health.capacityRetentionPercent, 1)}%`}{number(health.observationCount, 0)}{number(health.averageObservationDepthPercent, 1)}%{number(health.dischargedThroughputMah, 0)} mAh{timestamp(health.latestObservationAt)}{health.confidenceReason}
\n
\n\n {report.attention.length ? (\n \n {report.attention.map((item) => )}
RoverSeverityReason
{item.roverId}{item.severity}{item.title}
\n
\n ) : null}\n\n \n\n \n

Energy is integrated per sensor interval from OI voltage and signed current. Existing odometer distance and speed are consumed directly; reporting does not calculate a competing speed value.

\n

Capacity combines partial discharge current with packet 25 charge movement. Every usable observation contributes; deeper observations increase confidence without labeling cycles good or bad. Packet 26 is only a fixed reference.

\n

Wh/km appears after 25 m of selected-range odometer travel. Existing historical rows predate exact power integration, so their Wh fields remain zero rather than being backfilled with false precision.

\n
\n \n ) : null}\n \n );\n}\n\nexport default function FleetReportsApp() {\n useUserIdentitySync({ identitySurface: 'passive' });\n const enabled = useSessionSelector((state) => isFeatureEnabled(state, 'fleetReports'));\n const { value: pageSettings } = useSettingsNamespace('page', { backgroundTheme: DEFAULT_PAGE_THEME_KEY });\n const pageBackgroundClass = usePageThemeClass(pageSettings?.backgroundTheme);\n return (\n
\n \n
\n {enabled ? : (\n \n

This server has not enabled fleet reporting.

\n Back to rover page\n
\n )}\n
\n
\n );\n}\n"],"names":["e","t","module","this","r","n","d","s","a","o","h","v","P","u","b","i","q","f","y","l","c","p","m","g","k","_","E","U","C","S","O","x","I","A","T","D","L","F","j","z","M","w","R","RANGE_OPTIONS","number","value","digits","timestamp","duration","minutes","distance","millimeters","exportCsv","rows","csv","Papa","rover","url","anchor","Metric","label","detail","jsxs","jsx","SortHeading","field","sort","onSort","children","BatteryRegistry","report","refresh","socket","useSocket","role","useSessionSelector","state","canEdit","draft","setDraft","useState","status","setStatus","submit","event","response","CardFrame","battery","FullReportContent","rangeMs","setRangeMs","rangeEnd","setRangeEnd","query","setQuery","setSort","loading","error","useFleetReport","useMemo","left","right","leftValue","rightValue","result","sortBy","key","current","Fragment","option","Link","health","item","FleetReportsApp","useUserIdentitySync","enabled","isFeatureEnabled","pageSettings","useSettingsNamespace","DEFAULT_PAGE_THEME_KEY","pageBackgroundClass","usePageThemeClass","SocketConnectionPill","themeGapClass"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"FleetReportsApp-Uxtf9sUZ.js","sources":["../../../webui/node_modules/papaparse/papaparse.min.js","../../../webui/src/reports/FleetReportsApp.jsx"],"sourcesContent":["/* @license\nPapa Parse\nv5.5.4\nhttps://github.com/mholt/PapaParse\nLicense: MIT\n*/\n((e,t)=>{\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof module&&\"undefined\"!=typeof exports?module.exports=t():e.Papa=t()})(this,function r(){var n=\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:void 0!==n?n:{};var d,s=!n.document&&!!n.postMessage,a=n.IS_PAPA_WORKER||!1,o={},h=0,v={};function P(e){return 65279===e.charCodeAt(0)?e.slice(1):e}function u(e){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine=\"\",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},function(e){var t=b(e);t.chunkSize=parseInt(t.chunkSize),e.step||e.chunk||(t.chunkSize=null);this._handle=new i(t),(this._handle.streamer=this)._config=t}.call(this,e),this.parseChunk=function(t,e){var i=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&0=this._config.preview);if(a)n.postMessage({results:r,workerId:v.WORKER_ID,finished:i});else if(q(this._config.chunk)&&!e){if(this._config.chunk(r,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);this._completeResults=r=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(r.data),this._completeResults.errors=this._completeResults.errors.concat(r.errors),this._completeResults.meta=r.meta),this._completed||!i||!q(this._config.complete)||r&&r.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),i||r&&r.meta.paused||this._nextChunk(),r}this._halted=!0},this._sendError=function(e){q(this._config.error)?this._config.error(e):a&&this._config.error&&n.postMessage({workerId:v.WORKER_ID,error:e,finished:!1})}}function f(e){var r;(e=e||{}).chunkSize||(e.chunkSize=v.RemoteChunkSize),u.call(this,e),this._nextChunk=s?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(r=new XMLHttpRequest,this._config.withCredentials&&(r.withCredentials=this._config.withCredentials),s||(r.onload=y(this._chunkLoaded,this),r.onerror=y(this._chunkError,this)),r.open(this._config.downloadRequestBody?\"POST\":\"GET\",this._input,!s),this._config.downloadRequestHeaders){var e,t=this._config.downloadRequestHeaders;for(e in t)r.setRequestHeader(e,t[e])}var i;this._config.chunkSize&&(i=this._start+this._config.chunkSize-1,r.setRequestHeader(\"Range\",\"bytes=\"+this._start+\"-\"+i));try{r.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}s&&0===r.status&&this._chunkError()}},this._chunkLoaded=function(){4===r.readyState&&(r.status<200||400<=r.status?this._chunkError():(this._start+=this._config.chunkSize||r.responseText.length,this._finished=!this._config.chunkSize||this._start>=(e=>null!==(e=e.getResponseHeader(\"Content-Range\"))?parseInt(e.substring(e.lastIndexOf(\"/\")+1)):-1)(r),this.parseChunk(r.responseText)))},this._chunkError=function(e){e=r.statusText||e;this._sendError(new Error(e))}}function l(e){(e=e||{}).chunkSize||(e.chunkSize=v.LocalChunkSize),u.call(this,e);var i,r,n=\"undefined\"!=typeof FileReader;this.stream=function(e){this._input=e,r=e.slice||e.webkitSlice||e.mozSlice,n?((i=new FileReader).onload=y(this._chunkLoaded,this),i.onerror=y(this._chunkError,this)):i=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(i.error)}}function c(e){var i;u.call(this,e=e||{}),this.stream=function(e){return i=e,this._nextChunk()},this._nextChunk=function(){var e,t;if(!this._finished)return e=this._config.chunkSize,i=e?(t=i.substring(0,e),i.substring(e)):(t=i,\"\"),this._finished=!i,this.parseChunk(t)}}function p(e){u.call(this,e=e||{});var t=[],i=!0,r=!1;this.pause=function(){u.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){u.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on(\"data\",this._streamData),this._input.on(\"end\",this._streamEnd),this._input.on(\"error\",this._streamError)},this._checkIsFinished=function(){r&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):i=!0},this._streamData=y(function(e){try{t.push(\"string\"==typeof e?e:e.toString(this._config.encoding)),i&&(i=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}},this),this._streamError=y(function(e){this._streamCleanUp(),this._sendError(e)},this),this._streamEnd=y(function(){this._streamCleanUp(),r=!0,this._streamData(\"\")},this),this._streamCleanUp=y(function(){this._input.removeListener(\"data\",this._streamData),this._input.removeListener(\"end\",this._streamEnd),this._input.removeListener(\"error\",this._streamError)},this)}function i(m){var n,s,a,t,o=Math.pow(2,53),h=-o,u=/^\\s*-?(\\d+\\.?|\\.\\d+|\\d+\\.\\d+)([eE][-+]?\\d+)?\\s*$/,d=/^((\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z)))$/,i=this,r=0,f=0,l=!1,e=!1,c=[],p={data:[],errors:[],meta:{}};function y(e){return\"greedy\"===m.skipEmptyLines?\"\"===e.join(\"\").trim():1===e.length&&0===e[0].length}function g(){if(p&&a&&(k(\"Delimiter\",\"UndetectableDelimiter\",\"Unable to auto-detect delimiting character; defaulted to '\"+v.DefaultDelimiter+\"'\"),a=!1),m.skipEmptyLines&&(p.data=p.data.filter(function(e){return!y(e)})),_()){if(p)if(Array.isArray(p.data[0])){for(var e=0;_()&&e(e=>(m.dynamicTypingFunction&&void 0===m.dynamicTyping[e]&&(m.dynamicTyping[e]=m.dynamicTypingFunction(e)),!0===(m.dynamicTyping[e]||m.dynamicTyping)))(e)?\"true\"===t||\"TRUE\"===t||\"false\"!==t&&\"FALSE\"!==t&&((e=>{if(u.test(e)){e=parseFloat(e);if(h=c.length?\"__parsed_extra\":c[r]:n,s=m.transform?m.transform(s,n):s);\"__parsed_extra\"===n?(i[n]=i[n]||[],i[n].push(s)):i[n]=s}return m.header&&(r>c.length?k(\"FieldMismatch\",\"TooManyFields\",\"Too many fields: expected \"+c.length+\" fields but parsed \"+r,f+t):rm.preview?s.abort():(p.data=p.data[0],t(p,i))))}),this.parse=function(e,t,i){var r=m.quoteChar||'\"',r=(m.newline||(m.newline=this.guessLineEndings(e,r)),a=!1,m.delimiter?q(m.delimiter)&&(m.delimiter=m.delimiter(e),p.meta.delimiter=m.delimiter):((r=((e,t,i,r,n)=>{var s,a,o,h;n=n||[\",\",\"\\t\",\"|\",\";\",v.RECORD_SEP,v.UNIT_SEP];for(var u=0;u=i.length/2?\"\\r\\n\":\"\\r\"}}function U(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")}function E(C){var S=(C=C||{}).delimiter,O=C.newline,x=C.comments,I=C.step,A=C.preview,T=C.fastMode,D=null,L=!1,F=null==C.quoteChar?'\"':C.quoteChar,j=F;if(void 0!==C.escapeChar&&(j=C.escapeChar),(\"string\"!=typeof S||-1=A)return w(!0);break}u.push({type:\"Quotes\",code:\"InvalidQuotes\",message:\"Trailing quote on quoted field is malformed\",row:h.length,index:z}),m++}}else if(x&&0===d.length&&i.substring(z,z+a)===x){if(-1===g)return w();z=g+s,g=i.indexOf(O,z),p=i.indexOf(S,z)}else if(-1!==p&&(p=A)return w(!0)}return E();function k(e){h.push(e),f=z}function v(e){var t=0;return t=-1!==e&&(e=i.substring(m+1,e))&&\"\"===e.trim()?e.length:t}function E(e){return r||(void 0===e&&(e=i.substring(z)),d.push(e),z=n,k(d),o&&R()),w()}function b(e){z=e,k(d),d=[],g=i.indexOf(O,z)}function w(e){if(C.header&&!t&&h.length&&!L){var s=h[0],a=Object.create(null),o=new Set(s);let n=!1;for(let r=0;r{var e;return!!v.WORKERS_SUPPORTED&&(e=(()=>{var e=n.URL||n.webkitURL||null,t=r.toString();return v.BLOB_URL||(v.BLOB_URL=e.createObjectURL(new Blob([\"var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; \",\"(\",t,\")();\"],{type:\"text/javascript\"})))})(),(e=new n.Worker(e)).onmessage=g,e.id=h++,o[e.id]=e)})()).userStep=t.step,i.userChunk=t.chunk,i.userComplete=t.complete,i.userError=t.error,t.step=q(t.step),t.chunk=q(t.chunk),t.complete=q(t.complete),t.error=q(t.error),delete t.worker,i.postMessage({input:e,config:t,workerId:i.id})},v.unparse=function(e,t){var s=!1,_=!0,m=\",\",y=\"\\r\\n\",a='\"',o=a+a,i=!1,r=null,h=!1,u=((()=>{if(\"object\"==typeof t){if(\"string\"!=typeof t.delimiter||v.BAD_DELIMITERS.filter(function(e){return-1!==t.delimiter.indexOf(e)}).length||(m=t.delimiter),\"boolean\"!=typeof t.quotes&&\"function\"!=typeof t.quotes&&!Array.isArray(t.quotes)||(s=t.quotes),\"boolean\"!=typeof t.skipEmptyLines&&\"string\"!=typeof t.skipEmptyLines||(i=t.skipEmptyLines),\"string\"==typeof t.newline&&(y=t.newline),\"string\"==typeof t.quoteChar&&(a=t.quoteChar,o=a+a),\"boolean\"==typeof t.header&&(_=t.header),Array.isArray(t.columns)){if(0===t.columns.length)throw new Error(\"Option columns is empty\");r=t.columns}void 0!==t.escapeChar&&(o=t.escapeChar+a),t.escapeFormulae instanceof RegExp?h=t.escapeFormulae:\"boolean\"==typeof t.escapeFormulae&&t.escapeFormulae&&(h=/^[=+\\-@\\t\\r].*$/)}})(),new RegExp(U(a),\"g\"));\"string\"==typeof e&&(e=JSON.parse(e));if(Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return n(null,e,i);if(\"object\"==typeof e[0])return n(r||Object.keys(e[0]),e,i)}else if(\"object\"==typeof e)return\"string\"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields||r),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:\"object\"==typeof e.data[0]?Object.keys(e.data[0]):[]),Array.isArray(e.data[0])||\"object\"==typeof e.data[0]||(e.data=[e.data])),n(e.fields||[],e.data||[],i);throw new Error(\"Unable to serialize unrecognized input\");function n(e,t,i){var r=\"\",n=(\"string\"==typeof e&&(e=JSON.parse(e)),\"string\"==typeof t&&(t=JSON.parse(t)),Array.isArray(e)&&0{for(var i=0;i= 1e6 ? `${number(millimeters / 1e6)} km` : `${number(millimeters / 1000, 1)} m`;\n}\n\nfunction exportCsv(rows) {\n // Papa Parse owns quoting and escaping so new metric columns cannot silently\n // corrupt exports when rover names or confidence explanations contain commas.\n const csv = Papa.unparse(rows.map((rover) => ({\n ...rover,\n batteryHealth: JSON.stringify(rover.batteryHealth),\n })));\n const url = URL.createObjectURL(new Blob([csv], { type: 'text/csv;charset=utf-8' }));\n const anchor = document.createElement('a');\n anchor.href = url;\n anchor.download = 'fleet-battery-efficiency.csv';\n anchor.click();\n URL.revokeObjectURL(url);\n}\n\nfunction Metric({ label, value, detail }) {\n return (\n
\n
{label}
\n
{value}
\n {detail ?
{detail}
: null}\n
\n );\n}\n\nfunction SortHeading({ field, sort, onSort, children }) {\n // Sorting is an explicit table interaction rather than hidden column state;\n // the arrow tells users which fleet comparison currently controls row order.\n return ;\n}\n\nfunction BatteryRegistry({ report, refresh }) {\n const socket = useSocket();\n const role = useSessionSelector((state) => state.session?.role || null);\n const canEdit = role === 'admin' || role === 'lockdown';\n const [draft, setDraft] = useState({\n roverId: report.rovers[0]?.roverId || '',\n chemistry: 'unknown',\n ratedCapacityMah: '',\n installedDate: new Date().toISOString().slice(0, 10),\n notes: '',\n });\n const [status, setStatus] = useState('');\n\n function submit(event) {\n event.preventDefault();\n setStatus('Saving…');\n socket.emit('fleetReports:replaceBattery', {\n ...draft,\n ratedCapacityMah: Number(draft.ratedCapacityMah),\n installedAt: new Date(`${draft.installedDate}T12:00:00`).getTime(),\n }, (response = {}) => {\n setStatus(response.error || `Registered ${response.battery?.batteryKey || 'battery'}`);\n if (!response.error) refresh();\n });\n }\n\n return (\n \n
\n \n \n {report.batteryRegistry.map((battery) => (\n \n \n \n \n \n ))}\n
RoverBatteryChemistryRated mAhInstalledRetiredLearned baseline mAhNotes
{battery.roverId}{battery.batteryKey}{battery.chemistry || '--'}{number(battery.ratedCapacityMah, 0)}{timestamp(battery.installedAt)}{timestamp(battery.retiredAt)}{number(battery.healthyBaselineMah, 0)}{battery.notes || '--'}
\n
\n {canEdit ? (\n
\n \n \n \n \n \n
{status}
\n
\n ) : null}\n
\n );\n}\n\nfunction FullReportContent() {\n const [rangeMs, setRangeMs] = useState(RANGE_OPTIONS[1].ms);\n const [rangeEnd, setRangeEnd] = useState(() => Date.now());\n const [query, setQuery] = useState('');\n const [sort, setSort] = useState({ key: 'name', descending: false });\n const { report, loading, error, refresh } = useFleetReport({\n since: rangeEnd - rangeMs,\n until: rangeEnd,\n includeEvents: false,\n });\n\n const rows = useMemo(() => {\n const filtered = (report?.rovers || []).filter((rover) =>\n `${rover.name} ${rover.roverId}`.toLowerCase().includes(query.trim().toLowerCase()),\n );\n return [...filtered].sort((left, right) => {\n const leftValue = sort.key.startsWith('batteryHealth.')\n ? left.batteryHealth?.[sort.key.slice('batteryHealth.'.length)]\n : left[sort.key];\n const rightValue = sort.key.startsWith('batteryHealth.')\n ? right.batteryHealth?.[sort.key.slice('batteryHealth.'.length)]\n : right[sort.key];\n const result = typeof leftValue === 'string'\n ? leftValue.localeCompare(String(rightValue ?? ''))\n : (Number(leftValue) || 0) - (Number(rightValue) || 0);\n return sort.descending ? -result : result;\n });\n }, [query, report, sort]);\n\n function sortBy(key) {\n setSort((current) => ({ key, descending: current.key === key ? !current.descending : false }));\n }\n\n return (\n <>\n \n
\n \n \n \n Back\n
\n {loading && !report ?

Loading fleet metrics…

: null}\n {error ?

{error}

: null}\n {report ? (\n
\n \n \n \n \n \n \n \n \n
\n ) : null}\n
\n\n {report ? (\n <>\n exportCsv(rows)}>Export CSV}\n bodyClassName=\"overflow-x-auto p-0.5\"\n >\n \n \n RoverState\n HealthUsable Ah\n Usable WhConfidence\n Wh/kmMoving Wh/km\n DistanceUsed Wh\n Moving WhStationary Wh\n Moving timeAverage speed\n Maximum speedCharge\n VoltageCurrent\n TemperatureLast data\n \n {rows.map((rover) => {\n const health = rover.batteryHealth;\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n })}\n
{rover.name}{rover.online ? 'online' : 'offline'}{health.capacityRetentionPercent == null ? '--' : `${number(health.capacityRetentionPercent, 1)}%`}{health.measuredUsableMah == null ? '--' : number(health.measuredUsableMah / 1000, 3)}{number(health.measuredUsableWh)}{health.confidence}{rover.overallWhPerKm == null ? `need ${distance(rover.efficiencyDistanceRequiredMm)}` : number(rover.overallWhPerKm)}{number(rover.movingWhPerKm)}{distance(rover.distanceMm)}{number(rover.dischargedWh)}{number(rover.movingDischargedWh)}{number(rover.stationaryDischargedWh)}{duration(rover.movingMs)}{rover.averageSpeedMmPerSecond == null ? '--' : `${number(rover.averageSpeedMmPerSecond)} mm/s`}{rover.maximumSpeedMmPerSecond == null ? '--' : `${number(rover.maximumSpeedMmPerSecond)} mm/s`}{number(rover.latestChargeMah, 0)} mAh{number(rover.averageVoltageMv, 0)} mV{number(rover.averageCurrentMa, 0)} mA{number(rover.maximumTemperatureC, 1)} °C{timestamp(rover.lastSampleAt)}
\n \n\n \n \n \n {rows.map((rover) => {\n const health = rover.batteryHealth;\n return ;\n })}\n
RoverBatteryReference mAhEstimated usable mAhObserved range floorRetentionObservationsAverage depthThroughputLatest evidenceConfidence basis
{rover.name}{health.batteryKey}{number(health.referenceMah, 0)}{number(health.measuredUsableMah, 0)}{number(health.observedUsableFloorMah, 0)}{health.capacityRetentionPercent == null ? '--' : `${number(health.capacityRetentionPercent, 1)}%`}{number(health.observationCount, 0)}{number(health.averageObservationDepthPercent, 1)}%{number(health.dischargedThroughputMah, 0)} mAh{timestamp(health.latestObservationAt)}{health.confidenceReason}
\n
\n\n {report.attention.length ? (\n \n {report.attention.map((item) => )}
RoverSeverityReason
{item.roverId}{item.severity}{item.title}
\n
\n ) : null}\n\n \n\n \n

Energy is integrated per sensor interval from OI voltage and signed current. Existing odometer distance and speed are consumed directly; reporting does not calculate a competing speed value.

\n

Capacity combines partial discharge current with packet 25 charge movement. Every usable observation contributes; deeper observations increase confidence without labeling cycles good or bad. Packet 26 is only a fixed reference.

\n

Wh/km appears after 25 m of selected-range odometer travel. Existing historical rows predate exact power integration, so their Wh fields remain zero rather than being backfilled with false precision.

\n
\n \n ) : null}\n \n );\n}\n\nexport default function FleetReportsApp() {\n useUserIdentitySync({ identitySurface: 'passive' });\n const enabled = useSessionSelector((state) => isFeatureEnabled(state, 'fleetReports'));\n const { value: pageSettings } = useSettingsNamespace('page', { backgroundTheme: DEFAULT_PAGE_THEME_KEY });\n const pageBackgroundClass = usePageThemeClass(pageSettings?.backgroundTheme);\n return (\n
\n \n
\n {enabled ? : (\n \n

This server has not enabled fleet reporting.

\n Back to rover page\n
\n )}\n
\n
\n );\n}\n"],"names":["e","t","module","this","r","n","d","s","a","o","h","v","P","u","b","i","q","f","y","l","c","p","m","g","k","_","E","U","C","S","O","x","I","A","T","D","L","F","j","z","M","w","R","RANGE_OPTIONS","number","value","digits","timestamp","duration","minutes","distance","millimeters","exportCsv","rows","csv","Papa","rover","url","anchor","Metric","label","detail","jsxs","jsx","SortHeading","field","sort","onSort","children","BatteryRegistry","report","refresh","socket","useSocket","role","useSessionSelector","state","canEdit","draft","setDraft","useState","status","setStatus","submit","event","response","CardFrame","battery","FullReportContent","rangeMs","setRangeMs","rangeEnd","setRangeEnd","query","setQuery","setSort","loading","error","useFleetReport","useMemo","left","right","leftValue","rightValue","result","sortBy","key","current","Fragment","option","Link","health","item","FleetReportsApp","useUserIdentitySync","enabled","isFeatureEnabled","pageSettings","useSettingsNamespace","DEFAULT_PAGE_THEME_KEY","pageBackgroundClass","usePageThemeClass","SocketConnectionPill","themeGapClass"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/server/public/assets/SetupApp-BTQ-8jXK.js b/server/public/assets/SetupApp-Ng2sxryp.js similarity index 94% rename from server/public/assets/SetupApp-BTQ-8jXK.js rename to server/public/assets/SetupApp-Ng2sxryp.js index 4eaa20ff..c35a80d7 100644 --- a/server/public/assets/SetupApp-BTQ-8jXK.js +++ b/server/public/assets/SetupApp-Ng2sxryp.js @@ -1,2 +1,2 @@ -import{e as F,r as s,j as e,S as P,C as c,L as $}from"./index-D5baJIet.js";import{e as q,f as D,i as I}from"./api-C0PIt_OP.js";function R(){const l=F(),[a,m]=s.useState(null),[n,b]=s.useState(""),[d,C]=s.useState(""),[p,N]=s.useState(""),[r,S]=s.useState(""),[f,v]=s.useState(""),[o,w]=s.useState(null),[x,h]=s.useState(!1),[g,i]=s.useState("");s.useEffect(()=>{q(l).then(t=>m(t.required)).catch(t=>i(t.message))},[l]);async function j(t){h(!0),i("");try{await t(),m(!1),i("Setup completed. You can now open the administration application and log in.")}catch(u){const E=Array.isArray(u.validationErrors)?` ${u.validationErrors.map(y=>`${y.path}: ${y.message}`).join("; ")}`:"";i(`${u.message}${E}`)}finally{h(!1)}}function k(t){if(t.preventDefault(),r!==f){i("Passwords do not match.");return}j(()=>D(l,{setupCode:n,username:d,discordId:p,password:r}))}function A(t){t.preventDefault(),o&&j(async()=>I(l,{setupCode:n,fileName:o.name,yaml:await o.text()}))}return e.jsxs("div",{className:"min-h-screen bg-neutral-950 p-1 text-slate-100",children:[e.jsx(P,{}),e.jsxs("main",{className:"mx-auto flex min-h-screen w-full max-w-3xl flex-col justify-center gap-0.5",children:[e.jsxs(c,{title:"MultiRover setup",meta:a===null?"checking":a?"required":"complete",bodyClassName:"space-y-0.5 p-1 text-sm",children:[a?e.jsx("p",{children:"Enter the one-time code from setup-code.txt in the server data folder, then create the first lockdown administrator or import an existing configuration."}):null,a===!1?e.jsx($,{className:"button-dark inline-block",to:"/admin",children:"Open administration"}):null,g?e.jsx("p",{className:"surface p-1 text-sm text-slate-200",children:g}):null]}),a?e.jsxs(e.Fragment,{children:[e.jsxs(c,{title:"Setup authorization",bodyClassName:"p-1",children:[e.jsx("label",{className:"block text-xs font-semibold text-slate-200",children:"One-time setup code"}),e.jsx("input",{className:"field-input mt-0.5 w-full font-mono",value:n,onChange:t=>b(t.target.value)})]}),e.jsx(c,{title:"Create first administrator",bodyClassName:"p-1",children:e.jsxs("form",{className:"grid gap-0.5 md:grid-cols-2",onSubmit:k,children:[e.jsx("input",{className:"field-input",placeholder:"Username",value:d,onChange:t=>C(t.target.value)}),e.jsx("input",{className:"field-input",placeholder:"Discord id (optional)",value:p,onChange:t=>N(t.target.value)}),e.jsx("input",{className:"field-input",type:"password",placeholder:"Password",value:r,onChange:t=>S(t.target.value)}),e.jsx("input",{className:"field-input",type:"password",placeholder:"Confirm password",value:f,onChange:t=>v(t.target.value)}),e.jsx("button",{className:"button-dark md:col-span-2",type:"submit",disabled:x||!n||!d||!r,children:"Create lockdown administrator"})]})}),e.jsxs(c,{title:"Import configuration file",bodyClassName:"space-y-0.5 p-1 text-sm",children:[e.jsx("p",{className:"text-xs text-slate-400",children:"Choose an existing YAML configuration explicitly. The server validates and imports it once, and its secrets are never displayed back in the browser."}),e.jsxs("form",{className:"flex flex-col gap-0.5 md:flex-row",onSubmit:A,children:[e.jsx("input",{className:"field-input flex-1",type:"file",accept:".yaml,.yml,text/yaml",onChange:t=>w(t.target.files?.[0]||null)}),e.jsx("button",{className:"button-dark",type:"submit",disabled:x||!n||!o,children:"Import selected YAML"})]})]})]}):null]})]})}export{R as default}; -//# sourceMappingURL=SetupApp-BTQ-8jXK.js.map +import{e as F,r as s,j as e,S as P,C as c,L as $}from"./index-CnHL-xtk.js";import{e as q,f as D,i as I}from"./api-C0PIt_OP.js";function R(){const l=F(),[a,m]=s.useState(null),[n,b]=s.useState(""),[d,C]=s.useState(""),[p,N]=s.useState(""),[r,S]=s.useState(""),[f,v]=s.useState(""),[o,w]=s.useState(null),[x,h]=s.useState(!1),[g,i]=s.useState("");s.useEffect(()=>{q(l).then(t=>m(t.required)).catch(t=>i(t.message))},[l]);async function j(t){h(!0),i("");try{await t(),m(!1),i("Setup completed. You can now open the administration application and log in.")}catch(u){const E=Array.isArray(u.validationErrors)?` ${u.validationErrors.map(y=>`${y.path}: ${y.message}`).join("; ")}`:"";i(`${u.message}${E}`)}finally{h(!1)}}function k(t){if(t.preventDefault(),r!==f){i("Passwords do not match.");return}j(()=>D(l,{setupCode:n,username:d,discordId:p,password:r}))}function A(t){t.preventDefault(),o&&j(async()=>I(l,{setupCode:n,fileName:o.name,yaml:await o.text()}))}return e.jsxs("div",{className:"min-h-screen bg-neutral-950 p-1 text-slate-100",children:[e.jsx(P,{}),e.jsxs("main",{className:"mx-auto flex min-h-screen w-full max-w-3xl flex-col justify-center gap-0.5",children:[e.jsxs(c,{title:"MultiRover setup",meta:a===null?"checking":a?"required":"complete",bodyClassName:"space-y-0.5 p-1 text-sm",children:[a?e.jsx("p",{children:"Enter the one-time code from setup-code.txt in the server data folder, then create the first lockdown administrator or import an existing configuration."}):null,a===!1?e.jsx($,{className:"button-dark inline-block",to:"/admin",children:"Open administration"}):null,g?e.jsx("p",{className:"surface p-1 text-sm text-slate-200",children:g}):null]}),a?e.jsxs(e.Fragment,{children:[e.jsxs(c,{title:"Setup authorization",bodyClassName:"p-1",children:[e.jsx("label",{className:"block text-xs font-semibold text-slate-200",children:"One-time setup code"}),e.jsx("input",{className:"field-input mt-0.5 w-full font-mono",value:n,onChange:t=>b(t.target.value)})]}),e.jsx(c,{title:"Create first administrator",bodyClassName:"p-1",children:e.jsxs("form",{className:"grid gap-0.5 md:grid-cols-2",onSubmit:k,children:[e.jsx("input",{className:"field-input",placeholder:"Username",value:d,onChange:t=>C(t.target.value)}),e.jsx("input",{className:"field-input",placeholder:"Discord id (optional)",value:p,onChange:t=>N(t.target.value)}),e.jsx("input",{className:"field-input",type:"password",placeholder:"Password",value:r,onChange:t=>S(t.target.value)}),e.jsx("input",{className:"field-input",type:"password",placeholder:"Confirm password",value:f,onChange:t=>v(t.target.value)}),e.jsx("button",{className:"button-dark md:col-span-2",type:"submit",disabled:x||!n||!d||!r,children:"Create lockdown administrator"})]})}),e.jsxs(c,{title:"Import configuration file",bodyClassName:"space-y-0.5 p-1 text-sm",children:[e.jsx("p",{className:"text-xs text-slate-400",children:"Choose an existing YAML configuration explicitly. The server validates and imports it once, and its secrets are never displayed back in the browser."}),e.jsxs("form",{className:"flex flex-col gap-0.5 md:flex-row",onSubmit:A,children:[e.jsx("input",{className:"field-input flex-1",type:"file",accept:".yaml,.yml,text/yaml",onChange:t=>w(t.target.files?.[0]||null)}),e.jsx("button",{className:"button-dark",type:"submit",disabled:x||!n||!o,children:"Import selected YAML"})]})]})]}):null]})]})}export{R as default}; +//# sourceMappingURL=SetupApp-Ng2sxryp.js.map diff --git a/server/public/assets/SetupApp-BTQ-8jXK.js.map b/server/public/assets/SetupApp-Ng2sxryp.js.map similarity index 99% rename from server/public/assets/SetupApp-BTQ-8jXK.js.map rename to server/public/assets/SetupApp-Ng2sxryp.js.map index cbef26a1..8d5c01a4 100644 --- a/server/public/assets/SetupApp-BTQ-8jXK.js.map +++ b/server/public/assets/SetupApp-Ng2sxryp.js.map @@ -1 +1 @@ -{"version":3,"file":"SetupApp-BTQ-8jXK.js","sources":["../../../webui/src/admin/SetupApp.jsx"],"sourcesContent":["// First-Run Setup Application\n// Purpose: Initializes a fresh server or imports an explicitly selected YAML configuration file through the restricted setup channel.\n// Scope: Exists only while the server reports setup required; ordinary administration belongs to /admin.\nimport { useEffect, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport CardFrame from '../components/CardFrame/index.jsx';\nimport SocketConnectionPill from '../components/SocketConnectionPill/index.jsx';\nimport { useSocket } from '../context/SocketContext.jsx';\nimport { createFirstAdministrator, getSetupStatus, importConfigurationFile } from './api.js';\n\nexport default function SetupApp() {\n const socket = useSocket();\n const [required, setRequired] = useState(null);\n const [setupCode, setSetupCode] = useState('');\n const [username, setUsername] = useState('');\n const [discordId, setDiscordId] = useState('');\n const [password, setPassword] = useState('');\n const [confirmPassword, setConfirmPassword] = useState('');\n const [configurationFile, setConfigurationFile] = useState(null);\n const [busy, setBusy] = useState(false);\n const [message, setMessage] = useState('');\n\n useEffect(() => {\n getSetupStatus(socket).then((response) => setRequired(response.required)).catch((error) => setMessage(error.message));\n }, [socket]);\n\n async function run(work) {\n setBusy(true);\n setMessage('');\n try {\n await work();\n setRequired(false);\n setMessage('Setup completed. You can now open the administration application and log in.');\n } catch (error) {\n const details = Array.isArray(error.validationErrors)\n ? ` ${error.validationErrors.map((entry) => `${entry.path}: ${entry.message}`).join('; ')}`\n : '';\n setMessage(`${error.message}${details}`);\n } finally {\n setBusy(false);\n }\n }\n\n function createAdministrator(event) {\n event.preventDefault();\n if (password !== confirmPassword) {\n setMessage('Passwords do not match.');\n return;\n }\n run(() => createFirstAdministrator(socket, { setupCode, username, discordId, password }));\n }\n\n function importSelectedConfiguration(event) {\n event.preventDefault();\n if (!configurationFile) return;\n run(async () => importConfigurationFile(socket, {\n setupCode,\n fileName: configurationFile.name,\n yaml: await configurationFile.text(),\n }));\n }\n\n return (\n
\n \n
\n \n {required ?

Enter the one-time code from setup-code.txt in the server data folder, then create the first lockdown administrator or import an existing configuration.

: null}\n {required === false ? Open administration : null}\n {message ?

{message}

: null}\n
\n\n {required ? (\n <>\n \n \n setSetupCode(event.target.value)} />\n \n \n
\n setUsername(event.target.value)} />\n setDiscordId(event.target.value)} />\n setPassword(event.target.value)} />\n setConfirmPassword(event.target.value)} />\n \n
\n
\n \n

Choose an existing YAML configuration explicitly. The server validates and imports it once, and its secrets are never displayed back in the browser.

\n
\n setConfigurationFile(event.target.files?.[0] || null)} />\n \n
\n
\n \n ) : null}\n
\n
\n );\n}\n"],"names":["SetupApp","socket","useSocket","required","setRequired","useState","setupCode","setSetupCode","username","setUsername","discordId","setDiscordId","password","setPassword","confirmPassword","setConfirmPassword","configurationFile","setConfigurationFile","busy","setBusy","message","setMessage","useEffect","getSetupStatus","response","error","run","work","details","entry","createAdministrator","event","createFirstAdministrator","importSelectedConfiguration","importConfigurationFile","jsxs","jsx","SocketConnectionPill","CardFrame","Link","Fragment"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"SetupApp-Ng2sxryp.js","sources":["../../../webui/src/admin/SetupApp.jsx"],"sourcesContent":["// First-Run Setup Application\n// Purpose: Initializes a fresh server or imports an explicitly selected YAML configuration file through the restricted setup channel.\n// Scope: Exists only while the server reports setup required; ordinary administration belongs to /admin.\nimport { useEffect, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport CardFrame from '../components/CardFrame/index.jsx';\nimport SocketConnectionPill from '../components/SocketConnectionPill/index.jsx';\nimport { useSocket } from '../context/SocketContext.jsx';\nimport { createFirstAdministrator, getSetupStatus, importConfigurationFile } from './api.js';\n\nexport default function SetupApp() {\n const socket = useSocket();\n const [required, setRequired] = useState(null);\n const [setupCode, setSetupCode] = useState('');\n const [username, setUsername] = useState('');\n const [discordId, setDiscordId] = useState('');\n const [password, setPassword] = useState('');\n const [confirmPassword, setConfirmPassword] = useState('');\n const [configurationFile, setConfigurationFile] = useState(null);\n const [busy, setBusy] = useState(false);\n const [message, setMessage] = useState('');\n\n useEffect(() => {\n getSetupStatus(socket).then((response) => setRequired(response.required)).catch((error) => setMessage(error.message));\n }, [socket]);\n\n async function run(work) {\n setBusy(true);\n setMessage('');\n try {\n await work();\n setRequired(false);\n setMessage('Setup completed. You can now open the administration application and log in.');\n } catch (error) {\n const details = Array.isArray(error.validationErrors)\n ? ` ${error.validationErrors.map((entry) => `${entry.path}: ${entry.message}`).join('; ')}`\n : '';\n setMessage(`${error.message}${details}`);\n } finally {\n setBusy(false);\n }\n }\n\n function createAdministrator(event) {\n event.preventDefault();\n if (password !== confirmPassword) {\n setMessage('Passwords do not match.');\n return;\n }\n run(() => createFirstAdministrator(socket, { setupCode, username, discordId, password }));\n }\n\n function importSelectedConfiguration(event) {\n event.preventDefault();\n if (!configurationFile) return;\n run(async () => importConfigurationFile(socket, {\n setupCode,\n fileName: configurationFile.name,\n yaml: await configurationFile.text(),\n }));\n }\n\n return (\n
\n \n
\n \n {required ?

Enter the one-time code from setup-code.txt in the server data folder, then create the first lockdown administrator or import an existing configuration.

: null}\n {required === false ? Open administration : null}\n {message ?

{message}

: null}\n
\n\n {required ? (\n <>\n \n \n setSetupCode(event.target.value)} />\n \n \n
\n setUsername(event.target.value)} />\n setDiscordId(event.target.value)} />\n setPassword(event.target.value)} />\n setConfirmPassword(event.target.value)} />\n \n
\n
\n \n

Choose an existing YAML configuration explicitly. The server validates and imports it once, and its secrets are never displayed back in the browser.

\n
\n setConfigurationFile(event.target.files?.[0] || null)} />\n \n
\n
\n \n ) : null}\n
\n
\n );\n}\n"],"names":["SetupApp","socket","useSocket","required","setRequired","useState","setupCode","setSetupCode","username","setUsername","discordId","setDiscordId","password","setPassword","confirmPassword","setConfirmPassword","configurationFile","setConfigurationFile","busy","setBusy","message","setMessage","useEffect","getSetupStatus","response","error","run","work","details","entry","createAdministrator","event","createFirstAdministrator","importSelectedConfiguration","importConfigurationFile","jsxs","jsx","SocketConnectionPill","CardFrame","Link","Fragment"],"mappings":"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"} \ No newline at end of file diff --git a/server/public/assets/index-1O6avznD.css b/server/public/assets/index-1O6avznD.css new file mode 100644 index 00000000..7b51b652 --- /dev/null +++ b/server/public/assets/index-1O6avznD.css @@ -0,0 +1 @@ +*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.\!panel,.panel{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));padding:0;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.panel-section{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity));padding:0;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.panel-muted{border-radius:.375rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.surface{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity));padding:.125rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.surface-muted{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity));padding:.125rem;--tw-text-opacity: 1;color:rgb(245 245 245 / var(--tw-text-opacity))}.field-input{border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(82 82 82 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity));padding:.125rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.field-input::-moz-placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.field-input::placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.field-input:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgb(14 165 233 / var(--tw-ring-opacity))}.button-dark{border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(125 211 252 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(2 132 199 / var(--tw-bg-opacity));padding:.125rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.button-dark:hover{--tw-border-opacity: 1;border-color:rgb(14 165 233 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity))}.button-danger{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(225 29 72 / var(--tw-bg-opacity));padding:.125rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.button-danger:hover{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-1{inset:.25rem}.inset-x-0{left:0;right:0}.inset-x-1{left:.25rem;right:.25rem}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.bottom-0\.5{bottom:.125rem}.bottom-1{bottom:.25rem}.bottom-2{bottom:.5rem}.bottom-4{bottom:1rem}.bottom-40{bottom:10rem}.bottom-\[8\.5rem\]{bottom:8.5rem}.bottom-\[calc\(100\%\+0\.125rem\)\]{bottom:calc(100% + .125rem)}.left-0{left:0}.left-0\.5{left:.125rem}.left-1{left:.25rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-4{left:1rem}.left-\[1\.979rem\]{left:1.979rem}.left-\[5\.338rem\]{left:5.338rem}.left-\[61\%\]{left:61%}.left-\[90\%\]{left:90%}.right-0{right:0}.right-0\.5{right:.125rem}.right-1{right:.25rem}.right-10{right:2.5rem}.right-2{right:.5rem}.right-\[8\.5rem\]{right:8.5rem}.top-0{top:0}.top-0\.5{top:.125rem}.top-1{top:.25rem}.top-1\/2{top:50%}.top-10{top:2.5rem}.top-6{top:1.5rem}.top-\[0\.662rem\]{top:.662rem}.top-\[4\.021rem\]{top:4.021rem}.top-\[58\%\]{top:58%}.top-\[61\%\]{top:61%}.top-\[8\.5rem\]{top:8.5rem}.top-\[90\%\]{top:90%}.top-full{top:100%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[1000\]{z-index:1000}.z-\[100\]{z-index:100}.z-\[110\]{z-index:110}.z-\[120\]{z-index:120}.z-\[130\]{z-index:130}.z-\[2000\]{z-index:2000}.z-\[25\]{z-index:25}.z-\[55\]{z-index:55}.z-\[60\]{z-index:60}.z-\[70\]{z-index:70}.order-1{order:1}.order-2{order:2}.col-span-2{grid-column:span 2 / span 2}.col-span-full{grid-column:1 / -1}.row-span-2{grid-row:span 2 / span 2}.m-0{margin:0}.-mx-0\.5{margin-left:-.125rem;margin-right:-.125rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-\[-0\.125rem\]{margin-top:-.125rem;margin-bottom:-.125rem}.-mt-0\.5{margin-top:-.125rem}.mb-0\.5{margin-bottom:.125rem}.mb-2{margin-bottom:.5rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-10{margin-left:2.5rem}.mr-0{margin-right:0}.mr-0\.5{margin-right:.125rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-\[0\.35vh\]{margin-top:.35vh}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.\!block{display:block!important}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.\!h-28{height:7rem!important}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-20{height:5rem}.h-28{height:7rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-40{height:10rem}.h-44{height:11rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-52{height:13rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-\[100dvh\]{height:100dvh}.h-\[25\.5rem\]{height:25.5rem}.h-\[2px\]{height:2px}.h-\[3\.5rem\]{height:3.5rem}.h-\[70\%\]{height:70%}.h-\[7rem\]{height:7rem}.h-\[8\.5rem\]{height:8.5rem}.h-\[8vh\]{height:8vh}.h-\[calc\(100dvh-0\.25rem\)\]{height:calc(100dvh - .25rem)}.h-\[calc\(1rem\+0\.25rem\)\]{height:1.25rem}.h-\[min\(100svh\,32rem\)\]{height:min(100svh,32rem)}.h-\[min\(60svh\,24rem\)\]{height:min(60svh,24rem)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-24{max-height:6rem}.max-h-32{max-height:8rem}.max-h-36{max-height:9rem}.max-h-40{max-height:10rem}.max-h-52{max-height:13rem}.max-h-64{max-height:16rem}.max-h-72{max-height:18rem}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.max-h-\[14rem\]{max-height:14rem}.max-h-\[36rem\]{max-height:36rem}.max-h-\[70vh\]{max-height:70vh}.max-h-\[72vh\]{max-height:72vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-full{max-height:100%}.min-h-0{min-height:0px}.min-h-10{min-height:2.5rem}.min-h-12{min-height:3rem}.min-h-14{min-height:3.5rem}.min-h-5{min-height:1.25rem}.min-h-56{min-height:14rem}.min-h-7{min-height:1.75rem}.min-h-8{min-height:2rem}.min-h-9{min-height:2.25rem}.min-h-\[100dvh\]{min-height:100dvh}.min-h-\[10rem\]{min-height:10rem}.min-h-\[12rem\]{min-height:12rem}.min-h-\[14rem\]{min-height:14rem}.min-h-\[16rem\]{min-height:16rem}.min-h-\[18rem\]{min-height:18rem}.min-h-\[24rem\]{min-height:24rem}.min-h-\[3\.5rem\]{min-height:3.5rem}.min-h-\[4\.5rem\]{min-height:4.5rem}.min-h-\[4rem\]{min-height:4rem}.min-h-\[7rem\]{min-height:7rem}.min-h-\[calc\(100dvh-0\.25rem\)\]{min-height:calc(100dvh - .25rem)}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-20{width:5rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/5{width:60%}.w-4{width:1rem}.w-4\/5{width:80%}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-80{width:20rem}.w-\[100vw\]{width:100vw}.w-\[12\.5rem\]{width:12.5rem}.w-\[12rem\]{width:12rem}.w-\[14rem\]{width:14rem}.w-\[20\.5rem\]{width:20.5rem}.w-\[22rem\]{width:22rem}.w-\[25\.5rem\]{width:25.5rem}.w-\[2px\]{width:2px}.w-\[3\.25rem\]{width:3.25rem}.w-\[4\.5rem\]{width:4.5rem}.w-\[45\%\]{width:45%}.w-\[5\.5rem\]{width:5.5rem}.w-\[55\%\]{width:55%}.w-\[5rem\]{width:5rem}.w-\[8\.5rem\]{width:8.5rem}.w-\[9rem\]{width:9rem}.w-\[calc\(1rem\+0\.25rem\)\]{width:1.25rem}.w-\[min\(20rem\,calc\(100vw-1rem\)\)\]{width:min(20rem,calc(100vw - 1rem))}.w-\[min\(30rem\,80\%\)\]{width:min(30rem,80%)}.w-\[min\(32rem\,80\%\)\]{width:min(32rem,80%)}.w-\[min\(32rem\,calc\(80vw-1\.25rem\)\)\]{width:min(32rem,calc(80vw - 1.25rem))}.w-\[min\(34vw\,34rem\)\]{width:min(34vw,34rem)}.w-\[min\(36rem\,82\%\)\]{width:min(36rem,82%)}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.w-screen{width:100vw}.min-w-0{min-width:0px}.min-w-16{min-width:4rem}.min-w-20{min-width:5rem}.min-w-28{min-width:7rem}.min-w-56{min-width:14rem}.min-w-\[0\]{min-width:0}.min-w-\[3\.7rem\]{min-width:3.7rem}.min-w-\[5\.5rem\]{min-width:5.5rem}.min-w-\[calc\(50\%_-_0\.125rem\)\]{min-width:calc(50% - .125rem)}.min-w-max{min-width:-moz-max-content;min-width:max-content}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-40{max-width:10rem}.max-w-4xl{max-width:56rem}.max-w-64{max-width:16rem}.max-w-7xl{max-width:80rem}.max-w-\[100rem\]{max-width:100rem}.max-w-\[120rem\]{max-width:120rem}.max-w-\[24rem\]{max-width:24rem}.max-w-\[40vw\]{max-width:40vw}.max-w-\[55\%\]{max-width:55%}.max-w-\[70\%\]{max-width:70%}.max-w-\[70vw\]{max-width:70vw}.max-w-\[80vw\]{max-width:80vw}.max-w-\[92\%\]{max-width:92%}.max-w-\[92vw\]{max-width:92vw}.max-w-\[94\%\]{max-width:94%}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-\[0\.72\]{flex:.72}.flex-\[1\.1\]{flex:1.1}.flex-\[1\.22\]{flex:1.22}.flex-\[1\.28\]{flex:1.28}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-\[0\.75\]{flex-grow:.75}.grow-\[0\.9\]{flex-grow:.9}.grow-\[1\]{flex-grow:1}.basis-0{flex-basis:0px}.origin-center{transform-origin:center}.origin-top-left{transform-origin:top left}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-45{--tw-rotate: -45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-\[135deg\]{--tw-rotate: -135deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-\[135deg\]{--tw-rotate: 135deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.list-disc{list-style-type:disc}.auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[1\.5rem_minmax\(0\,1fr\)_3rem\]{grid-template-columns:1.5rem minmax(0,1fr) 3rem}.grid-cols-\[minmax\(0\,1\.2fr\)_repeat\(4\,minmax\(0\,1fr\)\)\]{grid-template-columns:minmax(0,1.2fr) repeat(4,minmax(0,1fr))}.grid-cols-\[minmax\(0\,1\.35fr\)_minmax\(0\,0\.95fr\)\]{grid-template-columns:minmax(0,1.35fr) minmax(0,.95fr)}.grid-cols-\[minmax\(0\,1\.3fr\)_minmax\(0\,0\.22fr\)\]{grid-template-columns:minmax(0,1.3fr) minmax(0,.22fr)}.grid-cols-\[minmax\(0\,1\.45fr\)_minmax\(0\,0\.85fr\)\]{grid-template-columns:minmax(0,1.45fr) minmax(0,.85fr)}.grid-cols-\[minmax\(0\,1\.6fr\)_minmax\(16rem\,0\.7fr\)\]{grid-template-columns:minmax(0,1.6fr) minmax(16rem,.7fr)}.grid-cols-\[minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1fr)}.grid-cols-\[minmax\(0\,1fr\)_13rem\]{grid-template-columns:minmax(0,1fr) 13rem}.grid-cols-\[minmax\(0\,1fr\)_14rem\]{grid-template-columns:minmax(0,1fr) 14rem}.grid-cols-\[minmax\(0\,1fr\)_2\.5rem\]{grid-template-columns:minmax(0,1fr) 2.5rem}.grid-cols-\[minmax\(0\,1fr\)_20rem\]{grid-template-columns:minmax(0,1fr) 20rem}.grid-cols-\[minmax\(0\,1fr\)_2rem\]{grid-template-columns:minmax(0,1fr) 2rem}.grid-cols-\[minmax\(0\,1fr\)_4\.75rem\]{grid-template-columns:minmax(0,1fr) 4.75rem}.grid-cols-\[minmax\(0\,1fr\)_8rem\]{grid-template-columns:minmax(0,1fr) 8rem}.grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,0\.7fr\)_minmax\(0\,1\.9fr\)_minmax\(0\,0\.7fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,.7fr) minmax(0,1.9fr) minmax(0,.7fr)}.grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.grid-cols-\[minmax\(17rem\,1fr\)_minmax\(0\,133\.333vh\)_minmax\(17rem\,1fr\)\]{grid-template-columns:minmax(17rem,1fr) minmax(0,133.333vh) minmax(17rem,1fr)}.grid-cols-\[repeat\(auto-fit\,minmax\(min\(22\.5rem\,100\%\)\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(min(22.5rem,100%),1fr))}.grid-cols-\[repeat\(auto-fit\,minmax\(min\(9rem\,100\%\)\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(min(9rem,100%),1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid-rows-\[auto_1fr\]{grid-template-rows:auto 1fr}.grid-rows-\[auto_auto_1fr\]{grid-template-rows:auto auto 1fr}.grid-rows-\[auto_auto_1fr_auto\]{grid-template-rows:auto auto 1fr auto}.grid-rows-\[auto_auto_auto_1fr\]{grid-template-rows:auto auto auto 1fr}.grid-rows-\[auto_minmax\(0\,1fr\)\]{grid-template-rows:auto minmax(0,1fr)}.grid-rows-\[auto_minmax\(0\,1fr\)_auto\]{grid-template-rows:auto minmax(0,1fr) auto}.grid-rows-\[minmax\(0\,1fr\)\]{grid-template-rows:minmax(0,1fr)}.grid-rows-\[minmax\(0\,1fr\)_auto\]{grid-template-rows:minmax(0,1fr) auto}.grid-rows-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)_minmax\(0\,1fr\)\]{grid-template-rows:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)}.grid-rows-\[minmax\(0\,1fr\)_minmax\(7rem\,0\.22fr\)\]{grid-template-rows:minmax(0,1fr) minmax(7rem,.22fr)}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.content-start{align-content:flex-start}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-stretch{justify-content:stretch}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-\[0\.4vh\]{gap:.4vh}.gap-\[0\.55vh\]{gap:.55vh}.gap-\[0\.8vw\]{gap:.8vw}.gap-\[1vh\]{gap:1vh}.gap-\[1vw\]{gap:1vw}.gap-\[3vh\]{gap:3vh}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-0\.5{row-gap:.125rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overscroll-contain{overscroll-behavior:contain}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-r-xl{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-bl-\[4\.25rem\]{border-bottom-left-radius:4.25rem}.rounded-bl-xl{border-bottom-left-radius:.75rem}.rounded-br-\[12\.75rem\]{border-bottom-right-radius:12.75rem}.rounded-br-\[4\.25rem\]{border-bottom-right-radius:4.25rem}.rounded-br-xl{border-bottom-right-radius:.75rem}.rounded-tl-\[4\.25rem\]{border-top-left-radius:4.25rem}.rounded-tl-lg{border-top-left-radius:.5rem}.rounded-tr-\[4\.25rem\]{border-top-right-radius:4.25rem}.rounded-tr-xl{border-top-right-radius:.75rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-\[clamp\(0\.2rem\,1\.2cqw\,1rem\)\]{border-width:clamp(.2rem,1.2cqw,1rem)}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity))}.border-amber-200\/30{border-color:#fde68a4d}.border-amber-200\/70{border-color:#fde68ab3}.border-amber-200\/90{border-color:#fde68ae6}.border-amber-300\/60{border-color:#fcd34d99}.border-amber-300\/70{border-color:#fcd34db3}.border-amber-300\/80{border-color:#fcd34dcc}.border-amber-400{--tw-border-opacity: 1;border-color:rgb(251 191 36 / var(--tw-border-opacity))}.border-amber-400\/30{border-color:#fbbf244d}.border-amber-400\/60{border-color:#fbbf2499}.border-amber-500\/50{border-color:#f59e0b80}.border-amber-600\/60{border-color:#d9770699}.border-amber-700\/60{border-color:#b4530999}.border-blue-600{--tw-border-opacity: 1;border-color:rgb(37 99 235 / var(--tw-border-opacity))}.border-cyan-200{--tw-border-opacity: 1;border-color:rgb(165 243 252 / var(--tw-border-opacity))}.border-cyan-200\/90{border-color:#a5f3fce6}.border-cyan-300{--tw-border-opacity: 1;border-color:rgb(103 232 249 / var(--tw-border-opacity))}.border-cyan-300\/60{border-color:#67e8f999}.border-cyan-300\/70{border-color:#67e8f9b3}.border-cyan-300\/80{border-color:#67e8f9cc}.border-cyan-500\/40{border-color:#06b6d466}.border-emerald-100\/80{border-color:#d1fae5cc}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity))}.border-emerald-200\/70{border-color:#a7f3d0b3}.border-emerald-200\/90{border-color:#a7f3d0e6}.border-emerald-300{--tw-border-opacity: 1;border-color:rgb(110 231 183 / var(--tw-border-opacity))}.border-emerald-300\/70{border-color:#6ee7b7b3}.border-emerald-400\/60{border-color:#34d39999}.border-emerald-500\/40{border-color:#10b98166}.border-emerald-700\/60{border-color:#04785799}.border-emerald-700\/70{border-color:#047857b3}.border-emerald-950{--tw-border-opacity: 1;border-color:rgb(2 44 34 / var(--tw-border-opacity))}.border-fuchsia-200{--tw-border-opacity: 1;border-color:rgb(245 208 254 / var(--tw-border-opacity))}.border-fuchsia-300\/70{border-color:#f0abfcb3}.border-green-400{--tw-border-opacity: 1;border-color:rgb(74 222 128 / var(--tw-border-opacity))}.border-indigo-200\/70{border-color:#c7d2feb3}.border-indigo-200\/95{border-color:#c7d2fef2}.border-indigo-300\/70{border-color:#a5b4fcb3}.border-indigo-400\/30{border-color:#818cf84d}.border-indigo-700{--tw-border-opacity: 1;border-color:rgb(67 56 202 / var(--tw-border-opacity))}.border-indigo-700\/60{border-color:#4338ca99}.border-neutral-500{--tw-border-opacity: 1;border-color:rgb(115 115 115 / var(--tw-border-opacity))}.border-neutral-500\/50{border-color:#73737380}.border-neutral-500\/60{border-color:#73737399}.border-neutral-500\/70{border-color:#737373b3}.border-neutral-600{--tw-border-opacity: 1;border-color:rgb(82 82 82 / var(--tw-border-opacity))}.border-neutral-700{--tw-border-opacity: 1;border-color:rgb(64 64 64 / var(--tw-border-opacity))}.border-neutral-700\/70{border-color:#404040b3}.border-pink-200{--tw-border-opacity: 1;border-color:rgb(251 207 232 / var(--tw-border-opacity))}.border-red-100{--tw-border-opacity: 1;border-color:rgb(254 226 226 / var(--tw-border-opacity))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity))}.border-red-300\/80{border-color:#fca5a5cc}.border-red-300\/90{border-color:#fca5a5e6}.border-red-400{--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity))}.border-red-400\/60{border-color:#f8717199}.border-red-500\/60{border-color:#ef444499}.border-rose-300{--tw-border-opacity: 1;border-color:rgb(253 164 175 / var(--tw-border-opacity))}.border-sky-200{--tw-border-opacity: 1;border-color:rgb(186 230 253 / var(--tw-border-opacity))}.border-sky-200\/70{border-color:#bae6fdb3}.border-sky-300{--tw-border-opacity: 1;border-color:rgb(125 211 252 / var(--tw-border-opacity))}.border-sky-300\/70{border-color:#7dd3fcb3}.border-sky-400\/50{border-color:#38bdf880}.border-sky-400\/70{border-color:#38bdf8b3}.border-slate-200\/30{border-color:#e2e8f04d}.border-slate-400{--tw-border-opacity: 1;border-color:rgb(148 163 184 / var(--tw-border-opacity))}.border-slate-400\/60{border-color:#94a3b899}.border-slate-500\/70{border-color:#64748bb3}.border-slate-600{--tw-border-opacity: 1;border-color:rgb(71 85 105 / var(--tw-border-opacity))}.border-slate-600\/40{border-color:#47556966}.border-slate-600\/60{border-color:#47556999}.border-slate-600\/70{border-color:#475569b3}.border-slate-600\/80{border-color:#475569cc}.border-slate-700{--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity))}.border-slate-700\/60{border-color:#33415599}.border-slate-700\/70{border-color:#334155b3}.border-slate-700\/80{border-color:#334155cc}.border-slate-800{--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity))}.border-slate-800\/60{border-color:#1e293b99}.border-slate-800\/80{border-color:#1e293bcc}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}.border-white\/10{border-color:#ffffff1a}.border-white\/40{border-color:#fff6}.border-white\/80{border-color:#fffc}.border-l-neutral-600{--tw-border-opacity: 1;border-left-color:rgb(82 82 82 / var(--tw-border-opacity))}.\!bg-black{--tw-bg-opacity: 1 !important;background-color:rgb(0 0 0 / var(--tw-bg-opacity))!important}.bg-amber-100\/95{background-color:#fef3c7f2}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity))}.bg-amber-400\/80{background-color:#fbbf24cc}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity))}.bg-amber-500\/30{background-color:#f59e0b4d}.bg-amber-600{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity))}.bg-amber-600\/70{background-color:#d97706b3}.bg-amber-600\/80{background-color:#d97706cc}.bg-amber-700\/20{background-color:#b4530933}.bg-amber-700\/30{background-color:#b453094d}.bg-amber-700\/35{background-color:#b4530959}.bg-amber-700\/50{background-color:#b4530980}.bg-amber-700\/80{background-color:#b45309cc}.bg-amber-800{--tw-bg-opacity: 1;background-color:rgb(146 64 14 / var(--tw-bg-opacity))}.bg-amber-900{--tw-bg-opacity: 1;background-color:rgb(120 53 15 / var(--tw-bg-opacity))}.bg-amber-900\/40{background-color:#78350f66}.bg-amber-900\/60{background-color:#78350f99}.bg-amber-900\/90{background-color:#78350fe6}.bg-amber-950{--tw-bg-opacity: 1;background-color:rgb(69 26 3 / var(--tw-bg-opacity))}.bg-amber-950\/35{background-color:#451a0359}.bg-amber-950\/40{background-color:#451a0366}.bg-amber-950\/70{background-color:#451a03b3}.bg-amber-950\/75{background-color:#451a03bf}.bg-amber-950\/90{background-color:#451a03e6}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-black\/40{background-color:#0006}.bg-black\/45{background-color:#00000073}.bg-black\/50{background-color:#00000080}.bg-black\/55{background-color:#0000008c}.bg-black\/60{background-color:#0009}.bg-black\/70{background-color:#000000b3}.bg-black\/75{background-color:#000000bf}.bg-black\/80{background-color:#000c}.bg-black\/90{background-color:#000000e6}.bg-black\/95{background-color:#000000f2}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity))}.bg-cyan-300{--tw-bg-opacity: 1;background-color:rgb(103 232 249 / var(--tw-bg-opacity))}.bg-cyan-300\/20{background-color:#67e8f933}.bg-cyan-500{--tw-bg-opacity: 1;background-color:rgb(6 182 212 / var(--tw-bg-opacity))}.bg-cyan-500\/80{background-color:#06b6d4cc}.bg-cyan-900{--tw-bg-opacity: 1;background-color:rgb(22 78 99 / var(--tw-bg-opacity))}.bg-cyan-900\/45{background-color:#164e6373}.bg-cyan-900\/90{background-color:#164e63e6}.bg-cyan-950\/60{background-color:#08334499}.bg-emerald-200{--tw-bg-opacity: 1;background-color:rgb(167 243 208 / var(--tw-bg-opacity))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity))}.bg-emerald-500\/45{background-color:#10b98173}.bg-emerald-500\/80{background-color:#10b981cc}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity))}.bg-emerald-600\/70{background-color:#059669b3}.bg-emerald-600\/80{background-color:#059669cc}.bg-emerald-700{--tw-bg-opacity: 1;background-color:rgb(4 120 87 / var(--tw-bg-opacity))}.bg-emerald-700\/20{background-color:#04785733}.bg-emerald-700\/60{background-color:#04785799}.bg-emerald-700\/70{background-color:#047857b3}.bg-emerald-800{--tw-bg-opacity: 1;background-color:rgb(6 95 70 / var(--tw-bg-opacity))}.bg-emerald-900{--tw-bg-opacity: 1;background-color:rgb(6 78 59 / var(--tw-bg-opacity))}.bg-emerald-900\/60{background-color:#064e3b99}.bg-emerald-900\/90{background-color:#064e3be6}.bg-emerald-950{--tw-bg-opacity: 1;background-color:rgb(2 44 34 / var(--tw-bg-opacity))}.bg-emerald-950\/50{background-color:#022c2280}.bg-emerald-950\/90{background-color:#022c22e6}.bg-fuchsia-200{--tw-bg-opacity: 1;background-color:rgb(245 208 254 / var(--tw-bg-opacity))}.bg-fuchsia-600{--tw-bg-opacity: 1;background-color:rgb(192 38 211 / var(--tw-bg-opacity))}.bg-fuchsia-700{--tw-bg-opacity: 1;background-color:rgb(162 28 175 / var(--tw-bg-opacity))}.bg-fuchsia-800{--tw-bg-opacity: 1;background-color:rgb(134 25 143 / var(--tw-bg-opacity))}.bg-fuchsia-900{--tw-bg-opacity: 1;background-color:rgb(112 26 117 / var(--tw-bg-opacity))}.bg-fuchsia-900\/45{background-color:#701a7573}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity))}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity))}.bg-indigo-600\/70{background-color:#4f46e5b3}.bg-indigo-900{--tw-bg-opacity: 1;background-color:rgb(49 46 129 / var(--tw-bg-opacity))}.bg-indigo-900\/60{background-color:#312e8199}.bg-indigo-950{--tw-bg-opacity: 1;background-color:rgb(30 27 75 / var(--tw-bg-opacity))}.bg-indigo-950\/60{background-color:#1e1b4b99}.bg-indigo-950\/90{background-color:#1e1b4be6}.bg-neutral-600{--tw-bg-opacity: 1;background-color:rgb(82 82 82 / var(--tw-bg-opacity))}.bg-neutral-600\/80{background-color:#525252cc}.bg-neutral-700{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity))}.bg-neutral-700\/90{background-color:#404040e6}.bg-neutral-800{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.bg-neutral-800\/80{background-color:#262626cc}.bg-neutral-900{--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity))}.bg-neutral-900\/100{background-color:#171717}.bg-neutral-900\/60{background-color:#17171799}.bg-neutral-900\/70{background-color:#171717b3}.bg-neutral-900\/95{background-color:#171717f2}.bg-neutral-950{--tw-bg-opacity: 1;background-color:rgb(10 10 10 / var(--tw-bg-opacity))}.bg-neutral-950\/90{background-color:#0a0a0ae6}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity))}.bg-red-400{--tw-bg-opacity: 1;background-color:rgb(248 113 113 / var(--tw-bg-opacity))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity))}.bg-red-500\/45{background-color:#ef444473}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity))}.bg-red-600\/70{background-color:#dc2626b3}.bg-red-700{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity))}.bg-red-700\/20{background-color:#b91c1c33}.bg-red-700\/60{background-color:#b91c1c99}.bg-red-700\/80{background-color:#b91c1ccc}.bg-red-800{--tw-bg-opacity: 1;background-color:rgb(153 27 27 / var(--tw-bg-opacity))}.bg-red-900\/35{background-color:#7f1d1d59}.bg-red-900\/40{background-color:#7f1d1d66}.bg-red-900\/45{background-color:#7f1d1d73}.bg-red-900\/80{background-color:#7f1d1dcc}.bg-red-950{--tw-bg-opacity: 1;background-color:rgb(69 10 10 / var(--tw-bg-opacity))}.bg-red-950\/40{background-color:#450a0a66}.bg-red-950\/70{background-color:#450a0ab3}.bg-red-950\/90{background-color:#450a0ae6}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity))}.bg-rose-600{--tw-bg-opacity: 1;background-color:rgb(225 29 72 / var(--tw-bg-opacity))}.bg-sky-400{--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity))}.bg-sky-500{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity))}.bg-sky-600{--tw-bg-opacity: 1;background-color:rgb(2 132 199 / var(--tw-bg-opacity))}.bg-sky-700{--tw-bg-opacity: 1;background-color:rgb(3 105 161 / var(--tw-bg-opacity))}.bg-sky-700\/20{background-color:#0369a133}.bg-sky-700\/70{background-color:#0369a1b3}.bg-sky-900{--tw-bg-opacity: 1;background-color:rgb(12 74 110 / var(--tw-bg-opacity))}.bg-sky-950{--tw-bg-opacity: 1;background-color:rgb(8 47 73 / var(--tw-bg-opacity))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity))}.bg-slate-500{--tw-bg-opacity: 1;background-color:rgb(100 116 139 / var(--tw-bg-opacity))}.bg-slate-600{--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity))}.bg-slate-600\/70{background-color:#475569b3}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity))}.bg-slate-700\/30{background-color:#3341554d}.bg-slate-700\/60{background-color:#33415599}.bg-slate-700\/70{background-color:#334155b3}.bg-slate-700\/80{background-color:#334155cc}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity))}.bg-slate-800\/60{background-color:#1e293b99}.bg-slate-800\/70{background-color:#1e293bb3}.bg-slate-800\/80{background-color:#1e293bcc}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity))}.bg-slate-900\/35{background-color:#0f172a59}.bg-slate-900\/40{background-color:#0f172a66}.bg-slate-900\/70{background-color:#0f172ab3}.bg-slate-950{--tw-bg-opacity: 1;background-color:rgb(2 6 23 / var(--tw-bg-opacity))}.bg-slate-950\/35{background-color:#02061759}.bg-slate-950\/80{background-color:#020617cc}.bg-slate-950\/85{background-color:#020617d9}.bg-slate-950\/90{background-color:#020617e6}.bg-slate-950\/95{background-color:#020617f2}.bg-transparent{background-color:transparent}.bg-violet-400{--tw-bg-opacity: 1;background-color:rgb(167 139 250 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-white\/10{background-color:#ffffff1a}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity))}.bg-zinc-900{--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity))}.bg-zinc-900\/90{background-color:#18181be6}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-lime-800{--tw-gradient-from: #3f6212 var(--tw-gradient-from-position);--tw-gradient-to: rgb(63 98 18 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-neutral-800{--tw-gradient-from: #262626 var(--tw-gradient-from-position);--tw-gradient-to: rgb(38 38 38 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-neutral-700{--tw-gradient-to: rgb(64 64 64 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #404040 var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-neutral-600{--tw-gradient-to: #525252 var(--tw-gradient-to-position)}.to-teal-800{--tw-gradient-to: #115e59 var(--tw-gradient-to-position)}.bg-cover{background-size:cover}.bg-center{background-position:center}.bg-no-repeat{background-repeat:no-repeat}.fill-slate-100{fill:#f1f5f9}.fill-slate-200{fill:#e2e8f0}.fill-slate-400{fill:#94a3b8}.fill-white{fill:#fff}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[0\.85vw\]{padding:.85vw}.p-\[clamp\(0\.2rem\,2cqw\,1\.5rem\)\]{padding:clamp(.2rem,2cqw,1.5rem)}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[1\.2vw\]{padding-left:1.2vw;padding-right:1.2vw}.px-\[1\.6vw\]{padding-left:1.6vw;padding-right:1.6vw}.px-\[1vw\]{padding-left:1vw;padding-right:1vw}.px-\[3vw\]{padding-left:3vw;padding-right:3vw}.px-\[4vw\]{padding-left:4vw;padding-right:4vw}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-7{padding-top:1.75rem;padding-bottom:1.75rem}.py-\[0\.55vh\]{padding-top:.55vh;padding-bottom:.55vh}.py-\[1px\]{padding-top:1px;padding-bottom:1px}.py-\[2\.5vh\]{padding-top:2.5vh;padding-bottom:2.5vh}.py-\[2px\]{padding-top:2px;padding-bottom:2px}.py-\[4vh\]{padding-top:4vh;padding-bottom:4vh}.pb-0{padding-bottom:0}.pb-0\.5{padding-bottom:.125rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pl-4{padding-left:1rem}.pr-0{padding-right:0}.pr-1{padding-right:.25rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-5xl{font-size:3rem;line-height:1}.text-\[0\.45rem\]{font-size:.45rem}.text-\[0\.48rem\]{font-size:.48rem}.text-\[0\.52rem\]{font-size:.52rem}.text-\[0\.55em\]{font-size:.55em}.text-\[0\.55rem\]{font-size:.55rem}.text-\[0\.58rem\]{font-size:.58rem}.text-\[0\.5rem\]{font-size:.5rem}.text-\[0\.62rem\]{font-size:.62rem}.text-\[0\.65em\]{font-size:.65em}.text-\[0\.65rem\]{font-size:.65rem}.text-\[0\.68rem\]{font-size:.68rem}.text-\[0\.6rem\]{font-size:.6rem}.text-\[0\.72rem\]{font-size:.72rem}.text-\[0\.75rem\]{font-size:.75rem}.text-\[0\.78rem\]{font-size:.78rem}.text-\[0\.7rem\]{font-size:.7rem}.text-\[0\.82rem\]{font-size:.82rem}.text-\[0\.85rem\]{font-size:.85rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[1\.1rem\]{font-size:1.1rem}.text-\[1\.5rem\]{font-size:1.5rem}.text-\[1\.75rem\]{font-size:1.75rem}.text-\[17vw\]{font-size:17vw}.text-\[1rem\]{font-size:1rem}.text-\[2\.5vw\]{font-size:2.5vw}.text-\[2\.6vw\]{font-size:2.6vw}.text-\[3\.1vw\]{font-size:3.1vw}.text-\[3\.375rem\]{font-size:3.375rem}.text-\[3vw\]{font-size:3vw}.text-\[4vw\]{font-size:4vw}.text-\[6vw\]{font-size:6vw}.text-\[7vw\]{font-size:7vw}.text-\[clamp\(1\.25rem\,2\.5vh\,2\.6rem\)\]{font-size:clamp(1.25rem,2.5vh,2.6rem)}.text-\[clamp\(1\.2rem\,2\.9vh\,3rem\)\]{font-size:clamp(1.2rem,2.9vh,3rem)}.text-\[clamp\(2\.1rem\,5\.1vh\,5\.6rem\)\]{font-size:clamp(2.1rem,5.1vh,5.6rem)}.text-\[clamp\(2\.5rem\,5\.3vh\,5\.8rem\)\]{font-size:clamp(2.5rem,5.3vh,5.8rem)}.text-\[clamp\(2\.5rem\,7vh\,7rem\)\]{font-size:clamp(2.5rem,7vh,7rem)}.text-\[clamp\(2\.5rem\,8vh\,8rem\)\]{font-size:clamp(2.5rem,8vh,8rem)}.text-\[clamp\(2rem\,5vh\,5\.2rem\)\]{font-size:clamp(2rem,5vh,5.2rem)}.text-\[clamp\(3\.2rem\,11vh\,11rem\)\]{font-size:clamp(3.2rem,11vh,11rem)}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-\[0\.95\]{line-height:.95}.leading-none{line-height:1}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-normal{letter-spacing:0em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-amber-100{--tw-text-opacity: 1;color:rgb(254 243 199 / var(--tw-text-opacity))}.text-amber-200{--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity))}.text-amber-200\/80{color:#fde68acc}.text-amber-200\/85{color:#fde68ad9}.text-amber-300{--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity))}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity))}.text-amber-50{--tw-text-opacity: 1;color:rgb(255 251 235 / var(--tw-text-opacity))}.text-amber-50\/90{color:#fffbebe6}.text-amber-950{--tw-text-opacity: 1;color:rgb(69 26 3 / var(--tw-text-opacity))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-blue-300{--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity))}.text-cyan-100{--tw-text-opacity: 1;color:rgb(207 250 254 / var(--tw-text-opacity))}.text-cyan-200{--tw-text-opacity: 1;color:rgb(165 243 252 / var(--tw-text-opacity))}.text-cyan-300{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity))}.text-cyan-50{--tw-text-opacity: 1;color:rgb(236 254 255 / var(--tw-text-opacity))}.text-cyan-950{--tw-text-opacity: 1;color:rgb(8 51 68 / var(--tw-text-opacity))}.text-emerald-100{--tw-text-opacity: 1;color:rgb(209 250 229 / var(--tw-text-opacity))}.text-emerald-100\/80{color:#d1fae5cc}.text-emerald-200{--tw-text-opacity: 1;color:rgb(167 243 208 / var(--tw-text-opacity))}.text-emerald-300{--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity))}.text-emerald-50{--tw-text-opacity: 1;color:rgb(236 253 245 / var(--tw-text-opacity))}.text-emerald-50\/90{color:#ecfdf5e6}.text-emerald-950{--tw-text-opacity: 1;color:rgb(2 44 34 / var(--tw-text-opacity))}.text-fuchsia-50{--tw-text-opacity: 1;color:rgb(253 244 255 / var(--tw-text-opacity))}.text-fuchsia-900{--tw-text-opacity: 1;color:rgb(112 26 117 / var(--tw-text-opacity))}.text-indigo-200{--tw-text-opacity: 1;color:rgb(199 210 254 / var(--tw-text-opacity))}.text-indigo-50{--tw-text-opacity: 1;color:rgb(238 242 255 / var(--tw-text-opacity))}.text-indigo-50\/90{color:#eef2ffe6}.text-lime-300{--tw-text-opacity: 1;color:rgb(190 242 100 / var(--tw-text-opacity))}.text-lime-400{--tw-text-opacity: 1;color:rgb(163 230 53 / var(--tw-text-opacity))}.text-neutral-100{--tw-text-opacity: 1;color:rgb(245 245 245 / var(--tw-text-opacity))}.text-neutral-200{--tw-text-opacity: 1;color:rgb(229 229 229 / var(--tw-text-opacity))}.text-neutral-300{--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity))}.text-neutral-400{--tw-text-opacity: 1;color:rgb(163 163 163 / var(--tw-text-opacity))}.text-neutral-50{--tw-text-opacity: 1;color:rgb(250 250 250 / var(--tw-text-opacity))}.text-neutral-500{--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity))}.text-red-100{--tw-text-opacity: 1;color:rgb(254 226 226 / var(--tw-text-opacity))}.text-red-100\/90{color:#fee2e2e6}.text-red-100\/95{color:#fee2e2f2}.text-red-200{--tw-text-opacity: 1;color:rgb(254 202 202 / var(--tw-text-opacity))}.text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity))}.text-red-50{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity))}.text-rose-200{--tw-text-opacity: 1;color:rgb(254 205 211 / var(--tw-text-opacity))}.text-rose-300{--tw-text-opacity: 1;color:rgb(253 164 175 / var(--tw-text-opacity))}.text-sky-100{--tw-text-opacity: 1;color:rgb(224 242 254 / var(--tw-text-opacity))}.text-sky-200{--tw-text-opacity: 1;color:rgb(186 230 253 / var(--tw-text-opacity))}.text-sky-300{--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity))}.text-sky-50{--tw-text-opacity: 1;color:rgb(240 249 255 / var(--tw-text-opacity))}.text-slate-100{--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity))}.text-slate-200{--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.text-slate-400\/60{color:#94a3b899}.text-slate-50{--tw-text-opacity: 1;color:rgb(248 250 252 / var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity))}.text-slate-950{--tw-text-opacity: 1;color:rgb(2 6 23 / var(--tw-text-opacity))}.text-teal-400{--tw-text-opacity: 1;color:rgb(45 212 191 / var(--tw-text-opacity))}.text-violet-300{--tw-text-opacity: 1;color:rgb(196 181 253 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-white\/75{color:#ffffffbf}.text-white\/90{color:#ffffffe6}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity))}.accent-amber-500{accent-color:#f59e0b}.accent-cyan-500{accent-color:#06b6d4}.accent-emerald-400{accent-color:#34d399}.accent-emerald-500{accent-color:#10b981}.accent-red-500{accent-color:#ef4444}.accent-sky-500{accent-color:#0ea5e9}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-40{opacity:.4}.opacity-45{opacity:.45}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-85{opacity:.85}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_1px_0_rgba\(255\,255\,255\,0\.05\)_inset\,0_10px_24px_rgba\(0\,0\,0\,0\.28\)\]{--tw-shadow: 0 1px 0 rgba(255,255,255,.05) inset,0 10px 24px rgba(0,0,0,.28);--tw-shadow-colored: inset 0 1px 0 var(--tw-shadow-color), 0 10px 24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/40{--tw-shadow-color: rgb(0 0 0 / .4);--tw-shadow: var(--tw-shadow-colored)}.shadow-cyan-950\/50{--tw-shadow-color: rgb(8 51 68 / .5);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-4{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-8{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-amber-200\/60{--tw-ring-color: rgb(253 230 138 / .6)}.ring-amber-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(252 211 77 / var(--tw-ring-opacity))}.ring-amber-300\/80{--tw-ring-color: rgb(252 211 77 / .8)}.ring-cyan-200\/90{--tw-ring-color: rgb(165 243 252 / .9)}.ring-emerald-300\/50{--tw-ring-color: rgb(110 231 183 / .5)}.ring-emerald-300\/70{--tw-ring-color: rgb(110 231 183 / .7)}.ring-emerald-300\/80{--tw-ring-color: rgb(110 231 183 / .8)}.ring-indigo-300\/70{--tw-ring-color: rgb(165 180 252 / .7)}.ring-red-300\/60{--tw-ring-color: rgb(252 165 165 / .6)}.ring-red-300\/80{--tw-ring-color: rgb(252 165 165 / .8)}.ring-red-500\/70{--tw-ring-color: rgb(239 68 68 / .7)}.ring-red-500\/80{--tw-ring-color: rgb(239 68 68 / .8)}.ring-red-500\/90{--tw-ring-color: rgb(239 68 68 / .9)}.ring-sky-300\/50{--tw-ring-color: rgb(125 211 252 / .5)}.ring-sky-400\/80{--tw-ring-color: rgb(56 189 248 / .8)}.ring-slate-400\/40{--tw-ring-color: rgb(148 163 184 / .4)}.ring-slate-400\/70{--tw-ring-color: rgb(148 163 184 / .7)}.ring-slate-600{--tw-ring-opacity: 1;--tw-ring-color: rgb(71 85 105 / var(--tw-ring-opacity))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.sepia{--tw-sepia: sepia(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,height\,border-radius\,background-color\]{transition-property:width,height,border-radius,background-color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,height\]{transition-property:width,height;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,opacity\]{transition-property:width,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\@container{container-type:inline-size}.\[clip-path\:polygon\(0_0\,0_100\%\,100\%_100\%\)\]{clip-path:polygon(0 0,0 100%,100% 100%)}.\[clip-path\:polygon\(0_0\,100\%_0\,0_100\%\)\]{clip-path:polygon(0 0,100% 0,0 100%)}.\[clip-path\:polygon\(0_0\,100\%_0\,100\%_100\%\)\]{clip-path:polygon(0 0,100% 0,100% 100%)}.\[clip-path\:polygon\(100\%_0\,0_100\%\,100\%_100\%\)\]{clip-path:polygon(100% 0,0 100%,100% 100%)}.\[writing-mode\:vertical-rl\]{writing-mode:vertical-rl}:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity))}body{margin:0;min-height:100vh;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity))}html,body,*{scrollbar-width:none}html::-webkit-scrollbar,body::-webkit-scrollbar,*::-webkit-scrollbar{display:none;width:0;height:0}.placeholder\:text-slate-400::-moz-placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.placeholder\:text-slate-400::placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.last\:mb-0:last-child{margin-bottom:0}.last\:border-0:last-child{border-width:0px}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-green-100:hover{--tw-border-opacity: 1;border-color:rgb(220 252 231 / var(--tw-border-opacity))}.hover\:border-rose-500:hover{--tw-border-opacity: 1;border-color:rgb(244 63 94 / var(--tw-border-opacity))}.hover\:border-sky-500:hover{--tw-border-opacity: 1;border-color:rgb(14 165 233 / var(--tw-border-opacity))}.hover\:border-white:hover{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}.hover\:border-white\/60:hover{border-color:#fff9}.hover\:bg-amber-400:hover{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity))}.hover\:bg-amber-600:hover{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity))}.hover\:bg-amber-800:hover{--tw-bg-opacity: 1;background-color:rgb(146 64 14 / var(--tw-bg-opacity))}.hover\:bg-amber-900:hover{--tw-bg-opacity: 1;background-color:rgb(120 53 15 / var(--tw-bg-opacity))}.hover\:bg-amber-900\/95:hover{background-color:#78350ff2}.hover\:bg-black:hover{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.hover\:bg-black\/80:hover{background-color:#000c}.hover\:bg-cyan-400:hover{--tw-bg-opacity: 1;background-color:rgb(34 211 238 / var(--tw-bg-opacity))}.hover\:bg-cyan-800:hover{--tw-bg-opacity: 1;background-color:rgb(21 94 117 / var(--tw-bg-opacity))}.hover\:bg-emerald-400:hover{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity))}.hover\:bg-emerald-500:hover{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity))}.hover\:bg-emerald-700:hover{--tw-bg-opacity: 1;background-color:rgb(4 120 87 / var(--tw-bg-opacity))}.hover\:bg-emerald-900\/95:hover{background-color:#064e3bf2}.hover\:bg-fuchsia-500:hover{--tw-bg-opacity: 1;background-color:rgb(217 70 239 / var(--tw-bg-opacity))}.hover\:bg-green-400:hover{--tw-bg-opacity: 1;background-color:rgb(74 222 128 / var(--tw-bg-opacity))}.hover\:bg-indigo-500:hover{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity))}.hover\:bg-indigo-800:hover{--tw-bg-opacity: 1;background-color:rgb(55 48 163 / var(--tw-bg-opacity))}.hover\:bg-indigo-900:hover{--tw-bg-opacity: 1;background-color:rgb(49 46 129 / var(--tw-bg-opacity))}.hover\:bg-neutral-700:hover{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity))}.hover\:bg-pink-400:hover{--tw-bg-opacity: 1;background-color:rgb(244 114 182 / var(--tw-bg-opacity))}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity))}.hover\:bg-red-900:hover{--tw-bg-opacity: 1;background-color:rgb(127 29 29 / var(--tw-bg-opacity))}.hover\:bg-rose-500:hover{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity))}.hover\:bg-sky-500:hover{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity))}.hover\:bg-slate-600:hover{--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity))}.hover\:bg-slate-700:hover{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity))}.hover\:bg-slate-700\/70:hover{background-color:#334155b3}.hover\:bg-slate-900:hover{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity))}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:bg-zinc-900:hover{--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:brightness-110:hover{--tw-brightness: brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.focus\:bg-white\/10:focus{background-color:#ffffff1a}.focus\:text-white:focus{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-emerald-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(16 185 129 / var(--tw-ring-opacity))}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:outline:focus-visible{outline-style:solid}.focus-visible\:outline-1:focus-visible{outline-width:1px}.focus-visible\:outline-offset-1:focus-visible{outline-offset:1px}.focus-visible\:outline-slate-500:focus-visible{outline-color:#64748b}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-4:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-amber-200:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(253 230 138 / var(--tw-ring-opacity))}.focus-visible\:ring-amber-300:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(252 211 77 / var(--tw-ring-opacity))}.focus-visible\:ring-cyan-200:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(165 243 252 / var(--tw-ring-opacity))}.focus-visible\:ring-cyan-300:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(103 232 249 / var(--tw-ring-opacity))}.focus-visible\:ring-emerald-200:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(167 243 208 / var(--tw-ring-opacity))}.focus-visible\:ring-emerald-300:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(110 231 183 / var(--tw-ring-opacity))}.focus-visible\:ring-indigo-200:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(199 210 254 / var(--tw-ring-opacity))}.focus-visible\:ring-indigo-300:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(165 180 252 / var(--tw-ring-opacity))}.focus-visible\:ring-red-200:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(254 202 202 / var(--tw-ring-opacity))}.focus-visible\:ring-sky-200:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(186 230 253 / var(--tw-ring-opacity))}.active\:scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-\[0\.99\]:active{--tw-scale-x: .99;--tw-scale-y: .99;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:brightness-125:active{--tw-brightness: brightness(1.25);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:cursor-wait:disabled{cursor:wait}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-45:disabled{opacity:.45}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-70:disabled{opacity:.7}.disabled\:opacity-75:disabled{opacity:.75}@container (min-width: 20rem){.\@xs\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (min-width: 24rem){.\@sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.\@sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.\@sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.\@sm\:grid-cols-\[minmax\(0\,0\.8fr\)_minmax\(0\,1\.2fr\)\]{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.\@sm\:grid-cols-\[minmax\(0\,1\.4fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.\@sm\:flex-row{flex-direction:row}.\@sm\:flex-col{flex-direction:column}.\@sm\:gap-0{gap:0px}.\@sm\:overflow-hidden{overflow:hidden}.\@sm\:whitespace-nowrap{white-space:nowrap}.\@sm\:border-b-0{border-bottom-width:0px}.\@sm\:border-r{border-right-width:1px}.\@sm\:py-0{padding-top:0;padding-bottom:0}.\@sm\:text-\[0\.55em\]{font-size:.55em}}@container (min-width: 28rem){.\@md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.\@\[28rem\]\:col-span-2{grid-column:span 2 / span 2}.\@\[28rem\]\:grid{display:grid}.\@\[28rem\]\:h-32{height:8rem}.\@\[28rem\]\:min-w-0{min-width:0px}.\@\[28rem\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.\@\[28rem\]\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.\@\[28rem\]\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.\@\[28rem\]\:grid-cols-\[minmax\(0\,1\.15fr\)_minmax\(0\,0\.85fr\)_minmax\(0\,0\.85fr\)\]{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr) minmax(0,.85fr)}.\@\[28rem\]\:grid-cols-\[minmax\(0\,1fr\)_9rem_10rem\]{grid-template-columns:minmax(0,1fr) 9rem 10rem}.\@\[28rem\]\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.\@\[28rem\]\:text-right{text-align:right}}@container (min-width: 32rem){.\@lg\:w-auto{width:auto}.\@lg\:min-w-24{min-width:6rem}.\@lg\:flex-row{flex-direction:row}.\@lg\:items-center{align-items:center}.\@lg\:justify-between{justify-content:space-between}.\@\[32rem\]\:col-span-2{grid-column:span 2 / span 2}.\@\[32rem\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.\@\[32rem\]\:grid-cols-\[minmax\(0\,1\.25fr\)_minmax\(0\,0\.9fr\)\]{grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr)}}@media(prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none}}@media(max-width:520px){.max-\[520px\]\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.max-\[520px\]\:justify-start{justify-content:flex-start}}@media(max-width:420px){.max-\[420px\]\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.max-\[420px\]\:justify-start{justify-content:flex-start}}@media(min-width:640px){.sm\:block{display:block}.sm\:min-h-\[18rem\]{min-height:18rem}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}}@media(min-width:768px){.md\:col-span-2{grid-column:span 2 / span 2}.md\:col-span-3{grid-column:span 3 / span 3}.md\:h-full{height:100%}.md\:h-screen{height:100vh}.md\:min-h-0{min-height:0px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-\[0\.9fr_1fr_1\.3fr\]{grid-template-columns:.9fr 1fr 1.3fr}.md\:grid-cols-\[10rem_10rem_1fr\]{grid-template-columns:10rem 10rem 1fr}.md\:grid-cols-\[5rem_1fr_1fr_1fr_auto\]{grid-template-columns:5rem 1fr 1fr 1fr auto}.md\:grid-cols-\[minmax\(0\,1\.5fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}.md\:grid-cols-\[minmax\(0\,1fr\)_10rem\]{grid-template-columns:minmax(0,1fr) 10rem}.md\:grid-cols-\[minmax\(0\,1fr\)_18rem\]{grid-template-columns:minmax(0,1fr) 18rem}.md\:grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.md\:grid-cols-\[minmax\(0\,1fr\)_auto_auto\]{grid-template-columns:minmax(0,1fr) auto auto}.md\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,0\.7fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,.7fr)}.md\:grid-cols-\[minmax\(16rem\,0\.8fr\)_minmax\(0\,1\.2fr\)\]{grid-template-columns:minmax(16rem,.8fr) minmax(0,1.2fr)}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:overflow-hidden{overflow:hidden}.md\:overflow-y-auto{overflow-y:auto}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media(min-width:1024px){.lg\:grid-cols-\[24rem_minmax\(0\,1fr\)\]{grid-template-columns:24rem minmax(0,1fr)}.lg\:grid-cols-\[minmax\(0\,1fr\)_20rem\]{grid-template-columns:minmax(0,1fr) 20rem}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}}@media(min-width:1280px){.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}}.\[\&_img\]\:object-contain img{-o-object-fit:contain;object-fit:contain}.\[\&_video\]\:object-contain video{-o-object-fit:contain;object-fit:contain}.page-theme{background-color:#050505;background-attachment:fixed}.page-theme-preview{background-attachment:scroll;background-position:center}.page-theme-black{background-color:#000;background-image:none}.page-theme-green-mode{background-color:#0f0;background-image:none}.page-theme-pride-mix{background-image:repeating-linear-gradient(45deg,#5bcefa 0 48px,#f5a9b8 48px 96px,#fff 96px 144px,#f5a9b8 144px 192px,#5bcefa 192px 240px,#e40303 240px 288px,#ff8c00 288px 336px,#ffed00 336px 384px,#00a651 384px 432px,#06f 432px 480px,#9b2fae 480px 528px)}.page-theme-rainbow{background-image:repeating-linear-gradient(45deg,#e40303 0 48px,#ff8c00 48px 96px,#ffed00 96px 144px,#008026 144px 192px,#004dff 192px 240px,#750787 240px 288px)}.page-theme-progress-pride{background-image:repeating-linear-gradient(45deg,#000 0 48px,#784f17 48px 96px,#5bcefa 96px 144px,#f5a9b8 144px 192px,#fff 192px 240px,#e40303 240px 288px,#ff8c00 288px 336px,#ffed00 336px 384px,#008026 384px 432px,#004dff 432px 480px,#750787 480px 528px)}.page-theme-transgender{background-image:repeating-linear-gradient(45deg,#5bcefa 0 48px,#f5a9b8 48px 96px,#fff 96px 144px,#f5a9b8 144px 192px,#5bcefa 192px 240px)}.page-theme-bisexual{background-image:repeating-linear-gradient(45deg,#d60270 0 48px,#9b4f96 48px 96px,#0038a8 96px 144px)}.page-theme-lesbian{background-image:repeating-linear-gradient(45deg,#d52d00 0 48px,#ef7627 48px 96px,#ff9a56 96px 144px,#fff 144px 192px,#d162a4 192px 240px,#b55690 240px 288px,#a30262 288px 336px)}.page-theme-nonbinary{background-image:repeating-linear-gradient(45deg,#fff430 0 48px,#fff 48px 96px,#9c59d1 96px 144px,#2d2d2d 144px 192px)}.page-theme-pansexual{background-image:repeating-linear-gradient(45deg,#ff218c 0 48px,#ffd800 48px 96px,#21b1ff 96px 144px)}.page-theme-asexual{background-image:repeating-linear-gradient(45deg,#111 0 48px,#a3a3a3 48px 96px,#fff 96px 144px,purple 144px 192px)}.page-theme-aurora{background-color:#03120f;background-image:radial-gradient(circle at 18% 24%,rgba(45,212,191,.95),transparent 34%),radial-gradient(circle at 76% 18%,rgba(168,85,247,.9),transparent 38%),radial-gradient(circle at 56% 82%,rgba(34,197,94,.88),transparent 42%),linear-gradient(125deg,#020617,#0f172a 45%,#082f49);background-size:34rem 28rem,38rem 32rem,42rem 36rem,auto}.page-theme-synthwave-grid{background-color:#090018;background-image:linear-gradient(rgba(34,211,238,.7) 2px,transparent 2px),linear-gradient(90deg,rgba(236,72,153,.72) 2px,transparent 2px),radial-gradient(ellipse at 50% 100%,#7e22ce 0,#1e1b4b 38%,#090018 72%);background-size:54px 54px,54px 54px,auto}.page-theme-neon-checker{background-color:#111827;background-image:conic-gradient(from 45deg,#06b6d4 0 25%,#7c3aed 0 50%,#ec4899 0 75%,#111827 0);background-size:84px 84px}.page-theme-ocean-current{background-color:#082f49;background-image:repeating-linear-gradient(35deg,rgba(103,232,249,.72) 0 12px,transparent 12px 54px),repeating-linear-gradient(-35deg,rgba(14,116,144,.72) 0 21px,transparent 21px 72px),linear-gradient(90deg,#0c4a6e,#0891b2,#164e63)}.page-theme-ember-lattice{background-color:#1c0704;background-image:repeating-linear-gradient(45deg,transparent 0 36px,rgba(251,146,60,.9) 36px 45px),repeating-linear-gradient(-45deg,transparent 0 48px,rgba(239,68,68,.78) 48px 57px),radial-gradient(circle at center,#7c2d12,#1c0704 70%)}.page-theme-starfield{background-color:#020617;background-image:radial-gradient(circle,rgba(255,255,255,.95) 0 2px,transparent 3px),radial-gradient(circle,rgba(125,211,252,.9) 0 3px,transparent 4px),radial-gradient(circle,rgba(216,180,254,.8) 0 2px,transparent 3px),linear-gradient(135deg,#020617,#172554 55%,#3b0764);background-position:0 0,57px 81px,123px 33px,0 0;background-size:111px 111px,183px 183px,237px 237px,auto}.page-theme-vaporwave-sunset{background-color:#2e1065;background-image:repeating-linear-gradient(0deg,transparent 0 24px,rgba(103,232,249,.48) 24px 27px,transparent 27px 54px),radial-gradient(circle at 50% 78%,#fda4af 0 14%,#f97316 14% 25%,transparent 25.5%),linear-gradient(180deg,#172554,#6b21a8 48%,#db2777 72%,#f97316);background-size:auto,48rem 34rem,auto}.page-theme-electric-circuit{background-color:#020617;background-image:repeating-linear-gradient(90deg,transparent 0 48px,rgba(34,211,238,.9) 48px 52px,transparent 52px 96px),repeating-linear-gradient(0deg,transparent 0 68px,rgba(168,85,247,.86) 68px 72px,transparent 72px 124px),radial-gradient(circle at center,#312e81 0,#0f172a 45%,#020617 78%)}.page-theme-lava-flow{background-color:#180503;background-image:radial-gradient(ellipse at 18% 28%,#facc15 0 8%,#f97316 9% 18%,#991b1b 24%,transparent 39%),radial-gradient(ellipse at 76% 64%,#fb923c 0 10%,#dc2626 18%,#7f1d1d 29%,transparent 44%),radial-gradient(ellipse at 48% 92%,#fde047 0 7%,#ea580c 17%,transparent 36%),linear-gradient(135deg,#180503,#450a0a 50%,#1c0704);background-size:42rem 34rem,48rem 39rem,37rem 31rem,auto}.page-theme-deep-space-nebula{background-color:#020617;background-image:radial-gradient(ellipse at 22% 38%,rgba(217,70,239,.92),transparent 34%),radial-gradient(ellipse at 72% 24%,rgba(59,130,246,.9),transparent 38%),radial-gradient(ellipse at 58% 82%,rgba(14,165,233,.72),transparent 36%),radial-gradient(circle,rgba(255,255,255,.9) 0 2px,transparent 3px),linear-gradient(125deg,#020617,#1e1b4b 52%,#3b0764);background-position:center,center,center,17px 31px,center;background-size:42rem 34rem,48rem 38rem,39rem 35rem,173px 173px,auto}.page-theme-holographic-waves{background-color:#164e63;background-image:repeating-linear-gradient(32deg,rgba(255,255,255,.4) 0 14px,transparent 14px 82px),repeating-linear-gradient(-38deg,rgba(216,180,254,.38) 0 18px,transparent 18px 104px),linear-gradient(110deg,#67e8f9,#c4b5fd 32%,#f9a8d4 60%,#86efac)}.page-theme-hazard-stripes{background-color:#111;background-image:repeating-linear-gradient(45deg,#facc15 0 48px,#171717 48px 96px)}.page-theme-mint-mosaic{background-color:#064e3b;background-image:conic-gradient(from 45deg,#a7f3d0 0 25%,#0f766e 0 50%,#fef3c7 0 75%,#164e63 0);background-size:96px 96px}.page-theme-candy-swirl{background-color:#fdf2f8;background-image:repeating-radial-gradient(circle at 28% 34%,#f9a8d4 0 28px,#fef3c7 28px 56px,#93c5fd 56px 84px,#c4b5fd 84px 112px,#f9a8d4 112px 140px)}.inter-instance-overlay-frame{max-width:calc(100vw - .5rem)}.inter-instance-overlay-body{max-height:82vh}@media(min-width:1024px){.inter-instance-overlay-scale{zoom:1.5}.inter-instance-overlay-frame{max-width:calc((100vw - .5rem) / 1.5)}.inter-instance-overlay-body{max-height:54.6667vh}}.chat-composer{container-type:inline-size;display:flex;flex-wrap:wrap;align-items:stretch;gap:.125rem;min-width:0;overflow:hidden}.chat-composer-nickname{flex:1 1 100%;min-width:0;order:1}.chat-composer-input{flex:1 1 0%;min-width:0;order:2}.chat-composer-send{flex:0 0 auto;align-self:stretch;order:3}.chat-composer-tts{display:flex;flex:1 1 100%;align-items:center;gap:.125rem;min-width:0;overflow:hidden;order:4}@container (min-width: 44rem){.chat-composer{flex-wrap:nowrap}.chat-composer-nickname{flex:0 0 7rem;order:1}.chat-composer-input{order:2}.chat-composer-tts{flex:0 1 auto;order:3}.chat-composer-send{order:4}}@keyframes rover-help-flash{0%,49%{opacity:.96}50%,to{opacity:0}}.rover-help-overlay{container-type:size;animation:rover-help-flash 2s steps(1,end) infinite}.mobile-text-entry{font-size:16px;-webkit-text-size-adjust:100%;touch-action:manipulation}.no-touch-select{-moz-user-select:none;user-select:none;-webkit-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.mobile-touch-control{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;overscroll-behavior:contain}.mobile-drag-control{touch-action:none}.newgen-wheel-drop{pointer-events:none;position:absolute;z-index:20;top:50%;display:flex;width:4rem;height:15rem;align-items:center;justify-content:center;border-radius:.25rem;background:#ef44445c;color:#fff;transform:translateY(-50%)}.newgen-wheel-drop--left{left:1rem}.newgen-wheel-drop--right{right:1rem}.newgen-wheel-drop span{white-space:nowrap;font-size:.9rem;font-weight:700;letter-spacing:.08em;line-height:1;text-shadow:0 1px 2px rgb(0 0 0 / .65)}.newgen-wheel-drop--left span{transform:rotate(-90deg)}.newgen-wheel-drop--right span{transform:rotate(90deg)}.newgen-bumper-path{fill:none;stroke:#ef44447a;stroke-width:26;stroke-linecap:round;vector-effect:non-scaling-stroke}.newgen-bumper-label{fill:#fff;font-family:system-ui,sans-serif;font-size:20px;font-weight:700;letter-spacing:1px;paint-order:stroke;stroke:#000000a6;stroke-width:1.5px}.newgen-ir-proximity-cone{fill:none;stroke-width:6;stroke-linecap:round;vector-effect:non-scaling-stroke;transition:opacity .15s linear}@media(prefers-reduced-motion:reduce){.newgen-ir-proximity-cone{transition:none}}.newgen-cliff-path{fill:none;stroke:#f59e0bad;stroke-width:22;stroke-linecap:round;vector-effect:non-scaling-stroke}.newgen-cliff-label{fill:#fff;font-family:system-ui,sans-serif;font-size:15px;font-weight:700;letter-spacing:1px;paint-order:stroke;stroke:#000000a6;stroke-width:1.5px}.newgen-bottom-sensor-hud{pointer-events:none;position:absolute;z-index:20;right:0;bottom:-2.5rem;left:0;width:100%;height:clamp(7rem,18vh,11rem);overflow:visible}@keyframes batteryTickWarn{0%,49%{background-color:#fffffff2}50%,to{background-color:#ef4444f2}}.battery-tick-warn{animation:batteryTickWarn .4s steps(2,end) infinite}@keyframes batteryUrgentFlash{0%,49%{opacity:1}50%,to{opacity:.25}}.battery-urgent-flash{animation:batteryUrgentFlash .4s steps(2,end) infinite}@media(max-width:1023px){.driver-mobile-layout{--mobile-landscape-video-width: min(60vw, 133.333svh)}.driver-mobile-layout:has(>.panel-section){--mobile-landscape-video-width: min(60vw, calc(133.333svh - 3.333rem) )}.driver-mobile-layout .mobile-landscape-driver-grid{grid-template-columns:minmax(0,1fr) minmax(0,var(--mobile-landscape-video-width)) minmax(0,1fr)}html:has(.driver-mobile-layout){scroll-snap-type:y mandatory}.driver-mobile-layout .mobile-top-snap{position:absolute;top:0;left:0;width:1px;height:1px;pointer-events:none;scroll-snap-align:start;scroll-snap-stop:always}.driver-mobile-layout .mobile-content-snap,.driver-mobile-layout .mobile-tabs-snap{scroll-snap-align:start;scroll-snap-stop:always}}@keyframes initial-session-spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes initial-session-spinner-hue{0%{filter:hue-rotate(0deg)}to{filter:hue-rotate(360deg)}}@media(prefers-reduced-motion:no-preference){.initial-session-spinner-rotation{animation:initial-session-spinner-rotate 1.8s linear infinite}.initial-session-spinner-image{animation:initial-session-spinner-hue 2.8s linear infinite}} diff --git a/server/public/assets/index-D5baJIet.js b/server/public/assets/index-CnHL-xtk.js similarity index 96% rename from server/public/assets/index-D5baJIet.js rename to server/public/assets/index-CnHL-xtk.js index 7dbfbdd1..079baeb0 100644 --- a/server/public/assets/index-D5baJIet.js +++ b/server/public/assets/index-CnHL-xtk.js @@ -1,15 +1,15 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/OrbitControls-BJ-UXxdt.js","assets/three.module--MGUDD-H.js","assets/AdminApp-B89XZuLF.js","assets/api-C0PIt_OP.js","assets/AdminApp-BUJMt-M5.css","assets/SetupApp-BTQ-8jXK.js"])))=>i.map(i=>d[i]); -(function(){const c=document.createElement("link").relList;if(c&&c.supports&&c.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))l(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const h of o.addedNodes)h.tagName==="LINK"&&h.rel==="modulepreload"&&l(h)}).observe(document,{childList:!0,subtree:!0});function a(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function l(s){if(s.ep)return;s.ep=!0;const o=a(s);fetch(s.href,o)}})();const Wx="modulepreload",Jx=function(t){return"/"+t},Po={},Se=function(c,a,l){let s=Promise.resolve();if(a&&a.length>0){let v=function(x){return Promise.all(x.map(p=>Promise.resolve(p).then(b=>({status:"fulfilled",value:b}),b=>({status:"rejected",reason:b}))))};document.getElementsByTagName("link");const h=document.querySelector("meta[property=csp-nonce]"),m=h?.nonce||h?.getAttribute("nonce");s=v(a.map(x=>{if(x=Jx(x),x in Po)return;Po[x]=!0;const p=x.endsWith(".css"),b=p?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${x}"]${b}`))return;const w=document.createElement("link");if(w.rel=p?"stylesheet":Wx,p||(w.as="script"),w.crossOrigin="",w.href=x,m&&w.setAttribute("nonce",m),document.head.appendChild(w),p)return new Promise((y,S)=>{w.addEventListener("load",y),w.addEventListener("error",()=>S(new Error(`Unable to preload CSS for ${x}`)))})}))}function o(h){const m=new Event("vite:preloadError",{cancelable:!0});if(m.payload=h,window.dispatchEvent(m),!m.defaultPrevented)throw h}return s.then(h=>{for(const m of h||[])m.status==="rejected"&&o(m.reason);return c().catch(o)})};function bh(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Xn={exports:{}},ae={};var Io;function tg(){if(Io)return ae;Io=1;var t=Symbol.for("react.transitional.element"),c=Symbol.for("react.fragment");function a(l,s,o){var h=null;if(o!==void 0&&(h=""+o),s.key!==void 0&&(h=""+s.key),"key"in s){o={};for(var m in s)m!=="key"&&(o[m]=s[m])}else o=s;return s=o.ref,{$$typeof:t,type:l,key:h,ref:s!==void 0?s:null,props:o}}return ae.Fragment=c,ae.jsx=a,ae.jsxs=a,ae}var $o;function eg(){return $o||($o=1,Xn.exports=tg()),Xn.exports}var r=eg(),Qn={exports:{}},X1={};var Zo;function cg(){if(Zo)return X1;Zo=1;var t=Symbol.for("react.transitional.element"),c=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),o=Symbol.for("react.consumer"),h=Symbol.for("react.context"),m=Symbol.for("react.forward_ref"),v=Symbol.for("react.suspense"),x=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),b=Symbol.for("react.activity"),w=Symbol.iterator;function y(D){return D===null||typeof D!="object"?null:(D=w&&D[w]||D["@@iterator"],typeof D=="function"?D:null)}var S={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},H=Object.assign,M={};function V(D,P,t1){this.props=D,this.context=P,this.refs=M,this.updater=t1||S}V.prototype.isReactComponent={},V.prototype.setState=function(D,P){if(typeof D!="object"&&typeof D!="function"&&D!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,D,P,"setState")},V.prototype.forceUpdate=function(D){this.updater.enqueueForceUpdate(this,D,"forceUpdate")};function A(){}A.prototype=V.prototype;function C(D,P,t1){this.props=D,this.context=P,this.refs=M,this.updater=t1||S}var N=C.prototype=new A;N.constructor=C,H(N,V.prototype),N.isPureReactComponent=!0;var k=Array.isArray;function E(){}var F={H:null,A:null,T:null,S:null},j=Object.prototype.hasOwnProperty;function B(D,P,t1){var W=t1.ref;return{$$typeof:t,type:D,key:P,ref:W!==void 0?W:null,props:t1}}function T(D,P){return B(D.type,P,D.props)}function O(D){return typeof D=="object"&&D!==null&&D.$$typeof===t}function q(D){var P={"=":"=0",":":"=2"};return"$"+D.replace(/[=:]/g,function(t1){return P[t1]})}var r1=/\/+/g;function J(D,P){return typeof D=="object"&&D!==null&&D.key!=null?q(""+D.key):P.toString(36)}function Z(D){switch(D.status){case"fulfilled":return D.value;case"rejected":throw D.reason;default:switch(typeof D.status=="string"?D.then(E,E):(D.status="pending",D.then(function(P){D.status==="pending"&&(D.status="fulfilled",D.value=P)},function(P){D.status==="pending"&&(D.status="rejected",D.reason=P)})),D.status){case"fulfilled":return D.value;case"rejected":throw D.reason}}throw D}function _(D,P,t1,W,G){var K=typeof D;(K==="undefined"||K==="boolean")&&(D=null);var o1=!1;if(D===null)o1=!0;else switch(K){case"bigint":case"string":case"number":o1=!0;break;case"object":switch(D.$$typeof){case t:case c:o1=!0;break;case p:return o1=D._init,_(o1(D._payload),P,t1,W,G)}}if(o1)return G=G(D),o1=W===""?"."+J(D,0):W,k(G)?(t1="",o1!=null&&(t1=o1.replace(r1,"$&/")+"/"),_(G,P,t1,"",function(j1){return j1})):G!=null&&(O(G)&&(G=T(G,t1+(G.key==null||D&&D.key===G.key?"":(""+G.key).replace(r1,"$&/")+"/")+o1)),P.push(G)),1;o1=0;var y1=W===""?".":W+":";if(k(D))for(var C1=0;C1>>1,p1=_[s1];if(0>>1;s1s(t1,Q))Ws(G,t1)?(_[s1]=G,_[W]=Q,s1=W):(_[s1]=t1,_[P]=Q,s1=P);else if(Ws(G,Q))_[s1]=G,_[W]=Q,s1=W;else break t}}return I}function s(_,I){var Q=_.sortIndex-I.sortIndex;return Q!==0?Q:_.id-I.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var o=performance;t.unstable_now=function(){return o.now()}}else{var h=Date,m=h.now();t.unstable_now=function(){return h.now()-m}}var v=[],x=[],p=1,b=null,w=3,y=!1,S=!1,H=!1,M=!1,V=typeof setTimeout=="function"?setTimeout:null,A=typeof clearTimeout=="function"?clearTimeout:null,C=typeof setImmediate<"u"?setImmediate:null;function N(_){for(var I=a(x);I!==null;){if(I.callback===null)l(x);else if(I.startTime<=_)l(x),I.sortIndex=I.expirationTime,c(v,I);else break;I=a(x)}}function k(_){if(H=!1,N(_),!S)if(a(v)!==null)S=!0,E||(E=!0,q());else{var I=a(x);I!==null&&Z(k,I.startTime-_)}}var E=!1,F=-1,j=5,B=-1;function T(){return M?!0:!(t.unstable_now()-B_&&T());){var s1=b.callback;if(typeof s1=="function"){b.callback=null,w=b.priorityLevel;var p1=s1(b.expirationTime<=_);if(_=t.unstable_now(),typeof p1=="function"){b.callback=p1,N(_),I=!0;break e}b===a(v)&&l(v),N(_)}else l(v);b=a(v)}if(b!==null)I=!0;else{var D=a(x);D!==null&&Z(k,D.startTime-_),I=!1}}break t}finally{b=null,w=Q,y=!1}I=void 0}}finally{I?q():E=!1}}}var q;if(typeof C=="function")q=function(){C(O)};else if(typeof MessageChannel<"u"){var r1=new MessageChannel,J=r1.port2;r1.port1.onmessage=O,q=function(){J.postMessage(null)}}else q=function(){V(O,0)};function Z(_,I){F=V(function(){_(t.unstable_now())},I)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(_){_.callback=null},t.unstable_forceFrameRate=function(_){0>_||125<_?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):j=0<_?Math.floor(1e3/_):5},t.unstable_getCurrentPriorityLevel=function(){return w},t.unstable_next=function(_){switch(w){case 1:case 2:case 3:var I=3;break;default:I=w}var Q=w;w=I;try{return _()}finally{w=Q}},t.unstable_requestPaint=function(){M=!0},t.unstable_runWithPriority=function(_,I){switch(_){case 1:case 2:case 3:case 4:case 5:break;default:_=3}var Q=w;w=_;try{return I()}finally{w=Q}},t.unstable_scheduleCallback=function(_,I,Q){var s1=t.unstable_now();switch(typeof Q=="object"&&Q!==null?(Q=Q.delay,Q=typeof Q=="number"&&0s1?(_.sortIndex=Q,c(x,_),a(v)===null&&_===a(x)&&(H?(A(F),F=-1):H=!0,Z(k,Q-s1))):(_.sortIndex=p1,c(v,_),S||y||(S=!0,E||(E=!0,q()))),_},t.unstable_shouldYield=T,t.unstable_wrapCallback=function(_){var I=w;return function(){var Q=w;w=I;try{return _.apply(this,arguments)}finally{w=Q}}}})(ta)),ta}var Ko;function ag(){return Ko||(Ko=1,Jn.exports=ng()),Jn.exports}var ea={exports:{}},c4={};var Xo;function rg(){if(Xo)return c4;Xo=1;var t=_9();function c(v){var x="https://react.dev/errors/"+v;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(c){console.error(c)}}return t(),ea.exports=rg(),ea.exports}var Wo;function lg(){if(Wo)return re;Wo=1;var t=ag(),c=_9(),a=zh();function l(e){var n="https://react.dev/errors/"+e;if(1p1||(e.current=s1[p1],s1[p1]=null,p1--)}function t1(e,n){p1++,s1[p1]=e.current,e.current=n}var W=D(null),G=D(null),K=D(null),o1=D(null);function y1(e,n){switch(t1(K,n),t1(G,e),t1(W,null),n.nodeType){case 9:case 11:e=(e=n.documentElement)&&(e=e.namespaceURI)?ho(e):0;break;default:if(e=n.tagName,n=n.namespaceURI)n=ho(n),e=mo(n,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}P(W),t1(W,e)}function C1(){P(W),P(G),P(K)}function j1(e){e.memoizedState!==null&&t1(o1,e);var n=W.current,i=mo(n,e.type);n!==i&&(t1(G,e),t1(W,i))}function u1(e){G.current===e&&(P(W),P(G)),o1.current===e&&(P(o1),te._currentValue=Q)}var H1,q1;function I1(e){if(H1===void 0)try{throw Error()}catch(i){var n=i.stack.trim().match(/\n( *(at )?)/);H1=n&&n[1]||"",q1=-1i.map(i=>d[i]); +(function(){const c=document.createElement("link").relList;if(c&&c.supports&&c.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))l(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const h of o.addedNodes)h.tagName==="LINK"&&h.rel==="modulepreload"&&l(h)}).observe(document,{childList:!0,subtree:!0});function a(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function l(s){if(s.ep)return;s.ep=!0;const o=a(s);fetch(s.href,o)}})();const Wx="modulepreload",Jx=function(t){return"/"+t},Io={},Se=function(c,a,l){let s=Promise.resolve();if(a&&a.length>0){let v=function(x){return Promise.all(x.map(p=>Promise.resolve(p).then(b=>({status:"fulfilled",value:b}),b=>({status:"rejected",reason:b}))))};document.getElementsByTagName("link");const h=document.querySelector("meta[property=csp-nonce]"),m=h?.nonce||h?.getAttribute("nonce");s=v(a.map(x=>{if(x=Jx(x),x in Io)return;Io[x]=!0;const p=x.endsWith(".css"),b=p?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${x}"]${b}`))return;const w=document.createElement("link");if(w.rel=p?"stylesheet":Wx,p||(w.as="script"),w.crossOrigin="",w.href=x,m&&w.setAttribute("nonce",m),document.head.appendChild(w),p)return new Promise((y,S)=>{w.addEventListener("load",y),w.addEventListener("error",()=>S(new Error(`Unable to preload CSS for ${x}`)))})}))}function o(h){const m=new Event("vite:preloadError",{cancelable:!0});if(m.payload=h,window.dispatchEvent(m),!m.defaultPrevented)throw h}return s.then(h=>{for(const m of h||[])m.status==="rejected"&&o(m.reason);return c().catch(o)})};function bh(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Xn={exports:{}},ae={};var $o;function tg(){if($o)return ae;$o=1;var t=Symbol.for("react.transitional.element"),c=Symbol.for("react.fragment");function a(l,s,o){var h=null;if(o!==void 0&&(h=""+o),s.key!==void 0&&(h=""+s.key),"key"in s){o={};for(var m in s)m!=="key"&&(o[m]=s[m])}else o=s;return s=o.ref,{$$typeof:t,type:l,key:h,ref:s!==void 0?s:null,props:o}}return ae.Fragment=c,ae.jsx=a,ae.jsxs=a,ae}var Zo;function eg(){return Zo||(Zo=1,Xn.exports=tg()),Xn.exports}var r=eg(),Qn={exports:{}},X1={};var Go;function cg(){if(Go)return X1;Go=1;var t=Symbol.for("react.transitional.element"),c=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),o=Symbol.for("react.consumer"),h=Symbol.for("react.context"),m=Symbol.for("react.forward_ref"),v=Symbol.for("react.suspense"),x=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),b=Symbol.for("react.activity"),w=Symbol.iterator;function y(D){return D===null||typeof D!="object"?null:(D=w&&D[w]||D["@@iterator"],typeof D=="function"?D:null)}var S={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},H=Object.assign,M={};function V(D,P,t1){this.props=D,this.context=P,this.refs=M,this.updater=t1||S}V.prototype.isReactComponent={},V.prototype.setState=function(D,P){if(typeof D!="object"&&typeof D!="function"&&D!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,D,P,"setState")},V.prototype.forceUpdate=function(D){this.updater.enqueueForceUpdate(this,D,"forceUpdate")};function A(){}A.prototype=V.prototype;function C(D,P,t1){this.props=D,this.context=P,this.refs=M,this.updater=t1||S}var N=C.prototype=new A;N.constructor=C,H(N,V.prototype),N.isPureReactComponent=!0;var k=Array.isArray;function E(){}var F={H:null,A:null,T:null,S:null},j=Object.prototype.hasOwnProperty;function B(D,P,t1){var W=t1.ref;return{$$typeof:t,type:D,key:P,ref:W!==void 0?W:null,props:t1}}function T(D,P){return B(D.type,P,D.props)}function O(D){return typeof D=="object"&&D!==null&&D.$$typeof===t}function q(D){var P={"=":"=0",":":"=2"};return"$"+D.replace(/[=:]/g,function(t1){return P[t1]})}var r1=/\/+/g;function J(D,P){return typeof D=="object"&&D!==null&&D.key!=null?q(""+D.key):P.toString(36)}function Z(D){switch(D.status){case"fulfilled":return D.value;case"rejected":throw D.reason;default:switch(typeof D.status=="string"?D.then(E,E):(D.status="pending",D.then(function(P){D.status==="pending"&&(D.status="fulfilled",D.value=P)},function(P){D.status==="pending"&&(D.status="rejected",D.reason=P)})),D.status){case"fulfilled":return D.value;case"rejected":throw D.reason}}throw D}function _(D,P,t1,W,G){var K=typeof D;(K==="undefined"||K==="boolean")&&(D=null);var o1=!1;if(D===null)o1=!0;else switch(K){case"bigint":case"string":case"number":o1=!0;break;case"object":switch(D.$$typeof){case t:case c:o1=!0;break;case p:return o1=D._init,_(o1(D._payload),P,t1,W,G)}}if(o1)return G=G(D),o1=W===""?"."+J(D,0):W,k(G)?(t1="",o1!=null&&(t1=o1.replace(r1,"$&/")+"/"),_(G,P,t1,"",function(j1){return j1})):G!=null&&(O(G)&&(G=T(G,t1+(G.key==null||D&&D.key===G.key?"":(""+G.key).replace(r1,"$&/")+"/")+o1)),P.push(G)),1;o1=0;var y1=W===""?".":W+":";if(k(D))for(var C1=0;C1>>1,p1=_[s1];if(0>>1;s1s(t1,Q))Ws(G,t1)?(_[s1]=G,_[W]=Q,s1=W):(_[s1]=t1,_[P]=Q,s1=P);else if(Ws(G,Q))_[s1]=G,_[W]=Q,s1=W;else break t}}return I}function s(_,I){var Q=_.sortIndex-I.sortIndex;return Q!==0?Q:_.id-I.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var o=performance;t.unstable_now=function(){return o.now()}}else{var h=Date,m=h.now();t.unstable_now=function(){return h.now()-m}}var v=[],x=[],p=1,b=null,w=3,y=!1,S=!1,H=!1,M=!1,V=typeof setTimeout=="function"?setTimeout:null,A=typeof clearTimeout=="function"?clearTimeout:null,C=typeof setImmediate<"u"?setImmediate:null;function N(_){for(var I=a(x);I!==null;){if(I.callback===null)l(x);else if(I.startTime<=_)l(x),I.sortIndex=I.expirationTime,c(v,I);else break;I=a(x)}}function k(_){if(H=!1,N(_),!S)if(a(v)!==null)S=!0,E||(E=!0,q());else{var I=a(x);I!==null&&Z(k,I.startTime-_)}}var E=!1,F=-1,j=5,B=-1;function T(){return M?!0:!(t.unstable_now()-B_&&T());){var s1=b.callback;if(typeof s1=="function"){b.callback=null,w=b.priorityLevel;var p1=s1(b.expirationTime<=_);if(_=t.unstable_now(),typeof p1=="function"){b.callback=p1,N(_),I=!0;break e}b===a(v)&&l(v),N(_)}else l(v);b=a(v)}if(b!==null)I=!0;else{var D=a(x);D!==null&&Z(k,D.startTime-_),I=!1}}break t}finally{b=null,w=Q,y=!1}I=void 0}}finally{I?q():E=!1}}}var q;if(typeof C=="function")q=function(){C(O)};else if(typeof MessageChannel<"u"){var r1=new MessageChannel,J=r1.port2;r1.port1.onmessage=O,q=function(){J.postMessage(null)}}else q=function(){V(O,0)};function Z(_,I){F=V(function(){_(t.unstable_now())},I)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(_){_.callback=null},t.unstable_forceFrameRate=function(_){0>_||125<_?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):j=0<_?Math.floor(1e3/_):5},t.unstable_getCurrentPriorityLevel=function(){return w},t.unstable_next=function(_){switch(w){case 1:case 2:case 3:var I=3;break;default:I=w}var Q=w;w=I;try{return _()}finally{w=Q}},t.unstable_requestPaint=function(){M=!0},t.unstable_runWithPriority=function(_,I){switch(_){case 1:case 2:case 3:case 4:case 5:break;default:_=3}var Q=w;w=_;try{return I()}finally{w=Q}},t.unstable_scheduleCallback=function(_,I,Q){var s1=t.unstable_now();switch(typeof Q=="object"&&Q!==null?(Q=Q.delay,Q=typeof Q=="number"&&0s1?(_.sortIndex=Q,c(x,_),a(v)===null&&_===a(x)&&(H?(A(F),F=-1):H=!0,Z(k,Q-s1))):(_.sortIndex=p1,c(v,_),S||y||(S=!0,E||(E=!0,q()))),_},t.unstable_shouldYield=T,t.unstable_wrapCallback=function(_){var I=w;return function(){var Q=w;w=I;try{return _.apply(this,arguments)}finally{w=Q}}}})(ta)),ta}var Xo;function ag(){return Xo||(Xo=1,Jn.exports=ng()),Jn.exports}var ea={exports:{}},c4={};var Qo;function rg(){if(Qo)return c4;Qo=1;var t=q9();function c(v){var x="https://react.dev/errors/"+v;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(c){console.error(c)}}return t(),ea.exports=rg(),ea.exports}var Jo;function lg(){if(Jo)return re;Jo=1;var t=ag(),c=q9(),a=zh();function l(e){var n="https://react.dev/errors/"+e;if(1p1||(e.current=s1[p1],s1[p1]=null,p1--)}function t1(e,n){p1++,s1[p1]=e.current,e.current=n}var W=D(null),G=D(null),K=D(null),o1=D(null);function y1(e,n){switch(t1(K,n),t1(G,e),t1(W,null),n.nodeType){case 9:case 11:e=(e=n.documentElement)&&(e=e.namespaceURI)?mo(e):0;break;default:if(e=n.tagName,n=n.namespaceURI)n=mo(n),e=fo(n,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}P(W),t1(W,e)}function C1(){P(W),P(G),P(K)}function j1(e){e.memoizedState!==null&&t1(o1,e);var n=W.current,i=fo(n,e.type);n!==i&&(t1(G,e),t1(W,i))}function u1(e){G.current===e&&(P(W),P(G)),o1.current===e&&(P(o1),te._currentValue=Q)}var H1,q1;function I1(e){if(H1===void 0)try{throw Error()}catch(i){var n=i.stack.trim().match(/\n( *(at )?)/);H1=n&&n[1]||"",q1=-1)":-1g||U[d]!==n1[g]){var d1=` `+U[d].replace(" at new "," at ");return e.displayName&&d1.includes("")&&(d1=d1.replace("",e.displayName)),d1}while(1<=d&&0<=g);break}}}finally{B1=!1,Error.prepareStackTrace=i}return(i=e?e.displayName||e.name:"")?I1(i):""}function g1(e,n){switch(e.tag){case 26:case 27:case 5:return I1(e.type);case 16:return I1("Lazy");case 13:return e.child!==n&&n!==null?I1("Suspense Fallback"):I1("Suspense");case 19:return I1("SuspenseList");case 0:case 15:return w1(e.type,!1);case 11:return w1(e.type.render,!1);case 1:return w1(e.type,!0);case 31:return I1("Activity");default:return""}}function k1(e){try{var n="",i=null;do n+=g1(e,i),i=e,e=e.return;while(e);return n}catch(d){return` Error generating stack: `+d.message+` -`+d.stack}}var M1=Object.prototype.hasOwnProperty,V1=t.unstable_scheduleCallback,Y1=t.unstable_cancelCallback,x1=t.unstable_shouldYield,m1=t.unstable_requestPaint,a1=t.unstable_now,b1=t.unstable_getCurrentPriorityLevel,z1=t.unstable_ImmediatePriority,A1=t.unstable_UserBlockingPriority,G1=t.unstable_NormalPriority,W1=t.unstable_LowPriority,e1=t.unstable_IdlePriority,S1=t.log,D1=t.unstable_setDisableYieldValue,K1=null,R1=null;function E1(e){if(typeof S1=="function"&&D1(e),R1&&typeof R1.setStrictMode=="function")try{R1.setStrictMode(K1,e)}catch{}}var i2=Math.clz32?Math.clz32:$1,v1=Math.log,O1=Math.LN2;function $1(e){return e>>>=0,e===0?32:31-(v1(e)/O1|0)|0}var N2=256,Z2=262144,Y0=4194304;function T1(e){var n=e&42;if(n!==0)return n;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function v2(e,n,i){var d=e.pendingLanes;if(d===0)return 0;var g=0,z=e.suspendedLanes,L=e.pingedLanes;e=e.warmLanes;var R=d&134217727;return R!==0?(d=R&~z,d!==0?g=T1(d):(L&=R,L!==0?g=T1(L):i||(i=R&~e,i!==0&&(g=T1(i))))):(R=d&~z,R!==0?g=T1(R):L!==0?g=T1(L):i||(i=d&~e,i!==0&&(g=T1(i)))),g===0?0:n!==0&&n!==g&&(n&z)===0&&(z=g&-g,i=n&-n,z>=i||z===32&&(i&4194048)!==0)?n:g}function h2(e,n){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&n)===0}function l2(e,n){switch(e){case 1:case 2:case 4:case 8:case 64:return n+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function b2(){var e=Y0;return Y0<<=1,(Y0&62914560)===0&&(Y0=4194304),e}function x4(e){for(var n=[],i=0;31>i;i++)n.push(e);return n}function Z4(e,n){e.pendingLanes|=n,n!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function K0(e,n,i,d,g,z){var L=e.pendingLanes;e.pendingLanes=i,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=i,e.entangledLanes&=i,e.errorRecoveryDisabledLanes&=i,e.shellSuspendCounter=0;var R=e.entanglements,U=e.expirationTimes,n1=e.hiddenUpdates;for(i=L&~i;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var Zv=/[\n"\\]/g;function N4(e){return e.replace(Zv,function(n){return"\\"+n.charCodeAt(0).toString(16)+" "})}function P7(e,n,i,d,g,z,L,R){e.name="",L!=null&&typeof L!="function"&&typeof L!="symbol"&&typeof L!="boolean"?e.type=L:e.removeAttribute("type"),n!=null?L==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+j4(n)):e.value!==""+j4(n)&&(e.value=""+j4(n)):L!=="submit"&&L!=="reset"||e.removeAttribute("value"),n!=null?I7(e,L,j4(n)):i!=null?I7(e,L,j4(i)):d!=null&&e.removeAttribute("value"),g==null&&z!=null&&(e.defaultChecked=!!z),g!=null&&(e.checked=g&&typeof g!="function"&&typeof g!="symbol"),R!=null&&typeof R!="function"&&typeof R!="symbol"&&typeof R!="boolean"?e.name=""+j4(R):e.removeAttribute("name")}function rl(e,n,i,d,g,z,L,R){if(z!=null&&typeof z!="function"&&typeof z!="symbol"&&typeof z!="boolean"&&(e.type=z),n!=null||i!=null){if(!(z!=="submit"&&z!=="reset"||n!=null)){U7(e);return}i=i!=null?""+j4(i):"",n=n!=null?""+j4(n):i,R||n===e.value||(e.value=n),e.defaultValue=n}d=d??g,d=typeof d!="function"&&typeof d!="symbol"&&!!d,e.checked=R?e.checked:!!d,e.defaultChecked=!!d,L!=null&&typeof L!="function"&&typeof L!="symbol"&&typeof L!="boolean"&&(e.name=L),U7(e)}function I7(e,n,i){n==="number"&&t8(e.ownerDocument)===e||e.defaultValue===""+i||(e.defaultValue=""+i)}function e6(e,n,i,d){if(e=e.options,n){n={};for(var g=0;g"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),K7=!1;if(p3)try{var gt={};Object.defineProperty(gt,"passive",{get:function(){K7=!0}}),window.addEventListener("test",gt,gt),window.removeEventListener("test",gt,gt)}catch{K7=!1}var q3=null,X7=null,c8=null;function hl(){if(c8)return c8;var e,n=X7,i=n.length,d,g="value"in q3?q3.value:q3.textContent,z=g.length;for(e=0;e=yt),gl=" ",bl=!1;function zl(e,n){switch(e){case"keyup":return zp.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function yl(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var r6=!1;function wp(e,n){switch(e){case"compositionend":return yl(n);case"keypress":return n.which!==32?null:(bl=!0,gl);case"textInput":return e=n.data,e===gl&&bl?null:e;default:return null}}function Mp(e,n){if(r6)return e==="compositionend"||!ec&&zl(e,n)?(e=hl(),c8=X7=q3=null,r6=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:i,offset:n-e};e=d}t:{for(;i;){if(i.nextSibling){i=i.nextSibling;break t}i=i.parentNode}i=void 0}i=jl(i)}}function Vl(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?Vl(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function Bl(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var n=t8(e.document);n instanceof e.HTMLIFrameElement;){try{var i=typeof n.contentWindow.location.href=="string"}catch{i=!1}if(i)e=n.contentWindow;else break;n=t8(e.document)}return n}function ac(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}var Vp=p3&&"documentMode"in document&&11>=document.documentMode,l6=null,rc=null,St=null,lc=!1;function kl(e,n,i){var d=i.window===i?i.document:i.nodeType===9?i:i.ownerDocument;lc||l6==null||l6!==t8(d)||(d=l6,"selectionStart"in d&&ac(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),St&&Ct(St,d)||(St=d,d=K8(rc,"onSelect"),0>=L,g-=L,a3=1<<32-i2(n)+g|i<J1?(a2=F1,F1=null):a2=F1.sibling;var o2=l1(X,F1,c1[J1],h1);if(o2===null){F1===null&&(F1=a2);break}e&&F1&&o2.alternate===null&&n(X,F1),$=z(o2,$,J1),s2===null?U1=o2:s2.sibling=o2,s2=o2,F1=a2}if(J1===c1.length)return i(X,F1),r2&&g3(X,J1),U1;if(F1===null){for(;J1J1?(a2=F1,F1=null):a2=F1.sibling;var o0=l1(X,F1,o2.value,h1);if(o0===null){F1===null&&(F1=a2);break}e&&F1&&o0.alternate===null&&n(X,F1),$=z(o0,$,J1),s2===null?U1=o0:s2.sibling=o0,s2=o0,F1=a2}if(o2.done)return i(X,F1),r2&&g3(X,J1),U1;if(F1===null){for(;!o2.done;J1++,o2=c1.next())o2=f1(X,o2.value,h1),o2!==null&&($=z(o2,$,J1),s2===null?U1=o2:s2.sibling=o2,s2=o2);return r2&&g3(X,J1),U1}for(F1=d(F1);!o2.done;J1++,o2=c1.next())o2=i1(F1,X,J1,o2.value,h1),o2!==null&&(e&&o2.alternate!==null&&F1.delete(o2.key===null?J1:o2.key),$=z(o2,$,J1),s2===null?U1=o2:s2.sibling=o2,s2=o2);return e&&F1.forEach(function(Qx){return n(X,Qx)}),r2&&g3(X,J1),U1}function g2(X,$,c1,h1){if(typeof c1=="object"&&c1!==null&&c1.type===H&&c1.key===null&&(c1=c1.props.children),typeof c1=="object"&&c1!==null){switch(c1.$$typeof){case y:t:{for(var U1=c1.key;$!==null;){if($.key===U1){if(U1=c1.type,U1===H){if($.tag===7){i(X,$.sibling),h1=g($,c1.props.children),h1.return=X,X=h1;break t}}else if($.elementType===U1||typeof U1=="object"&&U1!==null&&U1.$$typeof===j&&N0(U1)===$.type){i(X,$.sibling),h1=g($,c1.props),Vt(h1,c1),h1.return=X,X=h1;break t}i(X,$);break}else n(X,$);$=$.sibling}c1.type===H?(h1=S0(c1.props.children,X.mode,h1,c1.key),h1.return=X,X=h1):(h1=h8(c1.type,c1.key,c1.props,null,X.mode,h1),Vt(h1,c1),h1.return=X,X=h1)}return L(X);case S:t:{for(U1=c1.key;$!==null;){if($.key===U1)if($.tag===4&&$.stateNode.containerInfo===c1.containerInfo&&$.stateNode.implementation===c1.implementation){i(X,$.sibling),h1=g($,c1.children||[]),h1.return=X,X=h1;break t}else{i(X,$);break}else n(X,$);$=$.sibling}h1=mc(c1,X.mode,h1),h1.return=X,X=h1}return L(X);case j:return c1=N0(c1),g2(X,$,c1,h1)}if(Z(c1))return N1(X,$,c1,h1);if(q(c1)){if(U1=q(c1),typeof U1!="function")throw Error(l(150));return c1=U1.call(c1),Z1(X,$,c1,h1)}if(typeof c1.then=="function")return g2(X,$,b8(c1),h1);if(c1.$$typeof===C)return g2(X,$,v8(X,c1),h1);z8(X,c1)}return typeof c1=="string"&&c1!==""||typeof c1=="number"||typeof c1=="bigint"?(c1=""+c1,$!==null&&$.tag===6?(i(X,$.sibling),h1=g($,c1),h1.return=X,X=h1):(i(X,$),h1=hc(c1,X.mode,h1),h1.return=X,X=h1),L(X)):i(X,$)}return function(X,$,c1,h1){try{Nt=0;var U1=g2(X,$,c1,h1);return x6=null,U1}catch(F1){if(F1===p6||F1===x8)throw F1;var s2=b4(29,F1,null,X.mode);return s2.lanes=h1,s2.return=X,s2}finally{}}}var B0=ci(!0),ni=ci(!1),Z3=!1;function Sc(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ac(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function G3(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Y3(e,n,i){var d=e.updateQueue;if(d===null)return null;if(d=d.shared,(d2&2)!==0){var g=d.pending;return g===null?n.next=n:(n.next=g.next,g.next=n),d.pending=n,n=d8(e),_l(e,null,i),n}return u8(e,d,n,i),d8(e)}function Bt(e,n,i){if(n=n.updateQueue,n!==null&&(n=n.shared,(i&4194048)!==0)){var d=n.lanes;d&=e.pendingLanes,i|=d,n.lanes=i,O3(e,i)}}function Hc(e,n){var i=e.updateQueue,d=e.alternate;if(d!==null&&(d=d.updateQueue,i===d)){var g=null,z=null;if(i=i.firstBaseUpdate,i!==null){do{var L={lane:i.lane,tag:i.tag,payload:i.payload,callback:null,next:null};z===null?g=z=L:z=z.next=L,i=i.next}while(i!==null);z===null?g=z=n:z=z.next=n}else g=z=n;i={baseState:d.baseState,firstBaseUpdate:g,lastBaseUpdate:z,shared:d.shared,callbacks:d.callbacks},e.updateQueue=i;return}e=i.lastBaseUpdate,e===null?i.firstBaseUpdate=n:e.next=n,i.lastBaseUpdate=n}var Lc=!1;function kt(){if(Lc){var e=v6;if(e!==null)throw e}}function Ft(e,n,i,d){Lc=!1;var g=e.updateQueue;Z3=!1;var z=g.firstBaseUpdate,L=g.lastBaseUpdate,R=g.shared.pending;if(R!==null){g.shared.pending=null;var U=R,n1=U.next;U.next=null,L===null?z=n1:L.next=n1,L=U;var d1=e.alternate;d1!==null&&(d1=d1.updateQueue,R=d1.lastBaseUpdate,R!==L&&(R===null?d1.firstBaseUpdate=n1:R.next=n1,d1.lastBaseUpdate=U))}if(z!==null){var f1=g.baseState;L=0,d1=n1=U=null,R=z;do{var l1=R.lane&-536870913,i1=l1!==R.lane;if(i1?(n2&l1)===l1:(d&l1)===l1){l1!==0&&l1===f6&&(Lc=!0),d1!==null&&(d1=d1.next={lane:0,tag:R.tag,payload:R.payload,callback:null,next:null});t:{var N1=e,Z1=R;l1=n;var g2=i;switch(Z1.tag){case 1:if(N1=Z1.payload,typeof N1=="function"){f1=N1.call(g2,f1,l1);break t}f1=N1;break t;case 3:N1.flags=N1.flags&-65537|128;case 0:if(N1=Z1.payload,l1=typeof N1=="function"?N1.call(g2,f1,l1):N1,l1==null)break t;f1=b({},f1,l1);break t;case 2:Z3=!0}}l1=R.callback,l1!==null&&(e.flags|=64,i1&&(e.flags|=8192),i1=g.callbacks,i1===null?g.callbacks=[l1]:i1.push(l1))}else i1={lane:l1,tag:R.tag,payload:R.payload,callback:R.callback,next:null},d1===null?(n1=d1=i1,U=f1):d1=d1.next=i1,L|=l1;if(R=R.next,R===null){if(R=g.shared.pending,R===null)break;i1=R,R=i1.next,i1.next=null,g.lastBaseUpdate=i1,g.shared.pending=null}}while(!0);d1===null&&(U=f1),g.baseState=U,g.firstBaseUpdate=n1,g.lastBaseUpdate=d1,z===null&&(g.shared.lanes=0),J3|=L,e.lanes=L,e.memoizedState=f1}}function ai(e,n){if(typeof e!="function")throw Error(l(191,e));e.call(n)}function ri(e,n){var i=e.callbacks;if(i!==null)for(e.callbacks=null,e=0;ez?z:8;var L=_.T,R={};_.T=R,Gc(e,!1,n,i);try{var U=g(),n1=_.S;if(n1!==null&&n1(R,U),U!==null&&typeof U=="object"&&typeof U.then=="function"){var d1=_p(U,d);Tt(e,n,d1,C4(e))}else Tt(e,n,d,C4(e))}catch(f1){Tt(e,n,{then:function(){},status:"rejected",reason:f1},C4())}finally{I.p=z,L!==null&&R.types!==null&&(L.types=R.types),_.T=L}}function Zp(){}function $c(e,n,i,d){if(e.tag!==5)throw Error(l(476));var g=Ti(e).queue;Ei(e,g,n,Q,i===null?Zp:function(){return Di(e),i(d)})}function Ti(e){var n=e.memoizedState;if(n!==null)return n;n={memoizedState:Q,baseState:Q,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:w3,lastRenderedState:Q},next:null};var i={};return n.next={memoizedState:i,baseState:i,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:w3,lastRenderedState:i},next:null},e.memoizedState=n,e=e.alternate,e!==null&&(e.memoizedState=n),n}function Di(e){var n=Ti(e);n.next===null&&(n=e.alternate.memoizedState),Tt(e,n.next.queue,{},C4())}function Zc(){return J2(te)}function Oi(){return R2().memoizedState}function _i(){return R2().memoizedState}function Gp(e){for(var n=e.return;n!==null;){switch(n.tag){case 24:case 3:var i=C4();e=G3(i);var d=Y3(n,e,i);d!==null&&(f4(d,n,i),Bt(d,n,i)),n={cache:yc()},e.payload=n;return}n=n.return}}function Yp(e,n,i){var d=C4();i={lane:d,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null},N8(e)?Ui(n,i):(i=uc(e,n,i,d),i!==null&&(f4(i,e,d),Pi(i,n,d)))}function qi(e,n,i){var d=C4();Tt(e,n,i,d)}function Tt(e,n,i,d){var g={lane:d,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null};if(N8(e))Ui(n,g);else{var z=e.alternate;if(e.lanes===0&&(z===null||z.lanes===0)&&(z=n.lastRenderedReducer,z!==null))try{var L=n.lastRenderedState,R=z(L,i);if(g.hasEagerState=!0,g.eagerState=R,g4(R,L))return u8(e,n,g,0),z2===null&&o8(),!1}catch{}finally{}if(i=uc(e,n,g,d),i!==null)return f4(i,e,d),Pi(i,n,d),!0}return!1}function Gc(e,n,i,d){if(d={lane:2,revertLane:An(),gesture:null,action:d,hasEagerState:!1,eagerState:null,next:null},N8(e)){if(n)throw Error(l(479))}else n=uc(e,i,d,2),n!==null&&f4(n,e,2)}function N8(e){var n=e.alternate;return e===Q1||n!==null&&n===Q1}function Ui(e,n){b6=M8=!0;var i=e.pending;i===null?n.next=n:(n.next=i.next,i.next=n),e.pending=n}function Pi(e,n,i){if((i&4194048)!==0){var d=n.lanes;d&=e.pendingLanes,i|=d,n.lanes=i,O3(e,i)}}var Dt={readContext:J2,use:A8,useCallback:V2,useContext:V2,useEffect:V2,useImperativeHandle:V2,useLayoutEffect:V2,useInsertionEffect:V2,useMemo:V2,useReducer:V2,useRef:V2,useState:V2,useDebugValue:V2,useDeferredValue:V2,useTransition:V2,useSyncExternalStore:V2,useId:V2,useHostTransitionStatus:V2,useFormState:V2,useActionState:V2,useOptimistic:V2,useMemoCache:V2,useCacheRefresh:V2};Dt.useEffectEvent=V2;var Ii={readContext:J2,use:A8,useCallback:function(e,n){return r4().memoizedState=[e,n===void 0?null:n],e},useContext:J2,useEffect:Hi,useImperativeHandle:function(e,n,i){i=i!=null?i.concat([e]):null,L8(4194308,4,Vi.bind(null,n,e),i)},useLayoutEffect:function(e,n){return L8(4194308,4,e,n)},useInsertionEffect:function(e,n){L8(4,2,e,n)},useMemo:function(e,n){var i=r4();n=n===void 0?null:n;var d=e();if(k0){E1(!0);try{e()}finally{E1(!1)}}return i.memoizedState=[d,n],d},useReducer:function(e,n,i){var d=r4();if(i!==void 0){var g=i(n);if(k0){E1(!0);try{i(n)}finally{E1(!1)}}}else g=n;return d.memoizedState=d.baseState=g,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:g},d.queue=e,e=e.dispatch=Yp.bind(null,Q1,e),[d.memoizedState,e]},useRef:function(e){var n=r4();return e={current:e},n.memoizedState=e},useState:function(e){e=_c(e);var n=e.queue,i=qi.bind(null,Q1,n);return n.dispatch=i,[e.memoizedState,i]},useDebugValue:Pc,useDeferredValue:function(e,n){var i=r4();return Ic(i,e,n)},useTransition:function(){var e=_c(!1);return e=Ei.bind(null,Q1,e.queue,!0,!1),r4().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,n,i){var d=Q1,g=r4();if(r2){if(i===void 0)throw Error(l(407));i=i()}else{if(i=n(),z2===null)throw Error(l(349));(n2&127)!==0||di(d,n,i)}g.memoizedState=i;var z={value:i,getSnapshot:n};return g.queue=z,Hi(mi.bind(null,d,z,e),[e]),d.flags|=2048,y6(9,{destroy:void 0},hi.bind(null,d,z,i,n),null),i},useId:function(){var e=r4(),n=z2.identifierPrefix;if(r2){var i=r3,d=a3;i=(d&~(1<<32-i2(d)-1)).toString(32)+i,n="_"+n+"R_"+i,i=C8++,0<\/script>",z=z.removeChild(z.firstChild);break;case"select":z=typeof d.is=="string"?L.createElement("select",{is:d.is}):L.createElement("select"),d.multiple?z.multiple=!0:d.size&&(z.size=d.size);break;default:z=typeof d.is=="string"?L.createElement(g,{is:d.is}):L.createElement(g)}}z[Q2]=n,z[s4]=d;t:for(L=n.child;L!==null;){if(L.tag===5||L.tag===6)z.appendChild(L.stateNode);else if(L.tag!==4&&L.tag!==27&&L.child!==null){L.child.return=L,L=L.child;continue}if(L===n)break t;for(;L.sibling===null;){if(L.return===null||L.return===n)break t;L=L.return}L.sibling.return=L.return,L=L.sibling}n.stateNode=z;t:switch(e4(z,g,d),g){case"button":case"input":case"select":case"textarea":d=!!d.autoFocus;break t;case"img":d=!0;break t;default:d=!1}d&&C3(n)}}return C2(n),sn(n,n.type,e===null?null:e.memoizedProps,n.pendingProps,i),null;case 6:if(e&&n.stateNode!=null)e.memoizedProps!==d&&C3(n);else{if(typeof d!="string"&&n.stateNode===null)throw Error(l(166));if(e=K.current,h6(n)){if(e=n.stateNode,i=n.memoizedProps,d=null,g=W2,g!==null)switch(g.tag){case 27:case 5:d=g.memoizedProps}e[Q2]=n,e=!!(e.nodeValue===i||d!==null&&d.suppressHydrationWarning===!0||oo(e.nodeValue,i)),e||I3(n,!0)}else e=X8(e).createTextNode(d),e[Q2]=n,n.stateNode=e}return C2(n),null;case 31:if(i=n.memoizedState,e===null||e.memoizedState!==null){if(d=h6(n),i!==null){if(e===null){if(!d)throw Error(l(318));if(e=n.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(l(557));e[Q2]=n}else A0(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;C2(n),e=!1}else i=xc(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),e=!0;if(!e)return n.flags&256?(y4(n),n):(y4(n),null);if((n.flags&128)!==0)throw Error(l(558))}return C2(n),null;case 13:if(d=n.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(g=h6(n),d!==null&&d.dehydrated!==null){if(e===null){if(!g)throw Error(l(318));if(g=n.memoizedState,g=g!==null?g.dehydrated:null,!g)throw Error(l(317));g[Q2]=n}else A0(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;C2(n),g=!1}else g=xc(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=g),g=!0;if(!g)return n.flags&256?(y4(n),n):(y4(n),null)}return y4(n),(n.flags&128)!==0?(n.lanes=i,n):(i=d!==null,e=e!==null&&e.memoizedState!==null,i&&(d=n.child,g=null,d.alternate!==null&&d.alternate.memoizedState!==null&&d.alternate.memoizedState.cachePool!==null&&(g=d.alternate.memoizedState.cachePool.pool),z=null,d.memoizedState!==null&&d.memoizedState.cachePool!==null&&(z=d.memoizedState.cachePool.pool),z!==g&&(d.flags|=2048)),i!==e&&i&&(n.child.flags|=8192),R8(n,n.updateQueue),C2(n),null);case 4:return C1(),e===null&&Nn(n.stateNode.containerInfo),C2(n),null;case 10:return z3(n.type),C2(n),null;case 19:if(P(F2),d=n.memoizedState,d===null)return C2(n),null;if(g=(n.flags&128)!==0,z=d.rendering,z===null)if(g)_t(d,!1);else{if(B2!==0||e!==null&&(e.flags&128)!==0)for(e=n.child;e!==null;){if(z=w8(e),z!==null){for(n.flags|=128,_t(d,!1),e=z.updateQueue,n.updateQueue=e,R8(n,e),n.subtreeFlags=0,e=i,i=n.child;i!==null;)ql(i,e),i=i.sibling;return t1(F2,F2.current&1|2),r2&&g3(n,d.treeForkCount),n.child}e=e.sibling}d.tail!==null&&a1()>_8&&(n.flags|=128,g=!0,_t(d,!1),n.lanes=4194304)}else{if(!g)if(e=w8(z),e!==null){if(n.flags|=128,g=!0,e=e.updateQueue,n.updateQueue=e,R8(n,e),_t(d,!0),d.tail===null&&d.tailMode==="hidden"&&!z.alternate&&!r2)return C2(n),null}else 2*a1()-d.renderingStartTime>_8&&i!==536870912&&(n.flags|=128,g=!0,_t(d,!1),n.lanes=4194304);d.isBackwards?(z.sibling=n.child,n.child=z):(e=d.last,e!==null?e.sibling=z:n.child=z,d.last=z)}return d.tail!==null?(e=d.tail,d.rendering=e,d.tail=e.sibling,d.renderingStartTime=a1(),e.sibling=null,i=F2.current,t1(F2,g?i&1|2:i&1),r2&&g3(n,d.treeForkCount),e):(C2(n),null);case 22:case 23:return y4(n),Nc(),d=n.memoizedState!==null,e!==null?e.memoizedState!==null!==d&&(n.flags|=8192):d&&(n.flags|=8192),d?(i&536870912)!==0&&(n.flags&128)===0&&(C2(n),n.subtreeFlags&6&&(n.flags|=8192)):C2(n),i=n.updateQueue,i!==null&&R8(n,i.retryQueue),i=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(i=e.memoizedState.cachePool.pool),d=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(d=n.memoizedState.cachePool.pool),d!==i&&(n.flags|=2048),e!==null&&P(j0),null;case 24:return i=null,e!==null&&(i=e.memoizedState.cache),n.memoizedState.cache!==i&&(n.flags|=2048),z3(O2),C2(n),null;case 25:return null;case 30:return null}throw Error(l(156,n.tag))}function Jp(e,n){switch(vc(n),n.tag){case 1:return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return z3(O2),C1(),e=n.flags,(e&65536)!==0&&(e&128)===0?(n.flags=e&-65537|128,n):null;case 26:case 27:case 5:return u1(n),null;case 31:if(n.memoizedState!==null){if(y4(n),n.alternate===null)throw Error(l(340));A0()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 13:if(y4(n),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(l(340));A0()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return P(F2),null;case 4:return C1(),null;case 10:return z3(n.type),null;case 22:case 23:return y4(n),Nc(),e!==null&&P(j0),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 24:return z3(O2),null;case 25:return null;default:return null}}function fs(e,n){switch(vc(n),n.tag){case 3:z3(O2),C1();break;case 26:case 27:case 5:u1(n);break;case 4:C1();break;case 31:n.memoizedState!==null&&y4(n);break;case 13:y4(n);break;case 19:P(F2);break;case 10:z3(n.type);break;case 22:case 23:y4(n),Nc(),e!==null&&P(j0);break;case 24:z3(O2)}}function qt(e,n){try{var i=n.updateQueue,d=i!==null?i.lastEffect:null;if(d!==null){var g=d.next;i=g;do{if((i.tag&e)===e){d=void 0;var z=i.create,L=i.inst;d=z(),L.destroy=d}i=i.next}while(i!==g)}}catch(R){f2(n,n.return,R)}}function Q3(e,n,i){try{var d=n.updateQueue,g=d!==null?d.lastEffect:null;if(g!==null){var z=g.next;d=z;do{if((d.tag&e)===e){var L=d.inst,R=L.destroy;if(R!==void 0){L.destroy=void 0,g=n;var U=i,n1=R;try{n1()}catch(d1){f2(g,U,d1)}}}d=d.next}while(d!==z)}}catch(d1){f2(n,n.return,d1)}}function vs(e){var n=e.updateQueue;if(n!==null){var i=e.stateNode;try{ri(n,i)}catch(d){f2(e,e.return,d)}}}function ps(e,n,i){i.props=F0(e.type,e.memoizedProps),i.state=e.memoizedState;try{i.componentWillUnmount()}catch(d){f2(e,n,d)}}function Ut(e,n){try{var i=e.ref;if(i!==null){switch(e.tag){case 26:case 27:case 5:var d=e.stateNode;break;case 30:d=e.stateNode;break;default:d=e.stateNode}typeof i=="function"?e.refCleanup=i(d):i.current=d}}catch(g){f2(e,n,g)}}function l3(e,n){var i=e.ref,d=e.refCleanup;if(i!==null)if(typeof d=="function")try{d()}catch(g){f2(e,n,g)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof i=="function")try{i(null)}catch(g){f2(e,n,g)}else i.current=null}function xs(e){var n=e.type,i=e.memoizedProps,d=e.stateNode;try{t:switch(n){case"button":case"input":case"select":case"textarea":i.autoFocus&&d.focus();break t;case"img":i.src?d.src=i.src:i.srcSet&&(d.srcset=i.srcSet)}}catch(g){f2(e,e.return,g)}}function on(e,n,i){try{var d=e.stateNode;yx(d,e.type,i,n),d[s4]=n}catch(g){f2(e,e.return,g)}}function gs(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&a0(e.type)||e.tag===4}function un(e){t:for(;;){for(;e.sibling===null;){if(e.return===null||gs(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&a0(e.type)||e.flags&2||e.child===null||e.tag===4)continue t;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function dn(e,n,i){var d=e.tag;if(d===5||d===6)e=e.stateNode,n?(i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i).insertBefore(e,n):(n=i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i,n.appendChild(e),i=i._reactRootContainer,i!=null||n.onclick!==null||(n.onclick=v3));else if(d!==4&&(d===27&&a0(e.type)&&(i=e.stateNode,n=null),e=e.child,e!==null))for(dn(e,n,i),e=e.sibling;e!==null;)dn(e,n,i),e=e.sibling}function E8(e,n,i){var d=e.tag;if(d===5||d===6)e=e.stateNode,n?i.insertBefore(e,n):i.appendChild(e);else if(d!==4&&(d===27&&a0(e.type)&&(i=e.stateNode),e=e.child,e!==null))for(E8(e,n,i),e=e.sibling;e!==null;)E8(e,n,i),e=e.sibling}function bs(e){var n=e.stateNode,i=e.memoizedProps;try{for(var d=e.type,g=n.attributes;g.length;)n.removeAttributeNode(g[0]);e4(n,d,i),n[Q2]=e,n[s4]=i}catch(z){f2(e,e.return,z)}}var S3=!1,U2=!1,hn=!1,zs=typeof WeakSet=="function"?WeakSet:Set,X2=null;function tx(e,n){if(e=e.containerInfo,kn=n5,e=Bl(e),ac(e)){if("selectionStart"in e)var i={start:e.selectionStart,end:e.selectionEnd};else t:{i=(i=e.ownerDocument)&&i.defaultView||window;var d=i.getSelection&&i.getSelection();if(d&&d.rangeCount!==0){i=d.anchorNode;var g=d.anchorOffset,z=d.focusNode;d=d.focusOffset;try{i.nodeType,z.nodeType}catch{i=null;break t}var L=0,R=-1,U=-1,n1=0,d1=0,f1=e,l1=null;e:for(;;){for(var i1;f1!==i||g!==0&&f1.nodeType!==3||(R=L+g),f1!==z||d!==0&&f1.nodeType!==3||(U=L+d),f1.nodeType===3&&(L+=f1.nodeValue.length),(i1=f1.firstChild)!==null;)l1=f1,f1=i1;for(;;){if(f1===e)break e;if(l1===i&&++n1===g&&(R=L),l1===z&&++d1===d&&(U=L),(i1=f1.nextSibling)!==null)break;f1=l1,l1=f1.parentNode}f1=i1}i=R===-1||U===-1?null:{start:R,end:U}}else i=null}i=i||{start:0,end:0}}else i=null;for(Fn={focusedElem:e,selectionRange:i},n5=!1,X2=n;X2!==null;)if(n=X2,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,X2=e;else for(;X2!==null;){switch(n=X2,z=n.alternate,e=n.flags,n.tag){case 0:if((e&4)!==0&&(e=n.updateQueue,e=e!==null?e.events:null,e!==null))for(i=0;i title"))),e4(z,d,i),z[Q2]=e,K2(z),d=z;break t;case"link":var L=Ho("link","href",g).get(d+(i.href||""));if(L){for(var R=0;Rg2&&(L=g2,g2=Z1,Z1=L);var X=Nl(R,Z1),$=Nl(R,g2);if(X&&$&&(i1.rangeCount!==1||i1.anchorNode!==X.node||i1.anchorOffset!==X.offset||i1.focusNode!==$.node||i1.focusOffset!==$.offset)){var c1=f1.createRange();c1.setStart(X.node,X.offset),i1.removeAllRanges(),Z1>g2?(i1.addRange(c1),i1.extend($.node,$.offset)):(c1.setEnd($.node,$.offset),i1.addRange(c1))}}}}for(f1=[],i1=R;i1=i1.parentNode;)i1.nodeType===1&&f1.push({element:i1,left:i1.scrollLeft,top:i1.scrollTop});for(typeof R.focus=="function"&&R.focus(),R=0;Ri?32:i,_.T=null,i=bn,bn=null;var z=e0,L=N3;if(G2=0,A6=e0=null,N3=0,(d2&6)!==0)throw Error(l(331));var R=d2;if(d2|=4,Vs(z.current),Ls(z,z.current,L,i),d2=R,Yt(0,!1),R1&&typeof R1.onPostCommitFiberRoot=="function")try{R1.onPostCommitFiberRoot(K1,z)}catch{}return!0}finally{I.p=g,_.T=d,Ks(e,n)}}function Qs(e,n,i){n=B4(i,n),n=Qc(e.stateNode,n,2),e=Y3(e,n,2),e!==null&&(Z4(e,2),i3(e))}function f2(e,n,i){if(e.tag===3)Qs(e,e,i);else for(;n!==null;){if(n.tag===3){Qs(n,e,i);break}else if(n.tag===1){var d=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof d.componentDidCatch=="function"&&(t0===null||!t0.has(d))){e=B4(i,e),i=Wi(2),d=Y3(n,i,2),d!==null&&(Ji(i,d,n,e),Z4(d,2),i3(d));break}}n=n.return}}function Mn(e,n,i){var d=e.pingCache;if(d===null){d=e.pingCache=new nx;var g=new Set;d.set(n,g)}else g=d.get(n),g===void 0&&(g=new Set,d.set(n,g));g.has(i)||(vn=!0,g.add(i),e=sx.bind(null,e,n,i),n.then(e,e))}function sx(e,n,i){var d=e.pingCache;d!==null&&d.delete(n),e.pingedLanes|=e.suspendedLanes&i,e.warmLanes&=~i,z2===e&&(n2&i)===i&&(B2===4||B2===3&&(n2&62914560)===n2&&300>a1()-O8?(d2&2)===0&&H6(e,0):pn|=i,S6===n2&&(S6=0)),i3(e)}function Ws(e,n){n===0&&(n=b2()),e=C0(e,n),e!==null&&(Z4(e,n),i3(e))}function ox(e){var n=e.memoizedState,i=0;n!==null&&(i=n.retryLane),Ws(e,i)}function ux(e,n){var i=0;switch(e.tag){case 31:case 13:var d=e.stateNode,g=e.memoizedState;g!==null&&(i=g.retryLane);break;case 19:d=e.stateNode;break;case 22:d=e.stateNode._retryCache;break;default:throw Error(l(314))}d!==null&&d.delete(n),Ws(e,i)}function dx(e,n){return V1(e,n)}var Z8=null,j6=null,Cn=!1,G8=!1,Sn=!1,n0=0;function i3(e){e!==j6&&e.next===null&&(j6===null?Z8=j6=e:j6=j6.next=e),G8=!0,Cn||(Cn=!0,mx())}function Yt(e,n){if(!Sn&&G8){Sn=!0;do for(var i=!1,d=Z8;d!==null;){if(e!==0){var g=d.pendingLanes;if(g===0)var z=0;else{var L=d.suspendedLanes,R=d.pingedLanes;z=(1<<31-i2(42|e)+1)-1,z&=g&~(L&~R),z=z&201326741?z&201326741|1:z?z|2:0}z!==0&&(i=!0,co(d,z))}else z=n2,z=v2(d,d===z2?z:0,d.cancelPendingCommit!==null||d.timeoutHandle!==-1),(z&3)===0||h2(d,z)||(i=!0,co(d,z));d=d.next}while(i);Sn=!1}}function hx(){Js()}function Js(){G8=Cn=!1;var e=0;n0!==0&&Mx()&&(e=n0);for(var n=a1(),i=null,d=Z8;d!==null;){var g=d.next,z=to(d,n);z===0?(d.next=null,i===null?Z8=g:i.next=g,g===null&&(j6=i)):(i=d,(e!==0||(z&3)!==0)&&(G8=!0)),d=g}G2!==0&&G2!==5||Yt(e),n0!==0&&(n0=0)}function to(e,n){for(var i=e.suspendedLanes,d=e.pingedLanes,g=e.expirationTimes,z=e.pendingLanes&-62914561;0R)break;var d1=U.transferSize,f1=U.initiatorType;d1&&uo(f1)&&(U=U.responseEnd,L+=d1*(U"u"?null:document;function Mo(e,n,i){var d=N6;if(d&&typeof n=="string"&&n){var g=N4(n);g='link[rel="'+e+'"][href="'+g+'"]',typeof i=="string"&&(g+='[crossorigin="'+i+'"]'),wo.has(g)||(wo.add(g),e={rel:e,crossOrigin:i,href:n},d.querySelector(g)===null&&(n=d.createElement("link"),e4(n,"link",e),K2(n),d.head.appendChild(n)))}}function Bx(e){V3.D(e),Mo("dns-prefetch",e,null)}function kx(e,n){V3.C(e,n),Mo("preconnect",e,n)}function Fx(e,n,i){V3.L(e,n,i);var d=N6;if(d&&e&&n){var g='link[rel="preload"][as="'+N4(n)+'"]';n==="image"&&i&&i.imageSrcSet?(g+='[imagesrcset="'+N4(i.imageSrcSet)+'"]',typeof i.imageSizes=="string"&&(g+='[imagesizes="'+N4(i.imageSizes)+'"]')):g+='[href="'+N4(e)+'"]';var z=g;switch(n){case"style":z=V6(e);break;case"script":z=B6(e)}D4.has(z)||(e=b({rel:"preload",href:n==="image"&&i&&i.imageSrcSet?void 0:e,as:n},i),D4.set(z,e),d.querySelector(g)!==null||n==="style"&&d.querySelector(Wt(z))||n==="script"&&d.querySelector(Jt(z))||(n=d.createElement("link"),e4(n,"link",e),K2(n),d.head.appendChild(n)))}}function Rx(e,n){V3.m(e,n);var i=N6;if(i&&e){var d=n&&typeof n.as=="string"?n.as:"script",g='link[rel="modulepreload"][as="'+N4(d)+'"][href="'+N4(e)+'"]',z=g;switch(d){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":z=B6(e)}if(!D4.has(z)&&(e=b({rel:"modulepreload",href:e},n),D4.set(z,e),i.querySelector(g)===null)){switch(d){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(i.querySelector(Jt(z)))return}d=i.createElement("link"),e4(d,"link",e),K2(d),i.head.appendChild(d)}}}function Ex(e,n,i){V3.S(e,n,i);var d=N6;if(d&&e){var g=J0(d).hoistableStyles,z=V6(e);n=n||"default";var L=g.get(z);if(!L){var R={loading:0,preload:null};if(L=d.querySelector(Wt(z)))R.loading=5;else{e=b({rel:"stylesheet",href:e,"data-precedence":n},i),(i=D4.get(z))&&qn(e,i);var U=L=d.createElement("link");K2(U),e4(U,"link",e),U._p=new Promise(function(n1,d1){U.onload=n1,U.onerror=d1}),U.addEventListener("load",function(){R.loading|=1}),U.addEventListener("error",function(){R.loading|=2}),R.loading|=4,W8(L,n,d)}L={type:"stylesheet",instance:L,count:1,state:R},g.set(z,L)}}}function Tx(e,n){V3.X(e,n);var i=N6;if(i&&e){var d=J0(i).hoistableScripts,g=B6(e),z=d.get(g);z||(z=i.querySelector(Jt(g)),z||(e=b({src:e,async:!0},n),(n=D4.get(g))&&Un(e,n),z=i.createElement("script"),K2(z),e4(z,"link",e),i.head.appendChild(z)),z={type:"script",instance:z,count:1,state:null},d.set(g,z))}}function Dx(e,n){V3.M(e,n);var i=N6;if(i&&e){var d=J0(i).hoistableScripts,g=B6(e),z=d.get(g);z||(z=i.querySelector(Jt(g)),z||(e=b({src:e,async:!0,type:"module"},n),(n=D4.get(g))&&Un(e,n),z=i.createElement("script"),K2(z),e4(z,"link",e),i.head.appendChild(z)),z={type:"script",instance:z,count:1,state:null},d.set(g,z))}}function Co(e,n,i,d){var g=(g=K.current)?Q8(g):null;if(!g)throw Error(l(446));switch(e){case"meta":case"title":return null;case"style":return typeof i.precedence=="string"&&typeof i.href=="string"?(n=V6(i.href),i=J0(g).hoistableStyles,d=i.get(n),d||(d={type:"style",instance:null,count:0,state:null},i.set(n,d)),d):{type:"void",instance:null,count:0,state:null};case"link":if(i.rel==="stylesheet"&&typeof i.href=="string"&&typeof i.precedence=="string"){e=V6(i.href);var z=J0(g).hoistableStyles,L=z.get(e);if(L||(g=g.ownerDocument||g,L={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},z.set(e,L),(z=g.querySelector(Wt(e)))&&!z._p&&(L.instance=z,L.state.loading=5),D4.has(e)||(i={rel:"preload",as:"style",href:i.href,crossOrigin:i.crossOrigin,integrity:i.integrity,media:i.media,hrefLang:i.hrefLang,referrerPolicy:i.referrerPolicy},D4.set(e,i),z||Ox(g,e,i,L.state))),n&&d===null)throw Error(l(528,""));return L}if(n&&d!==null)throw Error(l(529,""));return null;case"script":return n=i.async,i=i.src,typeof i=="string"&&n&&typeof n!="function"&&typeof n!="symbol"?(n=B6(i),i=J0(g).hoistableScripts,d=i.get(n),d||(d={type:"script",instance:null,count:0,state:null},i.set(n,d)),d):{type:"void",instance:null,count:0,state:null};default:throw Error(l(444,e))}}function V6(e){return'href="'+N4(e)+'"'}function Wt(e){return'link[rel="stylesheet"]['+e+"]"}function So(e){return b({},e,{"data-precedence":e.precedence,precedence:null})}function Ox(e,n,i,d){e.querySelector('link[rel="preload"][as="style"]['+n+"]")?d.loading=1:(n=e.createElement("link"),d.preload=n,n.addEventListener("load",function(){return d.loading|=1}),n.addEventListener("error",function(){return d.loading|=2}),e4(n,"link",i),K2(n),e.head.appendChild(n))}function B6(e){return'[src="'+N4(e)+'"]'}function Jt(e){return"script[async]"+e}function Ao(e,n,i){if(n.count++,n.instance===null)switch(n.type){case"style":var d=e.querySelector('style[data-href~="'+N4(i.href)+'"]');if(d)return n.instance=d,K2(d),d;var g=b({},i,{"data-href":i.href,"data-precedence":i.precedence,href:null,precedence:null});return d=(e.ownerDocument||e).createElement("style"),K2(d),e4(d,"style",g),W8(d,i.precedence,e),n.instance=d;case"stylesheet":g=V6(i.href);var z=e.querySelector(Wt(g));if(z)return n.state.loading|=4,n.instance=z,K2(z),z;d=So(i),(g=D4.get(g))&&qn(d,g),z=(e.ownerDocument||e).createElement("link"),K2(z);var L=z;return L._p=new Promise(function(R,U){L.onload=R,L.onerror=U}),e4(z,"link",d),n.state.loading|=4,W8(z,i.precedence,e),n.instance=z;case"script":return z=B6(i.src),(g=e.querySelector(Jt(z)))?(n.instance=g,K2(g),g):(d=i,(g=D4.get(z))&&(d=b({},i),Un(d,g)),e=e.ownerDocument||e,g=e.createElement("script"),K2(g),e4(g,"link",d),e.head.appendChild(g),n.instance=g);case"void":return null;default:throw Error(l(443,n.type))}else n.type==="stylesheet"&&(n.state.loading&4)===0&&(d=n.instance,n.state.loading|=4,W8(d,i.precedence,e));return n.instance}function W8(e,n,i){for(var d=i.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),g=d.length?d[d.length-1]:null,z=g,L=0;L title"):null)}function _x(e,n,i){if(i===1||n.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof n.precedence!="string"||typeof n.href!="string"||n.href==="")break;return!0;case"link":if(typeof n.rel!="string"||typeof n.href!="string"||n.href===""||n.onLoad||n.onError)break;switch(n.rel){case"stylesheet":return e=n.disabled,typeof n.precedence=="string"&&e==null;default:return!0}case"script":if(n.async&&typeof n.async!="function"&&typeof n.async!="symbol"&&!n.onLoad&&!n.onError&&n.src&&typeof n.src=="string")return!0}return!1}function jo(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function qx(e,n,i,d){if(i.type==="stylesheet"&&(typeof d.media!="string"||matchMedia(d.media).matches!==!1)&&(i.state.loading&4)===0){if(i.instance===null){var g=V6(d.href),z=n.querySelector(Wt(g));if(z){n=z._p,n!==null&&typeof n=="object"&&typeof n.then=="function"&&(e.count++,e=t5.bind(e),n.then(e,e)),i.state.loading|=4,i.instance=z,K2(z);return}z=n.ownerDocument||n,d=So(d),(g=D4.get(g))&&qn(d,g),z=z.createElement("link"),K2(z);var L=z;L._p=new Promise(function(R,U){L.onload=R,L.onerror=U}),e4(z,"link",d),i.instance=z}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(i,n),(n=i.state.preload)&&(i.state.loading&3)===0&&(e.count++,i=t5.bind(e),n.addEventListener("load",i),n.addEventListener("error",i))}}var Pn=0;function Ux(e,n){return e.stylesheets&&e.count===0&&c5(e,e.stylesheets),0Pn?50:800)+n);return e.unsuspend=i,function(){e.unsuspend=null,clearTimeout(d),clearTimeout(g)}}:null}function t5(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)c5(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var e5=null;function c5(e,n){e.stylesheets=null,e.unsuspend!==null&&(e.count++,e5=new Map,n.forEach(Px,e),e5=null,t5.call(e))}function Px(e,n){if(!(n.state.loading&4)){var i=e5.get(e);if(i)var d=i.get(null);else{i=new Map,e5.set(e,i);for(var g=e.querySelectorAll("link[data-precedence],style[data-precedence]"),z=0;z"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(c){console.error(c)}}return t(),Wn.exports=lg(),Wn.exports}var sg=ig();var tu="popstate";function og(t={}){function c(l,s){let{pathname:o,search:h,hash:m}=l.location;return Ka("",{pathname:o,search:h,hash:m},s.state&&s.state.usr||null,s.state&&s.state.key||"default")}function a(l,s){return typeof s=="string"?s:Ae(s)}return dg(c,a,null,t)}function H2(t,c){if(t===!1||t===null||typeof t>"u")throw new Error(c)}function A4(t,c){if(!t){typeof console<"u"&&console.warn(c);try{throw new Error(c)}catch{}}}function ug(){return Math.random().toString(36).substring(2,10)}function eu(t,c){return{usr:t.state,key:t.key,idx:c}}function Ka(t,c,a=null,l){return{pathname:typeof t=="string"?t:t.pathname,search:"",hash:"",...typeof c=="string"?nt(c):c,state:a,key:c&&c.key||l||ug()}}function Ae({pathname:t="/",search:c="",hash:a=""}){return c&&c!=="?"&&(t+=c.charAt(0)==="?"?c:"?"+c),a&&a!=="#"&&(t+=a.charAt(0)==="#"?a:"#"+a),t}function nt(t){let c={};if(t){let a=t.indexOf("#");a>=0&&(c.hash=t.substring(a),t=t.substring(0,a));let l=t.indexOf("?");l>=0&&(c.search=t.substring(l),t=t.substring(0,l)),t&&(c.pathname=t)}return c}function dg(t,c,a,l={}){let{window:s=document.defaultView,v5Compat:o=!1}=l,h=s.history,m="POP",v=null,x=p();x==null&&(x=0,h.replaceState({...h.state,idx:x},""));function p(){return(h.state||{idx:null}).idx}function b(){m="POP";let M=p(),V=M==null?null:M-x;x=M,v&&v({action:m,location:H.location,delta:V})}function w(M,V){m="PUSH";let A=Ka(H.location,M,V);x=p()+1;let C=eu(A,x),N=H.createHref(A);try{h.pushState(C,"",N)}catch(k){if(k instanceof DOMException&&k.name==="DataCloneError")throw k;s.location.assign(N)}o&&v&&v({action:m,location:H.location,delta:1})}function y(M,V){m="REPLACE";let A=Ka(H.location,M,V);x=p();let C=eu(A,x),N=H.createHref(A);h.replaceState(C,"",N),o&&v&&v({action:m,location:H.location,delta:0})}function S(M){return hg(M)}let H={get action(){return m},get location(){return t(s,h)},listen(M){if(v)throw new Error("A history only accepts one active listener");return s.addEventListener(tu,b),v=M,()=>{s.removeEventListener(tu,b),v=null}},createHref(M){return c(s,M)},createURL:S,encodeLocation(M){let V=S(M);return{pathname:V.pathname,search:V.search,hash:V.hash}},push:w,replace:y,go(M){return h.go(M)}};return H}function hg(t,c=!1){let a="http://localhost";typeof window<"u"&&(a=window.location.origin!=="null"?window.location.origin:window.location.href),H2(a,"No window.location.(origin|href) available to create URL");let l=typeof t=="string"?t:Ae(t);return l=l.replace(/ $/,"%20"),!c&&l.startsWith("//")&&(l=a+l),new URL(l,a)}function yh(t,c,a="/"){return mg(t,c,a,!1)}function mg(t,c,a,l){let s=typeof c=="string"?nt(c):c,o=R3(s.pathname||"/",a);if(o==null)return null;let h=wh(t);fg(h);let m=null;for(let v=0;m==null&&v{let p={relativePath:x===void 0?h.path||"":x,caseSensitive:h.caseSensitive===!0,childrenIndex:m,route:h};if(p.relativePath.startsWith("/")){if(!p.relativePath.startsWith(l)&&v)return;H2(p.relativePath.startsWith(l),`Absolute route path "${p.relativePath}" nested under path "${l}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),p.relativePath=p.relativePath.slice(l.length)}let b=F3([l,p.relativePath]),w=a.concat(p);h.children&&h.children.length>0&&(H2(h.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${b}".`),wh(h.children,c,w,b,v)),!(h.path==null&&!h.index)&&c.push({path:b,score:yg(b,h.index),routesMeta:w})};return t.forEach((h,m)=>{if(h.path===""||!h.path?.includes("?"))o(h,m);else for(let v of Mh(h.path))o(h,m,!0,v)}),c}function Mh(t){let c=t.split("/");if(c.length===0)return[];let[a,...l]=c,s=a.endsWith("?"),o=a.replace(/\?$/,"");if(l.length===0)return s?[o,""]:[o];let h=Mh(l.join("/")),m=[];return m.push(...h.map(v=>v===""?o:[o,v].join("/"))),s&&m.push(...h),m.map(v=>t.startsWith("/")&&v===""?"/":v)}function fg(t){t.sort((c,a)=>c.score!==a.score?a.score-c.score:wg(c.routesMeta.map(l=>l.childrenIndex),a.routesMeta.map(l=>l.childrenIndex)))}var vg=/^:[\w-]+$/,pg=3,xg=2,gg=1,bg=10,zg=-2,cu=t=>t==="*";function yg(t,c){let a=t.split("/"),l=a.length;return a.some(cu)&&(l+=zg),c&&(l+=xg),a.filter(s=>!cu(s)).reduce((s,o)=>s+(vg.test(o)?pg:o===""?gg:bg),l)}function wg(t,c){return t.length===c.length&&t.slice(0,-1).every((l,s)=>l===c[s])?t[t.length-1]-c[c.length-1]:0}function Mg(t,c,a=!1){let{routesMeta:l}=t,s={},o="/",h=[];for(let m=0;m{if(p==="*"){let S=m[w]||"";h=o.slice(0,o.length-S.length).replace(/(.)\/+$/,"$1")}const y=m[w];return b&&!y?x[p]=void 0:x[p]=(y||"").replace(/%2F/g,"/"),x},{}),pathname:o,pathnameBase:h,pattern:t}}function Cg(t,c=!1,a=!0){A4(t==="*"||!t.endsWith("*")||t.endsWith("/*"),`Route path "${t}" will be treated as if it were "${t.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${t.replace(/\*$/,"/*")}".`);let l=[],s="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(h,m,v)=>(l.push({paramName:m,isOptional:v!=null}),v?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return t.endsWith("*")?(l.push({paramName:"*"}),s+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):a?s+="\\/*$":t!==""&&t!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,c?void 0:"i"),l]}function Sg(t){try{return t.split("/").map(c=>decodeURIComponent(c).replace(/\//g,"%2F")).join("/")}catch(c){return A4(!1,`The URL path "${t}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${c}).`),t}}function R3(t,c){if(c==="/")return t;if(!t.toLowerCase().startsWith(c.toLowerCase()))return null;let a=c.endsWith("/")?c.length-1:c.length,l=t.charAt(a);return l&&l!=="/"?null:t.slice(a)||"/"}var Ag=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Hg=t=>Ag.test(t);function Lg(t,c="/"){let{pathname:a,search:l="",hash:s=""}=typeof t=="string"?nt(t):t,o;if(a)if(Hg(a))o=a;else{if(a.includes("//")){let h=a;a=a.replace(/\/\/+/g,"/"),A4(!1,`Pathnames cannot have embedded double slashes - normalizing ${h} -> ${a}`)}a.startsWith("/")?o=nu(a.substring(1),"/"):o=nu(a,c)}else o=c;return{pathname:o,search:Vg(l),hash:Bg(s)}}function nu(t,c){let a=c.replace(/\/+$/,"").split("/");return t.split("/").forEach(s=>{s===".."?a.length>1&&a.pop():s!=="."&&a.push(s)}),a.length>1?a.join("/"):"/"}function ca(t,c,a,l){return`Cannot include a '${t}' character in a manually specified \`to.${c}\` field [${JSON.stringify(l)}]. Please separate it out to the \`to.${a}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function jg(t){return t.filter((c,a)=>a===0||c.route.path&&c.route.path.length>0)}function q9(t){let c=jg(t);return c.map((a,l)=>l===c.length-1?a.pathname:a.pathnameBase)}function U9(t,c,a,l=!1){let s;typeof t=="string"?s=nt(t):(s={...t},H2(!s.pathname||!s.pathname.includes("?"),ca("?","pathname","search",s)),H2(!s.pathname||!s.pathname.includes("#"),ca("#","pathname","hash",s)),H2(!s.search||!s.search.includes("#"),ca("#","search","hash",s)));let o=t===""||s.pathname==="",h=o?"/":s.pathname,m;if(h==null)m=a;else{let b=c.length-1;if(!l&&h.startsWith("..")){let w=h.split("/");for(;w[0]==="..";)w.shift(),b-=1;s.pathname=w.join("/")}m=b>=0?c[b]:"/"}let v=Lg(s,m),x=h&&h!=="/"&&h.endsWith("/"),p=(o||h===".")&&a.endsWith("/");return!v.pathname.endsWith("/")&&(x||p)&&(v.pathname+="/"),v}var F3=t=>t.join("/").replace(/\/\/+/g,"/"),Ng=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),Vg=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,Bg=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t;function kg(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Ch=["POST","PUT","PATCH","DELETE"];new Set(Ch);var Fg=["GET",...Ch];new Set(Fg);var at=f.createContext(null);at.displayName="DataRouter";var x7=f.createContext(null);x7.displayName="DataRouterState";f.createContext(!1);var Sh=f.createContext({isTransitioning:!1});Sh.displayName="ViewTransition";var Rg=f.createContext(new Map);Rg.displayName="Fetchers";var Eg=f.createContext(null);Eg.displayName="Await";var e3=f.createContext(null);e3.displayName="Navigation";var _e=f.createContext(null);_e.displayName="Location";var m3=f.createContext({outlet:null,matches:[],isDataRoute:!1});m3.displayName="Route";var P9=f.createContext(null);P9.displayName="RouteError";function Tg(t,{relative:c}={}){H2(rt(),"useHref() may be used only in the context of a component.");let{basename:a,navigator:l}=f.useContext(e3),{hash:s,pathname:o,search:h}=Ue(t,{relative:c}),m=o;return a!=="/"&&(m=o==="/"?a:F3([a,o])),l.createHref({pathname:m,search:h,hash:s})}function rt(){return f.useContext(_e)!=null}function T3(){return H2(rt(),"useLocation() may be used only in the context of a component."),f.useContext(_e).location}var Ah="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Hh(t){f.useContext(e3).static||f.useLayoutEffect(t)}function qe(){let{isDataRoute:t}=f.useContext(m3);return t?Xg():Dg()}function Dg(){H2(rt(),"useNavigate() may be used only in the context of a component.");let t=f.useContext(at),{basename:c,navigator:a}=f.useContext(e3),{matches:l}=f.useContext(m3),{pathname:s}=T3(),o=JSON.stringify(q9(l)),h=f.useRef(!1);return Hh(()=>{h.current=!0}),f.useCallback((v,x={})=>{if(A4(h.current,Ah),!h.current)return;if(typeof v=="number"){a.go(v);return}let p=U9(v,JSON.parse(o),s,x.relative==="path");t==null&&c!=="/"&&(p.pathname=p.pathname==="/"?c:F3([c,p.pathname])),(x.replace?a.replace:a.push)(p,x.state,x)},[c,a,o,s,t])}f.createContext(null);function Ue(t,{relative:c}={}){let{matches:a}=f.useContext(m3),{pathname:l}=T3(),s=JSON.stringify(q9(a));return f.useMemo(()=>U9(t,JSON.parse(s),l,c==="path"),[t,s,l,c])}function Og(t,c){return Lh(t,c)}function Lh(t,c,a,l,s){H2(rt(),"useRoutes() may be used only in the context of a component.");let{navigator:o}=f.useContext(e3),{matches:h}=f.useContext(m3),m=h[h.length-1],v=m?m.params:{},x=m?m.pathname:"/",p=m?m.pathnameBase:"/",b=m&&m.route;{let A=b&&b.path||"";jh(x,!b||A.endsWith("*")||A.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${x}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. +`+d.stack}}var M1=Object.prototype.hasOwnProperty,V1=t.unstable_scheduleCallback,Y1=t.unstable_cancelCallback,x1=t.unstable_shouldYield,m1=t.unstable_requestPaint,a1=t.unstable_now,b1=t.unstable_getCurrentPriorityLevel,z1=t.unstable_ImmediatePriority,A1=t.unstable_UserBlockingPriority,G1=t.unstable_NormalPriority,W1=t.unstable_LowPriority,e1=t.unstable_IdlePriority,S1=t.log,D1=t.unstable_setDisableYieldValue,K1=null,R1=null;function E1(e){if(typeof S1=="function"&&D1(e),R1&&typeof R1.setStrictMode=="function")try{R1.setStrictMode(K1,e)}catch{}}var i2=Math.clz32?Math.clz32:$1,v1=Math.log,O1=Math.LN2;function $1(e){return e>>>=0,e===0?32:31-(v1(e)/O1|0)|0}var N2=256,Z2=262144,Y0=4194304;function T1(e){var n=e&42;if(n!==0)return n;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function v2(e,n,i){var d=e.pendingLanes;if(d===0)return 0;var g=0,z=e.suspendedLanes,L=e.pingedLanes;e=e.warmLanes;var R=d&134217727;return R!==0?(d=R&~z,d!==0?g=T1(d):(L&=R,L!==0?g=T1(L):i||(i=R&~e,i!==0&&(g=T1(i))))):(R=d&~z,R!==0?g=T1(R):L!==0?g=T1(L):i||(i=d&~e,i!==0&&(g=T1(i)))),g===0?0:n!==0&&n!==g&&(n&z)===0&&(z=g&-g,i=n&-n,z>=i||z===32&&(i&4194048)!==0)?n:g}function h2(e,n){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&n)===0}function l2(e,n){switch(e){case 1:case 2:case 4:case 8:case 64:return n+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function b2(){var e=Y0;return Y0<<=1,(Y0&62914560)===0&&(Y0=4194304),e}function x4(e){for(var n=[],i=0;31>i;i++)n.push(e);return n}function Z4(e,n){e.pendingLanes|=n,n!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function K0(e,n,i,d,g,z){var L=e.pendingLanes;e.pendingLanes=i,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=i,e.entangledLanes&=i,e.errorRecoveryDisabledLanes&=i,e.shellSuspendCounter=0;var R=e.entanglements,U=e.expirationTimes,n1=e.hiddenUpdates;for(i=L&~i;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var Zv=/[\n"\\]/g;function N4(e){return e.replace(Zv,function(n){return"\\"+n.charCodeAt(0).toString(16)+" "})}function P7(e,n,i,d,g,z,L,R){e.name="",L!=null&&typeof L!="function"&&typeof L!="symbol"&&typeof L!="boolean"?e.type=L:e.removeAttribute("type"),n!=null?L==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+j4(n)):e.value!==""+j4(n)&&(e.value=""+j4(n)):L!=="submit"&&L!=="reset"||e.removeAttribute("value"),n!=null?I7(e,L,j4(n)):i!=null?I7(e,L,j4(i)):d!=null&&e.removeAttribute("value"),g==null&&z!=null&&(e.defaultChecked=!!z),g!=null&&(e.checked=g&&typeof g!="function"&&typeof g!="symbol"),R!=null&&typeof R!="function"&&typeof R!="symbol"&&typeof R!="boolean"?e.name=""+j4(R):e.removeAttribute("name")}function ll(e,n,i,d,g,z,L,R){if(z!=null&&typeof z!="function"&&typeof z!="symbol"&&typeof z!="boolean"&&(e.type=z),n!=null||i!=null){if(!(z!=="submit"&&z!=="reset"||n!=null)){U7(e);return}i=i!=null?""+j4(i):"",n=n!=null?""+j4(n):i,R||n===e.value||(e.value=n),e.defaultValue=n}d=d??g,d=typeof d!="function"&&typeof d!="symbol"&&!!d,e.checked=R?e.checked:!!d,e.defaultChecked=!!d,L!=null&&typeof L!="function"&&typeof L!="symbol"&&typeof L!="boolean"&&(e.name=L),U7(e)}function I7(e,n,i){n==="number"&&t8(e.ownerDocument)===e||e.defaultValue===""+i||(e.defaultValue=""+i)}function e6(e,n,i,d){if(e=e.options,n){n={};for(var g=0;g"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),K7=!1;if(p3)try{var gt={};Object.defineProperty(gt,"passive",{get:function(){K7=!0}}),window.addEventListener("test",gt,gt),window.removeEventListener("test",gt,gt)}catch{K7=!1}var q3=null,X7=null,c8=null;function ml(){if(c8)return c8;var e,n=X7,i=n.length,d,g="value"in q3?q3.value:q3.textContent,z=g.length;for(e=0;e=yt),bl=" ",zl=!1;function yl(e,n){switch(e){case"keyup":return zp.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function wl(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var r6=!1;function wp(e,n){switch(e){case"compositionend":return wl(n);case"keypress":return n.which!==32?null:(zl=!0,bl);case"textInput":return e=n.data,e===bl&&zl?null:e;default:return null}}function Mp(e,n){if(r6)return e==="compositionend"||!ec&&yl(e,n)?(e=ml(),c8=X7=q3=null,r6=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:i,offset:n-e};e=d}t:{for(;i;){if(i.nextSibling){i=i.nextSibling;break t}i=i.parentNode}i=void 0}i=Nl(i)}}function Bl(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?Bl(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function kl(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var n=t8(e.document);n instanceof e.HTMLIFrameElement;){try{var i=typeof n.contentWindow.location.href=="string"}catch{i=!1}if(i)e=n.contentWindow;else break;n=t8(e.document)}return n}function ac(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}var Vp=p3&&"documentMode"in document&&11>=document.documentMode,l6=null,rc=null,St=null,lc=!1;function Fl(e,n,i){var d=i.window===i?i.document:i.nodeType===9?i:i.ownerDocument;lc||l6==null||l6!==t8(d)||(d=l6,"selectionStart"in d&&ac(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),St&&Ct(St,d)||(St=d,d=K8(rc,"onSelect"),0>=L,g-=L,a3=1<<32-i2(n)+g|i<J1?(a2=F1,F1=null):a2=F1.sibling;var o2=l1(X,F1,c1[J1],h1);if(o2===null){F1===null&&(F1=a2);break}e&&F1&&o2.alternate===null&&n(X,F1),$=z(o2,$,J1),s2===null?U1=o2:s2.sibling=o2,s2=o2,F1=a2}if(J1===c1.length)return i(X,F1),r2&&g3(X,J1),U1;if(F1===null){for(;J1J1?(a2=F1,F1=null):a2=F1.sibling;var o0=l1(X,F1,o2.value,h1);if(o0===null){F1===null&&(F1=a2);break}e&&F1&&o0.alternate===null&&n(X,F1),$=z(o0,$,J1),s2===null?U1=o0:s2.sibling=o0,s2=o0,F1=a2}if(o2.done)return i(X,F1),r2&&g3(X,J1),U1;if(F1===null){for(;!o2.done;J1++,o2=c1.next())o2=f1(X,o2.value,h1),o2!==null&&($=z(o2,$,J1),s2===null?U1=o2:s2.sibling=o2,s2=o2);return r2&&g3(X,J1),U1}for(F1=d(F1);!o2.done;J1++,o2=c1.next())o2=i1(F1,X,J1,o2.value,h1),o2!==null&&(e&&o2.alternate!==null&&F1.delete(o2.key===null?J1:o2.key),$=z(o2,$,J1),s2===null?U1=o2:s2.sibling=o2,s2=o2);return e&&F1.forEach(function(Qx){return n(X,Qx)}),r2&&g3(X,J1),U1}function g2(X,$,c1,h1){if(typeof c1=="object"&&c1!==null&&c1.type===H&&c1.key===null&&(c1=c1.props.children),typeof c1=="object"&&c1!==null){switch(c1.$$typeof){case y:t:{for(var U1=c1.key;$!==null;){if($.key===U1){if(U1=c1.type,U1===H){if($.tag===7){i(X,$.sibling),h1=g($,c1.props.children),h1.return=X,X=h1;break t}}else if($.elementType===U1||typeof U1=="object"&&U1!==null&&U1.$$typeof===j&&N0(U1)===$.type){i(X,$.sibling),h1=g($,c1.props),Vt(h1,c1),h1.return=X,X=h1;break t}i(X,$);break}else n(X,$);$=$.sibling}c1.type===H?(h1=S0(c1.props.children,X.mode,h1,c1.key),h1.return=X,X=h1):(h1=h8(c1.type,c1.key,c1.props,null,X.mode,h1),Vt(h1,c1),h1.return=X,X=h1)}return L(X);case S:t:{for(U1=c1.key;$!==null;){if($.key===U1)if($.tag===4&&$.stateNode.containerInfo===c1.containerInfo&&$.stateNode.implementation===c1.implementation){i(X,$.sibling),h1=g($,c1.children||[]),h1.return=X,X=h1;break t}else{i(X,$);break}else n(X,$);$=$.sibling}h1=mc(c1,X.mode,h1),h1.return=X,X=h1}return L(X);case j:return c1=N0(c1),g2(X,$,c1,h1)}if(Z(c1))return N1(X,$,c1,h1);if(q(c1)){if(U1=q(c1),typeof U1!="function")throw Error(l(150));return c1=U1.call(c1),Z1(X,$,c1,h1)}if(typeof c1.then=="function")return g2(X,$,b8(c1),h1);if(c1.$$typeof===C)return g2(X,$,v8(X,c1),h1);z8(X,c1)}return typeof c1=="string"&&c1!==""||typeof c1=="number"||typeof c1=="bigint"?(c1=""+c1,$!==null&&$.tag===6?(i(X,$.sibling),h1=g($,c1),h1.return=X,X=h1):(i(X,$),h1=hc(c1,X.mode,h1),h1.return=X,X=h1),L(X)):i(X,$)}return function(X,$,c1,h1){try{Nt=0;var U1=g2(X,$,c1,h1);return x6=null,U1}catch(F1){if(F1===p6||F1===x8)throw F1;var s2=b4(29,F1,null,X.mode);return s2.lanes=h1,s2.return=X,s2}finally{}}}var B0=ni(!0),ai=ni(!1),Z3=!1;function Sc(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ac(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function G3(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Y3(e,n,i){var d=e.updateQueue;if(d===null)return null;if(d=d.shared,(d2&2)!==0){var g=d.pending;return g===null?n.next=n:(n.next=g.next,g.next=n),d.pending=n,n=d8(e),ql(e,null,i),n}return u8(e,d,n,i),d8(e)}function Bt(e,n,i){if(n=n.updateQueue,n!==null&&(n=n.shared,(i&4194048)!==0)){var d=n.lanes;d&=e.pendingLanes,i|=d,n.lanes=i,O3(e,i)}}function Hc(e,n){var i=e.updateQueue,d=e.alternate;if(d!==null&&(d=d.updateQueue,i===d)){var g=null,z=null;if(i=i.firstBaseUpdate,i!==null){do{var L={lane:i.lane,tag:i.tag,payload:i.payload,callback:null,next:null};z===null?g=z=L:z=z.next=L,i=i.next}while(i!==null);z===null?g=z=n:z=z.next=n}else g=z=n;i={baseState:d.baseState,firstBaseUpdate:g,lastBaseUpdate:z,shared:d.shared,callbacks:d.callbacks},e.updateQueue=i;return}e=i.lastBaseUpdate,e===null?i.firstBaseUpdate=n:e.next=n,i.lastBaseUpdate=n}var Lc=!1;function kt(){if(Lc){var e=v6;if(e!==null)throw e}}function Ft(e,n,i,d){Lc=!1;var g=e.updateQueue;Z3=!1;var z=g.firstBaseUpdate,L=g.lastBaseUpdate,R=g.shared.pending;if(R!==null){g.shared.pending=null;var U=R,n1=U.next;U.next=null,L===null?z=n1:L.next=n1,L=U;var d1=e.alternate;d1!==null&&(d1=d1.updateQueue,R=d1.lastBaseUpdate,R!==L&&(R===null?d1.firstBaseUpdate=n1:R.next=n1,d1.lastBaseUpdate=U))}if(z!==null){var f1=g.baseState;L=0,d1=n1=U=null,R=z;do{var l1=R.lane&-536870913,i1=l1!==R.lane;if(i1?(n2&l1)===l1:(d&l1)===l1){l1!==0&&l1===f6&&(Lc=!0),d1!==null&&(d1=d1.next={lane:0,tag:R.tag,payload:R.payload,callback:null,next:null});t:{var N1=e,Z1=R;l1=n;var g2=i;switch(Z1.tag){case 1:if(N1=Z1.payload,typeof N1=="function"){f1=N1.call(g2,f1,l1);break t}f1=N1;break t;case 3:N1.flags=N1.flags&-65537|128;case 0:if(N1=Z1.payload,l1=typeof N1=="function"?N1.call(g2,f1,l1):N1,l1==null)break t;f1=b({},f1,l1);break t;case 2:Z3=!0}}l1=R.callback,l1!==null&&(e.flags|=64,i1&&(e.flags|=8192),i1=g.callbacks,i1===null?g.callbacks=[l1]:i1.push(l1))}else i1={lane:l1,tag:R.tag,payload:R.payload,callback:R.callback,next:null},d1===null?(n1=d1=i1,U=f1):d1=d1.next=i1,L|=l1;if(R=R.next,R===null){if(R=g.shared.pending,R===null)break;i1=R,R=i1.next,i1.next=null,g.lastBaseUpdate=i1,g.shared.pending=null}}while(!0);d1===null&&(U=f1),g.baseState=U,g.firstBaseUpdate=n1,g.lastBaseUpdate=d1,z===null&&(g.shared.lanes=0),J3|=L,e.lanes=L,e.memoizedState=f1}}function ri(e,n){if(typeof e!="function")throw Error(l(191,e));e.call(n)}function li(e,n){var i=e.callbacks;if(i!==null)for(e.callbacks=null,e=0;ez?z:8;var L=_.T,R={};_.T=R,Gc(e,!1,n,i);try{var U=g(),n1=_.S;if(n1!==null&&n1(R,U),U!==null&&typeof U=="object"&&typeof U.then=="function"){var d1=_p(U,d);Tt(e,n,d1,C4(e))}else Tt(e,n,d,C4(e))}catch(f1){Tt(e,n,{then:function(){},status:"rejected",reason:f1},C4())}finally{I.p=z,L!==null&&R.types!==null&&(L.types=R.types),_.T=L}}function Zp(){}function $c(e,n,i,d){if(e.tag!==5)throw Error(l(476));var g=Di(e).queue;Ti(e,g,n,Q,i===null?Zp:function(){return Oi(e),i(d)})}function Di(e){var n=e.memoizedState;if(n!==null)return n;n={memoizedState:Q,baseState:Q,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:w3,lastRenderedState:Q},next:null};var i={};return n.next={memoizedState:i,baseState:i,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:w3,lastRenderedState:i},next:null},e.memoizedState=n,e=e.alternate,e!==null&&(e.memoizedState=n),n}function Oi(e){var n=Di(e);n.next===null&&(n=e.alternate.memoizedState),Tt(e,n.next.queue,{},C4())}function Zc(){return J2(te)}function _i(){return R2().memoizedState}function qi(){return R2().memoizedState}function Gp(e){for(var n=e.return;n!==null;){switch(n.tag){case 24:case 3:var i=C4();e=G3(i);var d=Y3(n,e,i);d!==null&&(f4(d,n,i),Bt(d,n,i)),n={cache:yc()},e.payload=n;return}n=n.return}}function Yp(e,n,i){var d=C4();i={lane:d,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null},N8(e)?Pi(n,i):(i=uc(e,n,i,d),i!==null&&(f4(i,e,d),Ii(i,n,d)))}function Ui(e,n,i){var d=C4();Tt(e,n,i,d)}function Tt(e,n,i,d){var g={lane:d,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null};if(N8(e))Pi(n,g);else{var z=e.alternate;if(e.lanes===0&&(z===null||z.lanes===0)&&(z=n.lastRenderedReducer,z!==null))try{var L=n.lastRenderedState,R=z(L,i);if(g.hasEagerState=!0,g.eagerState=R,g4(R,L))return u8(e,n,g,0),z2===null&&o8(),!1}catch{}finally{}if(i=uc(e,n,g,d),i!==null)return f4(i,e,d),Ii(i,n,d),!0}return!1}function Gc(e,n,i,d){if(d={lane:2,revertLane:An(),gesture:null,action:d,hasEagerState:!1,eagerState:null,next:null},N8(e)){if(n)throw Error(l(479))}else n=uc(e,i,d,2),n!==null&&f4(n,e,2)}function N8(e){var n=e.alternate;return e===Q1||n!==null&&n===Q1}function Pi(e,n){b6=M8=!0;var i=e.pending;i===null?n.next=n:(n.next=i.next,i.next=n),e.pending=n}function Ii(e,n,i){if((i&4194048)!==0){var d=n.lanes;d&=e.pendingLanes,i|=d,n.lanes=i,O3(e,i)}}var Dt={readContext:J2,use:A8,useCallback:V2,useContext:V2,useEffect:V2,useImperativeHandle:V2,useLayoutEffect:V2,useInsertionEffect:V2,useMemo:V2,useReducer:V2,useRef:V2,useState:V2,useDebugValue:V2,useDeferredValue:V2,useTransition:V2,useSyncExternalStore:V2,useId:V2,useHostTransitionStatus:V2,useFormState:V2,useActionState:V2,useOptimistic:V2,useMemoCache:V2,useCacheRefresh:V2};Dt.useEffectEvent=V2;var $i={readContext:J2,use:A8,useCallback:function(e,n){return r4().memoizedState=[e,n===void 0?null:n],e},useContext:J2,useEffect:Li,useImperativeHandle:function(e,n,i){i=i!=null?i.concat([e]):null,L8(4194308,4,Bi.bind(null,n,e),i)},useLayoutEffect:function(e,n){return L8(4194308,4,e,n)},useInsertionEffect:function(e,n){L8(4,2,e,n)},useMemo:function(e,n){var i=r4();n=n===void 0?null:n;var d=e();if(k0){E1(!0);try{e()}finally{E1(!1)}}return i.memoizedState=[d,n],d},useReducer:function(e,n,i){var d=r4();if(i!==void 0){var g=i(n);if(k0){E1(!0);try{i(n)}finally{E1(!1)}}}else g=n;return d.memoizedState=d.baseState=g,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:g},d.queue=e,e=e.dispatch=Yp.bind(null,Q1,e),[d.memoizedState,e]},useRef:function(e){var n=r4();return e={current:e},n.memoizedState=e},useState:function(e){e=_c(e);var n=e.queue,i=Ui.bind(null,Q1,n);return n.dispatch=i,[e.memoizedState,i]},useDebugValue:Pc,useDeferredValue:function(e,n){var i=r4();return Ic(i,e,n)},useTransition:function(){var e=_c(!1);return e=Ti.bind(null,Q1,e.queue,!0,!1),r4().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,n,i){var d=Q1,g=r4();if(r2){if(i===void 0)throw Error(l(407));i=i()}else{if(i=n(),z2===null)throw Error(l(349));(n2&127)!==0||hi(d,n,i)}g.memoizedState=i;var z={value:i,getSnapshot:n};return g.queue=z,Li(fi.bind(null,d,z,e),[e]),d.flags|=2048,y6(9,{destroy:void 0},mi.bind(null,d,z,i,n),null),i},useId:function(){var e=r4(),n=z2.identifierPrefix;if(r2){var i=r3,d=a3;i=(d&~(1<<32-i2(d)-1)).toString(32)+i,n="_"+n+"R_"+i,i=C8++,0<\/script>",z=z.removeChild(z.firstChild);break;case"select":z=typeof d.is=="string"?L.createElement("select",{is:d.is}):L.createElement("select"),d.multiple?z.multiple=!0:d.size&&(z.size=d.size);break;default:z=typeof d.is=="string"?L.createElement(g,{is:d.is}):L.createElement(g)}}z[Q2]=n,z[s4]=d;t:for(L=n.child;L!==null;){if(L.tag===5||L.tag===6)z.appendChild(L.stateNode);else if(L.tag!==4&&L.tag!==27&&L.child!==null){L.child.return=L,L=L.child;continue}if(L===n)break t;for(;L.sibling===null;){if(L.return===null||L.return===n)break t;L=L.return}L.sibling.return=L.return,L=L.sibling}n.stateNode=z;t:switch(e4(z,g,d),g){case"button":case"input":case"select":case"textarea":d=!!d.autoFocus;break t;case"img":d=!0;break t;default:d=!1}d&&C3(n)}}return C2(n),sn(n,n.type,e===null?null:e.memoizedProps,n.pendingProps,i),null;case 6:if(e&&n.stateNode!=null)e.memoizedProps!==d&&C3(n);else{if(typeof d!="string"&&n.stateNode===null)throw Error(l(166));if(e=K.current,h6(n)){if(e=n.stateNode,i=n.memoizedProps,d=null,g=W2,g!==null)switch(g.tag){case 27:case 5:d=g.memoizedProps}e[Q2]=n,e=!!(e.nodeValue===i||d!==null&&d.suppressHydrationWarning===!0||uo(e.nodeValue,i)),e||I3(n,!0)}else e=X8(e).createTextNode(d),e[Q2]=n,n.stateNode=e}return C2(n),null;case 31:if(i=n.memoizedState,e===null||e.memoizedState!==null){if(d=h6(n),i!==null){if(e===null){if(!d)throw Error(l(318));if(e=n.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(l(557));e[Q2]=n}else A0(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;C2(n),e=!1}else i=xc(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),e=!0;if(!e)return n.flags&256?(y4(n),n):(y4(n),null);if((n.flags&128)!==0)throw Error(l(558))}return C2(n),null;case 13:if(d=n.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(g=h6(n),d!==null&&d.dehydrated!==null){if(e===null){if(!g)throw Error(l(318));if(g=n.memoizedState,g=g!==null?g.dehydrated:null,!g)throw Error(l(317));g[Q2]=n}else A0(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;C2(n),g=!1}else g=xc(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=g),g=!0;if(!g)return n.flags&256?(y4(n),n):(y4(n),null)}return y4(n),(n.flags&128)!==0?(n.lanes=i,n):(i=d!==null,e=e!==null&&e.memoizedState!==null,i&&(d=n.child,g=null,d.alternate!==null&&d.alternate.memoizedState!==null&&d.alternate.memoizedState.cachePool!==null&&(g=d.alternate.memoizedState.cachePool.pool),z=null,d.memoizedState!==null&&d.memoizedState.cachePool!==null&&(z=d.memoizedState.cachePool.pool),z!==g&&(d.flags|=2048)),i!==e&&i&&(n.child.flags|=8192),R8(n,n.updateQueue),C2(n),null);case 4:return C1(),e===null&&Nn(n.stateNode.containerInfo),C2(n),null;case 10:return z3(n.type),C2(n),null;case 19:if(P(F2),d=n.memoizedState,d===null)return C2(n),null;if(g=(n.flags&128)!==0,z=d.rendering,z===null)if(g)_t(d,!1);else{if(B2!==0||e!==null&&(e.flags&128)!==0)for(e=n.child;e!==null;){if(z=w8(e),z!==null){for(n.flags|=128,_t(d,!1),e=z.updateQueue,n.updateQueue=e,R8(n,e),n.subtreeFlags=0,e=i,i=n.child;i!==null;)Ul(i,e),i=i.sibling;return t1(F2,F2.current&1|2),r2&&g3(n,d.treeForkCount),n.child}e=e.sibling}d.tail!==null&&a1()>_8&&(n.flags|=128,g=!0,_t(d,!1),n.lanes=4194304)}else{if(!g)if(e=w8(z),e!==null){if(n.flags|=128,g=!0,e=e.updateQueue,n.updateQueue=e,R8(n,e),_t(d,!0),d.tail===null&&d.tailMode==="hidden"&&!z.alternate&&!r2)return C2(n),null}else 2*a1()-d.renderingStartTime>_8&&i!==536870912&&(n.flags|=128,g=!0,_t(d,!1),n.lanes=4194304);d.isBackwards?(z.sibling=n.child,n.child=z):(e=d.last,e!==null?e.sibling=z:n.child=z,d.last=z)}return d.tail!==null?(e=d.tail,d.rendering=e,d.tail=e.sibling,d.renderingStartTime=a1(),e.sibling=null,i=F2.current,t1(F2,g?i&1|2:i&1),r2&&g3(n,d.treeForkCount),e):(C2(n),null);case 22:case 23:return y4(n),Nc(),d=n.memoizedState!==null,e!==null?e.memoizedState!==null!==d&&(n.flags|=8192):d&&(n.flags|=8192),d?(i&536870912)!==0&&(n.flags&128)===0&&(C2(n),n.subtreeFlags&6&&(n.flags|=8192)):C2(n),i=n.updateQueue,i!==null&&R8(n,i.retryQueue),i=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(i=e.memoizedState.cachePool.pool),d=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(d=n.memoizedState.cachePool.pool),d!==i&&(n.flags|=2048),e!==null&&P(j0),null;case 24:return i=null,e!==null&&(i=e.memoizedState.cache),n.memoizedState.cache!==i&&(n.flags|=2048),z3(O2),C2(n),null;case 25:return null;case 30:return null}throw Error(l(156,n.tag))}function Jp(e,n){switch(vc(n),n.tag){case 1:return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return z3(O2),C1(),e=n.flags,(e&65536)!==0&&(e&128)===0?(n.flags=e&-65537|128,n):null;case 26:case 27:case 5:return u1(n),null;case 31:if(n.memoizedState!==null){if(y4(n),n.alternate===null)throw Error(l(340));A0()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 13:if(y4(n),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(l(340));A0()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return P(F2),null;case 4:return C1(),null;case 10:return z3(n.type),null;case 22:case 23:return y4(n),Nc(),e!==null&&P(j0),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 24:return z3(O2),null;case 25:return null;default:return null}}function vs(e,n){switch(vc(n),n.tag){case 3:z3(O2),C1();break;case 26:case 27:case 5:u1(n);break;case 4:C1();break;case 31:n.memoizedState!==null&&y4(n);break;case 13:y4(n);break;case 19:P(F2);break;case 10:z3(n.type);break;case 22:case 23:y4(n),Nc(),e!==null&&P(j0);break;case 24:z3(O2)}}function qt(e,n){try{var i=n.updateQueue,d=i!==null?i.lastEffect:null;if(d!==null){var g=d.next;i=g;do{if((i.tag&e)===e){d=void 0;var z=i.create,L=i.inst;d=z(),L.destroy=d}i=i.next}while(i!==g)}}catch(R){f2(n,n.return,R)}}function Q3(e,n,i){try{var d=n.updateQueue,g=d!==null?d.lastEffect:null;if(g!==null){var z=g.next;d=z;do{if((d.tag&e)===e){var L=d.inst,R=L.destroy;if(R!==void 0){L.destroy=void 0,g=n;var U=i,n1=R;try{n1()}catch(d1){f2(g,U,d1)}}}d=d.next}while(d!==z)}}catch(d1){f2(n,n.return,d1)}}function ps(e){var n=e.updateQueue;if(n!==null){var i=e.stateNode;try{li(n,i)}catch(d){f2(e,e.return,d)}}}function xs(e,n,i){i.props=F0(e.type,e.memoizedProps),i.state=e.memoizedState;try{i.componentWillUnmount()}catch(d){f2(e,n,d)}}function Ut(e,n){try{var i=e.ref;if(i!==null){switch(e.tag){case 26:case 27:case 5:var d=e.stateNode;break;case 30:d=e.stateNode;break;default:d=e.stateNode}typeof i=="function"?e.refCleanup=i(d):i.current=d}}catch(g){f2(e,n,g)}}function l3(e,n){var i=e.ref,d=e.refCleanup;if(i!==null)if(typeof d=="function")try{d()}catch(g){f2(e,n,g)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof i=="function")try{i(null)}catch(g){f2(e,n,g)}else i.current=null}function gs(e){var n=e.type,i=e.memoizedProps,d=e.stateNode;try{t:switch(n){case"button":case"input":case"select":case"textarea":i.autoFocus&&d.focus();break t;case"img":i.src?d.src=i.src:i.srcSet&&(d.srcset=i.srcSet)}}catch(g){f2(e,e.return,g)}}function on(e,n,i){try{var d=e.stateNode;yx(d,e.type,i,n),d[s4]=n}catch(g){f2(e,e.return,g)}}function bs(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&a0(e.type)||e.tag===4}function un(e){t:for(;;){for(;e.sibling===null;){if(e.return===null||bs(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&a0(e.type)||e.flags&2||e.child===null||e.tag===4)continue t;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function dn(e,n,i){var d=e.tag;if(d===5||d===6)e=e.stateNode,n?(i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i).insertBefore(e,n):(n=i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i,n.appendChild(e),i=i._reactRootContainer,i!=null||n.onclick!==null||(n.onclick=v3));else if(d!==4&&(d===27&&a0(e.type)&&(i=e.stateNode,n=null),e=e.child,e!==null))for(dn(e,n,i),e=e.sibling;e!==null;)dn(e,n,i),e=e.sibling}function E8(e,n,i){var d=e.tag;if(d===5||d===6)e=e.stateNode,n?i.insertBefore(e,n):i.appendChild(e);else if(d!==4&&(d===27&&a0(e.type)&&(i=e.stateNode),e=e.child,e!==null))for(E8(e,n,i),e=e.sibling;e!==null;)E8(e,n,i),e=e.sibling}function zs(e){var n=e.stateNode,i=e.memoizedProps;try{for(var d=e.type,g=n.attributes;g.length;)n.removeAttributeNode(g[0]);e4(n,d,i),n[Q2]=e,n[s4]=i}catch(z){f2(e,e.return,z)}}var S3=!1,U2=!1,hn=!1,ys=typeof WeakSet=="function"?WeakSet:Set,X2=null;function tx(e,n){if(e=e.containerInfo,kn=n5,e=kl(e),ac(e)){if("selectionStart"in e)var i={start:e.selectionStart,end:e.selectionEnd};else t:{i=(i=e.ownerDocument)&&i.defaultView||window;var d=i.getSelection&&i.getSelection();if(d&&d.rangeCount!==0){i=d.anchorNode;var g=d.anchorOffset,z=d.focusNode;d=d.focusOffset;try{i.nodeType,z.nodeType}catch{i=null;break t}var L=0,R=-1,U=-1,n1=0,d1=0,f1=e,l1=null;e:for(;;){for(var i1;f1!==i||g!==0&&f1.nodeType!==3||(R=L+g),f1!==z||d!==0&&f1.nodeType!==3||(U=L+d),f1.nodeType===3&&(L+=f1.nodeValue.length),(i1=f1.firstChild)!==null;)l1=f1,f1=i1;for(;;){if(f1===e)break e;if(l1===i&&++n1===g&&(R=L),l1===z&&++d1===d&&(U=L),(i1=f1.nextSibling)!==null)break;f1=l1,l1=f1.parentNode}f1=i1}i=R===-1||U===-1?null:{start:R,end:U}}else i=null}i=i||{start:0,end:0}}else i=null;for(Fn={focusedElem:e,selectionRange:i},n5=!1,X2=n;X2!==null;)if(n=X2,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,X2=e;else for(;X2!==null;){switch(n=X2,z=n.alternate,e=n.flags,n.tag){case 0:if((e&4)!==0&&(e=n.updateQueue,e=e!==null?e.events:null,e!==null))for(i=0;i title"))),e4(z,d,i),z[Q2]=e,K2(z),d=z;break t;case"link":var L=Lo("link","href",g).get(d+(i.href||""));if(L){for(var R=0;Rg2&&(L=g2,g2=Z1,Z1=L);var X=Vl(R,Z1),$=Vl(R,g2);if(X&&$&&(i1.rangeCount!==1||i1.anchorNode!==X.node||i1.anchorOffset!==X.offset||i1.focusNode!==$.node||i1.focusOffset!==$.offset)){var c1=f1.createRange();c1.setStart(X.node,X.offset),i1.removeAllRanges(),Z1>g2?(i1.addRange(c1),i1.extend($.node,$.offset)):(c1.setEnd($.node,$.offset),i1.addRange(c1))}}}}for(f1=[],i1=R;i1=i1.parentNode;)i1.nodeType===1&&f1.push({element:i1,left:i1.scrollLeft,top:i1.scrollTop});for(typeof R.focus=="function"&&R.focus(),R=0;Ri?32:i,_.T=null,i=bn,bn=null;var z=e0,L=N3;if(G2=0,A6=e0=null,N3=0,(d2&6)!==0)throw Error(l(331));var R=d2;if(d2|=4,Bs(z.current),js(z,z.current,L,i),d2=R,Yt(0,!1),R1&&typeof R1.onPostCommitFiberRoot=="function")try{R1.onPostCommitFiberRoot(K1,z)}catch{}return!0}finally{I.p=g,_.T=d,Xs(e,n)}}function Ws(e,n,i){n=B4(i,n),n=Qc(e.stateNode,n,2),e=Y3(e,n,2),e!==null&&(Z4(e,2),i3(e))}function f2(e,n,i){if(e.tag===3)Ws(e,e,i);else for(;n!==null;){if(n.tag===3){Ws(n,e,i);break}else if(n.tag===1){var d=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof d.componentDidCatch=="function"&&(t0===null||!t0.has(d))){e=B4(i,e),i=Ji(2),d=Y3(n,i,2),d!==null&&(ts(i,d,n,e),Z4(d,2),i3(d));break}}n=n.return}}function Mn(e,n,i){var d=e.pingCache;if(d===null){d=e.pingCache=new nx;var g=new Set;d.set(n,g)}else g=d.get(n),g===void 0&&(g=new Set,d.set(n,g));g.has(i)||(vn=!0,g.add(i),e=sx.bind(null,e,n,i),n.then(e,e))}function sx(e,n,i){var d=e.pingCache;d!==null&&d.delete(n),e.pingedLanes|=e.suspendedLanes&i,e.warmLanes&=~i,z2===e&&(n2&i)===i&&(B2===4||B2===3&&(n2&62914560)===n2&&300>a1()-O8?(d2&2)===0&&H6(e,0):pn|=i,S6===n2&&(S6=0)),i3(e)}function Js(e,n){n===0&&(n=b2()),e=C0(e,n),e!==null&&(Z4(e,n),i3(e))}function ox(e){var n=e.memoizedState,i=0;n!==null&&(i=n.retryLane),Js(e,i)}function ux(e,n){var i=0;switch(e.tag){case 31:case 13:var d=e.stateNode,g=e.memoizedState;g!==null&&(i=g.retryLane);break;case 19:d=e.stateNode;break;case 22:d=e.stateNode._retryCache;break;default:throw Error(l(314))}d!==null&&d.delete(n),Js(e,i)}function dx(e,n){return V1(e,n)}var Z8=null,j6=null,Cn=!1,G8=!1,Sn=!1,n0=0;function i3(e){e!==j6&&e.next===null&&(j6===null?Z8=j6=e:j6=j6.next=e),G8=!0,Cn||(Cn=!0,mx())}function Yt(e,n){if(!Sn&&G8){Sn=!0;do for(var i=!1,d=Z8;d!==null;){if(e!==0){var g=d.pendingLanes;if(g===0)var z=0;else{var L=d.suspendedLanes,R=d.pingedLanes;z=(1<<31-i2(42|e)+1)-1,z&=g&~(L&~R),z=z&201326741?z&201326741|1:z?z|2:0}z!==0&&(i=!0,no(d,z))}else z=n2,z=v2(d,d===z2?z:0,d.cancelPendingCommit!==null||d.timeoutHandle!==-1),(z&3)===0||h2(d,z)||(i=!0,no(d,z));d=d.next}while(i);Sn=!1}}function hx(){to()}function to(){G8=Cn=!1;var e=0;n0!==0&&Mx()&&(e=n0);for(var n=a1(),i=null,d=Z8;d!==null;){var g=d.next,z=eo(d,n);z===0?(d.next=null,i===null?Z8=g:i.next=g,g===null&&(j6=i)):(i=d,(e!==0||(z&3)!==0)&&(G8=!0)),d=g}G2!==0&&G2!==5||Yt(e),n0!==0&&(n0=0)}function eo(e,n){for(var i=e.suspendedLanes,d=e.pingedLanes,g=e.expirationTimes,z=e.pendingLanes&-62914561;0R)break;var d1=U.transferSize,f1=U.initiatorType;d1&&ho(f1)&&(U=U.responseEnd,L+=d1*(U"u"?null:document;function Co(e,n,i){var d=N6;if(d&&typeof n=="string"&&n){var g=N4(n);g='link[rel="'+e+'"][href="'+g+'"]',typeof i=="string"&&(g+='[crossorigin="'+i+'"]'),Mo.has(g)||(Mo.add(g),e={rel:e,crossOrigin:i,href:n},d.querySelector(g)===null&&(n=d.createElement("link"),e4(n,"link",e),K2(n),d.head.appendChild(n)))}}function Bx(e){V3.D(e),Co("dns-prefetch",e,null)}function kx(e,n){V3.C(e,n),Co("preconnect",e,n)}function Fx(e,n,i){V3.L(e,n,i);var d=N6;if(d&&e&&n){var g='link[rel="preload"][as="'+N4(n)+'"]';n==="image"&&i&&i.imageSrcSet?(g+='[imagesrcset="'+N4(i.imageSrcSet)+'"]',typeof i.imageSizes=="string"&&(g+='[imagesizes="'+N4(i.imageSizes)+'"]')):g+='[href="'+N4(e)+'"]';var z=g;switch(n){case"style":z=V6(e);break;case"script":z=B6(e)}D4.has(z)||(e=b({rel:"preload",href:n==="image"&&i&&i.imageSrcSet?void 0:e,as:n},i),D4.set(z,e),d.querySelector(g)!==null||n==="style"&&d.querySelector(Wt(z))||n==="script"&&d.querySelector(Jt(z))||(n=d.createElement("link"),e4(n,"link",e),K2(n),d.head.appendChild(n)))}}function Rx(e,n){V3.m(e,n);var i=N6;if(i&&e){var d=n&&typeof n.as=="string"?n.as:"script",g='link[rel="modulepreload"][as="'+N4(d)+'"][href="'+N4(e)+'"]',z=g;switch(d){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":z=B6(e)}if(!D4.has(z)&&(e=b({rel:"modulepreload",href:e},n),D4.set(z,e),i.querySelector(g)===null)){switch(d){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(i.querySelector(Jt(z)))return}d=i.createElement("link"),e4(d,"link",e),K2(d),i.head.appendChild(d)}}}function Ex(e,n,i){V3.S(e,n,i);var d=N6;if(d&&e){var g=J0(d).hoistableStyles,z=V6(e);n=n||"default";var L=g.get(z);if(!L){var R={loading:0,preload:null};if(L=d.querySelector(Wt(z)))R.loading=5;else{e=b({rel:"stylesheet",href:e,"data-precedence":n},i),(i=D4.get(z))&&qn(e,i);var U=L=d.createElement("link");K2(U),e4(U,"link",e),U._p=new Promise(function(n1,d1){U.onload=n1,U.onerror=d1}),U.addEventListener("load",function(){R.loading|=1}),U.addEventListener("error",function(){R.loading|=2}),R.loading|=4,W8(L,n,d)}L={type:"stylesheet",instance:L,count:1,state:R},g.set(z,L)}}}function Tx(e,n){V3.X(e,n);var i=N6;if(i&&e){var d=J0(i).hoistableScripts,g=B6(e),z=d.get(g);z||(z=i.querySelector(Jt(g)),z||(e=b({src:e,async:!0},n),(n=D4.get(g))&&Un(e,n),z=i.createElement("script"),K2(z),e4(z,"link",e),i.head.appendChild(z)),z={type:"script",instance:z,count:1,state:null},d.set(g,z))}}function Dx(e,n){V3.M(e,n);var i=N6;if(i&&e){var d=J0(i).hoistableScripts,g=B6(e),z=d.get(g);z||(z=i.querySelector(Jt(g)),z||(e=b({src:e,async:!0,type:"module"},n),(n=D4.get(g))&&Un(e,n),z=i.createElement("script"),K2(z),e4(z,"link",e),i.head.appendChild(z)),z={type:"script",instance:z,count:1,state:null},d.set(g,z))}}function So(e,n,i,d){var g=(g=K.current)?Q8(g):null;if(!g)throw Error(l(446));switch(e){case"meta":case"title":return null;case"style":return typeof i.precedence=="string"&&typeof i.href=="string"?(n=V6(i.href),i=J0(g).hoistableStyles,d=i.get(n),d||(d={type:"style",instance:null,count:0,state:null},i.set(n,d)),d):{type:"void",instance:null,count:0,state:null};case"link":if(i.rel==="stylesheet"&&typeof i.href=="string"&&typeof i.precedence=="string"){e=V6(i.href);var z=J0(g).hoistableStyles,L=z.get(e);if(L||(g=g.ownerDocument||g,L={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},z.set(e,L),(z=g.querySelector(Wt(e)))&&!z._p&&(L.instance=z,L.state.loading=5),D4.has(e)||(i={rel:"preload",as:"style",href:i.href,crossOrigin:i.crossOrigin,integrity:i.integrity,media:i.media,hrefLang:i.hrefLang,referrerPolicy:i.referrerPolicy},D4.set(e,i),z||Ox(g,e,i,L.state))),n&&d===null)throw Error(l(528,""));return L}if(n&&d!==null)throw Error(l(529,""));return null;case"script":return n=i.async,i=i.src,typeof i=="string"&&n&&typeof n!="function"&&typeof n!="symbol"?(n=B6(i),i=J0(g).hoistableScripts,d=i.get(n),d||(d={type:"script",instance:null,count:0,state:null},i.set(n,d)),d):{type:"void",instance:null,count:0,state:null};default:throw Error(l(444,e))}}function V6(e){return'href="'+N4(e)+'"'}function Wt(e){return'link[rel="stylesheet"]['+e+"]"}function Ao(e){return b({},e,{"data-precedence":e.precedence,precedence:null})}function Ox(e,n,i,d){e.querySelector('link[rel="preload"][as="style"]['+n+"]")?d.loading=1:(n=e.createElement("link"),d.preload=n,n.addEventListener("load",function(){return d.loading|=1}),n.addEventListener("error",function(){return d.loading|=2}),e4(n,"link",i),K2(n),e.head.appendChild(n))}function B6(e){return'[src="'+N4(e)+'"]'}function Jt(e){return"script[async]"+e}function Ho(e,n,i){if(n.count++,n.instance===null)switch(n.type){case"style":var d=e.querySelector('style[data-href~="'+N4(i.href)+'"]');if(d)return n.instance=d,K2(d),d;var g=b({},i,{"data-href":i.href,"data-precedence":i.precedence,href:null,precedence:null});return d=(e.ownerDocument||e).createElement("style"),K2(d),e4(d,"style",g),W8(d,i.precedence,e),n.instance=d;case"stylesheet":g=V6(i.href);var z=e.querySelector(Wt(g));if(z)return n.state.loading|=4,n.instance=z,K2(z),z;d=Ao(i),(g=D4.get(g))&&qn(d,g),z=(e.ownerDocument||e).createElement("link"),K2(z);var L=z;return L._p=new Promise(function(R,U){L.onload=R,L.onerror=U}),e4(z,"link",d),n.state.loading|=4,W8(z,i.precedence,e),n.instance=z;case"script":return z=B6(i.src),(g=e.querySelector(Jt(z)))?(n.instance=g,K2(g),g):(d=i,(g=D4.get(z))&&(d=b({},i),Un(d,g)),e=e.ownerDocument||e,g=e.createElement("script"),K2(g),e4(g,"link",d),e.head.appendChild(g),n.instance=g);case"void":return null;default:throw Error(l(443,n.type))}else n.type==="stylesheet"&&(n.state.loading&4)===0&&(d=n.instance,n.state.loading|=4,W8(d,i.precedence,e));return n.instance}function W8(e,n,i){for(var d=i.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),g=d.length?d[d.length-1]:null,z=g,L=0;L title"):null)}function _x(e,n,i){if(i===1||n.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof n.precedence!="string"||typeof n.href!="string"||n.href==="")break;return!0;case"link":if(typeof n.rel!="string"||typeof n.href!="string"||n.href===""||n.onLoad||n.onError)break;switch(n.rel){case"stylesheet":return e=n.disabled,typeof n.precedence=="string"&&e==null;default:return!0}case"script":if(n.async&&typeof n.async!="function"&&typeof n.async!="symbol"&&!n.onLoad&&!n.onError&&n.src&&typeof n.src=="string")return!0}return!1}function No(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function qx(e,n,i,d){if(i.type==="stylesheet"&&(typeof d.media!="string"||matchMedia(d.media).matches!==!1)&&(i.state.loading&4)===0){if(i.instance===null){var g=V6(d.href),z=n.querySelector(Wt(g));if(z){n=z._p,n!==null&&typeof n=="object"&&typeof n.then=="function"&&(e.count++,e=t5.bind(e),n.then(e,e)),i.state.loading|=4,i.instance=z,K2(z);return}z=n.ownerDocument||n,d=Ao(d),(g=D4.get(g))&&qn(d,g),z=z.createElement("link"),K2(z);var L=z;L._p=new Promise(function(R,U){L.onload=R,L.onerror=U}),e4(z,"link",d),i.instance=z}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(i,n),(n=i.state.preload)&&(i.state.loading&3)===0&&(e.count++,i=t5.bind(e),n.addEventListener("load",i),n.addEventListener("error",i))}}var Pn=0;function Ux(e,n){return e.stylesheets&&e.count===0&&c5(e,e.stylesheets),0Pn?50:800)+n);return e.unsuspend=i,function(){e.unsuspend=null,clearTimeout(d),clearTimeout(g)}}:null}function t5(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)c5(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var e5=null;function c5(e,n){e.stylesheets=null,e.unsuspend!==null&&(e.count++,e5=new Map,n.forEach(Px,e),e5=null,t5.call(e))}function Px(e,n){if(!(n.state.loading&4)){var i=e5.get(e);if(i)var d=i.get(null);else{i=new Map,e5.set(e,i);for(var g=e.querySelectorAll("link[data-precedence],style[data-precedence]"),z=0;z"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(c){console.error(c)}}return t(),Wn.exports=lg(),Wn.exports}var sg=ig();var eu="popstate";function og(t={}){function c(l,s){let{pathname:o,search:h,hash:m}=l.location;return Xa("",{pathname:o,search:h,hash:m},s.state&&s.state.usr||null,s.state&&s.state.key||"default")}function a(l,s){return typeof s=="string"?s:Ae(s)}return dg(c,a,null,t)}function H2(t,c){if(t===!1||t===null||typeof t>"u")throw new Error(c)}function A4(t,c){if(!t){typeof console<"u"&&console.warn(c);try{throw new Error(c)}catch{}}}function ug(){return Math.random().toString(36).substring(2,10)}function cu(t,c){return{usr:t.state,key:t.key,idx:c}}function Xa(t,c,a=null,l){return{pathname:typeof t=="string"?t:t.pathname,search:"",hash:"",...typeof c=="string"?nt(c):c,state:a,key:c&&c.key||l||ug()}}function Ae({pathname:t="/",search:c="",hash:a=""}){return c&&c!=="?"&&(t+=c.charAt(0)==="?"?c:"?"+c),a&&a!=="#"&&(t+=a.charAt(0)==="#"?a:"#"+a),t}function nt(t){let c={};if(t){let a=t.indexOf("#");a>=0&&(c.hash=t.substring(a),t=t.substring(0,a));let l=t.indexOf("?");l>=0&&(c.search=t.substring(l),t=t.substring(0,l)),t&&(c.pathname=t)}return c}function dg(t,c,a,l={}){let{window:s=document.defaultView,v5Compat:o=!1}=l,h=s.history,m="POP",v=null,x=p();x==null&&(x=0,h.replaceState({...h.state,idx:x},""));function p(){return(h.state||{idx:null}).idx}function b(){m="POP";let M=p(),V=M==null?null:M-x;x=M,v&&v({action:m,location:H.location,delta:V})}function w(M,V){m="PUSH";let A=Xa(H.location,M,V);x=p()+1;let C=cu(A,x),N=H.createHref(A);try{h.pushState(C,"",N)}catch(k){if(k instanceof DOMException&&k.name==="DataCloneError")throw k;s.location.assign(N)}o&&v&&v({action:m,location:H.location,delta:1})}function y(M,V){m="REPLACE";let A=Xa(H.location,M,V);x=p();let C=cu(A,x),N=H.createHref(A);h.replaceState(C,"",N),o&&v&&v({action:m,location:H.location,delta:0})}function S(M){return hg(M)}let H={get action(){return m},get location(){return t(s,h)},listen(M){if(v)throw new Error("A history only accepts one active listener");return s.addEventListener(eu,b),v=M,()=>{s.removeEventListener(eu,b),v=null}},createHref(M){return c(s,M)},createURL:S,encodeLocation(M){let V=S(M);return{pathname:V.pathname,search:V.search,hash:V.hash}},push:w,replace:y,go(M){return h.go(M)}};return H}function hg(t,c=!1){let a="http://localhost";typeof window<"u"&&(a=window.location.origin!=="null"?window.location.origin:window.location.href),H2(a,"No window.location.(origin|href) available to create URL");let l=typeof t=="string"?t:Ae(t);return l=l.replace(/ $/,"%20"),!c&&l.startsWith("//")&&(l=a+l),new URL(l,a)}function yh(t,c,a="/"){return mg(t,c,a,!1)}function mg(t,c,a,l){let s=typeof c=="string"?nt(c):c,o=R3(s.pathname||"/",a);if(o==null)return null;let h=wh(t);fg(h);let m=null;for(let v=0;m==null&&v{let p={relativePath:x===void 0?h.path||"":x,caseSensitive:h.caseSensitive===!0,childrenIndex:m,route:h};if(p.relativePath.startsWith("/")){if(!p.relativePath.startsWith(l)&&v)return;H2(p.relativePath.startsWith(l),`Absolute route path "${p.relativePath}" nested under path "${l}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),p.relativePath=p.relativePath.slice(l.length)}let b=F3([l,p.relativePath]),w=a.concat(p);h.children&&h.children.length>0&&(H2(h.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${b}".`),wh(h.children,c,w,b,v)),!(h.path==null&&!h.index)&&c.push({path:b,score:yg(b,h.index),routesMeta:w})};return t.forEach((h,m)=>{if(h.path===""||!h.path?.includes("?"))o(h,m);else for(let v of Mh(h.path))o(h,m,!0,v)}),c}function Mh(t){let c=t.split("/");if(c.length===0)return[];let[a,...l]=c,s=a.endsWith("?"),o=a.replace(/\?$/,"");if(l.length===0)return s?[o,""]:[o];let h=Mh(l.join("/")),m=[];return m.push(...h.map(v=>v===""?o:[o,v].join("/"))),s&&m.push(...h),m.map(v=>t.startsWith("/")&&v===""?"/":v)}function fg(t){t.sort((c,a)=>c.score!==a.score?a.score-c.score:wg(c.routesMeta.map(l=>l.childrenIndex),a.routesMeta.map(l=>l.childrenIndex)))}var vg=/^:[\w-]+$/,pg=3,xg=2,gg=1,bg=10,zg=-2,nu=t=>t==="*";function yg(t,c){let a=t.split("/"),l=a.length;return a.some(nu)&&(l+=zg),c&&(l+=xg),a.filter(s=>!nu(s)).reduce((s,o)=>s+(vg.test(o)?pg:o===""?gg:bg),l)}function wg(t,c){return t.length===c.length&&t.slice(0,-1).every((l,s)=>l===c[s])?t[t.length-1]-c[c.length-1]:0}function Mg(t,c,a=!1){let{routesMeta:l}=t,s={},o="/",h=[];for(let m=0;m{if(p==="*"){let S=m[w]||"";h=o.slice(0,o.length-S.length).replace(/(.)\/+$/,"$1")}const y=m[w];return b&&!y?x[p]=void 0:x[p]=(y||"").replace(/%2F/g,"/"),x},{}),pathname:o,pathnameBase:h,pattern:t}}function Cg(t,c=!1,a=!0){A4(t==="*"||!t.endsWith("*")||t.endsWith("/*"),`Route path "${t}" will be treated as if it were "${t.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${t.replace(/\*$/,"/*")}".`);let l=[],s="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(h,m,v)=>(l.push({paramName:m,isOptional:v!=null}),v?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return t.endsWith("*")?(l.push({paramName:"*"}),s+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):a?s+="\\/*$":t!==""&&t!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,c?void 0:"i"),l]}function Sg(t){try{return t.split("/").map(c=>decodeURIComponent(c).replace(/\//g,"%2F")).join("/")}catch(c){return A4(!1,`The URL path "${t}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${c}).`),t}}function R3(t,c){if(c==="/")return t;if(!t.toLowerCase().startsWith(c.toLowerCase()))return null;let a=c.endsWith("/")?c.length-1:c.length,l=t.charAt(a);return l&&l!=="/"?null:t.slice(a)||"/"}var Ag=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Hg=t=>Ag.test(t);function Lg(t,c="/"){let{pathname:a,search:l="",hash:s=""}=typeof t=="string"?nt(t):t,o;if(a)if(Hg(a))o=a;else{if(a.includes("//")){let h=a;a=a.replace(/\/\/+/g,"/"),A4(!1,`Pathnames cannot have embedded double slashes - normalizing ${h} -> ${a}`)}a.startsWith("/")?o=au(a.substring(1),"/"):o=au(a,c)}else o=c;return{pathname:o,search:Vg(l),hash:Bg(s)}}function au(t,c){let a=c.replace(/\/+$/,"").split("/");return t.split("/").forEach(s=>{s===".."?a.length>1&&a.pop():s!=="."&&a.push(s)}),a.length>1?a.join("/"):"/"}function ca(t,c,a,l){return`Cannot include a '${t}' character in a manually specified \`to.${c}\` field [${JSON.stringify(l)}]. Please separate it out to the \`to.${a}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function jg(t){return t.filter((c,a)=>a===0||c.route.path&&c.route.path.length>0)}function U9(t){let c=jg(t);return c.map((a,l)=>l===c.length-1?a.pathname:a.pathnameBase)}function P9(t,c,a,l=!1){let s;typeof t=="string"?s=nt(t):(s={...t},H2(!s.pathname||!s.pathname.includes("?"),ca("?","pathname","search",s)),H2(!s.pathname||!s.pathname.includes("#"),ca("#","pathname","hash",s)),H2(!s.search||!s.search.includes("#"),ca("#","search","hash",s)));let o=t===""||s.pathname==="",h=o?"/":s.pathname,m;if(h==null)m=a;else{let b=c.length-1;if(!l&&h.startsWith("..")){let w=h.split("/");for(;w[0]==="..";)w.shift(),b-=1;s.pathname=w.join("/")}m=b>=0?c[b]:"/"}let v=Lg(s,m),x=h&&h!=="/"&&h.endsWith("/"),p=(o||h===".")&&a.endsWith("/");return!v.pathname.endsWith("/")&&(x||p)&&(v.pathname+="/"),v}var F3=t=>t.join("/").replace(/\/\/+/g,"/"),Ng=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),Vg=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,Bg=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t;function kg(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Ch=["POST","PUT","PATCH","DELETE"];new Set(Ch);var Fg=["GET",...Ch];new Set(Fg);var at=f.createContext(null);at.displayName="DataRouter";var x7=f.createContext(null);x7.displayName="DataRouterState";f.createContext(!1);var Sh=f.createContext({isTransitioning:!1});Sh.displayName="ViewTransition";var Rg=f.createContext(new Map);Rg.displayName="Fetchers";var Eg=f.createContext(null);Eg.displayName="Await";var e3=f.createContext(null);e3.displayName="Navigation";var _e=f.createContext(null);_e.displayName="Location";var m3=f.createContext({outlet:null,matches:[],isDataRoute:!1});m3.displayName="Route";var I9=f.createContext(null);I9.displayName="RouteError";function Tg(t,{relative:c}={}){H2(rt(),"useHref() may be used only in the context of a component.");let{basename:a,navigator:l}=f.useContext(e3),{hash:s,pathname:o,search:h}=Ue(t,{relative:c}),m=o;return a!=="/"&&(m=o==="/"?a:F3([a,o])),l.createHref({pathname:m,search:h,hash:s})}function rt(){return f.useContext(_e)!=null}function T3(){return H2(rt(),"useLocation() may be used only in the context of a component."),f.useContext(_e).location}var Ah="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Hh(t){f.useContext(e3).static||f.useLayoutEffect(t)}function qe(){let{isDataRoute:t}=f.useContext(m3);return t?Xg():Dg()}function Dg(){H2(rt(),"useNavigate() may be used only in the context of a component.");let t=f.useContext(at),{basename:c,navigator:a}=f.useContext(e3),{matches:l}=f.useContext(m3),{pathname:s}=T3(),o=JSON.stringify(U9(l)),h=f.useRef(!1);return Hh(()=>{h.current=!0}),f.useCallback((v,x={})=>{if(A4(h.current,Ah),!h.current)return;if(typeof v=="number"){a.go(v);return}let p=P9(v,JSON.parse(o),s,x.relative==="path");t==null&&c!=="/"&&(p.pathname=p.pathname==="/"?c:F3([c,p.pathname])),(x.replace?a.replace:a.push)(p,x.state,x)},[c,a,o,s,t])}f.createContext(null);function Ue(t,{relative:c}={}){let{matches:a}=f.useContext(m3),{pathname:l}=T3(),s=JSON.stringify(U9(a));return f.useMemo(()=>P9(t,JSON.parse(s),l,c==="path"),[t,s,l,c])}function Og(t,c){return Lh(t,c)}function Lh(t,c,a,l,s){H2(rt(),"useRoutes() may be used only in the context of a component.");let{navigator:o}=f.useContext(e3),{matches:h}=f.useContext(m3),m=h[h.length-1],v=m?m.params:{},x=m?m.pathname:"/",p=m?m.pathnameBase:"/",b=m&&m.route;{let A=b&&b.path||"";jh(x,!b||A.endsWith("*")||A.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${x}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. -Please change the parent to .`)}let w=T3(),y;if(c){let A=typeof c=="string"?nt(c):c;H2(p==="/"||A.pathname?.startsWith(p),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${p}" but pathname "${A.pathname}" was given in the \`location\` prop.`),y=A}else y=w;let S=y.pathname||"/",H=S;if(p!=="/"){let A=p.replace(/^\//,"").split("/");H="/"+S.replace(/^\//,"").split("/").slice(A.length).join("/")}let M=yh(t,{pathname:H});A4(b||M!=null,`No routes matched location "${y.pathname}${y.search}${y.hash}" `),A4(M==null||M[M.length-1].route.element!==void 0||M[M.length-1].route.Component!==void 0||M[M.length-1].route.lazy!==void 0,`Matched leaf route at location "${y.pathname}${y.search}${y.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let V=Ig(M&&M.map(A=>Object.assign({},A,{params:Object.assign({},v,A.params),pathname:F3([p,o.encodeLocation?o.encodeLocation(A.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:A.pathname]),pathnameBase:A.pathnameBase==="/"?p:F3([p,o.encodeLocation?o.encodeLocation(A.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:A.pathnameBase])})),h,a,l,s);return c&&V?f.createElement(_e.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...y},navigationType:"POP"}},V):V}function _g(){let t=Kg(),c=kg(t)?`${t.status} ${t.statusText}`:t instanceof Error?t.message:JSON.stringify(t),a=t instanceof Error?t.stack:null,l="rgba(200,200,200, 0.5)",s={padding:"0.5rem",backgroundColor:l},o={padding:"2px 4px",backgroundColor:l},h=null;return console.error("Error handled by React Router default ErrorBoundary:",t),h=f.createElement(f.Fragment,null,f.createElement("p",null,"💿 Hey developer 👋"),f.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",f.createElement("code",{style:o},"ErrorBoundary")," or"," ",f.createElement("code",{style:o},"errorElement")," prop on your route.")),f.createElement(f.Fragment,null,f.createElement("h2",null,"Unexpected Application Error!"),f.createElement("h3",{style:{fontStyle:"italic"}},c),a?f.createElement("pre",{style:s},a):null,h)}var qg=f.createElement(_g,null),Ug=class extends f.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,c){return c.location!==t.location||c.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:c.error,location:c.location,revalidation:t.revalidation||c.revalidation}}componentDidCatch(t,c){this.props.onError?this.props.onError(t,c):console.error("React Router caught the following error during render",t)}render(){return this.state.error!==void 0?f.createElement(m3.Provider,{value:this.props.routeContext},f.createElement(P9.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function Pg({routeContext:t,match:c,children:a}){let l=f.useContext(at);return l&&l.static&&l.staticContext&&(c.route.errorElement||c.route.ErrorBoundary)&&(l.staticContext._deepestRenderedBoundaryId=c.route.id),f.createElement(m3.Provider,{value:t},a)}function Ig(t,c=[],a=null,l=null,s=null){if(t==null){if(!a)return null;if(a.errors)t=a.matches;else if(c.length===0&&!a.initialized&&a.matches.length>0)t=a.matches;else return null}let o=t,h=a?.errors;if(h!=null){let p=o.findIndex(b=>b.route.id&&h?.[b.route.id]!==void 0);H2(p>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(h).join(",")}`),o=o.slice(0,Math.min(o.length,p+1))}let m=!1,v=-1;if(a)for(let p=0;p=0?o=o.slice(0,v+1):o=[o[0]];break}}}let x=a&&l?(p,b)=>{l(p,{location:a.location,params:a.matches?.[0]?.params??{},errorInfo:b})}:void 0;return o.reduceRight((p,b,w)=>{let y,S=!1,H=null,M=null;a&&(y=h&&b.route.id?h[b.route.id]:void 0,H=b.route.errorElement||qg,m&&(v<0&&w===0?(jh("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),S=!0,M=null):v===w&&(S=!0,M=b.route.hydrateFallbackElement||null)));let V=c.concat(o.slice(0,w+1)),A=()=>{let C;return y?C=H:S?C=M:b.route.Component?C=f.createElement(b.route.Component,null):b.route.element?C=b.route.element:C=p,f.createElement(Pg,{match:b,routeContext:{outlet:p,matches:V,isDataRoute:a!=null},children:C})};return a&&(b.route.ErrorBoundary||b.route.errorElement||w===0)?f.createElement(Ug,{location:a.location,revalidation:a.revalidation,component:H,error:y,children:A(),routeContext:{outlet:null,matches:V,isDataRoute:!0},onError:x}):A()},null)}function I9(t){return`${t} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function $g(t){let c=f.useContext(at);return H2(c,I9(t)),c}function Zg(t){let c=f.useContext(x7);return H2(c,I9(t)),c}function Gg(t){let c=f.useContext(m3);return H2(c,I9(t)),c}function $9(t){let c=Gg(t),a=c.matches[c.matches.length-1];return H2(a.route.id,`${t} can only be used on routes that contain a unique "id"`),a.route.id}function Yg(){return $9("useRouteId")}function Kg(){let t=f.useContext(P9),c=Zg("useRouteError"),a=$9("useRouteError");return t!==void 0?t:c.errors?.[a]}function Xg(){let{router:t}=$g("useNavigate"),c=$9("useNavigate"),a=f.useRef(!1);return Hh(()=>{a.current=!0}),f.useCallback(async(s,o={})=>{A4(a.current,Ah),a.current&&(typeof s=="number"?t.navigate(s):await t.navigate(s,{fromRouteId:c,...o}))},[t,c])}var au={};function jh(t,c,a){!c&&!au[t]&&(au[t]=!0,A4(!1,a))}f.memo(Qg);function Qg({routes:t,future:c,state:a,unstable_onError:l}){return Lh(t,void 0,a,l,c)}function Wg({to:t,replace:c,state:a,relative:l}){H2(rt()," may be used only in the context of a component.");let{static:s}=f.useContext(e3);A4(!s," must not be used on the initial render in a . This is a no-op, but you should modify your code so the is only ever rendered in response to some user interaction or state change.");let{matches:o}=f.useContext(m3),{pathname:h}=T3(),m=qe(),v=U9(t,q9(o),h,l==="path"),x=JSON.stringify(v);return f.useEffect(()=>{m(JSON.parse(x),{replace:c,state:a,relative:l})},[m,x,l,c,a]),null}function U4(t){H2(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function Jg({basename:t="/",children:c=null,location:a,navigationType:l="POP",navigator:s,static:o=!1}){H2(!rt(),"You cannot render a inside another . You should never have more than one in your app.");let h=t.replace(/^\/*/,"/"),m=f.useMemo(()=>({basename:h,navigator:s,static:o,future:{}}),[h,s,o]);typeof a=="string"&&(a=nt(a));let{pathname:v="/",search:x="",hash:p="",state:b=null,key:w="default"}=a,y=f.useMemo(()=>{let S=R3(v,h);return S==null?null:{location:{pathname:S,search:x,hash:p,state:b,key:w},navigationType:l}},[h,v,x,p,b,w,l]);return A4(y!=null,` is not able to match the URL "${v}${x}${p}" because it does not start with the basename, so the won't render anything.`),y==null?null:f.createElement(e3.Provider,{value:m},f.createElement(_e.Provider,{children:c,value:y}))}function tb({children:t,location:c}){return Og(Xa(t),c)}function Xa(t,c=[]){let a=[];return f.Children.forEach(t,(l,s)=>{if(!f.isValidElement(l))return;let o=[...c,s];if(l.type===f.Fragment){a.push.apply(a,Xa(l.props.children,o));return}H2(l.type===U4,`[${typeof l.type=="string"?l.type:l.type.name}] is not a component. All component children of must be a or `),H2(!l.props.index||!l.props.children,"An index route cannot have child routes.");let h={id:l.props.id||o.join("-"),caseSensitive:l.props.caseSensitive,element:l.props.element,Component:l.props.Component,index:l.props.index,path:l.props.path,middleware:l.props.middleware,loader:l.props.loader,action:l.props.action,hydrateFallbackElement:l.props.hydrateFallbackElement,HydrateFallback:l.props.HydrateFallback,errorElement:l.props.errorElement,ErrorBoundary:l.props.ErrorBoundary,hasErrorBoundary:l.props.hasErrorBoundary===!0||l.props.ErrorBoundary!=null||l.props.errorElement!=null,shouldRevalidate:l.props.shouldRevalidate,handle:l.props.handle,lazy:l.props.lazy};l.props.children&&(h.children=Xa(l.props.children,o)),a.push(h)}),a}var T5="get",D5="application/x-www-form-urlencoded";function g7(t){return t!=null&&typeof t.tagName=="string"}function eb(t){return g7(t)&&t.tagName.toLowerCase()==="button"}function cb(t){return g7(t)&&t.tagName.toLowerCase()==="form"}function nb(t){return g7(t)&&t.tagName.toLowerCase()==="input"}function ab(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function rb(t,c){return t.button===0&&(!c||c==="_self")&&!ab(t)}function Qa(t=""){return new URLSearchParams(typeof t=="string"||Array.isArray(t)||t instanceof URLSearchParams?t:Object.keys(t).reduce((c,a)=>{let l=t[a];return c.concat(Array.isArray(l)?l.map(s=>[a,s]):[[a,l]])},[]))}function lb(t,c){let a=Qa(t);return c&&c.forEach((l,s)=>{a.has(s)||c.getAll(s).forEach(o=>{a.append(s,o)})}),a}var u5=null;function ib(){if(u5===null)try{new FormData(document.createElement("form"),0),u5=!1}catch{u5=!0}return u5}var sb=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function na(t){return t!=null&&!sb.has(t)?(A4(!1,`"${t}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${D5}"`),null):t}function ob(t,c){let a,l,s,o,h;if(cb(t)){let m=t.getAttribute("action");l=m?R3(m,c):null,a=t.getAttribute("method")||T5,s=na(t.getAttribute("enctype"))||D5,o=new FormData(t)}else if(eb(t)||nb(t)&&(t.type==="submit"||t.type==="image")){let m=t.form;if(m==null)throw new Error('Cannot submit a ) : null} -
- {items.length ? items :

No items configured.

} -
+ +
+ {items.length ? items :

No items configured.

} +
+
); } diff --git a/webui/src/admin/styles.css b/webui/src/admin/styles.css index 33c275ea..204c36e9 100644 --- a/webui/src/admin/styles.css +++ b/webui/src/admin/styles.css @@ -14,6 +14,14 @@ @apply min-w-0; } +.configuration-card .configuration-card { + /* Indent the next structural boundary itself, not every row owned by the + parent. Since nested CardFrames repeat this rule, the offset accumulates + naturally at each level just like indentation in a YAML document. */ + margin-left: 1rem; + width: calc(100% - 1rem); +} + .configuration-card-body { /* The shared card supplies the border, header, and background. Its body needs only compact padding and vertical rhythm for descriptions, actions, rows, @@ -22,10 +30,10 @@ } .configuration-children { - /* Each structural card contributes one visible indentation level. Repeating - this simple rule through nested cards mirrors YAML depth without restoring - the custom guide lines and pseudo-card styling removed earlier. */ - @apply ml-2 space-y-0.5; + /* Scalar rows belong directly to their current CardFrame and therefore do + not receive blanket indentation. Nested CardFrames handle their own offset + in the rule above, keeping keys aligned with their owning section. */ + @apply space-y-0.5; } .configuration-line { @@ -44,7 +52,9 @@ .configuration-branch-description, .configuration-item-description, .configuration-value-description { - @apply block text-[0.7rem] leading-tight text-slate-500; + /* Configuration guidance must remain comfortably readable; these are often + full operational explanations rather than disposable form hints. */ + @apply block text-sm leading-snug text-slate-300; margin-top: 0.125rem; } diff --git a/webui/src/components/CardFrame/index.jsx b/webui/src/components/CardFrame/index.jsx index 38e8e64a..07c257ba 100644 --- a/webui/src/components/CardFrame/index.jsx +++ b/webui/src/components/CardFrame/index.jsx @@ -33,6 +33,7 @@ export default function CardFrame({ title = '', meta = null, actions = null, + color = null, hideHeader = false, className = '', headerClassName = '', @@ -50,27 +51,26 @@ export default function CardFrame({ const rover = roster.find((entry) => String(entry?.id) === roverId); return rover?.color || null; }); - const accentRgb = hexToRgb(ownRoverColor); - - // swap these to toggle rover card border colors stuff - // Green mode is global server chrome, so it wins over the assigned rover's - // personal accent while active. Keeping this override in CardFrame makes all - // present and future cards participate without sprinkling mode checks around. + + // Callers can supply a structural accent, while ordinary cards continue to + // inherit the assigned rover's color without needing to know session state. + const accentRgb = hexToRgb(color || ownRoverColor); + const cardStyle = greenMode ? { borderColor: '#008a35' } : accentRgb ? { borderColor: rgba(accentRgb, 0.3) } : undefined; - // const cardStyle = undefined; - const headerStyle = greenMode ? { borderColor: '#008a35' } : accentRgb ? { - // backgroundImage: `linear-gradient(90deg, rgba(23,23,23,0.96) 0%, rgba(38,38,38,0.94) 0%, ${rgba(accentRgb, 0.1)} 100%)`, + // The header divider uses the same accent as the outside border. This + // makes the color describe the complete CardFrame rather than looking + // like an unrelated tint applied only behind its title. + borderColor: rgba(accentRgb, 0.3), backgroundImage: `linear-gradient(90deg, ${rgba(accentRgb, 0.2)} 100%)`, - // backgroundImage: `background-color: ${rgba(accentRgb, 0.2)}` } : undefined;