promptfoo 0.64.0 → 0.65.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +39 -39
  2. package/dist/package.json +13 -10
  3. package/dist/src/assertions.d.ts +2 -1
  4. package/dist/src/assertions.d.ts.map +1 -1
  5. package/dist/src/assertions.js +89 -1
  6. package/dist/src/assertions.js.map +1 -1
  7. package/dist/src/commands/export.d.ts.map +1 -1
  8. package/dist/src/commands/export.js +28 -11
  9. package/dist/src/commands/export.js.map +1 -1
  10. package/dist/src/csv.js +1 -1
  11. package/dist/src/csv.js.map +1 -1
  12. package/dist/src/database.js.map +1 -1
  13. package/dist/src/main.js +2 -1
  14. package/dist/src/main.js.map +1 -1
  15. package/dist/src/matchers.js +1 -1
  16. package/dist/src/matchers.js.map +1 -1
  17. package/dist/src/onboarding.d.ts +1 -1
  18. package/dist/src/onboarding.d.ts.map +1 -1
  19. package/dist/src/onboarding.js +22 -12
  20. package/dist/src/onboarding.js.map +1 -1
  21. package/dist/src/providers/defaults.d.ts.map +1 -1
  22. package/dist/src/providers/defaults.js.map +1 -1
  23. package/dist/src/providers/openaiUtil.js.map +1 -1
  24. package/dist/src/providers/pythonCompletion.js +3 -3
  25. package/dist/src/providers/pythonCompletion.js.map +1 -1
  26. package/dist/src/providers/scriptCompletion.js +1 -1
  27. package/dist/src/providers/scriptCompletion.js.map +1 -1
  28. package/dist/src/providers/vertex.d.ts.map +1 -1
  29. package/dist/src/providers/vertex.js +3 -1
  30. package/dist/src/providers/vertex.js.map +1 -1
  31. package/dist/src/python/wrapper.d.ts.map +1 -1
  32. package/dist/src/python/wrapper.js +1 -0
  33. package/dist/src/python/wrapper.js.map +1 -1
  34. package/dist/src/redteam/getHarmfulTests.d.ts +2 -2
  35. package/dist/src/redteam/getHarmfulTests.d.ts.map +1 -1
  36. package/dist/src/redteam/getHarmfulTests.js +5 -3
  37. package/dist/src/redteam/getHarmfulTests.js.map +1 -1
  38. package/dist/src/redteam/getPoliticalStatementsTests.d.ts +3 -0
  39. package/dist/src/redteam/getPoliticalStatementsTests.d.ts.map +1 -0
  40. package/dist/src/redteam/getPoliticalStatementsTests.js +78 -0
  41. package/dist/src/redteam/getPoliticalStatementsTests.js.map +1 -0
  42. package/dist/src/redteam/{getUnintendedContracts.d.ts → getUnintendedContractTests.d.ts} +1 -1
  43. package/dist/src/redteam/getUnintendedContractTests.d.ts.map +1 -0
  44. package/dist/src/redteam/{getUnintendedContracts.js → getUnintendedContractTests.js} +4 -19
  45. package/dist/src/redteam/getUnintendedContractTests.js.map +1 -0
  46. package/dist/src/redteam/index.d.ts.map +1 -1
  47. package/dist/src/redteam/index.js +9 -5
  48. package/dist/src/redteam/index.js.map +1 -1
  49. package/dist/src/types.d.ts +1 -1
  50. package/dist/src/types.d.ts.map +1 -1
  51. package/dist/src/web/nextui/404/index.html +1 -1
  52. package/dist/src/web/nextui/404.html +1 -1
  53. package/dist/src/web/nextui/_next/static/chunks/2-f4fbce4502797818.js +1 -0
  54. package/dist/src/web/nextui/_next/static/chunks/{7-fcb7ff53c7fbc4db.js → 371-0554dc4f28404020.js} +4 -4
  55. package/dist/src/web/nextui/_next/static/chunks/407.42b5daf65ab5dde9.js +1 -0
  56. package/dist/src/web/nextui/_next/static/chunks/{540-56159a4d6bc0d205.js → 540-378a20144435cec6.js} +3 -3
  57. package/dist/src/web/nextui/_next/static/chunks/873-8bd18cf80e6e64e1.js +1 -0
  58. package/dist/src/web/nextui/_next/static/chunks/{135-7aa62cd3f1582b50.js → 915-cd96102a51e75c9d.js} +1 -1
  59. package/dist/src/web/nextui/_next/static/chunks/954-58788165fb1e9563.js +6 -0
  60. package/dist/src/web/nextui/_next/static/chunks/app/eval/[id]/{page-21a8f23fc1ff5766.js → page-c03dd433a28716f5.js} +1 -1
  61. package/dist/src/web/nextui/_next/static/chunks/app/eval/page-c0bc2eece315a5fb.js +1 -0
  62. package/dist/src/web/nextui/_next/static/chunks/app/report/page-b867cf8da71d8b7a.js +1 -0
  63. package/dist/src/web/nextui/_next/static/chunks/app/setup/{page-ea89f5d80fa5f537.js → page-1bdf4d8a82ca083a.js} +1 -1
  64. package/dist/src/web/nextui/_next/static/chunks/{webpack-e7b8eadb84044d12.js → webpack-c469fe135043664b.js} +1 -1
  65. package/dist/src/web/nextui/_next/static/css/15e7b41f5e8a79bf.css +1 -0
  66. package/dist/src/web/nextui/_next/static/css/{a01afc4841be59dc.css → 51f7d6933894a4f8.css} +1 -1
  67. package/dist/src/web/nextui/_next/static/css/85bfc598653c1699.css +1 -0
  68. package/dist/src/web/nextui/auth/login/index.html +1 -1
  69. package/dist/src/web/nextui/auth/login/index.txt +5 -5
  70. package/dist/src/web/nextui/auth/signup/index.html +1 -1
  71. package/dist/src/web/nextui/auth/signup/index.txt +5 -5
  72. package/dist/src/web/nextui/datasets/index.html +1 -1
  73. package/dist/src/web/nextui/datasets/index.txt +5 -5
  74. package/dist/src/web/nextui/eval/index.html +1 -1
  75. package/dist/src/web/nextui/eval/index.txt +7 -7
  76. package/dist/src/web/nextui/index.html +1 -1
  77. package/dist/src/web/nextui/index.txt +4 -4
  78. package/dist/src/web/nextui/progress/index.html +1 -1
  79. package/dist/src/web/nextui/progress/index.txt +5 -5
  80. package/dist/src/web/nextui/prompts/index.html +1 -1
  81. package/dist/src/web/nextui/prompts/index.txt +5 -5
  82. package/dist/src/web/nextui/report/index.html +1 -1
  83. package/dist/src/web/nextui/report/index.txt +7 -7
  84. package/dist/src/web/nextui/setup/index.html +2 -2
  85. package/dist/src/web/nextui/setup/index.txt +6 -6
  86. package/dist/src/web/server.js.map +1 -1
  87. package/package.json +13 -10
  88. package/dist/src/redteam/getUnintendedContracts.d.ts.map +0 -1
  89. package/dist/src/redteam/getUnintendedContracts.js.map +0 -1
  90. package/dist/src/web/nextui/_next/static/chunks/226-c7a61af9c30bcc15.js +0 -1
  91. package/dist/src/web/nextui/_next/static/chunks/278.60b6d47e5a936f0b.js +0 -1
  92. package/dist/src/web/nextui/_next/static/chunks/873-0692f91d92df9b1d.js +0 -1
  93. package/dist/src/web/nextui/_next/static/chunks/954-5ae50ec0b4434ae9.js +0 -6
  94. package/dist/src/web/nextui/_next/static/chunks/app/eval/page-8537d53eadbd4117.js +0 -1
  95. package/dist/src/web/nextui/_next/static/chunks/app/report/page-dc993735a78d31e4.js +0 -1
  96. package/dist/src/web/nextui/_next/static/css/0e96bc835813e9d5.css +0 -1
  97. package/dist/src/web/nextui/_next/static/css/962981c6b98dedf4.css +0 -1
  98. /package/dist/src/web/nextui/_next/static/{2jOnlz9DOwDLK-xyLaOBO → C2Dv48m6CgDxGTiIilVxH}/_buildManifest.js +0 -0
  99. /package/dist/src/web/nextui/_next/static/{2jOnlz9DOwDLK-xyLaOBO → C2Dv48m6CgDxGTiIilVxH}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[226],{49532:function(e,t,n){"use strict";let s,l;async function a(){if(s||(l||(l=fetch("/api/config").then(e=>e.json()).then(e=>s=e.apiBaseUrl)),await l),void 0===s)throw Error("API base URL is undefined");return s}n.d(t,{b:function(){return a}})},94226:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return e$}});var s=n(24004),l=n(14978),a=n(93179),i=n(11615),r=n(74997),o=n(28891),c=n(12594),d=n(43205),u=n(68873),p=n(49567),h=n(40982),m=n(24362),x=n(5592),g=n(42610),j=n(14931),v=n(39813),f=n(63147),b=n(1852),y=n(94941),Z=n(57027),w=n(36273),C=n(96976),k=n(8508),S=n(34304),N=n(75307),R=n(17178),I=n(32414),E=n(67339),P=n(65969),O=n(14059),F=n(23223),M=n(34235),T=n(48931),L=n(29794),D=n(51956),U=n(79685),A=n(74595),W=n(37204);let _={getItem:async e=>await (0,W.U2)(e)||null,setItem:async(e,t)=>{await (0,W.t8)(e,t)},removeItem:async e=>{await (0,W.IV)(e)}},z=(0,U.Ue)()((0,A.tJ)((e,t)=>({evalId:null,setEvalId:t=>e(()=>({evalId:t})),table:null,setTable:t=>e(()=>({table:t})),config:null,setConfig:t=>e(()=>({config:t})),maxTextLength:250,setMaxTextLength:t=>e(()=>({maxTextLength:t})),wordBreak:"break-word",setWordBreak:t=>e(()=>({wordBreak:t})),showInferenceDetails:!0,setShowInferenceDetails:t=>e(()=>({showInferenceDetails:t})),renderMarkdown:!1,setRenderMarkdown:t=>e(()=>({renderMarkdown:t})),prettifyJson:!1,setPrettifyJson:t=>e(()=>({prettifyJson:t})),showPrompts:!1,setShowPrompts:t=>e(()=>({showPrompts:t}))}),{name:"ResultsViewStorage",storage:(0,A.FL)(()=>_)}));var V=function(){let{table:e,config:t,evalId:n}=z(),[a,i]=l.useState(!1),r=(e,t)=>{let n=URL.createObjectURL(e),s=document.createElement("a");s.href=n,s.download=t,document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(n)},o=()=>{i(!1)};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(C.Z,{onClick:()=>{i(!0)},children:[(0,s.jsx)(Z.Z,{children:(0,s.jsx)(T.Z,{fontSize:"small"})}),(0,s.jsx)(y.Z,{children:"Download"})]}),(0,s.jsx)(L.Z,{onClose:o,open:a,children:(0,s.jsx)(D.Z,{children:(0,s.jsxs)(I.Z,{direction:"column",spacing:2,sx:{width:"100%"},children:[(0,s.jsx)(h.Z,{onClick:()=>{let e=M.default.dump(t),n=new Blob([e],{type:"text/yaml;charset=utf-8"});r(n,"promptfooconfig.yaml"),o()},startIcon:(0,s.jsx)(T.Z,{}),fullWidth:!0,sx:{justifyContent:"flex-start"},children:"Download YAML Config"}),(0,s.jsx)(h.Z,{onClick:()=>{if(!e){alert("No table data");return}let t=new Blob([JSON.stringify(e,null,2)],{type:"application/json"});r(t,"".concat(n,"-table.json")),o()},startIcon:(0,s.jsx)(T.Z,{}),fullWidth:!0,sx:{justifyContent:"flex-start"},children:"Download Table JSON"}),(0,s.jsx)(h.Z,{onClick:()=>{if(!e){alert("No table data");return}let t=e.body.map((t,n)=>({chosen:t.outputs.filter(e=>e.pass).map(e=>e.text),rejected:t.outputs.filter(e=>!e.pass).map(e=>e.text),vars:t.test.vars,providers:e.head.prompts.map(e=>e.provider),prompts:e.head.prompts.map(e=>e.label||e.display||e.raw)})),s=new Blob([JSON.stringify(t,null,2)],{type:"application/json"});r(s,"".concat(n,"-dpo.json")),o()},startIcon:(0,s.jsx)(T.Z,{}),fullWidth:!0,sx:{justifyContent:"flex-start"},children:"Download DPO JSON"})]})})})]})},B=n(36001),J=n(82669),H=n(92863),G=n(37803),X=n(77656),Y=n(92715),q=n(69179);let $=["#fd7f6f","#7eb0d5","#b2e061","#bd7ebe","#ffb55a","#ffee65","#beb9db","#fdcce5","#8bd3c7"];function K(e){let{table:t}=e,n=(0,l.useRef)(null),a=(0,l.useRef)(null);return(0,l.useEffect)(()=>{if(!n.current)return;a.current&&a.current.destroy();let e=t.body.flatMap(e=>e.outputs.map(e=>e.score)),s=Math.min(...e),l=(Math.ceil(Math.max(...e))-Math.floor(s))/10,i=Array.from({length:11},(e,t)=>parseFloat((Math.floor(s)+t*l).toFixed(2))),r=t.head.prompts.map((e,n)=>{let s=t.body.flatMap(e=>e.outputs[n].score),a=i.map(e=>s.filter(t=>t>=e&&t<e+l).length);return{label:"Column ".concat(n+1),data:a,backgroundColor:$[n%$.length]}});a.current=new B.kL(n.current,{type:"bar",data:{labels:i,datasets:r},options:{animation:!1,plugins:{title:{display:!0,text:"Score Distribution"},legend:{display:!1},tooltip:{callbacks:{title:function(e){let t=e[0].datasetIndex;return"Column ".concat(t+1)},label:function(e){let t=e.dataIndex,n=i[t],s=i[t+1];return s?"".concat(n," <= score < ").concat(s):"".concat(n," <= score")}}}}}})},[t]),(0,s.jsx)("canvas",{ref:n,style:{maxHeight:"300px"}})}function Q(e){let{table:t}=e,n=(0,l.useRef)(null),a=(0,l.useRef)(null);return(0,l.useEffect)(()=>{if(!n.current)return;a.current&&a.current.destroy();let e=t.head.prompts.map((e,n)=>{let s=t.body.flatMap(e=>e.outputs[n]),l=s.filter(e=>e.pass).length,a=l/s.length*100;return{label:"Column ".concat(n+1),data:[a],backgroundColor:$[n%$.length]}});a.current=new B.kL(n.current,{type:"bar",data:{labels:["Pass Rate (%)"],datasets:e},options:{animation:!1,plugins:{title:{display:!0,text:"Pass rate"},legend:{display:!0}}}})},[t]),(0,s.jsx)("canvas",{ref:n,style:{maxHeight:"300px"}})}function ee(e){let{table:t}=e,n=(0,l.useRef)(null),a=(0,l.useRef)(null),[i,r]=(0,l.useState)(0),[o,c]=(0,l.useState)(1),[d,u]=(0,l.useState)(!1);return(0,l.useEffect)(()=>{if(!n.current)return;a.current&&a.current.destroy();let e=t.body.flatMap(e=>e.outputs.map(e=>e.score)),s=Math.min(...e),l=Math.max(...e),r=t.body.map(e=>{let t=e.outputs[i].score,n=e.outputs[o].score;return{x:t,y:n,backgroundColor:n>t?"green":n<t?"red":"gray"}});a.current=new B.kL(n.current,{type:"scatter",data:{datasets:[{data:r,backgroundColor:r.map(e=>e.backgroundColor)},{type:"line",data:[{x:s,y:s},{x:l,y:l}],borderColor:"gray",borderWidth:1,borderDash:[5,5],pointRadius:0}]},options:{animation:!1,plugins:{legend:{display:!1},tooltip:{callbacks:{label:function(e){let n=t.body[e.dataIndex],s=n.outputs[0].text,l=n.outputs[1].text;return s.length>30&&(s=s.substring(0,30)+"..."),l.length>30&&(l=l.substring(0,30)+"..."),"Output 1: ".concat(s,"\nOutput 2: ").concat(l)}}}},scales:{x:{title:{display:!0,text:"Prompt ".concat(i+1," Score")},ticks:{callback:function(e,t,n){let s=String(Math.round(100*Number(e)));return t===n.length-1&&(s+="%"),s}}},y:{title:{display:!0,text:"Prompt ".concat(o+1," Score")},ticks:{callback:function(e,t,n){let s=String(Math.round(100*Number(e)));return t===n.length-1&&(s+="%"),s}}}}}})},[t,i,o]),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(L.Z,{open:d,onClose:()=>u(!1),children:[(0,s.jsx)(J.Z,{children:"Compare prompt outputs"}),(0,s.jsxs)(D.Z,{children:[(0,s.jsx)(v.Z,{sx:{m:1,minWidth:120},children:(0,s.jsx)(S.Z,{value:i,onChange:e=>r(Number(e.target.value)),children:t.head.prompts.map((e,t)=>(0,s.jsxs)(C.Z,{value:t,children:["Prompt ",t+1]},t))})}),(0,s.jsx)(v.Z,{sx:{m:1,minWidth:120},children:(0,s.jsx)(S.Z,{value:o,onChange:e=>c(Number(e.target.value)),children:t.head.prompts.map((e,t)=>(0,s.jsxs)(C.Z,{value:t,children:["Prompt ",t+1]},t))})})]})]}),(0,s.jsx)("canvas",{ref:n,style:{maxHeight:"300px",cursor:"pointer"},onClick:()=>u(!0)})]})}function et(e){let{table:t}=e,n=(0,l.useRef)(null),a=(0,l.useRef)(null);return(0,l.useEffect)(()=>{var e;if(!n.current)return;a.current&&a.current.destroy();let s=Object.keys((null===(e=t.head.prompts[0].metrics)||void 0===e?void 0:e.namedScores)||{}),l=t.head.prompts.map((e,n)=>{let l=s.map(n=>{var s;let l=(null===(s=e.metrics)||void 0===s?void 0:s.namedScores[n])||0,a=Math.max(...t.head.prompts.map(e=>{var t;return(null===(t=e.metrics)||void 0===t?void 0:t.namedScores[n])||0}));return l/a});return{label:"".concat(t.head.prompts[n].provider),data:l,backgroundColor:$[n%$.length]}});a.current=new B.kL(n.current,{type:"bar",data:{labels:s,datasets:l},options:{scales:{x:{grid:{display:!1}},y:{ticks:{callback:function(e,t,n){let s=String(Math.round(100*Number(e)));return t===n.length-1&&(s+="%"),s}}}},plugins:{tooltip:{callbacks:{title:function(e){return e[0].dataset.label},label:function(e){let t=e.parsed.y;return"".concat(s[e.dataIndex],": ").concat((100*t).toFixed(2),"% pass rate")}}}}}})},[t]),(0,s.jsx)("canvas",{ref:n,style:{maxHeight:"300px"}})}B.kL.register(B.vn,B.ST,B.ho,B.uw,B.f$,B.ZL,B.jn,B.od,B.u,B.wL);var en=l.memo(function(e){var t;let{columnVisibility:n}=e,a=(0,H.Z)();B.kL.defaults.color="dark"===a.palette.mode?"#aaa":"#666";let[i,r]=(0,l.useState)(!0),{table:o}=z();if(!o||!i||o.head.prompts.length<2)return null;let c=o.body.flatMap(e=>e.outputs.map(e=>e.score)),d=new Set(c);return 1===d.size?null:(0,s.jsx)(q.SV,{fallback:null,children:(0,s.jsxs)(G.Z,{style:{position:"relative",padding:a.spacing(3)},children:[(0,s.jsx)(X.Z,{style:{position:"absolute",right:0,top:0},onClick:()=>r(!1),children:(0,s.jsx)(Y.Z,{})}),(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",width:"100%"},children:[(0,s.jsx)("div",{style:{width:"33%"},children:(0,s.jsx)(Q,{table:o})}),(0,s.jsx)("div",{style:{width:"33%"},children:d.size<=3&&Object.keys((null===(t=o.head.prompts[0].metrics)||void 0===t?void 0:t.namedScores)||{}).length>1?(0,s.jsx)(et,{table:o}):(0,s.jsx)(K,{table:o})}),(0,s.jsx)("div",{style:{width:"33%"},children:(0,s.jsx)(ee,{table:o})})]})]})})}),es=n(19116);n(24393);var el=n(50459),ea=n(36128),ei=n(9317),er=n(62268),eo=n(59682),ec=n(38640),ed=n.n(ec),eu=n(22701),ep=e=>{let{open:t,contextText:n,commentText:l,onClose:a,onSave:i,onChange:r}=e;return(0,s.jsxs)(L.Z,{open:t,onClose:a,fullWidth:!0,maxWidth:"sm",children:[(0,s.jsx)(J.Z,{children:"Edit Comment"}),(0,s.jsxs)(D.Z,{children:[(0,s.jsx)(p.Z,{sx:{backgroundColor:"#f0f0f0",padding:2,marginBottom:2},children:n}),(0,s.jsx)(E.Z,{autoFocus:!0,margin:"dense",type:"text",fullWidth:!0,multiline:!0,rows:4,value:l,onChange:e=>r(e.target.value)})]}),(0,s.jsxs)(eu.Z,{children:[(0,s.jsx)(h.Z,{onClick:i,color:"primary",variant:"contained",children:"Save"}),(0,s.jsx)(h.Z,{onClick:a,color:"primary",children:"Cancel"})]})]})};n(55974);var eh=e=>{let{lookup:t,onSearchTextChange:n}=e;return t&&Object.keys(t).length?(0,s.jsx)("div",{className:"custom-metric-container",children:Object.entries(t).map(e=>{let[t,l]=e;return t&&void 0!==l?(0,s.jsxs)("span",{onClick:()=>n&&n("metric=".concat(t)),className:n?"clickable":"",children:[t,": ",l.toFixed(2)]},t):null})}):null},em=n(613),ex=n(35185),eg=n(26110),ej=n(65068),ev=n(70417),ef=n(21303),eb=n(61451),ey=n(26485),eZ=n(30021);function ew(e){let{gradingResults:t}=e;return t?(0,s.jsxs)(p.Z,{mt:2,children:[(0,s.jsx)(f.Z,{variant:"subtitle1",children:"Assertions"}),(0,s.jsx)(eb.Z,{children:(0,s.jsxs)(ej.Z,{children:[(0,s.jsx)(ey.Z,{children:(0,s.jsxs)(eZ.Z,{children:[(0,s.jsx)(ef.Z,{style:{fontWeight:"bold"},children:"Pass"}),(0,s.jsx)(ef.Z,{style:{fontWeight:"bold"},children:"Score"}),(0,s.jsx)(ef.Z,{style:{fontWeight:"bold"},children:"Type"}),(0,s.jsx)(ef.Z,{style:{fontWeight:"bold"},children:"Value"}),(0,s.jsx)(ef.Z,{style:{fontWeight:"bold"},children:"Reason"})]})}),(0,s.jsx)(ev.Z,{children:t.map((e,t)=>{var n,l;return(0,s.jsxs)(eZ.Z,{children:[(0,s.jsx)(ef.Z,{children:e.pass?"✅":"❌"}),(0,s.jsx)(ef.Z,{children:e.score.toFixed(2)}),(0,s.jsx)(ef.Z,{children:(null===(n=e.assertion)||void 0===n?void 0:n.type)||""}),(0,s.jsx)(ef.Z,{style:{whiteSpace:"pre-wrap"},children:(null===(l=e.assertion)||void 0===l?void 0:l.value)?String(e.assertion.value):"-"}),(0,s.jsx)(ef.Z,{style:{whiteSpace:"pre-wrap"},children:e.reason})]},t)})})]})})]}):null}function eC(e){let{open:t,onClose:n,prompt:a,provider:i,output:r,gradingResults:o}=e,[c,d]=(0,l.useState)(!1);(0,l.useEffect)(()=>{d(!1)},[a]);let u=async e=>{await navigator.clipboard.writeText(e),d(!0)};return(0,s.jsxs)(L.Z,{open:t,onClose:n,fullWidth:!0,maxWidth:"lg",children:[(0,s.jsxs)(J.Z,{children:["Details",i&&": ".concat(i)]}),(0,s.jsxs)(D.Z,{children:[(0,s.jsxs)(p.Z,{mb:2,children:[(0,s.jsx)(f.Z,{variant:"subtitle1",style:{marginBottom:"1rem"},children:"Prompt"}),(0,s.jsx)(em.u,{readOnly:!0,value:a,style:{width:"100%",padding:"0.75rem"},maxRows:20}),(0,s.jsx)(X.Z,{onClick:()=>u(a),style:{position:"absolute",right:"10px",top:"10px"},children:c?(0,s.jsx)(eg.Z,{}):(0,s.jsx)(ex.Z,{})})]}),r&&(0,s.jsxs)(p.Z,{my:2,children:[(0,s.jsx)(f.Z,{variant:"subtitle1",style:{marginBottom:"1rem",marginTop:"1rem"},children:"Output"}),(0,s.jsx)(em.u,{readOnly:!0,maxRows:20,value:r,style:{width:"100%",padding:"0.75rem"}})]}),(0,s.jsx)(ew,{gradingResults:o})]}),(0,s.jsx)(eu.Z,{children:(0,s.jsx)(h.Z,{onClick:n,children:"Close"})})]})}var ek=n(12431),eS=n(8541),eN=function(){let e=(0,H.Z)(),[t,n]=l.useState(!1),a=()=>{n(!1)};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{style:{textAlign:"center",marginTop:20,marginBottom:40},children:(0,s.jsx)(h.Z,{variant:"text",color:"primary",startIcon:(0,s.jsx)(ek.Z,{}),onClick:()=>{n(!0)},children:"Generate test cases"})}),(0,s.jsxs)(L.Z,{open:t,onClose:a,children:[(0,s.jsx)(J.Z,{children:"Run on Command Line"}),(0,s.jsx)(D.Z,{children:(0,s.jsxs)(eS.Z,{children:[(0,s.jsx)("p",{children:"This feature is in beta. UI coming soon."}),(0,s.jsxs)("p",{children:["Run"," ",(0,s.jsx)(p.Z,{component:"code",sx:{backgroundColor:"dark"===e.palette.mode?"#424242":"#f0f0f0",padding:"2px 4px",borderRadius:"4px"},children:"promptfoo generate dataset"}),"to generate test cases on the command line."]})]})}),(0,s.jsx)(eu.Z,{children:(0,s.jsx)(h.Z,{onClick:a,color:"primary",children:"Close"})})]})]})},eR=n(49532);n(93207);let eI=(0,l.createContext)(void 0),eE=e=>{let{children:t}=e,[n,a]=(0,l.useState)(!1);return(0,l.useEffect)(()=>{let e=e=>{"Shift"===e.key&&a(!0)},t=e=>{"Shift"===e.key&&a(!1)};return window.addEventListener("keydown",e),window.addEventListener("keyup",t),()=>{window.removeEventListener("keydown",e),window.removeEventListener("keyup",t)}},[]),(0,s.jsx)(eI.Provider,{value:n,children:t})},eP=()=>{let e=(0,l.useContext)(eI);if(void 0===e)throw Error("useShiftKey must be used within a ShiftKeyProvider");return e};function eO(e){return"string"==typeof e||"number"==typeof e?e.toString().length:Array.isArray(e)?e.reduce((e,t)=>e+eO(t),0):l.isValidElement(e)&&e.props.children?l.Children.toArray(e.props.children).reduce((e,t)=>e+eO(t),0):0}let eF=l.memo(function(e){let t,{text:n,maxLength:a}=e,[i,r]=l.useState(!0),o=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if("string"==typeof e||"number"==typeof e){let n=e.toString();return n.slice(0,a-t)}if(Array.isArray(e)){let n=[],s=t;for(let t of e){let e=eO(t);if(s+e>a){n.push(o(t,s));break}n.push(t),s+=e}return n}if(l.isValidElement(e)&&e.props.children){let n=eO(e.props.children);if(n>a-t)return l.cloneElement(e,{...e.props,children:o(e.props.children,t)})}return e};t=l.isValidElement(n)||"string"==typeof n?n:JSON.stringify(n);let c=i?o(t):t,d=eO(t)>a;return(0,s.jsxs)("div",{style:{cursor:d?"pointer":"normal"},onClick:()=>{r(!i)},children:[c,i&&eO(t)>a&&(0,s.jsx)("span",{children:"..."})]})}),eM=l.memo(function(e){var t,n,a,i,r,o,c,d,u,p,h,m,x;let g,j,v,f,b,y,{output:Z,maxTextLength:w,rowIndex:C,promptIndex:k,onRating:S,firstOutput:N,showDiffs:R,searchText:I,showStats:E}=e,{renderMarkdown:O,prettifyJson:F,showPrompts:M}=z(),[T,L]=l.useState(!1),[D,U]=l.useState(!1),[A,W]=l.useState(null),_=e=>{W(e||null),U(!D)},[V,B]=l.useState(!1),[J,H]=l.useState((null===(t=Z.gradingResult)||void 0===t?void 0:t.comment)||""),G=()=>{B(!0)},X="string"==typeof Z.text?Z.text:JSON.stringify(Z.text),Y=[];if(!Z.pass&&X.includes("---")?X=(Y=X.split("---")).slice(1).join("---"):Y=[X],R&&N){let e,t="string"==typeof N.text?N.text:JSON.stringify(N.text);t.includes("---")&&(t=t.split("---").slice(1).join("---"));try{JSON.parse(t),JSON.parse(X),e=(0,es.CT)(t,X)}catch(n){e=t.includes(". ")&&X.includes(". ")?(0,es.SY)(t,X):(0,es.NV)(t,X)}g=(0,s.jsx)(s.Fragment,{children:e.map((e,t)=>e.added?(0,s.jsx)("ins",{children:e.value},t):e.removed?(0,s.jsx)("del",{children:e.value},t):(0,s.jsx)("span",{children:e.value},t))})}if(I)try{let e;let t=RegExp(I,"gi"),n=[];for(;null!==(e=t.exec(X));)n.push({start:e.index,end:t.lastIndex});g=(0,s.jsx)(s.Fragment,{children:n.length>0?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{children:X.substring(0,n[0].start)},"text-before"),n.map((e,t)=>(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"search-highlight",children:X.substring(e.start,e.end)},"match-"+t),(0,s.jsx)("span",{children:X.substring(e.end,n[t+1]?n[t+1].start:X.length)},"text-after-"+t)]}))]}):(0,s.jsx)("span",{children:X},"no-match")})}catch(e){console.error("Invalid regular expression:",e.message)}else if(O)g=(0,s.jsx)(el.U,{components:{img:e=>{let{src:t,alt:n}=e;return(0,s.jsx)("img",{loading:"lazy",src:t,alt:n,onClick:()=>_(t),style:{cursor:"pointer"}})}},children:X});else if(F)try{g=(0,s.jsx)("pre",{children:JSON.stringify(JSON.parse(X),null,2)})}catch(e){}let q=l.useCallback(e=>{var t;S(e,void 0,null===(t=Z.gradingResult)||void 0===t?void 0:t.comment)},[S,null===(n=Z.gradingResult)||void 0===n?void 0:n.comment]),$=l.useCallback(()=>{let e=prompt("Set test score (0.0 - 1.0):",String(Z.score));if(null!==e){let n=parseFloat(e);if(!isNaN(n)&&n>=0&&n<=1){var t;S(void 0,n,null===(t=Z.gradingResult)||void 0===t?void 0:t.comment)}else alert("Invalid score. Please enter a value between 0.0 and 1.0.")}},[S,Z.score,null===(a=Z.gradingResult)||void 0===a?void 0:a.comment]),[K,Q]=l.useState(!1),ee=l.useCallback(()=>{navigator.clipboard.writeText(Z.text),Q(!0)},[Z.text]);if(Z.latencyMs&&(v=(0,s.jsxs)("span",{children:[Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(Z.latencyMs)," ms"]})),null===(i=Z.tokenUsage)||void 0===i?void 0:i.completion){let e=Z.tokenUsage.completion/(Z.latencyMs/1e3);f=(0,s.jsx)("span",{children:Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(e)})}if(Z.cost&&(b=(0,s.jsxs)("span",{children:["$",Z.cost.toPrecision(2)]})),null===(r=Z.tokenUsage)||void 0===r?void 0:r.cached)j=(0,s.jsxs)("span",{children:[Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(Z.tokenUsage.cached)," ","(cached)"]});else if(null===(o=Z.tokenUsage)||void 0===o?void 0:o.total){let e=Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(null!==(h=Z.tokenUsage.prompt)&&void 0!==h?h:0),t=Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(null!==(m=Z.tokenUsage.completion)&&void 0!==m?m:0),n=Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(Z.tokenUsage.total);j=(0,s.jsx)(P.Z,{title:"".concat(e," prompt tokens + ").concat(t," completion tokens = ").concat(n," total"),children:(0,s.jsxs)("span",{children:[n,("0"!==e||"0"!==t)&&" (".concat(e,"+").concat(t,")")]})})}let et=(null===(c=Z.gradingResult)||void 0===c?void 0:c.comment)&&"!highlight"!==Z.gradingResult.comment?(0,s.jsx)("div",{className:"comment",onClick:G,children:Z.gradingResult.comment}):null,en=E?(0,s.jsxs)("div",{className:"cell-detail",children:[j&&(0,s.jsxs)("div",{className:"stat-item",children:[(0,s.jsx)("strong",{children:"Tokens:"})," ",j]}),v&&(0,s.jsxs)("div",{className:"stat-item",children:[(0,s.jsx)("strong",{children:"Latency:"})," ",v]}),f&&(0,s.jsxs)("div",{className:"stat-item",children:[(0,s.jsx)("strong",{children:"Tokens/Sec:"})," ",f]}),b&&(0,s.jsxs)("div",{className:"stat-item",children:[(0,s.jsx)("strong",{children:"Cost:"})," ",b]})]}):null,ea=eP(),ei=(0,s.jsxs)("div",{className:"cell-actions",children:[ea&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"action",onClick:ee,onMouseDown:e=>e.preventDefault(),children:(0,s.jsx)(P.Z,{title:"Copy output to clipboard",children:(0,s.jsx)("span",{children:K?"✅":"\uD83D\uDCCB"})})}),(0,s.jsx)("span",{className:"action",onClick:()=>{let e;J.startsWith("!highlight")?S(void 0,void 0,e=J.slice(10).trim()):S(void 0,void 0,e=("!highlight "+J).trim()),H(e)},onMouseDown:e=>e.preventDefault(),children:(0,s.jsx)(P.Z,{title:"Toggle test highlight",children:(0,s.jsx)("span",{children:"\uD83C\uDF1F"})})})]}),Z.prompt&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"action",onClick:()=>{L(!0)},children:(0,s.jsx)(P.Z,{title:"View ouput and test details",children:(0,s.jsx)("span",{children:"\uD83D\uDD0E"})})}),(0,s.jsx)(eC,{open:T,onClose:()=>{L(!1)},prompt:Z.prompt,provider:Z.provider,gradingResults:null===(d=Z.gradingResult)||void 0===d?void 0:d.componentResults,output:X})]}),(0,s.jsx)("span",{className:"action",onClick:()=>q(!0),children:(0,s.jsx)(P.Z,{title:"Mark test passed (score 1.0)",children:(0,s.jsx)("span",{children:"\uD83D\uDC4D"})})}),(0,s.jsx)("span",{className:"action",onClick:()=>q(!1),children:(0,s.jsx)(P.Z,{title:"Mark test failed (score 0.0)",children:(0,s.jsx)("span",{children:"\uD83D\uDC4E"})})}),(0,s.jsx)("span",{className:"action",onClick:$,children:(0,s.jsx)(P.Z,{title:"Set test score",children:(0,s.jsx)("span",{children:"\uD83D\uDD22"})})}),(0,s.jsx)("span",{className:"action",onClick:G,children:(0,s.jsx)(P.Z,{title:"Edit comment",children:(0,s.jsx)("span",{children:"✏️"})})})]}),er={};(null===(u=Z.gradingResult)||void 0===u?void 0:u.comment)==="!highlight"&&(er.backgroundColor="#ffffeb");let eo=0,ec=0,ed=Z.gradingResult;if(ed?ed.componentResults?ed.componentResults.forEach(e=>{e.pass?eo++:ec++}):(eo=ed.pass?1:0,ec=ed.pass?0:1):Z.pass?eo=1:Z.pass||(ec=1),1===ec&&1===eo)y=(0,s.jsxs)(s.Fragment,{children:["".concat(ec," FAIL")," ","".concat(eo," PASS")]});else{let e="";ec>1||eo>1&&ec>0?e="".concat(ec," FAIL"):1===ec&&(e="FAIL");let t="";eo>1||ec>1&&eo>0?t="".concat(eo," PASS"):1===eo&&0===ec&&(t="PASS");let n=e&&t?" ":"";y=(0,s.jsxs)(s.Fragment,{children:[e,n,t]})}let eu=null===(x=Z.score)||0===x||1===x?"":"(".concat(x.toFixed(2),")");return(0,s.jsxs)("div",{className:"cell",style:er,children:[Z.pass?(0,s.jsx)(s.Fragment,{children:(0,s.jsxs)("div",{className:"status pass",children:[(0,s.jsxs)("div",{className:"pill",children:[y,eu&&(0,s.jsxs)("span",{className:"score",children:[" ",eu]})]}),(0,s.jsx)(eh,{lookup:Z.namedScores})]})}):(0,s.jsx)(s.Fragment,{children:(0,s.jsxs)("div",{className:"status fail",children:[(0,s.jsxs)("div",{className:"pill",children:[y,eu&&(0,s.jsxs)("span",{className:"score",children:[" ",eu]})]}),(0,s.jsx)(eh,{lookup:Z.namedScores}),(0,s.jsx)("span",{className:"fail-reason",children:null===(p=Y[0])||void 0===p?void 0:p.trim().split("\n").map((e,t)=>(0,s.jsxs)(l.Fragment,{children:[e,(0,s.jsx)("br",{})]},t))})]})}),M&&N.prompt&&(0,s.jsxs)("div",{className:"prompt",children:[(0,s.jsx)("span",{className:"pill",children:"Prompt"}),Z.prompt]}),(0,s.jsx)(eF,{text:g||X,maxLength:w}),et,en,ei,D&&A&&(0,s.jsx)("div",{className:"lightbox",onClick:()=>_(),children:(0,s.jsx)("img",{src:A,alt:"Lightbox"})}),(0,s.jsx)(ep,{open:V,contextText:Z.text,commentText:J,onClose:()=>{B(!1)},onSave:()=>{S(void 0,void 0,J),B(!1)},onChange:H})]})});function eT(e){let{text:t,maxLength:n,expandedText:a,resourceId:i,className:r}=e,[o,c]=l.useState(!1);return(0,s.jsxs)("div",{className:"".concat(r||""),children:[(0,s.jsx)(eF,{text:t,maxLength:n}),a&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(P.Z,{title:"View prompt",children:(0,s.jsx)("span",{className:"action",onClick:()=>{c(!0)},children:"\uD83D\uDD0E"})}),(0,s.jsx)(eC,{open:o,onClose:()=>{c(!1)},prompt:a}),i&&(0,s.jsx)(P.Z,{title:"View other evals and datasets for this prompt",children:(0,s.jsx)("span",{className:"action",children:(0,s.jsx)(ed(),{href:"/prompts/?id=".concat(i),target:"_blank",children:(0,s.jsx)(eo.Z,{fontSize:"small"})})})})]})]})}var eL=l.memo(function(e){let{maxTextLength:t,columnVisibility:n,wordBreak:i,filterMode:r,failureFilter:o,searchText:c,showStats:d,onFailureFilterToggle:u,onSearchTextChange:x}=e,{evalId:g,table:j,setTable:v}=z();(0,a.Z)(j,"Table should be defined");let{head:b,body:y}=j,Z=l.useCallback(async(e,t,n,s,l)=>{var a,i;let r=[...y],o={...r[e]},c=[...o.outputs],d=null!=n?n:c[t].pass,u=void 0===s?n?1:0:s||0;c[t].pass=d,c[t].score=u;let p=(null===(a=c[t].gradingResult)||void 0===a?void 0:a.componentResults)||[];if(void 0!==n){let e=p.findIndex(e=>{var t;return(null===(t=e.assertion)||void 0===t?void 0:t.type)==="human"}),t={pass:d,score:u,reason:"Manual result (overrides all other grading results)",comment:l,assertion:{type:"human"}};-1!==e?p[e]=t:p.push(t)}let h={...c[t].gradingResult||{},pass:d,score:u,reason:"Manual result (overrides all other grading results)",comment:l,assertion:(null===(i=c[t].gradingResult)||void 0===i?void 0:i.assertion)||null,componentResults:p};c[t].gradingResult=h,o.outputs=c,r[e]=o;let m={head:b,body:r};v(m);try{let e=await fetch("".concat(await (0,eR.b)(),"/api/eval/").concat(g),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({table:m})});if(!e.ok)throw Error("Network response was not ok")}catch(e){console.error("Failed to update table:",e)}},[y,b,v,g]),w=Object.keys(n).length>0,k=l.useMemo(()=>{try{return RegExp(c,"i")}catch(e){return console.error("Invalid regular expression:",e.message),null}},[c]),N=l.useMemo(()=>{try{return y.map((e,t)=>({...e,outputs:e.outputs.map((e,n)=>({...e,originalRowIndex:t,originalPromptIndex:n}))})).filter(e=>{let t=!0;return"failures"===r?t=e.outputs.some((e,t)=>{let s="Prompt ".concat(t+1);return o[s]&&!e.pass&&(!w||n[s])}):"different"===r?t=!e.outputs.every(t=>t.text===e.outputs[0].text):"highlights"===r&&(console.log(e.outputs[0].text),t=e.outputs.some(e=>{var t,n;return null===(n=e.gradingResult)||void 0===n?void 0:null===(t=n.comment)||void 0===t?void 0:t.startsWith("!highlight")})),!!t&&(!c||!k||e.outputs.some(t=>{var n,s;let l=e.vars.map(e=>"var=".concat(e)).join(" "),a="".concat(t.text," ").concat(Object.keys(t.namedScores).map(e=>"metric=".concat(e)).join(" ")," ").concat((null===(n=t.gradingResult)||void 0===n?void 0:n.reason)||""," ").concat((null===(s=t.gradingResult)||void 0===s?void 0:s.comment)||"");return k.test("".concat(l," ").concat(a))}))})}catch(e){return console.error("Invalid regular expression:",e.message),y}},[y,o,r,c,n,w,k]);l.useEffect(()=>{B(e=>({...e,pageIndex:0}))},[o,r,c]);let R=l.useMemo(()=>b.prompts.map((e,t)=>y.reduce((e,n)=>e+(n.outputs[t].pass?1:0),0)),[b.prompts,y]),I=l.useMemo(()=>b.prompts.map((e,t)=>y.reduce((e,n)=>{var s,l;return e+((null===(l=n.outputs[t].gradingResult)||void 0===l?void 0:null===(s=l.componentResults)||void 0===s?void 0:s.length)||0)},0)),[b.prompts,y]),P=l.useMemo(()=>b.prompts.map((e,t)=>y.reduce((e,n)=>{var s;let l=null===(s=n.outputs[t].gradingResult)||void 0===s?void 0:s.componentResults;return e+(l?l.filter(e=>e.pass).length:0)},0)),[b.prompts,y]),O=l.useMemo(()=>R.reduce((e,t,n,s)=>t>s[e]?n:e,0),[R]),F=R[O],M=l.useMemo(()=>(0,ea.Cl)(),[]),{renderMarkdown:T}=z(),L=l.useMemo(()=>b.vars.length>0?[M.group({id:"vars",header:()=>(0,s.jsx)("span",{className:"font-bold",children:"Variables"}),columns:b.vars.map((e,n)=>M.accessor(e=>e.vars[n],{id:"Variable ".concat(n+1),header:()=>(0,s.jsx)(eT,{text:e,maxLength:t,className:"font-bold"}),cell:e=>{let n=e.getValue();return(0,s.jsx)("div",{className:"cell",children:T?(0,s.jsx)(el.U,{children:n}):(0,s.jsx)(eF,{text:n,maxLength:t})})},size:50}))})]:[],[M,b.vars,t,T]),D=l.useCallback((e,t)=>N[e].outputs[t],[N]),U=l.useCallback(e=>N[e].outputs[0],[N]),A=l.useMemo(()=>[M.group({id:"prompts",header:()=>(0,s.jsx)("span",{className:"font-bold",children:"Outputs"}),columns:b.prompts.map((e,n)=>M.accessor(e=>(function(e){if("string"==typeof e){let t=e.startsWith("[PASS]"),n=e;return e.startsWith("[PASS]")?n=n.slice(6):e.startsWith("[FAIL]")&&(n=n.slice(6)),{text:n,pass:t,score:t?1:0}}return e})(e.outputs[n]),{id:"Prompt ".concat(n+1),header:()=>{var l,a,i,c,p,h,g,j;let v=R[n]&&y.length?(R[n]/y.length*100).toFixed(2):"0.00",f=R[n]===F&&0!==F,b="Prompt ".concat(n+1),Z=o[b]||!1,w=d?(0,s.jsxs)("div",{className:"prompt-detail",children:[I[n]?(0,s.jsxs)("div",{children:[(0,s.jsx)("strong",{children:"Asserts:"})," ",P[n],"/",I[n]," passed"]}):null,(null===(l=e.metrics)||void 0===l?void 0:l.totalLatencyMs)?(0,s.jsxs)("div",{children:[(0,s.jsx)("strong",{children:"Avg Latency:"})," ",Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(e.metrics.totalLatencyMs/y.length)," ","ms"]}):null,(null===(i=e.metrics)||void 0===i?void 0:null===(a=i.tokenUsage)||void 0===a?void 0:a.total)?(0,s.jsxs)("div",{children:[(0,s.jsx)("strong",{children:"Avg Tokens:"})," ",Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(e.metrics.tokenUsage.total/y.length)]}):null,(null===(c=e.metrics)||void 0===c?void 0:c.totalLatencyMs)&&(null===(h=e.metrics)||void 0===h?void 0:null===(p=h.tokenUsage)||void 0===p?void 0:p.completion)?(0,s.jsxs)("div",{children:[(0,s.jsx)("strong",{children:"Tokens/Sec:"})," ",Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(e.metrics.tokenUsage.completion/(e.metrics.totalLatencyMs/1e3))]}):null,(null===(g=e.metrics)||void 0===g?void 0:g.cost)?(0,s.jsxs)("div",{children:[(0,s.jsx)("strong",{children:"Cost:"})," $",e.metrics.cost.toPrecision(2)]}):null]}):null,C=e.provider?e.provider.split(":"):[],k=C.length>1?(0,s.jsxs)(s.Fragment,{children:[C[0],":",(0,s.jsx)("strong",{children:C.slice(1).join(":")})]}):(0,s.jsx)("strong",{children:e.provider});return(0,s.jsxs)("div",{className:"output-header",children:[(0,s.jsxs)("div",{className:"pills",children:[e.provider?(0,s.jsx)("div",{className:"provider",children:k}):null,(0,s.jsx)("div",{className:"summary",children:(0,s.jsxs)("div",{className:"highlight ".concat(f?"success":""),children:[(0,s.jsxs)("strong",{children:[v,"% passing"]})," (",R[n],"/",y.length," cases)"]})}),(null===(j=e.metrics)||void 0===j?void 0:j.namedScores)&&Object.keys(e.metrics.namedScores).length>0?(0,s.jsx)(eh,{lookup:e.metrics.namedScores,onSearchTextChange:x}):null]}),(0,s.jsx)(eT,{className:"prompt-container",text:e.label||e.display||e.raw,expandedText:e.raw,maxLength:t,resourceId:e.id}),w,"failures"===r&&(0,s.jsx)(er.Z,{sx:{"& .MuiFormControlLabel-label":{fontSize:"0.75rem"}},control:(0,s.jsx)(m.Z,{checked:Z,onChange:e=>u(b,e.target.checked)}),label:"Show failures"})]})},cell:e=>{var l,a;let i=D(e.row.index,n);return(0,s.jsx)(eM,{output:i,maxTextLength:t,rowIndex:e.row.index,promptIndex:n,onRating:Z.bind(null,null!==(l=i.originalRowIndex)&&void 0!==l?l:e.row.index,null!==(a=i.originalPromptIndex)&&void 0!==a?a:n),firstOutput:U(e.row.index),showDiffs:"different"===r,searchText:c,showStats:d})}}))})],[M,b.prompts,R,y.length,F,o,d,I,P,t,u,r,c,D,U,Z,x]),W=l.useMemo(()=>{let e=y.some(e=>e.description);return e?{accessorFn:e=>e.description||"",id:"description",header:()=>(0,s.jsx)("span",{className:"font-bold",children:"Description"}),cell:e=>(0,s.jsx)(eF,{text:String(e.getValue()),maxLength:t}),size:50}:null},[y,t]),_=l.useMemo(()=>{let e=[];return W&&e.push(W),e.push(...L,...A),e},[W,L,A]),[V,B]=l.useState({pageIndex:0,pageSize:50}),J=(0,ei.b7)({data:N,columns:_,columnResizeMode:"onChange",getCoreRowModel:(0,ea.sC)(),getPaginationRowModel:(0,ea.G_)(),state:{columnVisibility:n,pagination:V}});return(0,s.jsxs)("div",{children:[(0,s.jsxs)("table",{className:"results-table firefox-fix ".concat(t<=25?"compact":""),style:{wordBreak:i},children:[(0,s.jsx)("thead",{children:J.getHeaderGroups().map(e=>(0,s.jsx)("tr",{className:"header",children:e.headers.map(e=>(0,s.jsxs)("th",{colSpan:e.colSpan,style:{width:e.getSize()},children:[e.isPlaceholder?null:(0,ei.ie)(e.column.columnDef.header,e.getContext()),(0,s.jsx)("div",{onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:"resizer ".concat(e.column.getIsResizing()?"isResizing":"")})]},e.id))},e.id))}),(0,s.jsx)("tbody",{children:J.getRowModel().rows.map((e,t)=>{let n=!1;return(0,s.jsx)("tr",{children:e.getVisibleCells().map(e=>{let l=e.column.id.startsWith("Variable")||"description"===e.column.id,a=!l&&!n;return a&&(n=!0),(0,s.jsx)("td",{style:{width:e.column.getSize()},className:"".concat(l?"variable":""," ").concat(0!==t||l?"":"first-prompt-row"," ").concat(a?"first-prompt-col":""),children:(0,ei.ie)(e.column.columnDef.cell,e.getContext())},e.id)})},e.id)})})]}),J.getPageCount()>1&&(0,s.jsxs)(p.Z,{className:"pagination",sx:{display:"flex",alignItems:"center",gap:2},children:[(0,s.jsx)(h.Z,{onClick:()=>{B(e=>({...e,pageIndex:Math.max(e.pageIndex-1,0)})),window.scrollTo(0,0)},disabled:0===J.getState().pagination.pageIndex,variant:"contained",children:"Previous"}),(0,s.jsxs)(f.Z,{component:"span",sx:{display:"flex",alignItems:"center",gap:1},children:["Page",(0,s.jsx)(E.Z,{size:"small",type:"number",value:J.getState().pagination.pageIndex+1,onChange:e=>{let t=e.target.value?Number(e.target.value)-1:0;B(e=>({...e,pageIndex:Math.min(Math.max(t,0),J.getPageCount()-1)}))},InputProps:{style:{width:"60px",textAlign:"center"}},variant:"outlined"}),(0,s.jsxs)("span",{children:["of ",J.getPageCount()]})]}),(0,s.jsx)(h.Z,{onClick:()=>{B(e=>({...e,pageIndex:Math.min(e.pageIndex+1,J.getPageCount()-1)})),window.scrollTo(0,0)},disabled:J.getState().pagination.pageIndex+1>=J.getPageCount(),variant:"contained",children:"Next"}),(0,s.jsxs)(f.Z,{component:"span",sx:{display:"flex",alignItems:"center",gap:1},children:[(0,s.jsxs)(S.Z,{value:V.pageSize,onChange:e=>{B({pageIndex:0,pageSize:Number(e.target.value)}),window.scrollTo(0,0)},displayEmpty:!0,inputProps:{"aria-label":"Results per page"},size:"small",sx:{m:1,minWidth:80},children:[(0,s.jsx)(C.Z,{value:10,children:"10"}),(0,s.jsx)(C.Z,{value:50,children:"50"}),(0,s.jsx)(C.Z,{value:100,children:"100"}),(0,s.jsx)(C.Z,{value:500,children:"500"}),(0,s.jsx)(C.Z,{value:1e3,children:"1000"})]}),(0,s.jsx)("span",{children:"results per page"})]})]}),(0,s.jsx)(eN,{})]})}),eD=n(99645);function eU(e){let{open:t,onClose:a}=e,{config:i}=z(),r=l.useRef(null),[o,c]=l.useState(!1),[d,u]=l.useState("");l.useEffect(()=>{t&&(async()=>{let{default:e}=await Promise.resolve().then(n.bind(n,34235));u(e.dump(i))})()},[t,i]);let m=()=>{c(!1),a()};return(0,s.jsxs)(L.Z,{open:t,onClose:m,"aria-labelledby":"config-dialog-title",maxWidth:"md",fullWidth:!0,children:[(0,s.jsx)(J.Z,{id:"config-dialog-title",children:(0,s.jsxs)(p.Z,{display:"flex",justifyContent:"space-between",alignItems:"center",children:[(0,s.jsx)(f.Z,{variant:"h6",style:{flexGrow:1},children:"Config"}),(0,s.jsxs)(p.Z,{children:[(0,s.jsx)(P.Z,{title:"Copy to clipboard",children:(0,s.jsx)(X.Z,{onClick:()=>{r.current&&(r.current.select(),document.execCommand("copy"),c(!0))},children:o?(0,s.jsx)(eg.Z,{}):(0,s.jsx)(eD.Z,{})})}),(0,s.jsx)(P.Z,{title:"Download .yaml",children:(0,s.jsx)(X.Z,{onClick:()=>{let e=new Blob([d],{type:"text/yaml;charset=utf-8"}),t=URL.createObjectURL(e),n=document.createElement("a");n.href=t,n.download="config.yaml",document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(t)},children:(0,s.jsx)(T.Z,{})})})]})]})}),(0,s.jsx)(D.Z,{children:(0,s.jsx)(f.Z,{variant:"body1",component:"div",children:(0,s.jsx)("textarea",{ref:r,readOnly:!0,value:d,style:{width:"100%",minHeight:"400px",fontFamily:"monospace",border:"1px solid #ccc"}})})}),(0,s.jsx)(eu.Z,{children:(0,s.jsx)(h.Z,{onClick:m,color:"primary",children:"Close"})})]})}var eA=e=>{let{open:t,onClose:n,shareUrl:a}=e,i=(0,l.useRef)(null),[r,o]=(0,l.useState)(!1),c=()=>{n(),o(!1)};return(0,s.jsxs)(L.Z,{open:t,onClose:c,PaperProps:{style:{minWidth:"min(660px, 100%)"}},children:[(0,s.jsx)(J.Z,{children:"Your eval is ready to share"}),(0,s.jsxs)(D.Z,{children:[(0,s.jsx)(E.Z,{inputRef:i,value:a,fullWidth:!0,InputProps:{readOnly:!0,endAdornment:(0,s.jsx)(X.Z,{onClick:()=>{i.current&&(i.current.select(),document.execCommand("copy"),o(!0))},children:r?(0,s.jsx)(eg.Z,{}):(0,s.jsx)(eD.Z,{})})}}),(0,s.jsx)(eS.Z,{sx:{fontSize:"0.75rem"},children:"Shared URLs are deleted after 2 weeks."})]}),(0,s.jsx)(eu.Z,{children:(0,s.jsx)(h.Z,{onClick:c,color:"primary",children:"Close"})})]})},eW=n(22695),e_=e=>{let{open:t,onClose:n}=e,{maxTextLength:l,setMaxTextLength:a,wordBreak:i,setWordBreak:r,showInferenceDetails:o,setShowInferenceDetails:c,renderMarkdown:d,setRenderMarkdown:u,prettifyJson:x,setPrettifyJson:g,showPrompts:j,setShowPrompts:v}=z();return(0,s.jsxs)(L.Z,{open:t,onClose:n,fullWidth:!0,maxWidth:"sm",children:[(0,s.jsx)(J.Z,{children:"Table View Settings"}),(0,s.jsxs)(D.Z,{children:[(0,s.jsx)(p.Z,{children:(0,s.jsx)(P.Z,{title:"Forcing line breaks makes it easier to adjust column widths to your liking",placement:"right",children:(0,s.jsx)(er.Z,{control:(0,s.jsx)(m.Z,{checked:"break-all"===i,onChange:e=>r(e.target.checked?"break-all":"break-word")}),label:"Force line breaks"})})}),(0,s.jsx)(p.Z,{children:(0,s.jsx)(er.Z,{control:(0,s.jsx)(m.Z,{checked:d,onChange:e=>u(e.target.checked)}),label:"Render model outputs as Markdown"})}),(0,s.jsx)(p.Z,{children:(0,s.jsx)(er.Z,{control:(0,s.jsx)(m.Z,{checked:x,onChange:e=>g(e.target.checked)}),label:"Prettify JSON outputs"})}),(0,s.jsx)(p.Z,{children:(0,s.jsx)(P.Z,{title:"Show the final prompt that produced the output in each cell.",placement:"right",children:(0,s.jsx)(er.Z,{control:(0,s.jsx)(m.Z,{checked:j,onChange:e=>v(e.target.checked)}),label:"Show full prompt in output cell"})})}),(0,s.jsx)(p.Z,{children:(0,s.jsx)(P.Z,{title:"Show detailed inference statistics such as latency, tokens used, cost, etc.",placement:"right",children:(0,s.jsx)(er.Z,{control:(0,s.jsx)(m.Z,{checked:o,onChange:e=>c(e.target.checked)}),label:"Show inference details"})})}),(0,s.jsxs)(p.Z,{maxWidth:"sm",children:[(0,s.jsxs)(f.Z,{mt:2,children:["Max text length: ",l]}),(0,s.jsx)(eW.ZP,{min:25,max:1e3,value:l,onChange:(e,t)=>a(t)})]})]}),(0,s.jsx)(eu.Z,{children:(0,s.jsx)(h.Z,{onClick:n,children:"Close"})})]})},ez=n(47887),eV=n(77580);let eB=eV.env.NEXT_PUBLIC_PROMPTFOO_REMOTE_API_BASE_URL||eV.env.NEXT_PUBLIC_PROMPTFOO_BASE_URL||eV.env.PROMPTFOO_REMOTE_API_BASE_URL||"https://api.promptfoo.dev",eJ=eV.env.NEXT_PUBLIC_PROMPTFOO_BASE_URL||eV.env.PROMPTFOO_REMOTE_APP_BASE_URL||"https://app.promptfoo.dev";n(58022);let eH=(0,O.Z)(I.Z)(e=>{let{theme:t}=e;return{maxWidth:"100%",flexWrap:"wrap",[t.breakpoints.down("sm")]:{flexDirection:"column"}}});function eG(e){var t;let{recentEvals:n,onRecentEvalSelected:r,defaultEvalId:c}=e,I=(0,o.useRouter)(),O=(0,o.useSearchParams)(),{table:M,config:T,setConfig:L,maxTextLength:D,wordBreak:U,showInferenceDetails:A,evalId:W}=z(),{setStateFromConfig:_}=(0,ez.o)(),[B,J]=l.useState(O.get("search")||""),[H]=(0,F.Nr)(B,1e3),G=e=>{J(e)},[X,Y]=l.useState({}),q=l.useCallback((e,t)=>{Y(n=>({...n,[e]:t}))},[Y]),[$,K]=l.useState("all"),[Q,ee]=l.useState(!1),[et,es]=l.useState(""),[el,ea]=l.useState(!1),ei=async()=>{ea(!0);try{let e=await fetch("".concat(eB,"/api/eval"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:{version:2,createdAt:new Date().toISOString(),results:{table:M},config:T}})}),{id:t}=await e.json(),n="".concat(eJ,"/eval/").concat(t);es(n),ee(!0)}catch(e){alert("Sorry, something went wrong.")}finally{ea(!1)}},[er,eo]=l.useState(!1),[ec,ed]=l.useState(!1);(0,a.Z)(M,"Table data must be loaded before rendering ResultsView");let{head:eu}=M,ep=async()=>{(0,a.Z)(T,"Config must be loaded before clicking its description");let e=window.prompt("Enter new description:",T.description);if(null!==e&&e!==T.description){let t={...T,description:e};try{let e=await fetch("".concat(await (0,eR.b)(),"/api/eval/").concat(W),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({config:t})});if(!e.ok)throw Error("Network response was not ok");L(t)}catch(e){console.error("Failed to update table:",e)}}},eh=async()=>{if(window.confirm("Are you sure you want to delete this evaluation?"))try{let e=await fetch("".concat(await (0,eR.b)(),"/api/eval/").concat(W),{method:"DELETE"});if(!e.ok)throw Error("Network response was not ok");I.push("/")}catch(e){console.error("Failed to delete evaluation:",e),alert("Failed to delete evaluation")}},em=l.useMemo(()=>[...eu.vars.map((e,t)=>({value:"Variable ".concat(t+1),label:"Var ".concat(t+1,": ").concat(eu.vars[t].length>100?eu.vars[t].slice(0,97)+"...":eu.vars[t]),group:"Variables"})),...eu.prompts.map((e,t)=>{let n=eu.prompts[t],s=n.label||n.display||n.raw;return{value:"Prompt ".concat(t+1),label:"Prompt ".concat(t+1,": ").concat(s.length>100?s.slice(0,97)+"...":s),group:"Prompts"}})],[eu.vars,eu.prompts]),[ex,eg]=l.useState({}),[ej,ev]=l.useState(em.map(e=>e.value)),[ef,eb]=l.useState(null);return(0,s.jsxs)("div",{style:{marginLeft:"1rem",marginRight:"1rem"},children:[(0,s.jsx)(p.Z,{mb:2,sx:{display:"flex",alignItems:"center"},children:(0,s.jsxs)(f.Z,{variant:"h5",sx:{flexGrow:1},children:[(0,s.jsx)("span",{className:"description",onClick:ep,children:(null==T?void 0:T.description)||W})," ",(null==T?void 0:T.description)&&(0,s.jsx)("span",{className:"description-filepath",children:W})]})}),(0,s.jsx)(p.Z,{py:"md",children:(0,s.jsxs)(eH,{direction:"row",spacing:4,alignItems:"center",children:[(0,s.jsx)(p.Z,{children:n&&n.length>0&&(0,s.jsx)(v.Z,{sx:{m:1,minWidth:200},size:"small",children:(0,s.jsx)(u.Z,{size:"small",options:n,renderOption:(e,t)=>(0,l.createElement)("li",{...e,key:t.id},t.label),style:{width:350},renderInput:e=>(0,s.jsx)(E.Z,{...e,label:"Eval run",variant:"outlined"}),defaultValue:n.find(e=>e.id===c)||n[0],onChange:(e,t)=>{t&&t.id&&r(t.id)},disableClearable:!0})})}),(0,s.jsx)(p.Z,{children:(0,s.jsxs)(v.Z,{sx:{m:1,minWidth:200,maxWidth:350},size:"small",children:[(0,s.jsx)(b.Z,{id:"visible-columns-label",children:"Columns"}),(0,s.jsx)(S.Z,{labelId:"visible-columns-label",id:"visible-columns",multiple:!0,value:ej,onChange:e=>{let{target:{value:t}}=e;ev("string"==typeof t?t.split(","):t);let n=[...eu.vars.map((e,t)=>"Variable ".concat(t+1)),...eu.prompts.map((e,t)=>"Prompt ".concat(t+1))],s={};n.forEach(e=>{s[e]=("string"==typeof t?t.split(","):t).includes(e)}),eg(s)},input:(0,s.jsx)(k.Z,{label:"Visible columns"}),renderValue:e=>e.join(", "),children:em.map(e=>(0,s.jsxs)(C.Z,{dense:!0,value:e.value,children:[(0,s.jsx)(m.Z,{checked:ej.indexOf(e.value)>-1}),(0,s.jsx)(y.Z,{primary:e.label})]},e.value))})]})}),(0,s.jsx)(p.Z,{children:(0,s.jsxs)(v.Z,{sx:{minWidth:180},size:"small",children:[(0,s.jsx)(b.Z,{id:"failure-filter-mode-label",children:"Display"}),(0,s.jsxs)(S.Z,{labelId:"filter-mode-label",id:"filter-mode",value:$,onChange:e=>{let t=e.target.value;K(t);let n={};eu.prompts.forEach((e,s)=>{n["Prompt ".concat(s+1)]="failures"===t}),Y(n)},label:"Filter",children:[(0,s.jsx)(C.Z,{value:"all",children:"Show all results"}),(0,s.jsx)(C.Z,{value:"failures",children:"Show failures only"}),(0,s.jsx)(C.Z,{value:"different",children:"Show different only"}),(0,s.jsx)(C.Z,{value:"highlights",children:"Show highlights only"})]})]})}),(0,s.jsx)(p.Z,{children:(0,s.jsx)(E.Z,{sx:{minWidth:180},size:"small",label:"Search",placeholder:"Text or regex",value:B,onChange:e=>G(e.target.value)})}),(0,s.jsx)(p.Z,{flexGrow:1}),(0,s.jsx)(p.Z,{display:"flex",justifyContent:"flex-end",children:(0,s.jsxs)(eH,{direction:"row",spacing:2,children:[(0,s.jsx)(h.Z,{color:"primary",onClick:e=>{eb(e.currentTarget)},startIcon:(0,s.jsx)(d.Z,{}),children:"Eval actions"}),T&&(0,s.jsxs)(w.Z,{id:"eval-actions-menu",anchorEl:ef,keepMounted:!0,open:!!ef,onClose:()=>{eb(null)},children:[(0,s.jsx)(P.Z,{title:"View the configuration that defines this eval",placement:"left",children:(0,s.jsxs)(C.Z,{onClick:()=>eo(!0),children:[(0,s.jsx)(Z.Z,{children:(0,s.jsx)(g.Z,{fontSize:"small"})}),"View YAML"]})}),(0,s.jsx)(P.Z,{title:"Edit this eval in the web UI",placement:"left",children:(0,s.jsxs)(C.Z,{onClick:()=>{_(T),I.push("/setup/")},children:[(0,s.jsx)(Z.Z,{children:(0,s.jsx)(j.Z,{fontSize:"small"})}),"Edit Eval"]})}),(0,s.jsx)(V,{}),(null==T?void 0:T.sharing)&&(0,s.jsx)(P.Z,{title:"Generate a unique URL that others can access",placement:"left",children:(0,s.jsxs)(C.Z,{onClick:ei,disabled:el,children:[(0,s.jsx)(Z.Z,{children:el?(0,s.jsx)(i.Z,{size:16}):(0,s.jsx)(R.Z,{fontSize:"small"})}),"Share"]})}),(0,s.jsx)(P.Z,{title:"Delete this eval",placement:"left",children:(0,s.jsxs)(C.Z,{onClick:eh,children:[(0,s.jsx)(Z.Z,{children:(0,s.jsx)(x.Z,{fontSize:"small"})}),"Delete"]})})]}),(0,s.jsx)(P.Z,{title:"Edit table view settings",placement:"bottom",children:(0,s.jsx)(h.Z,{color:"primary",onClick:()=>ed(!0),startIcon:(0,s.jsx)(N.Z,{}),children:"Table Settings"})}),(null==T?void 0:null===(t=T.metadata)||void 0===t?void 0:t.redteam)&&(0,s.jsx)(P.Z,{title:"View vulnerability scan report",placement:"bottom",children:(0,s.jsx)(h.Z,{color:"primary",startIcon:(0,s.jsx)(g.Z,{}),onClick:()=>I.push("/report/?evalId=".concat(W)),children:"Vulnerability Report"})})]})})]})}),(0,s.jsx)(en,{columnVisibility:ex}),(0,s.jsx)(eL,{maxTextLength:D,columnVisibility:ex,wordBreak:U,showStats:A,filterMode:$,failureFilter:X,searchText:H,onFailureFilterToggle:q,onSearchTextChange:G}),(0,s.jsx)(eU,{open:er,onClose:()=>eo(!1)}),(0,s.jsx)(eA,{open:Q,onClose:()=>ee(!1),shareUrl:et}),(0,s.jsx)(e_,{open:ec,onClose:()=>ed(!1)})]})}var eX=n(52428);async function eY(){let e=(0,c.createClientComponentClient)(),{data:{user:t}}=await e.auth.getUser();(0,a.Z)(t,"User not logged in");let{data:n,error:s}=await e.from("EvaluationResult").select("id, createdAt").eq("user_id",t.id).order("createdAt",{ascending:!1}).limit(100);return n||[]}async function eq(e){let t=(0,c.createClientComponentClient)(),{data:n,error:s}=await t.from("EvaluationResult").select("*").eq("id",e).single();return n}function e$(e){var t;let{fetchId:n,preloadedData:c,recentEvals:d,defaultEvalId:u}=e,p=(0,o.useRouter)(),{table:h,setTable:m,setConfig:x,setEvalId:g}=z(),[j,v]=l.useState(!1),[f,b]=l.useState(!1),[y,Z]=l.useState(d||[]),w=async()=>{let e=await fetch("".concat(await (0,eR.b)(),"/api/results"),{cache:"no-store"}),t=await e.json();return Z(t.data),t.data},C=l.useCallback(async e=>{let t=await fetch("".concat(await (0,eR.b)(),"/api/results/").concat(e),{cache:"no-store"}),n=await t.json();m(n.data.results.table),x(n.data.config),g(e)},[m,x,g]),k=async e=>{eX.Ox?(v(!1),p.push("/eval/remote:".concat(encodeURIComponent(e)))):p.push("/eval/?evalId=".concat(encodeURIComponent(e)))},[S,N]=l.useState(u||(null===(t=y[0])||void 0===t?void 0:t.id)),R=(0,o.useSearchParams)(),I=R?R.get("evalId"):null;return(l.useEffect(()=>{if(I){let e=async()=>{await C(I),v(!0),N(I),w()};e()}else if(c){var e;m(null===(e=c.data.results)||void 0===e?void 0:e.table),x(c.data.config),v(!0)}else if(n){let e=async()=>{var e;let t="".concat(eB,"/api/eval/").concat(n);console.log("Fetching eval from remote server",t);let s=await fetch(t);if(!s.ok){b(!0);return}let l=await s.json();m(null===(e=l.data.results)||void 0===e?void 0:e.table),x(l.data.config),v(!0)};e()}else if(eX.T8)(0,eR.b)().then(e=>{let t=(0,r.io)(e);return t.on("init",e=>{console.log("Initialized socket connection",e),v(!0),m(null==e?void 0:e.results.table),x(null==e?void 0:e.config),w().then(e=>{var t,n;N(null===(t=e[0])||void 0===t?void 0:t.id),g(null===(n=e[0])||void 0===n?void 0:n.id)})}),t.on("update",e=>{console.log("Received data update",e),m(e.results.table),x(e.config),w().then(e=>{var t;let n=null===(t=e[0])||void 0===t?void 0:t.id;n&&(N(n),g(n))})}),()=>{t.disconnect()}});else if(eX.Ox)eY().then(e=>{Z(e.map(e=>({id:e.id,label:e.createdAt}))),e.length>0&&eq(e[0].id).then(t=>{(0,a.Z)(t,"Eval not found");let n=t.results,s=t.config;N(e[0].id),m(n.table),x(s),v(!0)})});else{let e=async()=>{let e=await w();if(!(e.length>0))return(0,s.jsx)("div",{className:"notice",children:"No evals yet. Share some evals to this server and they will appear here."});{let t=await (0,eR.b)(),n=e[0].id,s=await fetch("".concat(t,"/api/results/").concat(n)),l=await s.json();m(l.data.results.table),x(l.data.config),v(!0),N(n),g(n)}};e()}},[n,m,x,g,C,c,N,I]),f)?(0,s.jsx)("div",{className:"notice",children:"404 Eval not found"}):j&&h?(0,s.jsx)(eE,{children:(0,s.jsx)(eG,{defaultEvalId:S,recentEvals:y,onRecentEvalSelected:k})}):(0,s.jsxs)("div",{className:"notice",children:[(0,s.jsx)("div",{children:(0,s.jsx)(i.Z,{size:22})}),(0,s.jsx)("div",{children:"Loading eval data"})]})}n(94455)},52428:function(e,t,n){"use strict";n.d(t,{Ox:function(){return a},T8:function(){return l},eA:function(){return i}});var s=n(77580);let l=!s.env.NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER,a=!!s.env.NEXT_PUBLIC_PROMPTFOO_USE_SUPABASE,i=""},47887:function(e,t,n){"use strict";n.d(t,{o:function(){return a}});var s=n(79685),l=n(74595);let a=(0,s.Ue)()((0,l.tJ)((e,t)=>({env:{},testCases:[],description:"",providers:[],prompts:[],defaultTest:{},evaluateOptions:{},setEnv:t=>e({env:t}),setTestCases:t=>e({testCases:t}),setDescription:t=>e({description:t}),setProviders:t=>e({providers:t}),setPrompts:t=>e({prompts:t}),setDefaultTest:t=>e({defaultTest:t}),setEvaluateOptions:t=>e({evaluateOptions:t}),setStateFromConfig:t=>{let n={};t.description&&(n.description=t.description||""),t.tests&&(n.testCases=t.tests),t.providers&&(n.providers=t.providers),t.prompts&&("string"==typeof t.prompts?n.prompts=[t.prompts]:Array.isArray(t.prompts)?n.prompts=t.prompts.filter(e=>"string"==typeof e&&!e.endsWith(".txt")&&!e.endsWith(".json")&&!e.endsWith(".yaml")):console.warn("Invalid prompts config",t.prompts)),t.defaultTest&&(n.defaultTest=t.defaultTest),t.evaluateOptions&&(n.evaluateOptions=t.evaluateOptions),e(n)},getTestSuite:()=>{let{description:e,testCases:n,providers:s,prompts:l,env:a}=t();return{env:a,description:e,providers:s,prompts:l,tests:n}}}),{name:"promptfoo",skipHydration:!0}))},55974:function(){},94455:function(){},93207:function(){},58022:function(){},24393:function(){}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[278],{1278:function(e){e.exports=function(){throw Error("ws does not work in the browser. Browser clients must use the native WebSocket object")}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[873],{68873:function(e,t,o){o.d(t,{Z:function(){return es}});var r,n,a=o(94312),l=o(79042),i=o(14978),p=o(53468),s=o(6788),u=o(94837),c=e=>{let t=i.useRef({});return i.useEffect(()=>{t.current=e}),t.current},d=o(78557),g=o(45361);function f(e){return void 0!==e.normalize?e.normalize("NFD").replace(/[\u0300-\u036f]/g,""):e}function h(e,t){for(let o=0;o<e.length;o+=1)if(t(e[o]))return o;return -1}let m=function(e={}){let{ignoreAccents:t=!0,ignoreCase:o=!0,limit:r,matchFrom:n="any",stringify:a,trim:l=!1}=e;return(e,{inputValue:i,getOptionLabel:p})=>{let s=l?i.trim():i;o&&(s=s.toLowerCase()),t&&(s=f(s));let u=s?e.filter(e=>{let r=(a||p)(e);return o&&(r=r.toLowerCase()),t&&(r=f(r)),"start"===n?0===r.indexOf(s):r.indexOf(s)>-1}):e;return"number"==typeof r?u.slice(0,r):u}}(),b=e=>{var t;return null!==e.current&&(null==(t=e.current.parentElement)?void 0:t.contains(document.activeElement))};var v=o(3982),x=o(13477),y=o(57516),Z=o(31608),$=o(89020),I=o(81427),S=o(25800),k=o(46213);function O(e){return(0,k.ZP)("MuiListSubheader",e)}(0,S.Z)("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]);var P=o(24004);let C=["className","color","component","disableGutters","disableSticky","inset"],w=e=>{let{classes:t,color:o,disableGutters:r,inset:n,disableSticky:a}=e,l={root:["root","default"!==o&&`color${(0,I.Z)(o)}`,!r&&"gutters",n&&"inset",!a&&"sticky"]};return(0,v.Z)(l,O,t)},A=(0,Z.ZP)("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.root,"default"!==o.color&&t[`color${(0,I.Z)(o.color)}`],!o.disableGutters&&t.gutters,o.inset&&t.inset,!o.disableSticky&&t.sticky]}})(({theme:e,ownerState:t})=>(0,l.Z)({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:(e.vars||e).palette.text.secondary,fontFamily:e.typography.fontFamily,fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.pxToRem(14)},"primary"===t.color&&{color:(e.vars||e).palette.primary.main},"inherit"===t.color&&{color:"inherit"},!t.disableGutters&&{paddingLeft:16,paddingRight:16},t.inset&&{paddingLeft:72},!t.disableSticky&&{position:"sticky",top:0,zIndex:1,backgroundColor:(e.vars||e).palette.background.paper})),R=i.forwardRef(function(e,t){let o=(0,$.Z)({props:e,name:"MuiListSubheader"}),{className:r,color:n="default",component:i="li",disableGutters:s=!1,disableSticky:u=!1,inset:c=!1}=o,d=(0,a.Z)(o,C),g=(0,l.Z)({},o,{color:n,component:i,disableGutters:s,disableSticky:u,inset:c}),f=w(g);return(0,P.jsx)(A,(0,l.Z)({as:i,className:(0,p.Z)(f.root,r),ref:t,ownerState:g},d))});R.muiSkipListHighlight=!0;var L=o(37803),T=o(77656),M=o(885),N=o(35643),D=o(4832),z=o(84636),j=o(92686),E=(0,o(97491).Z)((0,P.jsx)("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close"),F=o(35959),H=o(28761);function W(e){return(0,k.ZP)("MuiAutocomplete",e)}let V=(0,S.Z)("MuiAutocomplete",["root","expanded","fullWidth","focused","focusVisible","tag","tagSizeSmall","tagSizeMedium","hasPopupIcon","hasClearIcon","inputRoot","input","inputFocused","endAdornment","clearIndicator","popupIndicator","popupIndicatorOpen","popper","popperDisablePortal","paper","listbox","loading","noOptions","option","groupLabel","groupUl"]);var B=o(41776);let q=["autoComplete","autoHighlight","autoSelect","blurOnSelect","ChipProps","className","clearIcon","clearOnBlur","clearOnEscape","clearText","closeText","componentsProps","defaultValue","disableClearable","disableCloseOnSelect","disabled","disabledItemsFocusable","disableListWrap","disablePortal","filterOptions","filterSelectedOptions","forcePopupIcon","freeSolo","fullWidth","getLimitTagsText","getOptionDisabled","getOptionKey","getOptionLabel","isOptionEqualToValue","groupBy","handleHomeEndKeys","id","includeInputInList","inputValue","limitTags","ListboxComponent","ListboxProps","loading","loadingText","multiple","noOptionsText","onChange","onClose","onHighlightChange","onInputChange","onOpen","open","openOnFocus","openText","options","PaperComponent","PopperComponent","popupIcon","readOnly","renderGroup","renderInput","renderOption","renderTags","selectOnFocus","size","slotProps","value"],U=["ref"],G=["key"],K=["key"],_=(0,H.U)("MuiAutocomplete"),J=e=>{let{classes:t,disablePortal:o,expanded:r,focused:n,fullWidth:a,hasClearIcon:l,hasPopupIcon:i,inputFocused:p,popupOpen:s,size:u}=e,c={root:["root",r&&"expanded",n&&"focused",a&&"fullWidth",l&&"hasClearIcon",i&&"hasPopupIcon"],inputRoot:["inputRoot"],input:["input",p&&"inputFocused"],tag:["tag",`tagSize${(0,I.Z)(u)}`],endAdornment:["endAdornment"],clearIndicator:["clearIndicator"],popupIndicator:["popupIndicator",s&&"popupIndicatorOpen"],popper:["popper",o&&"popperDisablePortal"],paper:["paper"],listbox:["listbox"],loading:["loading"],noOptions:["noOptions"],option:["option"],groupLabel:["groupLabel"],groupUl:["groupUl"]};return(0,v.Z)(c,W,t)},Q=(0,Z.ZP)("div",{name:"MuiAutocomplete",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e,{fullWidth:r,hasClearIcon:n,hasPopupIcon:a,inputFocused:l,size:i}=o;return[{[`& .${V.tag}`]:t.tag},{[`& .${V.tag}`]:t[`tagSize${(0,I.Z)(i)}`]},{[`& .${V.inputRoot}`]:t.inputRoot},{[`& .${V.input}`]:t.input},{[`& .${V.input}`]:l&&t.inputFocused},t.root,r&&t.fullWidth,a&&t.hasPopupIcon,n&&t.hasClearIcon]}})({[`& .${V.tag}`]:{margin:3,maxWidth:"calc(100% - 6px)"},[`& .${V.inputRoot}`]:{[`.${V.hasPopupIcon}&, .${V.hasClearIcon}&`]:{paddingRight:30},[`.${V.hasPopupIcon}.${V.hasClearIcon}&`]:{paddingRight:56},[`& .${V.input}`]:{width:0,minWidth:30}},[`&.${V.focused}`]:{[`& .${V.clearIndicator}`]:{visibility:"visible"},[`& .${V.input}`]:{minWidth:0}},"@media (pointer: fine)":{[`&:hover .${V.clearIndicator}`]:{visibility:"visible"},[`&:hover .${V.input}`]:{minWidth:0}},[`& .${N.Z.root}`]:{paddingBottom:1,"& .MuiInput-input":{padding:"4px 4px 4px 0px"}},[`& .${N.Z.root}.${D.Z.sizeSmall}`]:{[`& .${N.Z.input}`]:{padding:"2px 4px 3px 0"}},[`& .${z.Z.root}`]:{padding:9,[`.${V.hasPopupIcon}&, .${V.hasClearIcon}&`]:{paddingRight:39},[`.${V.hasPopupIcon}.${V.hasClearIcon}&`]:{paddingRight:65},[`& .${V.input}`]:{padding:"7.5px 4px 7.5px 5px"},[`& .${V.endAdornment}`]:{right:9}},[`& .${z.Z.root}.${D.Z.sizeSmall}`]:{paddingTop:6,paddingBottom:6,paddingLeft:6,[`& .${V.input}`]:{padding:"2.5px 4px 2.5px 8px"}},[`& .${j.Z.root}`]:{paddingTop:19,paddingLeft:8,[`.${V.hasPopupIcon}&, .${V.hasClearIcon}&`]:{paddingRight:39},[`.${V.hasPopupIcon}.${V.hasClearIcon}&`]:{paddingRight:65},[`& .${j.Z.input}`]:{padding:"7px 4px"},[`& .${V.endAdornment}`]:{right:9}},[`& .${j.Z.root}.${D.Z.sizeSmall}`]:{paddingBottom:1,[`& .${j.Z.input}`]:{padding:"2.5px 4px"}},[`& .${D.Z.hiddenLabel}`]:{paddingTop:8},[`& .${j.Z.root}.${D.Z.hiddenLabel}`]:{paddingTop:0,paddingBottom:0,[`& .${V.input}`]:{paddingTop:16,paddingBottom:17}},[`& .${j.Z.root}.${D.Z.hiddenLabel}.${D.Z.sizeSmall}`]:{[`& .${V.input}`]:{paddingTop:8,paddingBottom:9}},[`& .${V.input}`]:{flexGrow:1,textOverflow:"ellipsis",opacity:0},variants:[{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{[`& .${V.tag}`]:{margin:2,maxWidth:"calc(100% - 4px)"}}},{props:{inputFocused:!0},style:{[`& .${V.input}`]:{opacity:1}}},{props:{multiple:!0},style:{[`& .${V.inputRoot}`]:{flexWrap:"wrap"}}}]}),X=(0,Z.ZP)("div",{name:"MuiAutocomplete",slot:"EndAdornment",overridesResolver:(e,t)=>t.endAdornment})({position:"absolute",right:0,top:"50%",transform:"translate(0, -50%)"}),Y=(0,Z.ZP)(T.Z,{name:"MuiAutocomplete",slot:"ClearIndicator",overridesResolver:(e,t)=>t.clearIndicator})({marginRight:-2,padding:4,visibility:"hidden"}),ee=(0,Z.ZP)(T.Z,{name:"MuiAutocomplete",slot:"PopupIndicator",overridesResolver:({ownerState:e},t)=>(0,l.Z)({},t.popupIndicator,e.popupOpen&&t.popupIndicatorOpen)})({padding:2,marginRight:-2,variants:[{props:{popupOpen:!0},style:{transform:"rotate(180deg)"}}]}),et=(0,Z.ZP)(y.Z,{name:"MuiAutocomplete",slot:"Popper",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[{[`& .${V.option}`]:t.option},t.popper,o.disablePortal&&t.popperDisablePortal]}})(({theme:e})=>({zIndex:(e.vars||e).zIndex.modal,variants:[{props:{disablePortal:!0},style:{position:"absolute"}}]})),eo=(0,Z.ZP)(L.Z,{name:"MuiAutocomplete",slot:"Paper",overridesResolver:(e,t)=>t.paper})(({theme:e})=>(0,l.Z)({},e.typography.body1,{overflow:"auto"})),er=(0,Z.ZP)("div",{name:"MuiAutocomplete",slot:"Loading",overridesResolver:(e,t)=>t.loading})(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"})),en=(0,Z.ZP)("div",{name:"MuiAutocomplete",slot:"NoOptions",overridesResolver:(e,t)=>t.noOptions})(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"})),ea=(0,Z.ZP)("div",{name:"MuiAutocomplete",slot:"Listbox",overridesResolver:(e,t)=>t.listbox})(({theme:e})=>({listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto",position:"relative",[`& .${V.option}`]:{minHeight:48,display:"flex",overflow:"hidden",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16,[e.breakpoints.up("sm")]:{minHeight:"auto"},[`&.${V.focused}`]:{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},'&[aria-disabled="true"]':{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${V.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:(0,x.Fq)(e.palette.primary.main,e.palette.action.selectedOpacity),[`&.${V.focused}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:(0,x.Fq)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(e.vars||e).palette.action.selected}},[`&.${V.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,x.Fq)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}}}})),el=(0,Z.ZP)(R,{name:"MuiAutocomplete",slot:"GroupLabel",overridesResolver:(e,t)=>t.groupLabel})(({theme:e})=>({backgroundColor:(e.vars||e).palette.background.paper,top:-8})),ei=(0,Z.ZP)("ul",{name:"MuiAutocomplete",slot:"GroupUl",overridesResolver:(e,t)=>t.groupUl})({padding:0,[`& .${V.option}`]:{paddingLeft:24}}),ep=i.forwardRef(function(e,t){var o,f,v,x;let Z;let $=_({props:e,name:"MuiAutocomplete"}),{autoComplete:I=!1,autoHighlight:S=!1,autoSelect:k=!1,blurOnSelect:O=!1,ChipProps:C,className:w,clearIcon:A=r||(r=(0,P.jsx)(E,{fontSize:"small"})),clearOnBlur:R=!$.freeSolo,clearOnEscape:T=!1,clearText:N="Clear",closeText:D="Close",componentsProps:z={},defaultValue:j=$.multiple?[]:null,disableClearable:H=!1,disableCloseOnSelect:W=!1,disabled:V=!1,disabledItemsFocusable:ep=!1,disableListWrap:es=!1,disablePortal:eu=!1,filterSelectedOptions:ec=!1,forcePopupIcon:ed="auto",freeSolo:eg=!1,fullWidth:ef=!1,getLimitTagsText:eh=e=>`+${e}`,getOptionLabel:em,groupBy:eb,handleHomeEndKeys:ev=!$.freeSolo,includeInputInList:ex=!1,limitTags:ey=-1,ListboxComponent:eZ="ul",ListboxProps:e$,loading:eI=!1,loadingText:eS="Loading…",multiple:ek=!1,noOptionsText:eO="No options",openOnFocus:eP=!1,openText:eC="Open",PaperComponent:ew=L.Z,PopperComponent:eA=y.Z,popupIcon:eR=n||(n=(0,P.jsx)(F.Z,{})),readOnly:eL=!1,renderGroup:eT,renderInput:eM,renderOption:eN,renderTags:eD,selectOnFocus:ez=!$.freeSolo,size:ej="medium",slotProps:eE={}}=$,eF=(0,a.Z)($,q),{getRootProps:eH,getInputProps:eW,getInputLabelProps:eV,getPopupIndicatorProps:eB,getClearProps:eq,getTagProps:eU,getListboxProps:eG,getOptionProps:eK,value:e_,dirty:eJ,expanded:eQ,id:eX,popupOpen:eY,focused:e0,focusedTag:e1,anchorEl:e4,setAnchorEl:e6,inputValue:e5,groupedOptions:e8}=function(e){let{unstable_isActiveElementInListbox:t=b,unstable_classNamePrefix:o="Mui",autoComplete:r=!1,autoHighlight:n=!1,autoSelect:a=!1,blurOnSelect:p=!1,clearOnBlur:f=!e.freeSolo,clearOnEscape:v=!1,componentName:x="useAutocomplete",defaultValue:y=e.multiple?[]:null,disableClearable:Z=!1,disableCloseOnSelect:$=!1,disabled:I,disabledItemsFocusable:S=!1,disableListWrap:k=!1,filterOptions:O=m,filterSelectedOptions:P=!1,freeSolo:C=!1,getOptionDisabled:w,getOptionKey:A,getOptionLabel:R=e=>{var t;return null!=(t=e.label)?t:e},groupBy:L,handleHomeEndKeys:T=!e.freeSolo,id:M,includeInputInList:N=!1,inputValue:D,isOptionEqualToValue:z=(e,t)=>e===t,multiple:j=!1,onChange:E,onClose:F,onHighlightChange:H,onInputChange:W,onOpen:V,open:B,openOnFocus:q=!1,options:U,readOnly:G=!1,selectOnFocus:K=!e.freeSolo,value:_}=e,J=(0,s.Z)(M),Q=R;Q=e=>{let t=R(e);return"string"!=typeof t?String(t):t};let X=i.useRef(!1),Y=i.useRef(!0),ee=i.useRef(null),et=i.useRef(null),[eo,er]=i.useState(null),[en,ea]=i.useState(-1),el=n?0:-1,ei=i.useRef(el),[ep,es]=(0,u.Z)({controlled:_,default:y,name:x}),[eu,ec]=(0,u.Z)({controlled:D,default:"",name:x,state:"inputValue"}),[ed,eg]=i.useState(!1),ef=i.useCallback((e,t)=>{let o;let r=j?ep.length<t.length:null!==t;if(r||f){if(j)o="";else if(null==t)o="";else{let e=Q(t);o="string"==typeof e?e:""}eu!==o&&(ec(o),W&&W(e,o,"reset"))}},[Q,eu,j,W,ec,f,ep]),[eh,em]=(0,u.Z)({controlled:B,default:!1,name:x,state:"open"}),[eb,ev]=i.useState(!0),ex=!j&&null!=ep&&eu===Q(ep),ey=eh&&!G,eZ=ey?O(U.filter(e=>!(P&&(j?ep:[ep]).some(t=>null!==t&&z(e,t)))),{inputValue:ex&&eb?"":eu,getOptionLabel:Q}):[],e$=c({filteredOptions:eZ,value:ep,inputValue:eu});i.useEffect(()=>{let e=ep!==e$.value;(!ed||e)&&(!C||e)&&ef(null,ep)},[ep,ef,ed,e$.value,C]);let eI=eh&&eZ.length>0&&!G,eS=(0,d.Z)(e=>{-1===e?ee.current.focus():eo.querySelector(`[data-tag-index="${e}"]`).focus()});i.useEffect(()=>{j&&en>ep.length-1&&(ea(-1),eS(-1))},[ep,j,en,eS]);let ek=(0,d.Z)(({event:e,index:t,reason:r="auto"})=>{if(ei.current=t,-1===t?ee.current.removeAttribute("aria-activedescendant"):ee.current.setAttribute("aria-activedescendant",`${J}-option-${t}`),H&&H(e,-1===t?null:eZ[t],r),!et.current)return;let n=et.current.querySelector(`[role="option"].${o}-focused`);n&&(n.classList.remove(`${o}-focused`),n.classList.remove(`${o}-focusVisible`));let a=et.current;if("listbox"!==et.current.getAttribute("role")&&(a=et.current.parentElement.querySelector('[role="listbox"]')),!a)return;if(-1===t){a.scrollTop=0;return}let l=et.current.querySelector(`[data-option-index="${t}"]`);if(l&&(l.classList.add(`${o}-focused`),"keyboard"===r&&l.classList.add(`${o}-focusVisible`),a.scrollHeight>a.clientHeight&&"mouse"!==r&&"touch"!==r)){let e=a.clientHeight+a.scrollTop,t=l.offsetTop+l.offsetHeight;t>e?a.scrollTop=t-a.clientHeight:l.offsetTop-l.offsetHeight*(L?1.3:0)<a.scrollTop&&(a.scrollTop=l.offsetTop-l.offsetHeight*(L?1.3:0))}}),eO=(0,d.Z)(({event:e,diff:t,direction:o="next",reason:n="auto"})=>{if(!ey)return;let a=function(e,t){if(!et.current||e<0||e>=eZ.length)return -1;let o=e;for(;;){let r=et.current.querySelector(`[data-option-index="${o}"]`),n=!S&&(!r||r.disabled||"true"===r.getAttribute("aria-disabled"));if(r&&r.hasAttribute("tabindex")&&!n)return o;if((o="next"===t?(o+1)%eZ.length:(o-1+eZ.length)%eZ.length)===e)return -1}}((()=>{let e=eZ.length-1;if("reset"===t)return el;if("start"===t)return 0;if("end"===t)return e;let o=ei.current+t;return o<0?-1===o&&N?-1:k&&-1!==ei.current||Math.abs(t)>1?0:e:o>e?o===e+1&&N?-1:k||Math.abs(t)>1?e:0:o})(),o);if(ek({index:a,reason:n,event:e}),r&&"reset"!==t){if(-1===a)ee.current.value=eu;else{let e=Q(eZ[a]);ee.current.value=e;let t=e.toLowerCase().indexOf(eu.toLowerCase());0===t&&eu.length>0&&ee.current.setSelectionRange(eu.length,e.length)}}}),eP=()=>{if(-1!==ei.current&&e$.filteredOptions&&e$.filteredOptions.length!==eZ.length&&e$.inputValue===eu&&(j?ep.length===e$.value.length&&e$.value.every((e,t)=>Q(ep[t])===Q(e)):((e,t)=>{let o=e?Q(e):"",r=t?Q(t):"";return o===r})(e$.value,ep))){let e=e$.filteredOptions[ei.current];if(e)return h(eZ,t=>Q(t)===Q(e))}return -1},eC=i.useCallback(()=>{if(!ey)return;let e=eP();if(-1!==e){ei.current=e;return}let t=j?ep[0]:ep;if(0===eZ.length||null==t){eO({diff:"reset"});return}if(et.current){if(null!=t){let e=eZ[ei.current];if(j&&e&&-1!==h(ep,t=>z(e,t)))return;let o=h(eZ,e=>z(e,t));-1===o?eO({diff:"reset"}):ek({index:o});return}if(ei.current>=eZ.length-1){ek({index:eZ.length-1});return}ek({index:ei.current})}},[eZ.length,!j&&ep,P,eO,ek,ey,eu,j]),ew=(0,d.Z)(e=>{(0,g.Z)(et,e),e&&eC()});i.useEffect(()=>{eC()},[eC]);let eA=e=>{!eh&&(em(!0),ev(!0),V&&V(e))},eR=(e,t)=>{eh&&(em(!1),F&&F(e,t))},eL=(e,t,o,r)=>{if(j){if(ep.length===t.length&&ep.every((e,o)=>e===t[o]))return}else if(ep===t)return;E&&E(e,t,o,r),es(t)},eT=i.useRef(!1),eM=(e,t,o="selectOption",r="options")=>{let n=o,a=t;if(j){a=Array.isArray(ep)?ep.slice():[];let e=h(a,e=>z(t,e));-1===e?a.push(t):"freeSolo"!==r&&(a.splice(e,1),n="removeOption")}ef(e,a),eL(e,a,n,{option:t}),$||e&&(e.ctrlKey||e.metaKey)||eR(e,n),(!0===p||"touch"===p&&eT.current||"mouse"===p&&!eT.current)&&ee.current.blur()},eN=(e,t)=>{if(!j)return;""===eu&&eR(e,"toggleInput");let o=en;-1===en?""===eu&&"previous"===t&&(o=ep.length-1):((o+="next"===t?1:-1)<0&&(o=0),o===ep.length&&(o=-1)),ea(o=function(e,t){if(-1===e)return -1;let o=e;for(;;){if("next"===t&&o===ep.length||"previous"===t&&-1===o)return -1;let e=eo.querySelector(`[data-tag-index="${o}"]`);if(e&&e.hasAttribute("tabindex")&&!e.disabled&&"true"!==e.getAttribute("aria-disabled"))return o;o+="next"===t?1:-1}}(o,t)),eS(o)},eD=e=>{X.current=!0,ec(""),W&&W(e,"","clear"),eL(e,j?[]:null,"clear")},ez=e=>t=>{if(e.onKeyDown&&e.onKeyDown(t),!t.defaultMuiPrevented&&(-1!==en&&-1===["ArrowLeft","ArrowRight"].indexOf(t.key)&&(ea(-1),eS(-1)),229!==t.which))switch(t.key){case"Home":ey&&T&&(t.preventDefault(),eO({diff:"start",direction:"next",reason:"keyboard",event:t}));break;case"End":ey&&T&&(t.preventDefault(),eO({diff:"end",direction:"previous",reason:"keyboard",event:t}));break;case"PageUp":t.preventDefault(),eO({diff:-5,direction:"previous",reason:"keyboard",event:t}),eA(t);break;case"PageDown":t.preventDefault(),eO({diff:5,direction:"next",reason:"keyboard",event:t}),eA(t);break;case"ArrowDown":t.preventDefault(),eO({diff:1,direction:"next",reason:"keyboard",event:t}),eA(t);break;case"ArrowUp":t.preventDefault(),eO({diff:-1,direction:"previous",reason:"keyboard",event:t}),eA(t);break;case"ArrowLeft":eN(t,"previous");break;case"ArrowRight":eN(t,"next");break;case"Enter":if(-1!==ei.current&&ey){let e=eZ[ei.current],o=!!w&&w(e);if(t.preventDefault(),o)return;eM(t,e,"selectOption"),r&&ee.current.setSelectionRange(ee.current.value.length,ee.current.value.length)}else C&&""!==eu&&!1===ex&&(j&&t.preventDefault(),eM(t,eu,"createOption","freeSolo"));break;case"Escape":ey?(t.preventDefault(),t.stopPropagation(),eR(t,"escape")):v&&(""!==eu||j&&ep.length>0)&&(t.preventDefault(),t.stopPropagation(),eD(t));break;case"Backspace":if(j&&!G&&""===eu&&ep.length>0){let e=-1===en?ep.length-1:en,o=ep.slice();o.splice(e,1),eL(t,o,"removeOption",{option:ep[e]})}break;case"Delete":if(j&&!G&&""===eu&&ep.length>0&&-1!==en){let e=ep.slice();e.splice(en,1),eL(t,e,"removeOption",{option:ep[en]})}}},ej=e=>{eg(!0),q&&!X.current&&eA(e)},eE=e=>{if(t(et)){ee.current.focus();return}eg(!1),Y.current=!0,X.current=!1,a&&-1!==ei.current&&ey?eM(e,eZ[ei.current],"blur"):a&&C&&""!==eu?eM(e,eu,"blur","freeSolo"):f&&ef(e,ep),eR(e,"blur")},eF=e=>{let t=e.target.value;eu!==t&&(ec(t),ev(!1),W&&W(e,t,"input")),""===t?Z||j||eL(e,null,"clear"):eA(e)},eH=e=>{let t=Number(e.currentTarget.getAttribute("data-option-index"));ei.current!==t&&ek({event:e,index:t,reason:"mouse"})},eW=e=>{ek({event:e,index:Number(e.currentTarget.getAttribute("data-option-index")),reason:"touch"}),eT.current=!0},eV=e=>{let t=Number(e.currentTarget.getAttribute("data-option-index"));eM(e,eZ[t],"selectOption"),eT.current=!1},eB=e=>t=>{let o=ep.slice();o.splice(e,1),eL(t,o,"removeOption",{option:ep[e]})},eq=e=>{eh?eR(e,"toggleInput"):eA(e)},eU=e=>{e.currentTarget.contains(e.target)&&e.target.getAttribute("id")!==J&&e.preventDefault()},eG=e=>{e.currentTarget.contains(e.target)&&(ee.current.focus(),K&&Y.current&&ee.current.selectionEnd-ee.current.selectionStart==0&&ee.current.select(),Y.current=!1)},eK=e=>{I||""!==eu&&eh||eq(e)},e_=C&&eu.length>0;e_=e_||(j?ep.length>0:null!==ep);let eJ=eZ;return L&&(eJ=eZ.reduce((e,t,o)=>{let r=L(t);return e.length>0&&e[e.length-1].group===r?e[e.length-1].options.push(t):e.push({key:o,index:o,group:r,options:[t]}),e},[])),I&&ed&&eE(),{getRootProps:(e={})=>(0,l.Z)({"aria-owns":eI?`${J}-listbox`:null},e,{onKeyDown:ez(e),onMouseDown:eU,onClick:eG}),getInputLabelProps:()=>({id:`${J}-label`,htmlFor:J}),getInputProps:()=>({id:J,value:eu,onBlur:eE,onFocus:ej,onChange:eF,onMouseDown:eK,"aria-activedescendant":ey?"":null,"aria-autocomplete":r?"both":"list","aria-controls":eI?`${J}-listbox`:void 0,"aria-expanded":eI,autoComplete:"off",ref:ee,autoCapitalize:"none",spellCheck:"false",role:"combobox",disabled:I}),getClearProps:()=>({tabIndex:-1,type:"button",onClick:eD}),getPopupIndicatorProps:()=>({tabIndex:-1,type:"button",onClick:eq}),getTagProps:({index:e})=>(0,l.Z)({key:e,"data-tag-index":e,tabIndex:-1},!G&&{onDelete:eB(e)}),getListboxProps:()=>({role:"listbox",id:`${J}-listbox`,"aria-labelledby":`${J}-label`,ref:ew,onMouseDown:e=>{e.preventDefault()}}),getOptionProps:({index:e,option:t})=>{var o;let r=(j?ep:[ep]).some(e=>null!=e&&z(t,e)),n=!!w&&w(t);return{key:null!=(o=null==A?void 0:A(t))?o:Q(t),tabIndex:-1,role:"option",id:`${J}-option-${e}`,onMouseMove:eH,onClick:eV,onTouchStart:eW,"data-option-index":e,"aria-disabled":n,"aria-selected":r}},id:J,inputValue:eu,value:ep,dirty:e_,expanded:ey&&eo,popupOpen:ey,focused:ed||-1!==en,anchorEl:eo,setAnchorEl:er,focusedTag:en,groupedOptions:eJ}}((0,l.Z)({},$,{componentName:"Autocomplete"})),e9=!H&&!V&&eJ&&!eL,e2=(!eg||!0===ed)&&!1!==ed,{onMouseDown:e3}=eW(),{ref:e7}=null!=e$?e$:{},te=eG(),{ref:tt}=te,to=(0,a.Z)(te,U),tr=(0,B.Z)(tt,e7),tn=em||(e=>{var t;return null!=(t=e.label)?t:e}),ta=(0,l.Z)({},$,{disablePortal:eu,expanded:eQ,focused:e0,fullWidth:ef,getOptionLabel:tn,hasClearIcon:e9,hasPopupIcon:e2,inputFocused:-1===e1,popupOpen:eY,size:ej}),tl=J(ta);if(ek&&e_.length>0){let e=e=>(0,l.Z)({className:tl.tag,disabled:V},eU(e));Z=eD?eD(e_,e,ta):e_.map((t,o)=>{let r=e({index:o}),{key:n}=r,i=(0,a.Z)(r,G);return(0,P.jsx)(M.Z,(0,l.Z)({label:tn(t),size:ej},i,C),n)})}if(ey>-1&&Array.isArray(Z)){let e=Z.length-ey;!e0&&e>0&&(Z=Z.splice(0,ey)).push((0,P.jsx)("span",{className:tl.tag,children:eh(e)},Z.length))}let ti=eT||(e=>(0,P.jsxs)("li",{children:[(0,P.jsx)(el,{className:tl.groupLabel,ownerState:ta,component:"div",children:e.group}),(0,P.jsx)(ei,{className:tl.groupUl,ownerState:ta,children:e.children})]},e.key)),tp=eN||((e,t)=>{let{key:o}=e,r=(0,a.Z)(e,K);return(0,P.jsx)("li",(0,l.Z)({},r,{children:tn(t)}),o)}),ts=(e,t)=>{let o=eK({option:e,index:t});return tp((0,l.Z)({},o,{className:tl.option}),e,{selected:o["aria-selected"],index:t,inputValue:e5},ta)},tu=null!=(o=eE.clearIndicator)?o:z.clearIndicator,tc=null!=(f=eE.paper)?f:z.paper,td=null!=(v=eE.popper)?v:z.popper,tg=null!=(x=eE.popupIndicator)?x:z.popupIndicator,tf=e=>(0,P.jsx)(et,(0,l.Z)({as:eA,disablePortal:eu,style:{width:e4?e4.clientWidth:null},ownerState:ta,role:"presentation",anchorEl:e4,open:eY},td,{className:(0,p.Z)(tl.popper,null==td?void 0:td.className),children:(0,P.jsx)(eo,(0,l.Z)({ownerState:ta,as:ew},tc,{className:(0,p.Z)(tl.paper,null==tc?void 0:tc.className),children:e}))})),th=null;return e8.length>0?th=tf((0,P.jsx)(ea,(0,l.Z)({as:eZ,className:tl.listbox,ownerState:ta},to,e$,{ref:tr,children:e8.map((e,t)=>eb?ti({key:e.key,group:e.group,children:e.options.map((t,o)=>ts(t,e.index+o))}):ts(e,t))}))):eI&&0===e8.length?th=tf((0,P.jsx)(er,{className:tl.loading,ownerState:ta,children:eS})):0!==e8.length||eg||eI||(th=tf((0,P.jsx)(en,{className:tl.noOptions,ownerState:ta,role:"presentation",onMouseDown:e=>{e.preventDefault()},children:eO}))),(0,P.jsxs)(i.Fragment,{children:[(0,P.jsx)(Q,(0,l.Z)({ref:t,className:(0,p.Z)(tl.root,w),ownerState:ta},eH(eF),{children:eM({id:eX,disabled:V,fullWidth:!0,size:"small"===ej?"small":void 0,InputLabelProps:eV(),InputProps:(0,l.Z)({ref:e6,className:tl.inputRoot,startAdornment:Z,onClick:e=>{e.target===e.currentTarget&&e3(e)}},(e9||e2)&&{endAdornment:(0,P.jsxs)(X,{className:tl.endAdornment,ownerState:ta,children:[e9?(0,P.jsx)(Y,(0,l.Z)({},eq(),{"aria-label":N,title:N,ownerState:ta},tu,{className:(0,p.Z)(tl.clearIndicator,null==tu?void 0:tu.className),children:A})):null,e2?(0,P.jsx)(ee,(0,l.Z)({},eB(),{disabled:V,"aria-label":eY?D:eC,title:eY?D:eC,ownerState:ta},tg,{className:(0,p.Z)(tl.popupIndicator,null==tg?void 0:tg.className),children:eR})):null]})}),inputProps:(0,l.Z)({className:tl.input,disabled:V,readOnly:eL},eW())})})),e4?th:null]})});var es=ep},28761:function(e,t,o){o.d(t,{U:function(){return n}});var r=o(89020);function n(e){return r.Z}}}]);
@@ -1,6 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[954],{14059:function(e,t,s){s.d(t,{Z:function(){return v}});var r=s(79042),i=s(94312),n=s(36975),a=s(41238),o=s(23437),l=s(60805);let h=["ownerState"],c=["variants"],u=["name","slot","skipVariantsResolver","skipSx","overridesResolver"];function d(e){return"ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}let f=(0,o.Z)(),p=e=>e?e.charAt(0).toLowerCase()+e.slice(1):e;function g({defaultTheme:e,theme:t,themeId:s}){return 0===Object.keys(t).length?e:t[s]||t}function y(e,t){let{ownerState:s}=t,n=(0,i.Z)(t,h),a="function"==typeof e?e((0,r.Z)({ownerState:s},n)):e;if(Array.isArray(a))return a.flatMap(e=>y(e,(0,r.Z)({ownerState:s},n)));if(a&&"object"==typeof a&&Array.isArray(a.variants)){let{variants:e=[]}=a,t=(0,i.Z)(a,c),o=t;return e.forEach(e=>{let t=!0;"function"==typeof e.props?t=e.props((0,r.Z)({ownerState:s},n,s)):Object.keys(e.props).forEach(r=>{(null==s?void 0:s[r])!==e.props[r]&&n[r]!==e.props[r]&&(t=!1)}),t&&(Array.isArray(o)||(o=[o]),o.push("function"==typeof e.style?e.style((0,r.Z)({ownerState:s},n,s)):e.style))}),o}return a}let m=function(e={}){let{themeId:t,defaultTheme:s=f,rootShouldForwardProp:o=d,slotShouldForwardProp:h=d}=e,c=e=>(0,l.Z)((0,r.Z)({},e,{theme:g((0,r.Z)({},e,{defaultTheme:s,themeId:t}))}));return c.__mui_systemSx=!0,(e,l={})=>{var f;let m;(0,n.internal_processStyles)(e,e=>e.filter(e=>!(null!=e&&e.__mui_systemSx)));let{name:v,slot:w,skipVariantsResolver:b,skipSx:_,overridesResolver:k=(f=p(w))?(e,t)=>t[f]:null}=l,S=(0,i.Z)(l,u),T=void 0!==b?b:w&&"Root"!==w&&"root"!==w||!1,O=_||!1,C=d;"Root"===w||"root"===w?C=o:w?C=h:"string"==typeof e&&e.charCodeAt(0)>96&&(C=void 0);let j=(0,n.default)(e,(0,r.Z)({shouldForwardProp:C,label:m},S)),I=e=>"function"==typeof e&&e.__emotion_real!==e||(0,a.P)(e)?i=>y(e,(0,r.Z)({},i,{theme:g({theme:i.theme,defaultTheme:s,themeId:t})})):e,E=(i,...n)=>{let a=I(i),o=n?n.map(I):[];v&&k&&o.push(e=>{let i=g((0,r.Z)({},e,{defaultTheme:s,themeId:t}));if(!i.components||!i.components[v]||!i.components[v].styleOverrides)return null;let n=i.components[v].styleOverrides,a={};return Object.entries(n).forEach(([t,s])=>{a[t]=y(s,(0,r.Z)({},e,{theme:i}))}),k(e,a)}),v&&!T&&o.push(e=>{var i;let n=g((0,r.Z)({},e,{defaultTheme:s,themeId:t})),a=null==n||null==(i=n.components)||null==(i=i[v])?void 0:i.variants;return y({variants:a},(0,r.Z)({},e,{theme:n}))}),O||o.push(c);let l=o.length-n.length;if(Array.isArray(i)&&l>0){let e=Array(l).fill("");(a=[...i,...e]).raw=[...i.raw,...e]}let h=j(a,...o);return e.muiName&&(h.muiName=e.muiName),h};return j.withConfig&&(E.withConfig=j.withConfig),E}}();var v=m},12594:function(e,t,s){var r,i=Object.defineProperty,n=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,l={};((e,t)=>{for(var s in t)i(e,s,{get:t[s],enumerable:!0})})(l,{createBrowserSupabaseClient:()=>j,createClientComponentClient:()=>c,createMiddlewareClient:()=>w,createMiddlewareSupabaseClient:()=>E,createPagesBrowserClient:()=>u,createPagesServerClient:()=>g,createRouteHandlerClient:()=>O,createServerActionClient:()=>C,createServerComponentClient:()=>k,createServerSupabaseClient:()=>I}),e.exports=((e,t,s,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of a(t))o.call(e,s)||void 0===s||i(e,s,{get:()=>t[s],enumerable:!(r=n(t,s))||r.enumerable});return e})(i({},"__esModule",{value:!0}),l);var h=s(79485);function c({supabaseUrl:e="https://vhywkeydkitmauabqnwv.supabase.co",supabaseKey:t="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InZoeXdrZXlka2l0bWF1YWJxbnd2Iiwicm9sZSI6ImFub24iLCJpYXQiOjE2OTI5OTAwMjQsImV4cCI6MjAwODU2NjAyNH0.C02",options:s,cookieOptions:i,isSingleton:n=!0}={}){if(!e||!t)throw Error("either NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY env variables or supabaseUrl and supabaseKey are required!");let a=()=>{var r;return(0,h.createSupabaseClient)(e,t,{...s,global:{...null==s?void 0:s.global,headers:{...null==(r=null==s?void 0:s.global)?void 0:r.headers,"X-Client-Info":"@supabase/auth-helpers-nextjs@0.7.4"}},auth:{storageKey:null==i?void 0:i.name,storage:new h.BrowserCookieAuthStorageAdapter(i)}})};if(n){let e=r??a();return"undefined"==typeof window?e:(r||(r=e),r)}return a()}var u=c,d=s(79485),f=s(76051),p=class extends d.CookieAuthStorageAdapter{constructor(e,t){super(t),this.context=e}getCookie(e){var t;let s=(0,f.splitCookiesString)((null==(t=this.context.res.getHeader("set-cookie"))?void 0:t.toString())??"").map(t=>(0,d.parseCookies)(t)[e]).find(e=>!!e),r=s??this.context.req.cookies[e];return r}setCookie(e,t){this._setCookie(e,t)}deleteCookie(e){this._setCookie(e,"",{maxAge:0})}_setCookie(e,t,s){var r;let i=(0,f.splitCookiesString)((null==(r=this.context.res.getHeader("set-cookie"))?void 0:r.toString())??"").filter(t=>!(e in(0,d.parseCookies)(t))),n=(0,d.serializeCookie)(e,t,{...this.cookieOptions,...s,httpOnly:!1});this.context.res.setHeader("set-cookie",[...i,n])}};function g(e,{supabaseUrl:t="https://vhywkeydkitmauabqnwv.supabase.co",supabaseKey:s="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InZoeXdrZXlka2l0bWF1YWJxbnd2Iiwicm9sZSI6ImFub24iLCJpYXQiOjE2OTI5OTAwMjQsImV4cCI6MjAwODU2NjAyNH0.C02",options:r,cookieOptions:i}={}){var n;if(!t||!s)throw Error("either NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY env variables or supabaseUrl and supabaseKey are required!");return(0,d.createSupabaseClient)(t,s,{...r,global:{...null==r?void 0:r.global,headers:{...null==(n=null==r?void 0:r.global)?void 0:n.headers,"X-Client-Info":"@supabase/auth-helpers-nextjs@0.7.4"}},auth:{storageKey:null==i?void 0:i.name,storage:new p(e,i)}})}var y=s(79485),m=s(76051),v=class extends y.CookieAuthStorageAdapter{constructor(e,t){super(t),this.context=e}getCookie(e){var t;let s=(0,m.splitCookiesString)((null==(t=this.context.res.headers.get("set-cookie"))?void 0:t.toString())??"").map(t=>(0,y.parseCookies)(t)[e]).find(e=>!!e);return s||(0,y.parseCookies)(this.context.req.headers.get("cookie")??"")[e]}setCookie(e,t){this._setCookie(e,t)}deleteCookie(e){this._setCookie(e,"",{maxAge:0})}_setCookie(e,t,s){let r=(0,y.serializeCookie)(e,t,{...this.cookieOptions,...s,httpOnly:!1});this.context.res.headers&&(this.context.res.headers.append("set-cookie",r),this.context.res.headers.append("cookie",r))}};function w(e,{supabaseUrl:t="https://vhywkeydkitmauabqnwv.supabase.co",supabaseKey:s="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InZoeXdrZXlka2l0bWF1YWJxbnd2Iiwicm9sZSI6ImFub24iLCJpYXQiOjE2OTI5OTAwMjQsImV4cCI6MjAwODU2NjAyNH0.C02",options:r,cookieOptions:i}={}){var n;if(!t||!s)throw Error("either NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY env variables or supabaseUrl and supabaseKey are required!");return(0,y.createSupabaseClient)(t,s,{...r,global:{...null==r?void 0:r.global,headers:{...null==(n=null==r?void 0:r.global)?void 0:n.headers,"X-Client-Info":"@supabase/auth-helpers-nextjs@0.7.4"}},auth:{storageKey:null==i?void 0:i.name,storage:new v(e,i)}})}var b=s(79485),_=class extends b.CookieAuthStorageAdapter{constructor(e,t){super(t),this.context=e}getCookie(e){var t;let s=this.context.cookies();return null==(t=s.get(e))?void 0:t.value}setCookie(e,t){}deleteCookie(e){}};function k(e,{supabaseUrl:t="https://vhywkeydkitmauabqnwv.supabase.co",supabaseKey:s="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InZoeXdrZXlka2l0bWF1YWJxbnd2Iiwicm9sZSI6ImFub24iLCJpYXQiOjE2OTI5OTAwMjQsImV4cCI6MjAwODU2NjAyNH0.C02",options:r,cookieOptions:i}={}){var n;if(!t||!s)throw Error("either NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY env variables or supabaseUrl and supabaseKey are required!");return(0,b.createSupabaseClient)(t,s,{...r,global:{...null==r?void 0:r.global,headers:{...null==(n=null==r?void 0:r.global)?void 0:n.headers,"X-Client-Info":"@supabase/auth-helpers-nextjs@0.7.4"}},auth:{storageKey:null==i?void 0:i.name,storage:new _(e,i)}})}var S=s(79485),T=class extends S.CookieAuthStorageAdapter{constructor(e,t){super(t),this.context=e}getCookie(e){var t;let s=this.context.cookies();return null==(t=s.get(e))?void 0:t.value}setCookie(e,t){let s=this.context.cookies();s.set(e,t,this.cookieOptions)}deleteCookie(e){let t=this.context.cookies();t.set(e,"",{maxAge:0})}};function O(e,{supabaseUrl:t="https://vhywkeydkitmauabqnwv.supabase.co",supabaseKey:s="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InZoeXdrZXlka2l0bWF1YWJxbnd2Iiwicm9sZSI6ImFub24iLCJpYXQiOjE2OTI5OTAwMjQsImV4cCI6MjAwODU2NjAyNH0.C02",options:r,cookieOptions:i}={}){var n;if(!t||!s)throw Error("either NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY env variables or supabaseUrl and supabaseKey are required!");return(0,S.createSupabaseClient)(t,s,{...r,global:{...null==r?void 0:r.global,headers:{...null==(n=null==r?void 0:r.global)?void 0:n.headers,"X-Client-Info":"@supabase/auth-helpers-nextjs@0.7.4"}},auth:{storageKey:null==i?void 0:i.name,storage:new T(e,i)}})}var C=O;function j({supabaseUrl:e="https://vhywkeydkitmauabqnwv.supabase.co",supabaseKey:t="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InZoeXdrZXlka2l0bWF1YWJxbnd2Iiwicm9sZSI6ImFub24iLCJpYXQiOjE2OTI5OTAwMjQsImV4cCI6MjAwODU2NjAyNH0.C02",options:s,cookieOptions:r}={}){return console.warn("Please utilize the `createPagesBrowserClient` function instead of the deprecated `createBrowserSupabaseClient` function. Learn more: https://supabase.com/docs/guides/auth/auth-helpers/nextjs-pages"),u({supabaseUrl:e,supabaseKey:t,options:s,cookieOptions:r})}function I(e,{supabaseUrl:t="https://vhywkeydkitmauabqnwv.supabase.co",supabaseKey:s="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InZoeXdrZXlka2l0bWF1YWJxbnd2Iiwicm9sZSI6ImFub24iLCJpYXQiOjE2OTI5OTAwMjQsImV4cCI6MjAwODU2NjAyNH0.C02",options:r,cookieOptions:i}={}){return console.warn("Please utilize the `createPagesServerClient` function instead of the deprecated `createServerSupabaseClient` function. Learn more: https://supabase.com/docs/guides/auth/auth-helpers/nextjs-pages"),g(e,{supabaseUrl:t,supabaseKey:s,options:r,cookieOptions:i})}function E(e,{supabaseUrl:t="https://vhywkeydkitmauabqnwv.supabase.co",supabaseKey:s="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InZoeXdrZXlka2l0bWF1YWJxbnd2Iiwicm9sZSI6ImFub24iLCJpYXQiOjE2OTI5OTAwMjQsImV4cCI6MjAwODU2NjAyNH0.C02",options:r,cookieOptions:i}={}){return console.warn("Please utilize the `createMiddlewareClient` function instead of the deprecated `createMiddlewareSupabaseClient` function. Learn more: https://supabase.com/docs/guides/auth/auth-helpers/nextjs#middleware"),w(e,{supabaseUrl:t,supabaseKey:s,options:r,cookieOptions:i})}},87407:function(e,t,s){s.r(t),s.d(t,{Headers:function(){return n},Request:function(){return a},Response:function(){return o},fetch:function(){return i}});var r=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==s.g)return s.g;throw Error("unable to locate global object")}();let i=r.fetch;t.default=r.fetch.bind(r);let n=r.Headers,a=r.Request,o=r.Response},76051:function(e){var t={decodeValues:!0,map:!1,silent:!1};function s(e){return"string"==typeof e&&!!e.trim()}function r(e,r){var i,n,a,o,l=e.split(";").filter(s),h=(i=l.shift(),n="",a="",(o=i.split("=")).length>1?(n=o.shift(),a=o.join("=")):a=i,{name:n,value:a}),c=h.name,u=h.value;r=r?Object.assign({},t,r):t;try{u=r.decodeValues?decodeURIComponent(u):u}catch(e){console.error("set-cookie-parser encountered an error while decoding a cookie with value '"+u+"'. Set options.decodeValues to false to disable this feature.",e)}var d={name:c,value:u};return l.forEach(function(e){var t=e.split("="),s=t.shift().trimLeft().toLowerCase(),r=t.join("=");"expires"===s?d.expires=new Date(r):"max-age"===s?d.maxAge=parseInt(r,10):"secure"===s?d.secure=!0:"httponly"===s?d.httpOnly=!0:"samesite"===s?d.sameSite=r:d[s]=r}),d}function i(e,i){if(i=i?Object.assign({},t,i):t,!e)return i.map?{}:[];if(e.headers){if("function"==typeof e.headers.getSetCookie)e=e.headers.getSetCookie();else if(e.headers["set-cookie"])e=e.headers["set-cookie"];else{var n=e.headers[Object.keys(e.headers).find(function(e){return"set-cookie"===e.toLowerCase()})];n||!e.headers.cookie||i.silent||console.warn("Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning."),e=n}}return(Array.isArray(e)||(e=[e]),(i=i?Object.assign({},t,i):t).map)?e.filter(s).reduce(function(e,t){var s=r(t,i);return e[s.name]=s,e},{}):e.filter(s).map(function(e){return r(e,i)})}e.exports=i,e.exports.parse=i,e.exports.parseString=r,e.exports.splitCookiesString=function(e){if(Array.isArray(e))return e;if("string"!=typeof e)return[];var t,s,r,i,n,a=[],o=0;function l(){for(;o<e.length&&/\s/.test(e.charAt(o));)o+=1;return o<e.length}for(;o<e.length;){for(t=o,n=!1;l();)if(","===(s=e.charAt(o))){for(r=o,o+=1,l(),i=o;o<e.length&&"="!==(s=e.charAt(o))&&";"!==s&&","!==s;)o+=1;o<e.length&&"="===e.charAt(o)?(n=!0,o=i,a.push(e.substring(t,r)),t=o):o=r+1}else o+=1;(!n||o>=e.length)&&a.push(e.substring(t,e.length))}return a}},79485:function(e,t,s){s.r(t),s.d(t,{BrowserCookieAuthStorageAdapter:function(){return t0},CookieAuthStorageAdapter:function(){return tQ},DEFAULT_COOKIE_OPTIONS:function(){return tY},createSupabaseClient:function(){return t1},isBrowser:function(){return tW},parseCookies:function(){return t2},parseSupabaseCookie:function(){return tG},serializeCookie:function(){return t4},stringifySupabaseSession:function(){return tV}}),new TextEncoder;let r=new TextDecoder,i=e=>{let t=atob(e),s=new Uint8Array(t.length);for(let e=0;e<t.length;e++)s[e]=t.charCodeAt(e);return s};var n,a,o,l,h,c,u,d,f,p,g,y,m,v,w,b,_,k,S,T,O,C,j,I=crypto;I.getRandomValues.bind(I),Symbol();let E=e=>{let t=e;t instanceof Uint8Array&&(t=r.decode(t)),t=t.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"");try{return i(t)}catch(e){throw TypeError("The input to be decoded is not correctly encoded.")}},A=e=>{let t;return t=e||("undefined"==typeof fetch?(...e)=>Promise.resolve().then(s.bind(s,87407)).then(({default:t})=>t(...e)):fetch),(...e)=>t(...e)};class P extends Error{constructor(e,t="FunctionsError",s){super(e),this.name=t,this.context=s}}class x extends P{constructor(e){super("Failed to send a request to the Edge Function","FunctionsFetchError",e)}}class $ extends P{constructor(e){super("Relay Error invoking the Edge Function","FunctionsRelayError",e)}}class R extends P{constructor(e){super("Edge Function returned a non-2xx status code","FunctionsHttpError",e)}}(n=m||(m={})).Any="any",n.ApNortheast1="ap-northeast-1",n.ApNortheast2="ap-northeast-2",n.ApSouth1="ap-south-1",n.ApSoutheast1="ap-southeast-1",n.ApSoutheast2="ap-southeast-2",n.CaCentral1="ca-central-1",n.EuCentral1="eu-central-1",n.EuWest1="eu-west-1",n.EuWest2="eu-west-2",n.EuWest3="eu-west-3",n.SaEast1="sa-east-1",n.UsEast1="us-east-1",n.UsWest1="us-west-1",n.UsWest2="us-west-2";class U{constructor(e,{headers:t={},customFetch:s,region:r=m.Any}={}){this.url=e,this.headers=t,this.region=r,this.fetch=A(s)}setAuth(e){this.headers.Authorization=`Bearer ${e}`}invoke(e,t={}){var s,r,i,n,a;return r=this,i=void 0,n=void 0,a=function*(){try{let r;let{headers:i,method:n,body:a}=t,o={},{region:l}=t;l||(l=this.region),l&&"any"!==l&&(o["x-region"]=l),a&&(i&&!Object.prototype.hasOwnProperty.call(i,"Content-Type")||!i)&&("undefined"!=typeof Blob&&a instanceof Blob||a instanceof ArrayBuffer?(o["Content-Type"]="application/octet-stream",r=a):"string"==typeof a?(o["Content-Type"]="text/plain",r=a):"undefined"!=typeof FormData&&a instanceof FormData?r=a:(o["Content-Type"]="application/json",r=JSON.stringify(a)));let h=yield this.fetch(`${this.url}/${e}`,{method:n||"POST",headers:Object.assign(Object.assign(Object.assign({},o),this.headers),i),body:r}).catch(e=>{throw new x(e)}),c=h.headers.get("x-relay-error");if(c&&"true"===c)throw new $(h);if(!h.ok)throw new R(h);let u=(null!==(s=h.headers.get("Content-Type"))&&void 0!==s?s:"text/plain").split(";")[0].trim();return{data:"application/json"===u?yield h.json():"application/octet-stream"===u?yield h.blob():"text/event-stream"===u?h:"multipart/form-data"===u?yield h.formData():yield h.text(),error:null}}catch(e){return{data:null,error:e}}},new(n||(n=Promise))(function(e,t){function s(e){try{l(a.next(e))}catch(e){t(e)}}function o(e){try{l(a.throw(e))}catch(e){t(e)}}function l(t){var r;t.done?e(t.value):((r=t.value)instanceof n?r:new n(function(e){e(r)})).then(s,o)}l((a=a.apply(r,i||[])).next())})}}var L=s(87407);class N extends Error{constructor(e){super(e.message),this.name="PostgrestError",this.details=e.details,this.hint=e.hint,this.code=e.code}}class D{constructor(e){this.shouldThrowOnError=!1,this.method=e.method,this.url=e.url,this.headers=e.headers,this.schema=e.schema,this.body=e.body,this.shouldThrowOnError=e.shouldThrowOnError,this.signal=e.signal,this.isMaybeSingle=e.isMaybeSingle,e.fetch?this.fetch=e.fetch:"undefined"==typeof fetch?this.fetch=L.default:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}then(e,t){void 0===this.schema||(["GET","HEAD"].includes(this.method)?this.headers["Accept-Profile"]=this.schema:this.headers["Content-Profile"]=this.schema),"GET"!==this.method&&"HEAD"!==this.method&&(this.headers["Content-Type"]="application/json");let s=this.fetch,r=s(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then(async e=>{var t,s,r;let i=null,n=null,a=null,o=e.status,l=e.statusText;if(e.ok){if("HEAD"!==this.method){let t=await e.text();""===t||(n="text/csv"===this.headers.Accept?t:this.headers.Accept&&this.headers.Accept.includes("application/vnd.pgrst.plan+text")?t:JSON.parse(t))}let r=null===(t=this.headers.Prefer)||void 0===t?void 0:t.match(/count=(exact|planned|estimated)/),h=null===(s=e.headers.get("content-range"))||void 0===s?void 0:s.split("/");r&&h&&h.length>1&&(a=parseInt(h[1])),this.isMaybeSingle&&"GET"===this.method&&Array.isArray(n)&&(n.length>1?(i={code:"PGRST116",details:`Results contain ${n.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},n=null,a=null,o=406,l="Not Acceptable"):n=1===n.length?n[0]:null)}else{let t=await e.text();try{i=JSON.parse(t),Array.isArray(i)&&404===e.status&&(n=[],i=null,o=200,l="OK")}catch(s){404===e.status&&""===t?(o=204,l="No Content"):i={message:t}}if(i&&this.isMaybeSingle&&(null===(r=null==i?void 0:i.details)||void 0===r?void 0:r.includes("0 rows"))&&(i=null,o=200,l="OK"),i&&this.shouldThrowOnError)throw new N(i)}let h={error:i,data:n,count:a,status:o,statusText:l};return h});return this.shouldThrowOnError||(r=r.catch(e=>{var t,s,r;return{error:{message:`${null!==(t=null==e?void 0:e.name)&&void 0!==t?t:"FetchError"}: ${null==e?void 0:e.message}`,details:`${null!==(s=null==e?void 0:e.stack)&&void 0!==s?s:""}`,hint:"",code:`${null!==(r=null==e?void 0:e.code)&&void 0!==r?r:""}`},data:null,count:null,status:0,statusText:""}})),r.then(e,t)}}class J extends D{select(e){let t=!1,s=(null!=e?e:"*").split("").map(e=>/\s/.test(e)&&!t?"":('"'===e&&(t=!t),e)).join("");return this.url.searchParams.set("select",s),this.headers.Prefer&&(this.headers.Prefer+=","),this.headers.Prefer+="return=representation",this}order(e,{ascending:t=!0,nullsFirst:s,foreignTable:r,referencedTable:i=r}={}){let n=i?`${i}.order`:"order",a=this.url.searchParams.get(n);return this.url.searchParams.set(n,`${a?`${a},`:""}${e}.${t?"asc":"desc"}${void 0===s?"":s?".nullsfirst":".nullslast"}`),this}limit(e,{foreignTable:t,referencedTable:s=t}={}){let r=void 0===s?"limit":`${s}.limit`;return this.url.searchParams.set(r,`${e}`),this}range(e,t,{foreignTable:s,referencedTable:r=s}={}){let i=void 0===r?"offset":`${r}.offset`,n=void 0===r?"limit":`${r}.limit`;return this.url.searchParams.set(i,`${e}`),this.url.searchParams.set(n,`${t-e+1}`),this}abortSignal(e){return this.signal=e,this}single(){return this.headers.Accept="application/vnd.pgrst.object+json",this}maybeSingle(){return"GET"===this.method?this.headers.Accept="application/json":this.headers.Accept="application/vnd.pgrst.object+json",this.isMaybeSingle=!0,this}csv(){return this.headers.Accept="text/csv",this}geojson(){return this.headers.Accept="application/geo+json",this}explain({analyze:e=!1,verbose:t=!1,settings:s=!1,buffers:r=!1,wal:i=!1,format:n="text"}={}){var a;let o=[e?"analyze":null,t?"verbose":null,s?"settings":null,r?"buffers":null,i?"wal":null].filter(Boolean).join("|"),l=null!==(a=this.headers.Accept)&&void 0!==a?a:"application/json";return this.headers.Accept=`application/vnd.pgrst.plan+${n}; for="${l}"; options=${o};`,this}rollback(){var e;return(null!==(e=this.headers.Prefer)&&void 0!==e?e:"").trim().length>0?this.headers.Prefer+=",tx=rollback":this.headers.Prefer="tx=rollback",this}returns(){return this}}class z extends J{eq(e,t){return this.url.searchParams.append(e,`eq.${t}`),this}neq(e,t){return this.url.searchParams.append(e,`neq.${t}`),this}gt(e,t){return this.url.searchParams.append(e,`gt.${t}`),this}gte(e,t){return this.url.searchParams.append(e,`gte.${t}`),this}lt(e,t){return this.url.searchParams.append(e,`lt.${t}`),this}lte(e,t){return this.url.searchParams.append(e,`lte.${t}`),this}like(e,t){return this.url.searchParams.append(e,`like.${t}`),this}likeAllOf(e,t){return this.url.searchParams.append(e,`like(all).{${t.join(",")}}`),this}likeAnyOf(e,t){return this.url.searchParams.append(e,`like(any).{${t.join(",")}}`),this}ilike(e,t){return this.url.searchParams.append(e,`ilike.${t}`),this}ilikeAllOf(e,t){return this.url.searchParams.append(e,`ilike(all).{${t.join(",")}}`),this}ilikeAnyOf(e,t){return this.url.searchParams.append(e,`ilike(any).{${t.join(",")}}`),this}is(e,t){return this.url.searchParams.append(e,`is.${t}`),this}in(e,t){let s=Array.from(new Set(t)).map(e=>"string"==typeof e&&RegExp("[,()]").test(e)?`"${e}"`:`${e}`).join(",");return this.url.searchParams.append(e,`in.(${s})`),this}contains(e,t){return"string"==typeof t?this.url.searchParams.append(e,`cs.${t}`):Array.isArray(t)?this.url.searchParams.append(e,`cs.{${t.join(",")}}`):this.url.searchParams.append(e,`cs.${JSON.stringify(t)}`),this}containedBy(e,t){return"string"==typeof t?this.url.searchParams.append(e,`cd.${t}`):Array.isArray(t)?this.url.searchParams.append(e,`cd.{${t.join(",")}}`):this.url.searchParams.append(e,`cd.${JSON.stringify(t)}`),this}rangeGt(e,t){return this.url.searchParams.append(e,`sr.${t}`),this}rangeGte(e,t){return this.url.searchParams.append(e,`nxl.${t}`),this}rangeLt(e,t){return this.url.searchParams.append(e,`sl.${t}`),this}rangeLte(e,t){return this.url.searchParams.append(e,`nxr.${t}`),this}rangeAdjacent(e,t){return this.url.searchParams.append(e,`adj.${t}`),this}overlaps(e,t){return"string"==typeof t?this.url.searchParams.append(e,`ov.${t}`):this.url.searchParams.append(e,`ov.{${t.join(",")}}`),this}textSearch(e,t,{config:s,type:r}={}){let i="";"plain"===r?i="pl":"phrase"===r?i="ph":"websearch"===r&&(i="w");let n=void 0===s?"":`(${s})`;return this.url.searchParams.append(e,`${i}fts${n}.${t}`),this}match(e){return Object.entries(e).forEach(([e,t])=>{this.url.searchParams.append(e,`eq.${t}`)}),this}not(e,t,s){return this.url.searchParams.append(e,`not.${t}.${s}`),this}or(e,{foreignTable:t,referencedTable:s=t}={}){let r=s?`${s}.or`:"or";return this.url.searchParams.append(r,`(${e})`),this}filter(e,t,s){return this.url.searchParams.append(e,`${t}.${s}`),this}}class F{constructor(e,{headers:t={},schema:s,fetch:r}){this.url=e,this.headers=t,this.schema=s,this.fetch=r}select(e,{head:t=!1,count:s}={}){let r=!1,i=(null!=e?e:"*").split("").map(e=>/\s/.test(e)&&!r?"":('"'===e&&(r=!r),e)).join("");return this.url.searchParams.set("select",i),s&&(this.headers.Prefer=`count=${s}`),new z({method:t?"HEAD":"GET",url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch,allowEmpty:!1})}insert(e,{count:t,defaultToNull:s=!0}={}){let r=[];if(this.headers.Prefer&&r.push(this.headers.Prefer),t&&r.push(`count=${t}`),s||r.push("missing=default"),this.headers.Prefer=r.join(","),Array.isArray(e)){let t=e.reduce((e,t)=>e.concat(Object.keys(t)),[]);if(t.length>0){let e=[...new Set(t)].map(e=>`"${e}"`);this.url.searchParams.set("columns",e.join(","))}}return new z({method:"POST",url:this.url,headers:this.headers,schema:this.schema,body:e,fetch:this.fetch,allowEmpty:!1})}upsert(e,{onConflict:t,ignoreDuplicates:s=!1,count:r,defaultToNull:i=!0}={}){let n=[`resolution=${s?"ignore":"merge"}-duplicates`];if(void 0!==t&&this.url.searchParams.set("on_conflict",t),this.headers.Prefer&&n.push(this.headers.Prefer),r&&n.push(`count=${r}`),i||n.push("missing=default"),this.headers.Prefer=n.join(","),Array.isArray(e)){let t=e.reduce((e,t)=>e.concat(Object.keys(t)),[]);if(t.length>0){let e=[...new Set(t)].map(e=>`"${e}"`);this.url.searchParams.set("columns",e.join(","))}}return new z({method:"POST",url:this.url,headers:this.headers,schema:this.schema,body:e,fetch:this.fetch,allowEmpty:!1})}update(e,{count:t}={}){let s=[];return this.headers.Prefer&&s.push(this.headers.Prefer),t&&s.push(`count=${t}`),this.headers.Prefer=s.join(","),new z({method:"PATCH",url:this.url,headers:this.headers,schema:this.schema,body:e,fetch:this.fetch,allowEmpty:!1})}delete({count:e}={}){let t=[];return e&&t.push(`count=${e}`),this.headers.Prefer&&t.unshift(this.headers.Prefer),this.headers.Prefer=t.join(","),new z({method:"DELETE",url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch,allowEmpty:!1})}}let B={"X-Client-Info":"postgrest-js/1.15.2"};class M{constructor(e,{headers:t={},schema:s,fetch:r}={}){this.url=e,this.headers=Object.assign(Object.assign({},B),t),this.schemaName=s,this.fetch=r}from(e){let t=new URL(`${this.url}/${e}`);return new F(t,{headers:Object.assign({},this.headers),schema:this.schemaName,fetch:this.fetch})}schema(e){return new M(this.url,{headers:this.headers,schema:e,fetch:this.fetch})}rpc(e,t={},{head:s=!1,get:r=!1,count:i}={}){let n,a;let o=new URL(`${this.url}/rpc/${e}`);s||r?(n=s?"HEAD":"GET",Object.entries(t).filter(([e,t])=>void 0!==t).map(([e,t])=>[e,Array.isArray(t)?`{${t.join(",")}}`:`${t}`]).forEach(([e,t])=>{o.searchParams.append(e,t)})):(n="POST",a=t);let l=Object.assign({},this.headers);return i&&(l.Prefer=`count=${i}`),new z({method:n,url:o,headers:l,schema:this.schemaName,body:a,fetch:this.fetch,allowEmpty:!1})}}let q={"X-Client-Info":"realtime-js/2.9.5"};(a=v||(v={}))[a.connecting=0]="connecting",a[a.open=1]="open",a[a.closing=2]="closing",a[a.closed=3]="closed",(o=w||(w={})).closed="closed",o.errored="errored",o.joined="joined",o.joining="joining",o.leaving="leaving",(l=b||(b={})).close="phx_close",l.error="phx_error",l.join="phx_join",l.reply="phx_reply",l.leave="phx_leave",l.access_token="access_token",(_||(_={})).websocket="websocket",(h=k||(k={})).Connecting="connecting",h.Open="open",h.Closing="closing",h.Closed="closed";class K{constructor(e,t){this.callback=e,this.timerCalc=t,this.timer=void 0,this.tries=0,this.callback=e,this.timerCalc=t}reset(){this.tries=0,clearTimeout(this.timer)}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout(()=>{this.tries=this.tries+1,this.callback()},this.timerCalc(this.tries+1))}}class X{constructor(){this.HEADER_LENGTH=1}decode(e,t){return e.constructor===ArrayBuffer?t(this._binaryDecode(e)):"string"==typeof e?t(JSON.parse(e)):t({})}_binaryDecode(e){let t=new DataView(e),s=new TextDecoder;return this._decodeBroadcast(e,t,s)}_decodeBroadcast(e,t,s){let r=t.getUint8(1),i=t.getUint8(2),n=this.HEADER_LENGTH+2,a=s.decode(e.slice(n,n+r));n+=r;let o=s.decode(e.slice(n,n+i));n+=i;let l=JSON.parse(s.decode(e.slice(n,e.byteLength)));return{ref:null,topic:a,event:o,payload:l}}}class Z{constructor(e,t,s={},r=1e4){this.channel=e,this.event=t,this.payload=s,this.timeout=r,this.sent=!1,this.timeoutTimer=void 0,this.ref="",this.receivedResp=null,this.recHooks=[],this.refEvent=null}resend(e){this.timeout=e,this._cancelRefEvent(),this.ref="",this.refEvent=null,this.receivedResp=null,this.sent=!1,this.send()}send(){this._hasReceived("timeout")||(this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload,ref:this.ref,join_ref:this.channel._joinRef()}))}updatePayload(e){this.payload=Object.assign(Object.assign({},this.payload),e)}receive(e,t){var s;return this._hasReceived(e)&&t(null===(s=this.receivedResp)||void 0===s?void 0:s.response),this.recHooks.push({status:e,callback:t}),this}startTimeout(){this.timeoutTimer||(this.ref=this.channel.socket._makeRef(),this.refEvent=this.channel._replyEventName(this.ref),this.channel._on(this.refEvent,{},e=>{this._cancelRefEvent(),this._cancelTimeout(),this.receivedResp=e,this._matchReceive(e)}),this.timeoutTimer=setTimeout(()=>{this.trigger("timeout",{})},this.timeout))}trigger(e,t){this.refEvent&&this.channel._trigger(this.refEvent,{status:e,response:t})}destroy(){this._cancelRefEvent(),this._cancelTimeout()}_cancelRefEvent(){this.refEvent&&this.channel._off(this.refEvent,{})}_cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=void 0}_matchReceive({status:e,response:t}){this.recHooks.filter(t=>t.status===e).forEach(e=>e.callback(t))}_hasReceived(e){return this.receivedResp&&this.receivedResp.status===e}}(c=S||(S={})).SYNC="sync",c.JOIN="join",c.LEAVE="leave";class H{constructor(e,t){this.channel=e,this.state={},this.pendingDiffs=[],this.joinRef=null,this.caller={onJoin:()=>{},onLeave:()=>{},onSync:()=>{}};let s=(null==t?void 0:t.events)||{state:"presence_state",diff:"presence_diff"};this.channel._on(s.state,{},e=>{let{onJoin:t,onLeave:s,onSync:r}=this.caller;this.joinRef=this.channel._joinRef(),this.state=H.syncState(this.state,e,t,s),this.pendingDiffs.forEach(e=>{this.state=H.syncDiff(this.state,e,t,s)}),this.pendingDiffs=[],r()}),this.channel._on(s.diff,{},e=>{let{onJoin:t,onLeave:s,onSync:r}=this.caller;this.inPendingSyncState()?this.pendingDiffs.push(e):(this.state=H.syncDiff(this.state,e,t,s),r())}),this.onJoin((e,t,s)=>{this.channel._trigger("presence",{event:"join",key:e,currentPresences:t,newPresences:s})}),this.onLeave((e,t,s)=>{this.channel._trigger("presence",{event:"leave",key:e,currentPresences:t,leftPresences:s})}),this.onSync(()=>{this.channel._trigger("presence",{event:"sync"})})}static syncState(e,t,s,r){let i=this.cloneDeep(e),n=this.transformState(t),a={},o={};return this.map(i,(e,t)=>{n[e]||(o[e]=t)}),this.map(n,(e,t)=>{let s=i[e];if(s){let r=t.map(e=>e.presence_ref),i=s.map(e=>e.presence_ref),n=t.filter(e=>0>i.indexOf(e.presence_ref)),l=s.filter(e=>0>r.indexOf(e.presence_ref));n.length>0&&(a[e]=n),l.length>0&&(o[e]=l)}else a[e]=t}),this.syncDiff(i,{joins:a,leaves:o},s,r)}static syncDiff(e,t,s,r){let{joins:i,leaves:n}={joins:this.transformState(t.joins),leaves:this.transformState(t.leaves)};return s||(s=()=>{}),r||(r=()=>{}),this.map(i,(t,r)=>{var i;let n=null!==(i=e[t])&&void 0!==i?i:[];if(e[t]=this.cloneDeep(r),n.length>0){let s=e[t].map(e=>e.presence_ref),r=n.filter(e=>0>s.indexOf(e.presence_ref));e[t].unshift(...r)}s(t,n,r)}),this.map(n,(t,s)=>{let i=e[t];if(!i)return;let n=s.map(e=>e.presence_ref);i=i.filter(e=>0>n.indexOf(e.presence_ref)),e[t]=i,r(t,i,s),0===i.length&&delete e[t]}),e}static map(e,t){return Object.getOwnPropertyNames(e).map(s=>t(s,e[s]))}static transformState(e){return Object.getOwnPropertyNames(e=this.cloneDeep(e)).reduce((t,s)=>{let r=e[s];return"metas"in r?t[s]=r.metas.map(e=>(e.presence_ref=e.phx_ref,delete e.phx_ref,delete e.phx_ref_prev,e)):t[s]=r,t},{})}static cloneDeep(e){return JSON.parse(JSON.stringify(e))}onJoin(e){this.caller.onJoin=e}onLeave(e){this.caller.onLeave=e}onSync(e){this.caller.onSync=e}inPendingSyncState(){return!this.joinRef||this.joinRef!==this.channel._joinRef()}}(u=T||(T={})).abstime="abstime",u.bool="bool",u.date="date",u.daterange="daterange",u.float4="float4",u.float8="float8",u.int2="int2",u.int4="int4",u.int4range="int4range",u.int8="int8",u.int8range="int8range",u.json="json",u.jsonb="jsonb",u.money="money",u.numeric="numeric",u.oid="oid",u.reltime="reltime",u.text="text",u.time="time",u.timestamp="timestamp",u.timestamptz="timestamptz",u.timetz="timetz",u.tsrange="tsrange",u.tstzrange="tstzrange";let G=(e,t,s={})=>{var r;let i=null!==(r=s.skipTypes)&&void 0!==r?r:[];return Object.keys(t).reduce((s,r)=>(s[r]=V(r,e,t,i),s),{})},V=(e,t,s,r)=>{let i=t.find(t=>t.name===e),n=null==i?void 0:i.type,a=s[e];return n&&!r.includes(n)?W(n,a):Y(a)},W=(e,t)=>{if("_"===e.charAt(0)){let s=e.slice(1,e.length);return es(t,s)}switch(e){case T.bool:return Q(t);case T.float4:case T.float8:case T.int2:case T.int4:case T.int8:case T.numeric:case T.oid:return ee(t);case T.json:case T.jsonb:return et(t);case T.timestamp:return er(t);case T.abstime:case T.date:case T.daterange:case T.int4range:case T.int8range:case T.money:case T.reltime:case T.text:case T.time:case T.timestamptz:case T.timetz:case T.tsrange:case T.tstzrange:default:return Y(t)}},Y=e=>e,Q=e=>{switch(e){case"t":return!0;case"f":return!1;default:return e}},ee=e=>{if("string"==typeof e){let t=parseFloat(e);if(!Number.isNaN(t))return t}return e},et=e=>{if("string"==typeof e)try{return JSON.parse(e)}catch(e){console.log(`JSON parse error: ${e}`)}return e},es=(e,t)=>{if("string"!=typeof e)return e;let s=e.length-1,r=e[s],i=e[0];if("{"===i&&"}"===r){let r;let i=e.slice(1,s);try{r=JSON.parse("["+i+"]")}catch(e){r=i?i.split(","):[]}return r.map(e=>W(t,e))}return e},er=e=>"string"==typeof e?e.replace(" ","T"):e;(d=O||(O={})).ALL="*",d.INSERT="INSERT",d.UPDATE="UPDATE",d.DELETE="DELETE",(f=C||(C={})).BROADCAST="broadcast",f.PRESENCE="presence",f.POSTGRES_CHANGES="postgres_changes",(p=j||(j={})).SUBSCRIBED="SUBSCRIBED",p.TIMED_OUT="TIMED_OUT",p.CLOSED="CLOSED",p.CHANNEL_ERROR="CHANNEL_ERROR";class ei{constructor(e,t={config:{}},s){this.topic=e,this.params=t,this.socket=s,this.bindings={},this.state=w.closed,this.joinedOnce=!1,this.pushBuffer=[],this.subTopic=e.replace(/^realtime:/i,""),this.params.config=Object.assign({broadcast:{ack:!1,self:!1},presence:{key:""}},t.config),this.timeout=this.socket.timeout,this.joinPush=new Z(this,b.join,this.params,this.timeout),this.rejoinTimer=new K(()=>this._rejoinUntilConnected(),this.socket.reconnectAfterMs),this.joinPush.receive("ok",()=>{this.state=w.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(e=>e.send()),this.pushBuffer=[]}),this._onClose(()=>{this.rejoinTimer.reset(),this.socket.log("channel",`close ${this.topic} ${this._joinRef()}`),this.state=w.closed,this.socket._remove(this)}),this._onError(e=>{this._isLeaving()||this._isClosed()||(this.socket.log("channel",`error ${this.topic}`,e),this.state=w.errored,this.rejoinTimer.scheduleTimeout())}),this.joinPush.receive("timeout",()=>{this._isJoining()&&(this.socket.log("channel",`timeout ${this.topic}`,this.joinPush.timeout),this.state=w.errored,this.rejoinTimer.scheduleTimeout())}),this._on(b.reply,{},(e,t)=>{this._trigger(this._replyEventName(t),e)}),this.presence=new H(this),this.broadcastEndpointURL=this._broadcastEndpointURL()}subscribe(e,t=this.timeout){var s,r;if(this.socket.isConnected()||this.socket.connect(),this.joinedOnce)throw"tried to subscribe multiple times. 'subscribe' can only be called a single time per channel instance";{let{config:{broadcast:i,presence:n}}=this.params;this._onError(t=>e&&e("CHANNEL_ERROR",t)),this._onClose(()=>e&&e("CLOSED"));let a={},o={broadcast:i,presence:n,postgres_changes:null!==(r=null===(s=this.bindings.postgres_changes)||void 0===s?void 0:s.map(e=>e.filter))&&void 0!==r?r:[]};this.socket.accessToken&&(a.access_token=this.socket.accessToken),this.updateJoinPayload(Object.assign({config:o},a)),this.joinedOnce=!0,this._rejoin(t),this.joinPush.receive("ok",({postgres_changes:t})=>{var s;if(this.socket.accessToken&&this.socket.setAuth(this.socket.accessToken),void 0===t){e&&e("SUBSCRIBED");return}{let r=this.bindings.postgres_changes,i=null!==(s=null==r?void 0:r.length)&&void 0!==s?s:0,n=[];for(let s=0;s<i;s++){let i=r[s],{filter:{event:a,schema:o,table:l,filter:h}}=i,c=t&&t[s];if(c&&c.event===a&&c.schema===o&&c.table===l&&c.filter===h)n.push(Object.assign(Object.assign({},i),{id:c.id}));else{this.unsubscribe(),e&&e("CHANNEL_ERROR",Error("mismatch between server and client bindings for postgres changes"));return}}this.bindings.postgres_changes=n,e&&e("SUBSCRIBED");return}}).receive("error",t=>{e&&e("CHANNEL_ERROR",Error(JSON.stringify(Object.values(t).join(", ")||"error")))}).receive("timeout",()=>{e&&e("TIMED_OUT")})}return this}presenceState(){return this.presence.state}async track(e,t={}){return await this.send({type:"presence",event:"track",payload:e},t.timeout||this.timeout)}async untrack(e={}){return await this.send({type:"presence",event:"untrack"},e)}on(e,t,s){return this._on(e,t,s)}async send(e,t={}){var s,r;if(this._canPush()||"broadcast"!==e.type)return new Promise(s=>{var r,i,n;let a=this._push(e.type,e,t.timeout||this.timeout);"broadcast"!==e.type||(null===(n=null===(i=null===(r=this.params)||void 0===r?void 0:r.config)||void 0===i?void 0:i.broadcast)||void 0===n?void 0:n.ack)||s("ok"),a.receive("ok",()=>s("ok")),a.receive("error",()=>s("error")),a.receive("timeout",()=>s("timed out"))});{let{event:i,payload:n}=e,a={method:"POST",headers:{apikey:null!==(s=this.socket.apiKey)&&void 0!==s?s:"","Content-Type":"application/json"},body:JSON.stringify({messages:[{topic:this.subTopic,event:i,payload:n}]})};try{let e=await this._fetchWithTimeout(this.broadcastEndpointURL,a,null!==(r=t.timeout)&&void 0!==r?r:this.timeout);if(e.ok)return"ok";return"error"}catch(e){if("AbortError"===e.name)return"timed out";return"error"}}}updateJoinPayload(e){this.joinPush.updatePayload(e)}unsubscribe(e=this.timeout){this.state=w.leaving;let t=()=>{this.socket.log("channel",`leave ${this.topic}`),this._trigger(b.close,"leave",this._joinRef())};return this.rejoinTimer.reset(),this.joinPush.destroy(),new Promise(s=>{let r=new Z(this,b.leave,{},e);r.receive("ok",()=>{t(),s("ok")}).receive("timeout",()=>{t(),s("timed out")}).receive("error",()=>{s("error")}),r.send(),this._canPush()||r.trigger("ok",{})})}_broadcastEndpointURL(){let e=this.socket.endPoint;return(e=(e=e.replace(/^ws/i,"http")).replace(/(\/socket\/websocket|\/socket|\/websocket)\/?$/i,"")).replace(/\/+$/,"")+"/api/broadcast"}async _fetchWithTimeout(e,t,s){let r=new AbortController,i=setTimeout(()=>r.abort(),s),n=await this.socket.fetch(e,Object.assign(Object.assign({},t),{signal:r.signal}));return clearTimeout(i),n}_push(e,t,s=this.timeout){if(!this.joinedOnce)throw`tried to push '${e}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;let r=new Z(this,e,t,s);return this._canPush()?r.send():(r.startTimeout(),this.pushBuffer.push(r)),r}_onMessage(e,t,s){return t}_isMember(e){return this.topic===e}_joinRef(){return this.joinPush.ref}_trigger(e,t,s){var r,i;let n=e.toLocaleLowerCase(),{close:a,error:o,leave:l,join:h}=b;if(s&&[a,o,l,h].indexOf(n)>=0&&s!==this._joinRef())return;let c=this._onMessage(n,t,s);if(t&&!c)throw"channel onMessage callbacks must return the payload, modified or unmodified";["insert","update","delete"].includes(n)?null===(r=this.bindings.postgres_changes)||void 0===r||r.filter(e=>{var t,s,r;return(null===(t=e.filter)||void 0===t?void 0:t.event)==="*"||(null===(r=null===(s=e.filter)||void 0===s?void 0:s.event)||void 0===r?void 0:r.toLocaleLowerCase())===n}).map(e=>e.callback(c,s)):null===(i=this.bindings[n])||void 0===i||i.filter(e=>{var s,r,i,a,o,l;if(!["broadcast","presence","postgres_changes"].includes(n))return e.type.toLocaleLowerCase()===n;if("id"in e){let n=e.id,a=null===(s=e.filter)||void 0===s?void 0:s.event;return n&&(null===(r=t.ids)||void 0===r?void 0:r.includes(n))&&("*"===a||(null==a?void 0:a.toLocaleLowerCase())===(null===(i=t.data)||void 0===i?void 0:i.type.toLocaleLowerCase()))}{let s=null===(o=null===(a=null==e?void 0:e.filter)||void 0===a?void 0:a.event)||void 0===o?void 0:o.toLocaleLowerCase();return"*"===s||s===(null===(l=null==t?void 0:t.event)||void 0===l?void 0:l.toLocaleLowerCase())}}).map(e=>{if("object"==typeof c&&"ids"in c){let e=c.data,{schema:t,table:s,commit_timestamp:r,type:i,errors:n}=e;c=Object.assign(Object.assign({},{schema:t,table:s,commit_timestamp:r,eventType:i,new:{},old:{},errors:n}),this._getPayloadRecords(e))}e.callback(c,s)})}_isClosed(){return this.state===w.closed}_isJoined(){return this.state===w.joined}_isJoining(){return this.state===w.joining}_isLeaving(){return this.state===w.leaving}_replyEventName(e){return`chan_reply_${e}`}_on(e,t,s){let r=e.toLocaleLowerCase(),i={type:r,filter:t,callback:s};return this.bindings[r]?this.bindings[r].push(i):this.bindings[r]=[i],this}_off(e,t){let s=e.toLocaleLowerCase();return this.bindings[s]=this.bindings[s].filter(e=>{var r;return!((null===(r=e.type)||void 0===r?void 0:r.toLocaleLowerCase())===s&&ei.isEqual(e.filter,t))}),this}static isEqual(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let s in e)if(e[s]!==t[s])return!1;return!0}_rejoinUntilConnected(){this.rejoinTimer.scheduleTimeout(),this.socket.isConnected()&&this._rejoin()}_onClose(e){this._on(b.close,{},e)}_onError(e){this._on(b.error,{},t=>e(t))}_canPush(){return this.socket.isConnected()&&this._isJoined()}_rejoin(e=this.timeout){this._isLeaving()||(this.socket._leaveOpenTopic(this.topic),this.state=w.joining,this.joinPush.resend(e))}_getPayloadRecords(e){let t={new:{},old:{}};return("INSERT"===e.type||"UPDATE"===e.type)&&(t.new=G(e.columns,e.record)),("UPDATE"===e.type||"DELETE"===e.type)&&(t.old=G(e.columns,e.old_record)),t}}let en=()=>{},ea="undefined"!=typeof WebSocket;class eo{constructor(e,t){var r;this.accessToken=null,this.apiKey=null,this.channels=[],this.endPoint="",this.headers=q,this.params={},this.timeout=1e4,this.heartbeatIntervalMs=3e4,this.heartbeatTimer=void 0,this.pendingHeartbeatRef=null,this.ref=0,this.logger=en,this.conn=null,this.sendBuffer=[],this.serializer=new X,this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this._resolveFetch=e=>{let t;return t=e||("undefined"==typeof fetch?(...e)=>Promise.resolve().then(s.bind(s,87407)).then(({default:t})=>t(...e)):fetch),(...e)=>t(...e)},this.endPoint=`${e}/${_.websocket}`,(null==t?void 0:t.transport)?this.transport=t.transport:this.transport=null,(null==t?void 0:t.params)&&(this.params=t.params),(null==t?void 0:t.headers)&&(this.headers=Object.assign(Object.assign({},this.headers),t.headers)),(null==t?void 0:t.timeout)&&(this.timeout=t.timeout),(null==t?void 0:t.logger)&&(this.logger=t.logger),(null==t?void 0:t.heartbeatIntervalMs)&&(this.heartbeatIntervalMs=t.heartbeatIntervalMs);let i=null===(r=null==t?void 0:t.params)||void 0===r?void 0:r.apikey;i&&(this.accessToken=i,this.apiKey=i),this.reconnectAfterMs=(null==t?void 0:t.reconnectAfterMs)?t.reconnectAfterMs:e=>[1e3,2e3,5e3,1e4][e-1]||1e4,this.encode=(null==t?void 0:t.encode)?t.encode:(e,t)=>t(JSON.stringify(e)),this.decode=(null==t?void 0:t.decode)?t.decode:this.serializer.decode.bind(this.serializer),this.reconnectTimer=new K(async()=>{this.disconnect(),this.connect()},this.reconnectAfterMs),this.fetch=this._resolveFetch(null==t?void 0:t.fetch)}connect(){if(!this.conn){if(this.transport){this.conn=new this.transport(this._endPointURL(),void 0,{headers:this.headers});return}if(ea){this.conn=new WebSocket(this._endPointURL()),this.setupConnection();return}this.conn=new el(this._endPointURL(),void 0,{close:()=>{this.conn=null}}),s.e(278).then(s.t.bind(s,1278,23)).then(({default:e})=>{this.conn=new e(this._endPointURL(),void 0,{headers:this.headers}),this.setupConnection()})}}disconnect(e,t){this.conn&&(this.conn.onclose=function(){},e?this.conn.close(e,null!=t?t:""):this.conn.close(),this.conn=null,this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.reconnectTimer.reset())}getChannels(){return this.channels}async removeChannel(e){let t=await e.unsubscribe();return 0===this.channels.length&&this.disconnect(),t}async removeAllChannels(){let e=await Promise.all(this.channels.map(e=>e.unsubscribe()));return this.disconnect(),e}log(e,t,s){this.logger(e,t,s)}connectionState(){switch(this.conn&&this.conn.readyState){case v.connecting:return k.Connecting;case v.open:return k.Open;case v.closing:return k.Closing;default:return k.Closed}}isConnected(){return this.connectionState()===k.Open}channel(e,t={config:{}}){let s=new ei(`realtime:${e}`,t,this);return this.channels.push(s),s}push(e){let{topic:t,event:s,payload:r,ref:i}=e,n=()=>{this.encode(e,e=>{var t;null===(t=this.conn)||void 0===t||t.send(e)})};this.log("push",`${t} ${s} (${i})`,r),this.isConnected()?n():this.sendBuffer.push(n)}setAuth(e){this.accessToken=e,this.channels.forEach(t=>{e&&t.updateJoinPayload({access_token:e}),t.joinedOnce&&t._isJoined()&&t._push(b.access_token,{access_token:e})})}_makeRef(){let e=this.ref+1;return e===this.ref?this.ref=0:this.ref=e,this.ref.toString()}_leaveOpenTopic(e){let t=this.channels.find(t=>t.topic===e&&(t._isJoined()||t._isJoining()));t&&(this.log("transport",`leaving duplicate topic "${e}"`),t.unsubscribe())}_remove(e){this.channels=this.channels.filter(t=>t._joinRef()!==e._joinRef())}setupConnection(){this.conn&&(this.conn.binaryType="arraybuffer",this.conn.onopen=()=>this._onConnOpen(),this.conn.onerror=e=>this._onConnError(e),this.conn.onmessage=e=>this._onConnMessage(e),this.conn.onclose=e=>this._onConnClose(e))}_endPointURL(){return this._appendParams(this.endPoint,Object.assign({},this.params,{vsn:"1.0.0"}))}_onConnMessage(e){this.decode(e.data,e=>{let{topic:t,event:s,payload:r,ref:i}=e;(i&&i===this.pendingHeartbeatRef||s===(null==r?void 0:r.type))&&(this.pendingHeartbeatRef=null),this.log("receive",`${r.status||""} ${t} ${s} ${i&&"("+i+")"||""}`,r),this.channels.filter(e=>e._isMember(t)).forEach(e=>e._trigger(s,r,i)),this.stateChangeCallbacks.message.forEach(t=>t(e))})}_onConnOpen(){this.log("transport",`connected to ${this._endPointURL()}`),this._flushSendBuffer(),this.reconnectTimer.reset(),this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.heartbeatTimer=setInterval(()=>this._sendHeartbeat(),this.heartbeatIntervalMs),this.stateChangeCallbacks.open.forEach(e=>e())}_onConnClose(e){this.log("transport","close",e),this._triggerChanError(),this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.reconnectTimer.scheduleTimeout(),this.stateChangeCallbacks.close.forEach(t=>t(e))}_onConnError(e){this.log("transport",e.message),this._triggerChanError(),this.stateChangeCallbacks.error.forEach(t=>t(e))}_triggerChanError(){this.channels.forEach(e=>e._trigger(b.error))}_appendParams(e,t){if(0===Object.keys(t).length)return e;let s=e.match(/\?/)?"&":"?",r=new URLSearchParams(t);return`${e}${s}${r}`}_flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>0&&(this.sendBuffer.forEach(e=>e()),this.sendBuffer=[])}_sendHeartbeat(){var e;if(this.isConnected()){if(this.pendingHeartbeatRef){this.pendingHeartbeatRef=null,this.log("transport","heartbeat timeout. Attempting to re-establish connection"),null===(e=this.conn)||void 0===e||e.close(1e3,"hearbeat timeout");return}this.pendingHeartbeatRef=this._makeRef(),this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:this.pendingHeartbeatRef}),this.setAuth(this.accessToken)}}}class el{constructor(e,t,s){this.binaryType="arraybuffer",this.onclose=()=>{},this.onerror=()=>{},this.onmessage=()=>{},this.onopen=()=>{},this.readyState=v.connecting,this.send=()=>{},this.url=null,this.url=e,this.close=s.close}}class eh extends Error{constructor(e){super(e),this.__isStorageError=!0,this.name="StorageError"}}function ec(e){return"object"==typeof e&&null!==e&&"__isStorageError"in e}class eu extends eh{constructor(e,t){super(e),this.name="StorageApiError",this.status=t}toJSON(){return{name:this.name,message:this.message,status:this.status}}}class ed extends eh{constructor(e,t){super(e),this.name="StorageUnknownError",this.originalError=t}}let ef=e=>{let t;return t=e||("undefined"==typeof fetch?(...e)=>Promise.resolve().then(s.bind(s,87407)).then(({default:t})=>t(...e)):fetch),(...e)=>t(...e)},ep=()=>{var e,t,r,i;return e=void 0,t=void 0,r=void 0,i=function*(){return"undefined"==typeof Response?(yield Promise.resolve().then(s.bind(s,87407))).Response:Response},new(r||(r=Promise))(function(s,n){function a(e){try{l(i.next(e))}catch(e){n(e)}}function o(e){try{l(i.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?s(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t)})).then(a,o)}l((i=i.apply(e,t||[])).next())})};var eg=function(e,t,s,r){return new(s||(s=Promise))(function(i,n){function a(e){try{l(r.next(e))}catch(e){n(e)}}function o(e){try{l(r.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof s?t:new s(function(e){e(t)})).then(a,o)}l((r=r.apply(e,t||[])).next())})};let ey=e=>e.msg||e.message||e.error_description||e.error||JSON.stringify(e),em=(e,t)=>eg(void 0,void 0,void 0,function*(){let s=yield ep();e instanceof s?e.json().then(s=>{t(new eu(ey(s),e.status||500))}).catch(e=>{t(new ed(ey(e),e))}):t(new ed(ey(e),e))}),ev=(e,t,s,r)=>{let i={method:e,headers:(null==t?void 0:t.headers)||{}};return"GET"===e?i:(i.headers=Object.assign({"Content-Type":"application/json"},null==t?void 0:t.headers),i.body=JSON.stringify(r),Object.assign(Object.assign({},i),s))};function ew(e,t,s,r,i,n){return eg(this,void 0,void 0,function*(){return new Promise((a,o)=>{e(s,ev(t,r,i,n)).then(e=>{if(!e.ok)throw e;return(null==r?void 0:r.noResolveJson)?e:e.json()}).then(e=>a(e)).catch(e=>em(e,o))})})}function eb(e,t,s,r){return eg(this,void 0,void 0,function*(){return ew(e,"GET",t,s,r)})}function e_(e,t,s,r,i){return eg(this,void 0,void 0,function*(){return ew(e,"POST",t,r,i,s)})}function ek(e,t,s,r,i){return eg(this,void 0,void 0,function*(){return ew(e,"DELETE",t,r,i,s)})}var eS=function(e,t,s,r){return new(s||(s=Promise))(function(i,n){function a(e){try{l(r.next(e))}catch(e){n(e)}}function o(e){try{l(r.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof s?t:new s(function(e){e(t)})).then(a,o)}l((r=r.apply(e,t||[])).next())})};let eT={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},eO={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1};class eC{constructor(e,t={},s,r){this.url=e,this.headers=t,this.bucketId=s,this.fetch=ef(r)}uploadOrUpdate(e,t,s,r){return eS(this,void 0,void 0,function*(){try{let i;let n=Object.assign(Object.assign({},eO),r),a=Object.assign(Object.assign({},this.headers),"POST"===e&&{"x-upsert":String(n.upsert)});"undefined"!=typeof Blob&&s instanceof Blob?((i=new FormData).append("cacheControl",n.cacheControl),i.append("",s)):"undefined"!=typeof FormData&&s instanceof FormData?(i=s).append("cacheControl",n.cacheControl):(i=s,a["cache-control"]=`max-age=${n.cacheControl}`,a["content-type"]=n.contentType);let o=this._removeEmptyFolders(t),l=this._getFinalPath(o),h=yield this.fetch(`${this.url}/object/${l}`,Object.assign({method:e,body:i,headers:a},(null==n?void 0:n.duplex)?{duplex:n.duplex}:{})),c=yield h.json();if(h.ok)return{data:{path:o,id:c.Id,fullPath:c.Key},error:null};return{data:null,error:c}}catch(e){if(ec(e))return{data:null,error:e};throw e}})}upload(e,t,s){return eS(this,void 0,void 0,function*(){return this.uploadOrUpdate("POST",e,t,s)})}uploadToSignedUrl(e,t,s,r){return eS(this,void 0,void 0,function*(){let i=this._removeEmptyFolders(e),n=this._getFinalPath(i),a=new URL(this.url+`/object/upload/sign/${n}`);a.searchParams.set("token",t);try{let e;let t=Object.assign({upsert:eO.upsert},r),n=Object.assign(Object.assign({},this.headers),{"x-upsert":String(t.upsert)});"undefined"!=typeof Blob&&s instanceof Blob?((e=new FormData).append("cacheControl",t.cacheControl),e.append("",s)):"undefined"!=typeof FormData&&s instanceof FormData?(e=s).append("cacheControl",t.cacheControl):(e=s,n["cache-control"]=`max-age=${t.cacheControl}`,n["content-type"]=t.contentType);let o=yield this.fetch(a.toString(),{method:"PUT",body:e,headers:n}),l=yield o.json();if(o.ok)return{data:{path:i,fullPath:l.Key},error:null};return{data:null,error:l}}catch(e){if(ec(e))return{data:null,error:e};throw e}})}createSignedUploadUrl(e){return eS(this,void 0,void 0,function*(){try{let t=this._getFinalPath(e),s=yield e_(this.fetch,`${this.url}/object/upload/sign/${t}`,{},{headers:this.headers}),r=new URL(this.url+s.url),i=r.searchParams.get("token");if(!i)throw new eh("No token returned by API");return{data:{signedUrl:r.toString(),path:e,token:i},error:null}}catch(e){if(ec(e))return{data:null,error:e};throw e}})}update(e,t,s){return eS(this,void 0,void 0,function*(){return this.uploadOrUpdate("PUT",e,t,s)})}move(e,t){return eS(this,void 0,void 0,function*(){try{let s=yield e_(this.fetch,`${this.url}/object/move`,{bucketId:this.bucketId,sourceKey:e,destinationKey:t},{headers:this.headers});return{data:s,error:null}}catch(e){if(ec(e))return{data:null,error:e};throw e}})}copy(e,t){return eS(this,void 0,void 0,function*(){try{let s=yield e_(this.fetch,`${this.url}/object/copy`,{bucketId:this.bucketId,sourceKey:e,destinationKey:t},{headers:this.headers});return{data:{path:s.Key},error:null}}catch(e){if(ec(e))return{data:null,error:e};throw e}})}createSignedUrl(e,t,s){return eS(this,void 0,void 0,function*(){try{let r=this._getFinalPath(e),i=yield e_(this.fetch,`${this.url}/object/sign/${r}`,Object.assign({expiresIn:t},(null==s?void 0:s.transform)?{transform:s.transform}:{}),{headers:this.headers}),n=(null==s?void 0:s.download)?`&download=${!0===s.download?"":s.download}`:"",a=encodeURI(`${this.url}${i.signedURL}${n}`);return{data:i={signedUrl:a},error:null}}catch(e){if(ec(e))return{data:null,error:e};throw e}})}createSignedUrls(e,t,s){return eS(this,void 0,void 0,function*(){try{let r=yield e_(this.fetch,`${this.url}/object/sign/${this.bucketId}`,{expiresIn:t,paths:e},{headers:this.headers}),i=(null==s?void 0:s.download)?`&download=${!0===s.download?"":s.download}`:"";return{data:r.map(e=>Object.assign(Object.assign({},e),{signedUrl:e.signedURL?encodeURI(`${this.url}${e.signedURL}${i}`):null})),error:null}}catch(e){if(ec(e))return{data:null,error:e};throw e}})}download(e,t){return eS(this,void 0,void 0,function*(){let s=void 0!==(null==t?void 0:t.transform),r=this.transformOptsToQueryString((null==t?void 0:t.transform)||{}),i=r?`?${r}`:"";try{let t=this._getFinalPath(e),r=yield eb(this.fetch,`${this.url}/${s?"render/image/authenticated":"object"}/${t}${i}`,{headers:this.headers,noResolveJson:!0}),n=yield r.blob();return{data:n,error:null}}catch(e){if(ec(e))return{data:null,error:e};throw e}})}getPublicUrl(e,t){let s=this._getFinalPath(e),r=[],i=(null==t?void 0:t.download)?`download=${!0===t.download?"":t.download}`:"";""!==i&&r.push(i);let n=void 0!==(null==t?void 0:t.transform),a=this.transformOptsToQueryString((null==t?void 0:t.transform)||{});""!==a&&r.push(a);let o=r.join("&");return""!==o&&(o=`?${o}`),{data:{publicUrl:encodeURI(`${this.url}/${n?"render/image":"object"}/public/${s}${o}`)}}}remove(e){return eS(this,void 0,void 0,function*(){try{let t=yield ek(this.fetch,`${this.url}/object/${this.bucketId}`,{prefixes:e},{headers:this.headers});return{data:t,error:null}}catch(e){if(ec(e))return{data:null,error:e};throw e}})}list(e,t,s){return eS(this,void 0,void 0,function*(){try{let r=Object.assign(Object.assign(Object.assign({},eT),t),{prefix:e||""}),i=yield e_(this.fetch,`${this.url}/object/list/${this.bucketId}`,r,{headers:this.headers},s);return{data:i,error:null}}catch(e){if(ec(e))return{data:null,error:e};throw e}})}_getFinalPath(e){return`${this.bucketId}/${e}`}_removeEmptyFolders(e){return e.replace(/^\/|\/$/g,"").replace(/\/+/g,"/")}transformOptsToQueryString(e){let t=[];return e.width&&t.push(`width=${e.width}`),e.height&&t.push(`height=${e.height}`),e.resize&&t.push(`resize=${e.resize}`),e.format&&t.push(`format=${e.format}`),e.quality&&t.push(`quality=${e.quality}`),t.join("&")}}let ej={"X-Client-Info":"storage-js/2.5.5"};var eI=function(e,t,s,r){return new(s||(s=Promise))(function(i,n){function a(e){try{l(r.next(e))}catch(e){n(e)}}function o(e){try{l(r.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof s?t:new s(function(e){e(t)})).then(a,o)}l((r=r.apply(e,t||[])).next())})};class eE{constructor(e,t={},s){this.url=e,this.headers=Object.assign(Object.assign({},ej),t),this.fetch=ef(s)}listBuckets(){return eI(this,void 0,void 0,function*(){try{let e=yield eb(this.fetch,`${this.url}/bucket`,{headers:this.headers});return{data:e,error:null}}catch(e){if(ec(e))return{data:null,error:e};throw e}})}getBucket(e){return eI(this,void 0,void 0,function*(){try{let t=yield eb(this.fetch,`${this.url}/bucket/${e}`,{headers:this.headers});return{data:t,error:null}}catch(e){if(ec(e))return{data:null,error:e};throw e}})}createBucket(e,t={public:!1}){return eI(this,void 0,void 0,function*(){try{let s=yield e_(this.fetch,`${this.url}/bucket`,{id:e,name:e,public:t.public,file_size_limit:t.fileSizeLimit,allowed_mime_types:t.allowedMimeTypes},{headers:this.headers});return{data:s,error:null}}catch(e){if(ec(e))return{data:null,error:e};throw e}})}updateBucket(e,t){return eI(this,void 0,void 0,function*(){try{let s=yield function(e,t,s,r,i){return eg(this,void 0,void 0,function*(){return ew(e,"PUT",t,r,void 0,s)})}(this.fetch,`${this.url}/bucket/${e}`,{id:e,name:e,public:t.public,file_size_limit:t.fileSizeLimit,allowed_mime_types:t.allowedMimeTypes},{headers:this.headers});return{data:s,error:null}}catch(e){if(ec(e))return{data:null,error:e};throw e}})}emptyBucket(e){return eI(this,void 0,void 0,function*(){try{let t=yield e_(this.fetch,`${this.url}/bucket/${e}/empty`,{},{headers:this.headers});return{data:t,error:null}}catch(e){if(ec(e))return{data:null,error:e};throw e}})}deleteBucket(e){return eI(this,void 0,void 0,function*(){try{let t=yield ek(this.fetch,`${this.url}/bucket/${e}`,{},{headers:this.headers});return{data:t,error:null}}catch(e){if(ec(e))return{data:null,error:e};throw e}})}}class eA extends eE{constructor(e,t={},s){super(e,t,s)}from(e){return new eC(this.url,this.headers,e,this.fetch)}}let eP="";eP="undefined"!=typeof Deno?"deno":"undefined"!=typeof document?"web":"undefined"!=typeof navigator&&"ReactNative"===navigator.product?"react-native":"node";let ex={"X-Client-Info":`supabase-js-${eP}/2.43.4`},e$={headers:ex},eR={schema:"public"},eU={autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,flowType:"implicit"},eL={},eN=e=>{let t;return t=e||("undefined"==typeof fetch?L.default:fetch),(...e)=>t(...e)},eD=()=>"undefined"==typeof Headers?L.Headers:Headers,eJ=(e,t,s)=>{let r=eN(s),i=eD();return(s,n)=>{var a,o,l,h;return a=void 0,o=void 0,l=void 0,h=function*(){var a;let o=null!==(a=yield t())&&void 0!==a?a:e,l=new i(null==n?void 0:n.headers);return l.has("apikey")||l.set("apikey",e),l.has("Authorization")||l.set("Authorization",`Bearer ${o}`),r(s,Object.assign(Object.assign({},n),{headers:l}))},new(l||(l=Promise))(function(e,t){function s(e){try{i(h.next(e))}catch(e){t(e)}}function r(e){try{i(h.throw(e))}catch(e){t(e)}}function i(t){var i;t.done?e(t.value):((i=t.value)instanceof l?i:new l(function(e){e(i)})).then(s,r)}i((h=h.apply(a,o||[])).next())})}},ez="2.64.2",eF={"X-Client-Info":`gotrue-js/${ez}`},eB="X-Supabase-Api-Version",eM={"2024-01-01":{timestamp:Date.parse("2024-01-01T00:00:00.0Z"),name:"2024-01-01"}},eq=()=>"undefined"!=typeof document,eK={tested:!1,writable:!1},eX=()=>{if(!eq())return!1;try{if("object"!=typeof globalThis.localStorage)return!1}catch(e){return!1}if(eK.tested)return eK.writable;let e=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(e,e),globalThis.localStorage.removeItem(e),eK.tested=!0,eK.writable=!0}catch(e){eK.tested=!0,eK.writable=!1}return eK.writable};function eZ(e){let t={},s=new URL(e);if(s.hash&&"#"===s.hash[0])try{let e=new URLSearchParams(s.hash.substring(1));e.forEach((e,s)=>{t[s]=e})}catch(e){}return s.searchParams.forEach((e,s)=>{t[s]=e}),t}let eH=e=>{let t;return t=e||("undefined"==typeof fetch?(...e)=>Promise.resolve().then(s.bind(s,87407)).then(({default:t})=>t(...e)):fetch),(...e)=>t(...e)},eG=e=>"object"==typeof e&&null!==e&&"status"in e&&"ok"in e&&"json"in e&&"function"==typeof e.json,eV=async(e,t,s)=>{await e.setItem(t,JSON.stringify(s))},eW=async(e,t)=>{let s=await e.getItem(t);if(!s)return null;try{return JSON.parse(s)}catch(e){return s}},eY=async(e,t)=>{await e.removeItem(t)};class eQ{constructor(){this.promise=new eQ.promiseConstructor((e,t)=>{this.resolve=e,this.reject=t})}}function e0(e){let t=e.split(".");if(3!==t.length)throw Error("JWT is not valid: not a JWT structure");if(!/^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}=?$|[a-z0-9_-]{2}(==)?$)$/i.test(t[1]))throw Error("JWT is not valid: payload is not in base64url format");let s=t[1];return JSON.parse(function(e){let t,s,r,i,n,a,o;let l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",h="",c=0;for(e=e.replace("-","+").replace("_","/");c<e.length;)i=l.indexOf(e.charAt(c++)),n=l.indexOf(e.charAt(c++)),a=l.indexOf(e.charAt(c++)),o=l.indexOf(e.charAt(c++)),t=i<<2|n>>4,s=(15&n)<<4|a>>2,r=(3&a)<<6|o,h+=String.fromCharCode(t),64!=a&&0!=s&&(h+=String.fromCharCode(s)),64!=o&&0!=r&&(h+=String.fromCharCode(r));return h}(s))}async function e1(e){return await new Promise(t=>{setTimeout(()=>t(null),e)})}function e2(e){return("0"+e.toString(16)).substr(-2)}async function e4(e){let t=new TextEncoder,s=t.encode(e),r=await crypto.subtle.digest("SHA-256",s),i=new Uint8Array(r);return Array.from(i).map(e=>String.fromCharCode(e)).join("")}async function e6(e){let t="undefined"!=typeof crypto&&void 0!==crypto.subtle&&"undefined"!=typeof TextEncoder;if(!t)return console.warn("WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256."),e;let s=await e4(e);return btoa(s).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function e3(e,t,s=!1){let r=function(){let e=new Uint32Array(56);if("undefined"==typeof crypto){let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",t=e.length,s="";for(let r=0;r<56;r++)s+=e.charAt(Math.floor(Math.random()*t));return s}return crypto.getRandomValues(e),Array.from(e,e2).join("")}(),i=r;s&&(i+="/PASSWORD_RECOVERY"),await eV(e,`${t}-code-verifier`,i);let n=await e6(r),a=r===n?"plain":"s256";return[n,a]}eQ.promiseConstructor=Promise;let e5=/^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;class e9 extends Error{constructor(e,t,s){super(e),this.__isAuthError=!0,this.name="AuthError",this.status=t,this.code=s}}function e8(e){return"object"==typeof e&&null!==e&&"__isAuthError"in e}class e7 extends e9{constructor(e,t,s){super(e,t,s),this.name="AuthApiError",this.status=t,this.code=s}}class te extends e9{constructor(e,t){super(e),this.name="AuthUnknownError",this.originalError=t}}class tt extends e9{constructor(e,t,s,r){super(e,s,r),this.name=t,this.status=s}}class ts extends tt{constructor(){super("Auth session missing!","AuthSessionMissingError",400,void 0)}}class tr extends tt{constructor(){super("Auth session or user missing","AuthInvalidTokenResponseError",500,void 0)}}class ti extends tt{constructor(e){super(e,"AuthInvalidCredentialsError",400,void 0)}}class tn extends tt{constructor(e,t=null){super(e,"AuthImplicitGrantRedirectError",500,void 0),this.details=null,this.details=t}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}}class ta extends tt{constructor(e,t=null){super(e,"AuthPKCEGrantCodeExchangeError",500,void 0),this.details=null,this.details=t}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}}class to extends tt{constructor(e,t){super(e,"AuthRetryableFetchError",t,void 0)}}function tl(e){return e8(e)&&"AuthRetryableFetchError"===e.name}class th extends tt{constructor(e,t,s){super(e,"AuthWeakPasswordError",t,"weak_password"),this.reasons=s}}var tc=function(e,t){var s={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(s[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)0>t.indexOf(r[i])&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(s[r[i]]=e[r[i]]);return s};let tu=e=>e.msg||e.message||e.error_description||e.error||JSON.stringify(e),td=[502,503,504];async function tf(e){var t;let s,r;if(!eG(e))throw new to(tu(e),0);if(td.includes(e.status))throw new to(tu(e),e.status);try{s=await e.json()}catch(e){throw new te(tu(e),e)}let i=function(e){let t=e.headers.get(eB);if(!t||!t.match(e5))return null;try{let e=new Date(`${t}T00:00:00.0Z`);return e}catch(e){return null}}(e);if(i&&i.getTime()>=eM["2024-01-01"].timestamp&&"object"==typeof s&&s&&"string"==typeof s.code?r=s.code:"object"==typeof s&&s&&"string"==typeof s.error_code&&(r=s.error_code),r){if("weak_password"===r)throw new th(tu(s),e.status,(null===(t=s.weak_password)||void 0===t?void 0:t.reasons)||[])}else if("object"==typeof s&&s&&"object"==typeof s.weak_password&&s.weak_password&&Array.isArray(s.weak_password.reasons)&&s.weak_password.reasons.length&&s.weak_password.reasons.reduce((e,t)=>e&&"string"==typeof t,!0))throw new th(tu(s),e.status,s.weak_password.reasons);throw new e7(tu(s),e.status||500,r)}let tp=(e,t,s,r)=>{let i={method:e,headers:(null==t?void 0:t.headers)||{}};return"GET"===e?i:(i.headers=Object.assign({"Content-Type":"application/json;charset=UTF-8"},null==t?void 0:t.headers),i.body=JSON.stringify(r),Object.assign(Object.assign({},i),s))};async function tg(e,t,s,r){var i;let n=Object.assign({},null==r?void 0:r.headers);n[eB]||(n[eB]=eM["2024-01-01"].name),(null==r?void 0:r.jwt)&&(n.Authorization=`Bearer ${r.jwt}`);let a=null!==(i=null==r?void 0:r.query)&&void 0!==i?i:{};(null==r?void 0:r.redirectTo)&&(a.redirect_to=r.redirectTo);let o=Object.keys(a).length?"?"+new URLSearchParams(a).toString():"",l=await ty(e,t,s+o,{headers:n,noResolveJson:null==r?void 0:r.noResolveJson},{},null==r?void 0:r.body);return(null==r?void 0:r.xform)?null==r?void 0:r.xform(l):{data:Object.assign({},l),error:null}}async function ty(e,t,s,r,i,n){let a;let o=tp(t,r,i,n);try{a=await e(s,Object.assign({},o))}catch(e){throw console.error(e),new to(tu(e),0)}if(a.ok||await tf(a),null==r?void 0:r.noResolveJson)return a;try{return await a.json()}catch(e){await tf(e)}}function tm(e){var t;let s=null;e.access_token&&e.refresh_token&&e.expires_in&&(s=Object.assign({},e),e.expires_at||(s.expires_at=function(e){let t=Math.round(Date.now()/1e3);return t+e}(e.expires_in)));let r=null!==(t=e.user)&&void 0!==t?t:e;return{data:{session:s,user:r},error:null}}function tv(e){let t=tm(e);return!t.error&&e.weak_password&&"object"==typeof e.weak_password&&Array.isArray(e.weak_password.reasons)&&e.weak_password.reasons.length&&e.weak_password.message&&"string"==typeof e.weak_password.message&&e.weak_password.reasons.reduce((e,t)=>e&&"string"==typeof t,!0)&&(t.data.weak_password=e.weak_password),t}function tw(e){var t;let s=null!==(t=e.user)&&void 0!==t?t:e;return{data:{user:s},error:null}}function tb(e){return{data:e,error:null}}function t_(e){let{action_link:t,email_otp:s,hashed_token:r,redirect_to:i,verification_type:n}=e,a=tc(e,["action_link","email_otp","hashed_token","redirect_to","verification_type"]),o=Object.assign({},a);return{data:{properties:{action_link:t,email_otp:s,hashed_token:r,redirect_to:i,verification_type:n},user:o},error:null}}function tk(e){return e}var tS=function(e,t){var s={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(s[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)0>t.indexOf(r[i])&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(s[r[i]]=e[r[i]]);return s};class tT{constructor({url:e="",headers:t={},fetch:s}){this.url=e,this.headers=t,this.fetch=eH(s),this.mfa={listFactors:this._listFactors.bind(this),deleteFactor:this._deleteFactor.bind(this)}}async signOut(e,t="global"){try{return await tg(this.fetch,"POST",`${this.url}/logout?scope=${t}`,{headers:this.headers,jwt:e,noResolveJson:!0}),{data:null,error:null}}catch(e){if(e8(e))return{data:null,error:e};throw e}}async inviteUserByEmail(e,t={}){try{return await tg(this.fetch,"POST",`${this.url}/invite`,{body:{email:e,data:t.data},headers:this.headers,redirectTo:t.redirectTo,xform:tw})}catch(e){if(e8(e))return{data:{user:null},error:e};throw e}}async generateLink(e){try{let{options:t}=e,s=tS(e,["options"]),r=Object.assign(Object.assign({},s),t);return"newEmail"in s&&(r.new_email=null==s?void 0:s.newEmail,delete r.newEmail),await tg(this.fetch,"POST",`${this.url}/admin/generate_link`,{body:r,headers:this.headers,xform:t_,redirectTo:null==t?void 0:t.redirectTo})}catch(e){if(e8(e))return{data:{properties:null,user:null},error:e};throw e}}async createUser(e){try{return await tg(this.fetch,"POST",`${this.url}/admin/users`,{body:e,headers:this.headers,xform:tw})}catch(e){if(e8(e))return{data:{user:null},error:e};throw e}}async listUsers(e){var t,s,r,i,n,a,o;try{let l={nextPage:null,lastPage:0,total:0},h=await tg(this.fetch,"GET",`${this.url}/admin/users`,{headers:this.headers,noResolveJson:!0,query:{page:null!==(s=null===(t=null==e?void 0:e.page)||void 0===t?void 0:t.toString())&&void 0!==s?s:"",per_page:null!==(i=null===(r=null==e?void 0:e.perPage)||void 0===r?void 0:r.toString())&&void 0!==i?i:""},xform:tk});if(h.error)throw h.error;let c=await h.json(),u=null!==(n=h.headers.get("x-total-count"))&&void 0!==n?n:0,d=null!==(o=null===(a=h.headers.get("link"))||void 0===a?void 0:a.split(","))&&void 0!==o?o:[];return d.length>0&&(d.forEach(e=>{let t=parseInt(e.split(";")[0].split("=")[1].substring(0,1)),s=JSON.parse(e.split(";")[1].split("=")[1]);l[`${s}Page`]=t}),l.total=parseInt(u)),{data:Object.assign(Object.assign({},c),l),error:null}}catch(e){if(e8(e))return{data:{users:[]},error:e};throw e}}async getUserById(e){try{return await tg(this.fetch,"GET",`${this.url}/admin/users/${e}`,{headers:this.headers,xform:tw})}catch(e){if(e8(e))return{data:{user:null},error:e};throw e}}async updateUserById(e,t){try{return await tg(this.fetch,"PUT",`${this.url}/admin/users/${e}`,{body:t,headers:this.headers,xform:tw})}catch(e){if(e8(e))return{data:{user:null},error:e};throw e}}async deleteUser(e,t=!1){try{return await tg(this.fetch,"DELETE",`${this.url}/admin/users/${e}`,{headers:this.headers,body:{should_soft_delete:t},xform:tw})}catch(e){if(e8(e))return{data:{user:null},error:e};throw e}}async _listFactors(e){try{let{data:t,error:s}=await tg(this.fetch,"GET",`${this.url}/admin/users/${e.userId}/factors`,{headers:this.headers,xform:e=>({data:{factors:e},error:null})});return{data:t,error:s}}catch(e){if(e8(e))return{data:null,error:e};throw e}}async _deleteFactor(e){try{let t=await tg(this.fetch,"DELETE",`${this.url}/admin/users/${e.userId}/factors/${e.id}`,{headers:this.headers});return{data:t,error:null}}catch(e){if(e8(e))return{data:null,error:e};throw e}}}let tO={getItem:e=>eX()?globalThis.localStorage.getItem(e):null,setItem:(e,t)=>{eX()&&globalThis.localStorage.setItem(e,t)},removeItem:e=>{eX()&&globalThis.localStorage.removeItem(e)}};function tC(e={}){return{getItem:t=>e[t]||null,setItem:(t,s)=>{e[t]=s},removeItem:t=>{delete e[t]}}}let tj={debug:!!(globalThis&&eX()&&globalThis.localStorage&&"true"===globalThis.localStorage.getItem("supabase.gotrue-js.locks.debug"))};class tI extends Error{constructor(e){super(e),this.isAcquireTimeout=!0}}class tE extends tI{}async function tA(e,t,s){tj.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquire lock",e,t);let r=new globalThis.AbortController;return t>0&&setTimeout(()=>{r.abort(),tj.debug&&console.log("@supabase/gotrue-js: navigatorLock acquire timed out",e)},t),await globalThis.navigator.locks.request(e,0===t?{mode:"exclusive",ifAvailable:!0}:{mode:"exclusive",signal:r.signal},async r=>{if(r){tj.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquired",e,r.name);try{return await s()}finally{tj.debug&&console.log("@supabase/gotrue-js: navigatorLock: released",e,r.name)}}else{if(0===t)throw tj.debug&&console.log("@supabase/gotrue-js: navigatorLock: not immediately available",e),new tE(`Acquiring an exclusive Navigator LockManager lock "${e}" immediately failed`);if(tj.debug)try{let e=await globalThis.navigator.locks.query();console.log("@supabase/gotrue-js: Navigator LockManager state",JSON.stringify(e,null," "))}catch(e){console.warn("@supabase/gotrue-js: Error when querying Navigator LockManager state",e)}return console.warn("@supabase/gotrue-js: Navigator LockManager returned a null lock when using #request without ifAvailable set to true, it appears this browser is not following the LockManager spec https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request"),await s()}})}!function(){if("object"!=typeof globalThis)try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__}catch(e){"undefined"!=typeof self&&(self.globalThis=self)}}();let tP={url:"http://localhost:9999",storageKey:"supabase.auth.token",autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:eF,flowType:"implicit",debug:!1,hasCustomAuthorizationHeader:!1};async function tx(e,t,s){return await s()}class t${constructor(e){var t,s;this.memoryStorage=null,this.stateChangeEmitters=new Map,this.autoRefreshTicker=null,this.visibilityChangedCallback=null,this.refreshingDeferred=null,this.initializePromise=null,this.detectSessionInUrl=!0,this.hasCustomAuthorizationHeader=!1,this.suppressGetSessionWarning=!1,this.lockAcquired=!1,this.pendingInLock=[],this.broadcastChannel=null,this.logger=console.log,this.instanceID=t$.nextInstanceID,t$.nextInstanceID+=1,this.instanceID>0&&eq()&&console.warn("Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.");let r=Object.assign(Object.assign({},tP),e);if(this.logDebugMessages=!!r.debug,"function"==typeof r.debug&&(this.logger=r.debug),this.persistSession=r.persistSession,this.storageKey=r.storageKey,this.autoRefreshToken=r.autoRefreshToken,this.admin=new tT({url:r.url,headers:r.headers,fetch:r.fetch}),this.url=r.url,this.headers=r.headers,this.fetch=eH(r.fetch),this.lock=r.lock||tx,this.detectSessionInUrl=r.detectSessionInUrl,this.flowType=r.flowType,this.hasCustomAuthorizationHeader=r.hasCustomAuthorizationHeader,r.lock?this.lock=r.lock:eq()&&(null===(t=null==globalThis?void 0:globalThis.navigator)||void 0===t?void 0:t.locks)?this.lock=tA:this.lock=tx,this.mfa={verify:this._verify.bind(this),enroll:this._enroll.bind(this),unenroll:this._unenroll.bind(this),challenge:this._challenge.bind(this),listFactors:this._listFactors.bind(this),challengeAndVerify:this._challengeAndVerify.bind(this),getAuthenticatorAssuranceLevel:this._getAuthenticatorAssuranceLevel.bind(this)},this.persistSession?r.storage?this.storage=r.storage:eX()?this.storage=tO:(this.memoryStorage={},this.storage=tC(this.memoryStorage)):(this.memoryStorage={},this.storage=tC(this.memoryStorage)),eq()&&globalThis.BroadcastChannel&&this.persistSession&&this.storageKey){try{this.broadcastChannel=new globalThis.BroadcastChannel(this.storageKey)}catch(e){console.error("Failed to create a new BroadcastChannel, multi-tab state changes will not be available",e)}null===(s=this.broadcastChannel)||void 0===s||s.addEventListener("message",async e=>{this._debug("received broadcast notification from other tab or client",e),await this._notifyAllSubscribers(e.data.event,e.data.session,!1)})}this.initialize()}_debug(...e){return this.logDebugMessages&&this.logger(`GoTrueClient@${this.instanceID} (${ez}) ${new Date().toISOString()}`,...e),this}async initialize(){return this.initializePromise||(this.initializePromise=(async()=>await this._acquireLock(-1,async()=>await this._initialize()))()),await this.initializePromise}async _initialize(){try{let e=!!eq()&&await this._isPKCEFlow();if(this._debug("#_initialize()","begin","is PKCE flow",e),e||this.detectSessionInUrl&&this._isImplicitGrantFlow()){let{data:t,error:s}=await this._getSessionFromURL(e);if(s){if(this._debug("#_initialize()","error detecting session from URL",s),(null==s?void 0:s.message)==="Identity is already linked"||(null==s?void 0:s.message)==="Identity is already linked to another user")return{error:s};return await this._removeSession(),{error:s}}let{session:r,redirectType:i}=t;return this._debug("#_initialize()","detected session in URL",r,"redirect type",i),await this._saveSession(r),setTimeout(async()=>{"recovery"===i?await this._notifyAllSubscribers("PASSWORD_RECOVERY",r):await this._notifyAllSubscribers("SIGNED_IN",r)},0),{error:null}}return await this._recoverAndRefresh(),{error:null}}catch(e){if(e8(e))return{error:e};return{error:new te("Unexpected error during initialization",e)}}finally{await this._handleVisibilityChange(),this._debug("#_initialize()","end")}}async signInAnonymously(e){var t,s,r;try{await this._removeSession();let i=await tg(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{data:null!==(s=null===(t=null==e?void 0:e.options)||void 0===t?void 0:t.data)&&void 0!==s?s:{},gotrue_meta_security:{captcha_token:null===(r=null==e?void 0:e.options)||void 0===r?void 0:r.captchaToken}},xform:tm}),{data:n,error:a}=i;if(a||!n)return{data:{user:null,session:null},error:a};let o=n.session,l=n.user;return n.session&&(await this._saveSession(n.session),await this._notifyAllSubscribers("SIGNED_IN",o)),{data:{user:l,session:o},error:null}}catch(e){if(e8(e))return{data:{user:null,session:null},error:e};throw e}}async signUp(e){var t,s,r;try{let i;if(await this._removeSession(),"email"in e){let{email:s,password:r,options:n}=e,a=null,o=null;"pkce"===this.flowType&&([a,o]=await e3(this.storage,this.storageKey)),i=await tg(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,redirectTo:null==n?void 0:n.emailRedirectTo,body:{email:s,password:r,data:null!==(t=null==n?void 0:n.data)&&void 0!==t?t:{},gotrue_meta_security:{captcha_token:null==n?void 0:n.captchaToken},code_challenge:a,code_challenge_method:o},xform:tm})}else if("phone"in e){let{phone:t,password:n,options:a}=e;i=await tg(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{phone:t,password:n,data:null!==(s=null==a?void 0:a.data)&&void 0!==s?s:{},channel:null!==(r=null==a?void 0:a.channel)&&void 0!==r?r:"sms",gotrue_meta_security:{captcha_token:null==a?void 0:a.captchaToken}},xform:tm})}else throw new ti("You must provide either an email or phone number and a password");let{data:n,error:a}=i;if(a||!n)return{data:{user:null,session:null},error:a};let o=n.session,l=n.user;return n.session&&(await this._saveSession(n.session),await this._notifyAllSubscribers("SIGNED_IN",o)),{data:{user:l,session:o},error:null}}catch(e){if(e8(e))return{data:{user:null,session:null},error:e};throw e}}async signInWithPassword(e){try{let t;if(await this._removeSession(),"email"in e){let{email:s,password:r,options:i}=e;t=await tg(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{email:s,password:r,gotrue_meta_security:{captcha_token:null==i?void 0:i.captchaToken}},xform:tv})}else if("phone"in e){let{phone:s,password:r,options:i}=e;t=await tg(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{phone:s,password:r,gotrue_meta_security:{captcha_token:null==i?void 0:i.captchaToken}},xform:tv})}else throw new ti("You must provide either an email or phone number and a password");let{data:s,error:r}=t;if(r)return{data:{user:null,session:null},error:r};if(!s||!s.session||!s.user)return{data:{user:null,session:null},error:new tr};return s.session&&(await this._saveSession(s.session),await this._notifyAllSubscribers("SIGNED_IN",s.session)),{data:Object.assign({user:s.user,session:s.session},s.weak_password?{weakPassword:s.weak_password}:null),error:r}}catch(e){if(e8(e))return{data:{user:null,session:null},error:e};throw e}}async signInWithOAuth(e){var t,s,r,i;return await this._removeSession(),await this._handleProviderSignIn(e.provider,{redirectTo:null===(t=e.options)||void 0===t?void 0:t.redirectTo,scopes:null===(s=e.options)||void 0===s?void 0:s.scopes,queryParams:null===(r=e.options)||void 0===r?void 0:r.queryParams,skipBrowserRedirect:null===(i=e.options)||void 0===i?void 0:i.skipBrowserRedirect})}async exchangeCodeForSession(e){return await this.initializePromise,this._acquireLock(-1,async()=>this._exchangeCodeForSession(e))}async _exchangeCodeForSession(e){let t=await eW(this.storage,`${this.storageKey}-code-verifier`),[s,r]=(null!=t?t:"").split("/"),{data:i,error:n}=await tg(this.fetch,"POST",`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:e,code_verifier:s},xform:tm});return(await eY(this.storage,`${this.storageKey}-code-verifier`),n)?{data:{user:null,session:null,redirectType:null},error:n}:i&&i.session&&i.user?(i.session&&(await this._saveSession(i.session),await this._notifyAllSubscribers("SIGNED_IN",i.session)),{data:Object.assign(Object.assign({},i),{redirectType:null!=r?r:null}),error:n}):{data:{user:null,session:null,redirectType:null},error:new tr}}async signInWithIdToken(e){await this._removeSession();try{let{options:t,provider:s,token:r,access_token:i,nonce:n}=e,a=await tg(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:s,id_token:r,access_token:i,nonce:n,gotrue_meta_security:{captcha_token:null==t?void 0:t.captchaToken}},xform:tm}),{data:o,error:l}=a;if(l)return{data:{user:null,session:null},error:l};if(!o||!o.session||!o.user)return{data:{user:null,session:null},error:new tr};return o.session&&(await this._saveSession(o.session),await this._notifyAllSubscribers("SIGNED_IN",o.session)),{data:o,error:l}}catch(e){if(e8(e))return{data:{user:null,session:null},error:e};throw e}}async signInWithOtp(e){var t,s,r,i,n;try{if(await this._removeSession(),"email"in e){let{email:r,options:i}=e,n=null,a=null;"pkce"===this.flowType&&([n,a]=await e3(this.storage,this.storageKey));let{error:o}=await tg(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{email:r,data:null!==(t=null==i?void 0:i.data)&&void 0!==t?t:{},create_user:null===(s=null==i?void 0:i.shouldCreateUser)||void 0===s||s,gotrue_meta_security:{captcha_token:null==i?void 0:i.captchaToken},code_challenge:n,code_challenge_method:a},redirectTo:null==i?void 0:i.emailRedirectTo});return{data:{user:null,session:null},error:o}}if("phone"in e){let{phone:t,options:s}=e,{data:a,error:o}=await tg(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{phone:t,data:null!==(r=null==s?void 0:s.data)&&void 0!==r?r:{},create_user:null===(i=null==s?void 0:s.shouldCreateUser)||void 0===i||i,gotrue_meta_security:{captcha_token:null==s?void 0:s.captchaToken},channel:null!==(n=null==s?void 0:s.channel)&&void 0!==n?n:"sms"}});return{data:{user:null,session:null,messageId:null==a?void 0:a.message_id},error:o}}throw new ti("You must provide either an email or phone number.")}catch(e){if(e8(e))return{data:{user:null,session:null},error:e};throw e}}async verifyOtp(e){var t,s;try{let r,i;"email_change"!==e.type&&"phone_change"!==e.type&&await this._removeSession(),"options"in e&&(r=null===(t=e.options)||void 0===t?void 0:t.redirectTo,i=null===(s=e.options)||void 0===s?void 0:s.captchaToken);let{data:n,error:a}=await tg(this.fetch,"POST",`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},e),{gotrue_meta_security:{captcha_token:i}}),redirectTo:r,xform:tm});if(a)throw a;if(!n)throw Error("An error occurred on token verification.");let o=n.session,l=n.user;return(null==o?void 0:o.access_token)&&(await this._saveSession(o),await this._notifyAllSubscribers("recovery"==e.type?"PASSWORD_RECOVERY":"SIGNED_IN",o)),{data:{user:l,session:o},error:null}}catch(e){if(e8(e))return{data:{user:null,session:null},error:e};throw e}}async signInWithSSO(e){var t,s,r;try{await this._removeSession();let i=null,n=null;return"pkce"===this.flowType&&([i,n]=await e3(this.storage,this.storageKey)),await tg(this.fetch,"POST",`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},"providerId"in e?{provider_id:e.providerId}:null),"domain"in e?{domain:e.domain}:null),{redirect_to:null!==(s=null===(t=e.options)||void 0===t?void 0:t.redirectTo)&&void 0!==s?s:void 0}),(null===(r=null==e?void 0:e.options)||void 0===r?void 0:r.captchaToken)?{gotrue_meta_security:{captcha_token:e.options.captchaToken}}:null),{skip_http_redirect:!0,code_challenge:i,code_challenge_method:n}),headers:this.headers,xform:tb})}catch(e){if(e8(e))return{data:null,error:e};throw e}}async reauthenticate(){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._reauthenticate())}async _reauthenticate(){try{return await this._useSession(async e=>{let{data:{session:t},error:s}=e;if(s)throw s;if(!t)throw new ts;let{error:r}=await tg(this.fetch,"GET",`${this.url}/reauthenticate`,{headers:this.headers,jwt:t.access_token});return{data:{user:null,session:null},error:r}})}catch(e){if(e8(e))return{data:{user:null,session:null},error:e};throw e}}async resend(e){try{"email_change"!=e.type&&"phone_change"!=e.type&&await this._removeSession();let t=`${this.url}/resend`;if("email"in e){let{email:s,type:r,options:i}=e,{error:n}=await tg(this.fetch,"POST",t,{headers:this.headers,body:{email:s,type:r,gotrue_meta_security:{captcha_token:null==i?void 0:i.captchaToken}},redirectTo:null==i?void 0:i.emailRedirectTo});return{data:{user:null,session:null},error:n}}if("phone"in e){let{phone:s,type:r,options:i}=e,{data:n,error:a}=await tg(this.fetch,"POST",t,{headers:this.headers,body:{phone:s,type:r,gotrue_meta_security:{captcha_token:null==i?void 0:i.captchaToken}}});return{data:{user:null,session:null,messageId:null==n?void 0:n.message_id},error:a}}throw new ti("You must provide either an email or phone number and a type")}catch(e){if(e8(e))return{data:{user:null,session:null},error:e};throw e}}async getSession(){await this.initializePromise;let e=await this._acquireLock(-1,async()=>this._useSession(async e=>e));return e}async _acquireLock(e,t){this._debug("#_acquireLock","begin",e);try{if(this.lockAcquired){let e=this.pendingInLock.length?this.pendingInLock[this.pendingInLock.length-1]:Promise.resolve(),s=(async()=>(await e,await t()))();return this.pendingInLock.push((async()=>{try{await s}catch(e){}})()),s}return await this.lock(`lock:${this.storageKey}`,e,async()=>{this._debug("#_acquireLock","lock acquired for storage key",this.storageKey);try{this.lockAcquired=!0;let e=t();for(this.pendingInLock.push((async()=>{try{await e}catch(e){}})()),await e;this.pendingInLock.length;){let e=[...this.pendingInLock];await Promise.all(e),this.pendingInLock.splice(0,e.length)}return await e}finally{this._debug("#_acquireLock","lock released for storage key",this.storageKey),this.lockAcquired=!1}})}finally{this._debug("#_acquireLock","end")}}async _useSession(e){this._debug("#_useSession","begin");try{let t=await this.__loadSession();return await e(t)}finally{this._debug("#_useSession","end")}}async __loadSession(){this._debug("#__loadSession()","begin"),this.lockAcquired||this._debug("#__loadSession()","used outside of an acquired lock!",Error().stack);try{let e=null,t=await eW(this.storage,this.storageKey);if(this._debug("#getSession()","session from storage",t),null!==t&&(this._isValidSession(t)?e=t:(this._debug("#getSession()","session from storage is not valid"),await this._removeSession())),!e)return{data:{session:null},error:null};let s=!!e.expires_at&&e.expires_at<=Date.now()/1e3;if(this._debug("#__loadSession()",`session has${s?"":" not"} expired`,"expires_at",e.expires_at),!s){if(this.storage.isServer){let t=this.suppressGetSessionWarning,s=new Proxy(e,{get:(e,s,r)=>(t||"user"!==s||console.warn("Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and many not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server."),Reflect.get(e,s,r))});e=s}return{data:{session:e},error:null}}let{session:r,error:i}=await this._callRefreshToken(e.refresh_token);if(i)return{data:{session:null},error:i};return{data:{session:r},error:null}}finally{this._debug("#__loadSession()","end")}}async getUser(e){if(e)return await this._getUser(e);await this.initializePromise;let t=await this._acquireLock(-1,async()=>await this._getUser());return t}async _getUser(e){try{if(e)return await tg(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:e,xform:tw});return await this._useSession(async e=>{var t,s,r;let{data:i,error:n}=e;if(n)throw n;return(null===(t=i.session)||void 0===t?void 0:t.access_token)||this.hasCustomAuthorizationHeader?await tg(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:null!==(r=null===(s=i.session)||void 0===s?void 0:s.access_token)&&void 0!==r?r:void 0,xform:tw}):{data:{user:null},error:new ts}})}catch(e){if(e8(e))return{data:{user:null},error:e};throw e}}async updateUser(e,t={}){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._updateUser(e,t))}async _updateUser(e,t={}){try{return await this._useSession(async s=>{let{data:r,error:i}=s;if(i)throw i;if(!r.session)throw new ts;let n=r.session,a=null,o=null;"pkce"===this.flowType&&null!=e.email&&([a,o]=await e3(this.storage,this.storageKey));let{data:l,error:h}=await tg(this.fetch,"PUT",`${this.url}/user`,{headers:this.headers,redirectTo:null==t?void 0:t.emailRedirectTo,body:Object.assign(Object.assign({},e),{code_challenge:a,code_challenge_method:o}),jwt:n.access_token,xform:tw});if(h)throw h;return n.user=l.user,await this._saveSession(n),await this._notifyAllSubscribers("USER_UPDATED",n),{data:{user:n.user},error:null}})}catch(e){if(e8(e))return{data:{user:null},error:e};throw e}}_decodeJWT(e){return e0(e)}async setSession(e){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._setSession(e))}async _setSession(e){try{if(!e.access_token||!e.refresh_token)throw new ts;let t=Date.now()/1e3,s=t,r=!0,i=null,n=e0(e.access_token);if(n.exp&&(r=(s=n.exp)<=t),r){let{session:t,error:s}=await this._callRefreshToken(e.refresh_token);if(s)return{data:{user:null,session:null},error:s};if(!t)return{data:{user:null,session:null},error:null};i=t}else{let{data:r,error:n}=await this._getUser(e.access_token);if(n)throw n;i={access_token:e.access_token,refresh_token:e.refresh_token,user:r.user,token_type:"bearer",expires_in:s-t,expires_at:s},await this._saveSession(i),await this._notifyAllSubscribers("SIGNED_IN",i)}return{data:{user:i.user,session:i},error:null}}catch(e){if(e8(e))return{data:{session:null,user:null},error:e};throw e}}async refreshSession(e){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._refreshSession(e))}async _refreshSession(e){try{return await this._useSession(async t=>{var s;if(!e){let{data:r,error:i}=t;if(i)throw i;e=null!==(s=r.session)&&void 0!==s?s:void 0}if(!(null==e?void 0:e.refresh_token))throw new ts;let{session:r,error:i}=await this._callRefreshToken(e.refresh_token);return i?{data:{user:null,session:null},error:i}:r?{data:{user:r.user,session:r},error:null}:{data:{user:null,session:null},error:null}})}catch(e){if(e8(e))return{data:{user:null,session:null},error:e};throw e}}async _getSessionFromURL(e){try{if(!eq())throw new tn("No browser detected.");if("implicit"!==this.flowType||this._isImplicitGrantFlow()){if("pkce"==this.flowType&&!e)throw new ta("Not a valid PKCE flow url.")}else throw new tn("Not a valid implicit grant flow url.");let t=eZ(window.location.href);if(e){if(!t.code)throw new ta("No code detected.");let{data:e,error:s}=await this._exchangeCodeForSession(t.code);if(s)throw s;let r=new URL(window.location.href);return r.searchParams.delete("code"),window.history.replaceState(window.history.state,"",r.toString()),{data:{session:e.session,redirectType:null},error:null}}if(t.error||t.error_description||t.error_code)throw new tn(t.error_description||"Error in URL with unspecified error_description",{error:t.error||"unspecified_error",code:t.error_code||"unspecified_code"});let{provider_token:s,provider_refresh_token:r,access_token:i,refresh_token:n,expires_in:a,expires_at:o,token_type:l}=t;if(!i||!a||!n||!l)throw new tn("No session defined in URL");let h=Math.round(Date.now()/1e3),c=parseInt(a),u=h+c;o&&(u=parseInt(o));let d=u-h;1e3*d<=3e4&&console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${d}s, should have been closer to ${c}s`);let f=u-c;h-f>=120?console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale",f,u,h):h-f<0&&console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clok for skew",f,u,h);let{data:p,error:g}=await this._getUser(i);if(g)throw g;let y={provider_token:s,provider_refresh_token:r,access_token:i,expires_in:c,expires_at:u,refresh_token:n,token_type:l,user:p.user};return window.location.hash="",this._debug("#_getSessionFromURL()","clearing window.location.hash"),{data:{session:y,redirectType:t.type},error:null}}catch(e){if(e8(e))return{data:{session:null,redirectType:null},error:e};throw e}}_isImplicitGrantFlow(){let e=eZ(window.location.href);return!!(eq()&&(e.access_token||e.error_description))}async _isPKCEFlow(){let e=eZ(window.location.href),t=await eW(this.storage,`${this.storageKey}-code-verifier`);return!!(e.code&&t)}async signOut(e={scope:"global"}){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._signOut(e))}async _signOut({scope:e}={scope:"global"}){return await this._useSession(async t=>{var s;let{data:r,error:i}=t;if(i)return{error:i};let n=null===(s=r.session)||void 0===s?void 0:s.access_token;if(n){let{error:t}=await this.admin.signOut(n,e);if(t&&!(e8(t)&&"AuthApiError"===t.name&&(404===t.status||401===t.status||403===t.status)))return{error:t}}return"others"!==e&&(await this._removeSession(),await eY(this.storage,`${this.storageKey}-code-verifier`),await this._notifyAllSubscribers("SIGNED_OUT",null)),{error:null}})}onAuthStateChange(e){let t="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){let t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}),s={id:t,callback:e,unsubscribe:()=>{this._debug("#unsubscribe()","state change callback with id removed",t),this.stateChangeEmitters.delete(t)}};return this._debug("#onAuthStateChange()","registered callback with id",t),this.stateChangeEmitters.set(t,s),(async()=>{await this.initializePromise,await this._acquireLock(-1,async()=>{this._emitInitialSession(t)})})(),{data:{subscription:s}}}async _emitInitialSession(e){return await this._useSession(async t=>{var s,r;try{let{data:{session:r},error:i}=t;if(i)throw i;await (null===(s=this.stateChangeEmitters.get(e))||void 0===s?void 0:s.callback("INITIAL_SESSION",r)),this._debug("INITIAL_SESSION","callback id",e,"session",r)}catch(t){await (null===(r=this.stateChangeEmitters.get(e))||void 0===r?void 0:r.callback("INITIAL_SESSION",null)),this._debug("INITIAL_SESSION","callback id",e,"error",t),console.error(t)}})}async resetPasswordForEmail(e,t={}){let s=null,r=null;"pkce"===this.flowType&&([s,r]=await e3(this.storage,this.storageKey,!0));try{return await tg(this.fetch,"POST",`${this.url}/recover`,{body:{email:e,code_challenge:s,code_challenge_method:r,gotrue_meta_security:{captcha_token:t.captchaToken}},headers:this.headers,redirectTo:t.redirectTo})}catch(e){if(e8(e))return{data:null,error:e};throw e}}async getUserIdentities(){var e;try{let{data:t,error:s}=await this.getUser();if(s)throw s;return{data:{identities:null!==(e=t.user.identities)&&void 0!==e?e:[]},error:null}}catch(e){if(e8(e))return{data:null,error:e};throw e}}async linkIdentity(e){var t;try{let{data:s,error:r}=await this._useSession(async t=>{var s,r,i,n,a;let{data:o,error:l}=t;if(l)throw l;let h=await this._getUrlForProvider(`${this.url}/user/identities/authorize`,e.provider,{redirectTo:null===(s=e.options)||void 0===s?void 0:s.redirectTo,scopes:null===(r=e.options)||void 0===r?void 0:r.scopes,queryParams:null===(i=e.options)||void 0===i?void 0:i.queryParams,skipBrowserRedirect:!0});return await tg(this.fetch,"GET",h,{headers:this.headers,jwt:null!==(a=null===(n=o.session)||void 0===n?void 0:n.access_token)&&void 0!==a?a:void 0})});if(r)throw r;return!eq()||(null===(t=e.options)||void 0===t?void 0:t.skipBrowserRedirect)||window.location.assign(null==s?void 0:s.url),{data:{provider:e.provider,url:null==s?void 0:s.url},error:null}}catch(t){if(e8(t))return{data:{provider:e.provider,url:null},error:t};throw t}}async unlinkIdentity(e){try{return await this._useSession(async t=>{var s,r;let{data:i,error:n}=t;if(n)throw n;return await tg(this.fetch,"DELETE",`${this.url}/user/identities/${e.identity_id}`,{headers:this.headers,jwt:null!==(r=null===(s=i.session)||void 0===s?void 0:s.access_token)&&void 0!==r?r:void 0})})}catch(e){if(e8(e))return{data:null,error:e};throw e}}async _refreshAccessToken(e){let t=`#_refreshAccessToken(${e.substring(0,5)}...)`;this._debug(t,"begin");try{let s=Date.now();return await function(e,t){let s=new Promise((s,r)=>{(async()=>{for(let i=0;i<1/0;i++)try{let r=await e(i);if(!t(i,null,r)){s(r);return}}catch(e){if(!t(i,e)){r(e);return}}})()});return s}(async s=>(s>0&&await e1(200*Math.pow(2,s-1)),this._debug(t,"refreshing attempt",s),await tg(this.fetch,"POST",`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:e},headers:this.headers,xform:tm})),(e,t)=>t&&tl(t)&&Date.now()+200*Math.pow(2,e)-s<3e4)}catch(e){if(this._debug(t,"error",e),e8(e))return{data:{session:null,user:null},error:e};throw e}finally{this._debug(t,"end")}}_isValidSession(e){return"object"==typeof e&&null!==e&&"access_token"in e&&"refresh_token"in e&&"expires_at"in e}async _handleProviderSignIn(e,t){let s=await this._getUrlForProvider(`${this.url}/authorize`,e,{redirectTo:t.redirectTo,scopes:t.scopes,queryParams:t.queryParams});return this._debug("#_handleProviderSignIn()","provider",e,"options",t,"url",s),eq()&&!t.skipBrowserRedirect&&window.location.assign(s),{data:{provider:e,url:s},error:null}}async _recoverAndRefresh(){var e;let t="#_recoverAndRefresh()";this._debug(t,"begin");try{let s=await eW(this.storage,this.storageKey);if(this._debug(t,"session from storage",s),!this._isValidSession(s)){this._debug(t,"session is not valid"),null!==s&&await this._removeSession();return}let r=Math.round(Date.now()/1e3),i=(null!==(e=s.expires_at)&&void 0!==e?e:1/0)<r+10;if(this._debug(t,`session has${i?"":" not"} expired with margin of 10s`),i){if(this.autoRefreshToken&&s.refresh_token){let{error:e}=await this._callRefreshToken(s.refresh_token);e&&(console.error(e),tl(e)||(this._debug(t,"refresh failed with a non-retryable error, removing the session",e),await this._removeSession()))}}else await this._notifyAllSubscribers("SIGNED_IN",s)}catch(e){this._debug(t,"error",e),console.error(e);return}finally{this._debug(t,"end")}}async _callRefreshToken(e){var t,s;if(!e)throw new ts;if(this.refreshingDeferred)return this.refreshingDeferred.promise;let r=`#_callRefreshToken(${e.substring(0,5)}...)`;this._debug(r,"begin");try{this.refreshingDeferred=new eQ;let{data:t,error:s}=await this._refreshAccessToken(e);if(s)throw s;if(!t.session)throw new ts;await this._saveSession(t.session),await this._notifyAllSubscribers("TOKEN_REFRESHED",t.session);let r={session:t.session,error:null};return this.refreshingDeferred.resolve(r),r}catch(e){if(this._debug(r,"error",e),e8(e)){let s={session:null,error:e};return tl(e)||(await this._removeSession(),await this._notifyAllSubscribers("SIGNED_OUT",null)),null===(t=this.refreshingDeferred)||void 0===t||t.resolve(s),s}throw null===(s=this.refreshingDeferred)||void 0===s||s.reject(e),e}finally{this.refreshingDeferred=null,this._debug(r,"end")}}async _notifyAllSubscribers(e,t,s=!0){let r=`#_notifyAllSubscribers(${e})`;this._debug(r,"begin",t,`broadcast = ${s}`);try{this.broadcastChannel&&s&&this.broadcastChannel.postMessage({event:e,session:t});let r=[],i=Array.from(this.stateChangeEmitters.values()).map(async s=>{try{await s.callback(e,t)}catch(e){r.push(e)}});if(await Promise.all(i),r.length>0){for(let e=0;e<r.length;e+=1)console.error(r[e]);throw r[0]}}finally{this._debug(r,"end")}}async _saveSession(e){this._debug("#_saveSession()",e),this.suppressGetSessionWarning=!0,await eV(this.storage,this.storageKey,e)}async _removeSession(){this._debug("#_removeSession()"),await eY(this.storage,this.storageKey)}_removeVisibilityChangedCallback(){this._debug("#_removeVisibilityChangedCallback()");let e=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{e&&eq()&&(null==window?void 0:window.removeEventListener)&&window.removeEventListener("visibilitychange",e)}catch(e){console.error("removing visibilitychange callback failed",e)}}async _startAutoRefresh(){await this._stopAutoRefresh(),this._debug("#_startAutoRefresh()");let e=setInterval(()=>this._autoRefreshTokenTick(),3e4);this.autoRefreshTicker=e,e&&"object"==typeof e&&"function"==typeof e.unref?e.unref():"undefined"!=typeof Deno&&"function"==typeof Deno.unrefTimer&&Deno.unrefTimer(e),setTimeout(async()=>{await this.initializePromise,await this._autoRefreshTokenTick()},0)}async _stopAutoRefresh(){this._debug("#_stopAutoRefresh()");let e=this.autoRefreshTicker;this.autoRefreshTicker=null,e&&clearInterval(e)}async startAutoRefresh(){this._removeVisibilityChangedCallback(),await this._startAutoRefresh()}async stopAutoRefresh(){this._removeVisibilityChangedCallback(),await this._stopAutoRefresh()}async _autoRefreshTokenTick(){this._debug("#_autoRefreshTokenTick()","begin");try{await this._acquireLock(0,async()=>{try{let e=Date.now();try{return await this._useSession(async t=>{let{data:{session:s}}=t;if(!s||!s.refresh_token||!s.expires_at){this._debug("#_autoRefreshTokenTick()","no session");return}let r=Math.floor((1e3*s.expires_at-e)/3e4);this._debug("#_autoRefreshTokenTick()",`access token expires in ${r} ticks, a tick lasts 30000ms, refresh threshold is 3 ticks`),r<=3&&await this._callRefreshToken(s.refresh_token)})}catch(e){console.error("Auto refresh tick failed with error. This is likely a transient error.",e)}}finally{this._debug("#_autoRefreshTokenTick()","end")}})}catch(e){if(e.isAcquireTimeout||e instanceof tI)this._debug("auto refresh token tick lock not available");else throw e}}async _handleVisibilityChange(){if(this._debug("#_handleVisibilityChange()"),!eq()||!(null==window?void 0:window.addEventListener))return this.autoRefreshToken&&this.startAutoRefresh(),!1;try{this.visibilityChangedCallback=async()=>await this._onVisibilityChanged(!1),null==window||window.addEventListener("visibilitychange",this.visibilityChangedCallback),await this._onVisibilityChanged(!0)}catch(e){console.error("_handleVisibilityChange",e)}}async _onVisibilityChanged(e){let t=`#_onVisibilityChanged(${e})`;this._debug(t,"visibilityState",document.visibilityState),"visible"===document.visibilityState?(this.autoRefreshToken&&this._startAutoRefresh(),e||(await this.initializePromise,await this._acquireLock(-1,async()=>{if("visible"!==document.visibilityState){this._debug(t,"acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting");return}await this._recoverAndRefresh()}))):"hidden"===document.visibilityState&&this.autoRefreshToken&&this._stopAutoRefresh()}async _getUrlForProvider(e,t,s){let r=[`provider=${encodeURIComponent(t)}`];if((null==s?void 0:s.redirectTo)&&r.push(`redirect_to=${encodeURIComponent(s.redirectTo)}`),(null==s?void 0:s.scopes)&&r.push(`scopes=${encodeURIComponent(s.scopes)}`),"pkce"===this.flowType){let[e,t]=await e3(this.storage,this.storageKey),s=new URLSearchParams({code_challenge:`${encodeURIComponent(e)}`,code_challenge_method:`${encodeURIComponent(t)}`});r.push(s.toString())}if(null==s?void 0:s.queryParams){let e=new URLSearchParams(s.queryParams);r.push(e.toString())}return(null==s?void 0:s.skipBrowserRedirect)&&r.push(`skip_http_redirect=${s.skipBrowserRedirect}`),`${e}?${r.join("&")}`}async _unenroll(e){try{return await this._useSession(async t=>{var s;let{data:r,error:i}=t;return i?{data:null,error:i}:await tg(this.fetch,"DELETE",`${this.url}/factors/${e.factorId}`,{headers:this.headers,jwt:null===(s=null==r?void 0:r.session)||void 0===s?void 0:s.access_token})})}catch(e){if(e8(e))return{data:null,error:e};throw e}}async _enroll(e){try{return await this._useSession(async t=>{var s,r;let{data:i,error:n}=t;if(n)return{data:null,error:n};let{data:a,error:o}=await tg(this.fetch,"POST",`${this.url}/factors`,{body:{friendly_name:e.friendlyName,factor_type:e.factorType,issuer:e.issuer},headers:this.headers,jwt:null===(s=null==i?void 0:i.session)||void 0===s?void 0:s.access_token});return o?{data:null,error:o}:((null===(r=null==a?void 0:a.totp)||void 0===r?void 0:r.qr_code)&&(a.totp.qr_code=`data:image/svg+xml;utf-8,${a.totp.qr_code}`),{data:a,error:null})})}catch(e){if(e8(e))return{data:null,error:e};throw e}}async _verify(e){return this._acquireLock(-1,async()=>{try{return await this._useSession(async t=>{var s;let{data:r,error:i}=t;if(i)return{data:null,error:i};let{data:n,error:a}=await tg(this.fetch,"POST",`${this.url}/factors/${e.factorId}/verify`,{body:{code:e.code,challenge_id:e.challengeId},headers:this.headers,jwt:null===(s=null==r?void 0:r.session)||void 0===s?void 0:s.access_token});return a?{data:null,error:a}:(await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1e3)+n.expires_in},n)),await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED",n),{data:n,error:a})})}catch(e){if(e8(e))return{data:null,error:e};throw e}})}async _challenge(e){return this._acquireLock(-1,async()=>{try{return await this._useSession(async t=>{var s;let{data:r,error:i}=t;return i?{data:null,error:i}:await tg(this.fetch,"POST",`${this.url}/factors/${e.factorId}/challenge`,{headers:this.headers,jwt:null===(s=null==r?void 0:r.session)||void 0===s?void 0:s.access_token})})}catch(e){if(e8(e))return{data:null,error:e};throw e}})}async _challengeAndVerify(e){let{data:t,error:s}=await this._challenge({factorId:e.factorId});return s?{data:null,error:s}:await this._verify({factorId:e.factorId,challengeId:t.id,code:e.code})}async _listFactors(){let{data:{user:e},error:t}=await this.getUser();if(t)return{data:null,error:t};let s=(null==e?void 0:e.factors)||[],r=s.filter(e=>"totp"===e.factor_type&&"verified"===e.status);return{data:{all:s,totp:r},error:null}}async _getAuthenticatorAssuranceLevel(){return this._acquireLock(-1,async()=>await this._useSession(async e=>{var t,s;let{data:{session:r},error:i}=e;if(i)return{data:null,error:i};if(!r)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};let n=this._decodeJWT(r.access_token),a=null;n.aal&&(a=n.aal);let o=a,l=null!==(s=null===(t=r.user.factors)||void 0===t?void 0:t.filter(e=>"verified"===e.status))&&void 0!==s?s:[];l.length>0&&(o="aal2");let h=n.amr||[];return{data:{currentLevel:a,nextLevel:o,currentAuthenticationMethods:h},error:null}}))}}t$.nextInstanceID=0;var tR=t$;class tU extends tR{constructor(e){super(e)}}class tL{constructor(e,t,s){var r,i,n;if(this.supabaseUrl=e,this.supabaseKey=t,!e)throw Error("supabaseUrl is required.");if(!t)throw Error("supabaseKey is required.");let a=e.replace(/\/$/,"");this.realtimeUrl=`${a}/realtime/v1`.replace(/^http/i,"ws"),this.authUrl=`${a}/auth/v1`,this.storageUrl=`${a}/storage/v1`,this.functionsUrl=`${a}/functions/v1`;let o=`sb-${new URL(this.authUrl).hostname.split(".")[0]}-auth-token`,l={db:eR,realtime:eL,auth:Object.assign(Object.assign({},eU),{storageKey:o}),global:e$},h=function(e,t){let{db:s,auth:r,realtime:i,global:n}=e,{db:a,auth:o,realtime:l,global:h}=t;return{db:Object.assign(Object.assign({},a),s),auth:Object.assign(Object.assign({},o),r),realtime:Object.assign(Object.assign({},l),i),global:Object.assign(Object.assign({},h),n)}}(null!=s?s:{},l);this.storageKey=null!==(r=h.auth.storageKey)&&void 0!==r?r:"",this.headers=null!==(i=h.global.headers)&&void 0!==i?i:{},this.auth=this._initSupabaseAuthClient(null!==(n=h.auth)&&void 0!==n?n:{},this.headers,h.global.fetch),this.fetch=eJ(t,this._getAccessToken.bind(this),h.global.fetch),this.realtime=this._initRealtimeClient(Object.assign({headers:this.headers},h.realtime)),this.rest=new M(`${a}/rest/v1`,{headers:this.headers,schema:h.db.schema,fetch:this.fetch}),this._listenForAuthEvents()}get functions(){return new U(this.functionsUrl,{headers:this.headers,customFetch:this.fetch})}get storage(){return new eA(this.storageUrl,this.headers,this.fetch)}from(e){return this.rest.from(e)}schema(e){return this.rest.schema(e)}rpc(e,t={},s={}){return this.rest.rpc(e,t,s)}channel(e,t={config:{}}){return this.realtime.channel(e,t)}getChannels(){return this.realtime.getChannels()}removeChannel(e){return this.realtime.removeChannel(e)}removeAllChannels(){return this.realtime.removeAllChannels()}_getAccessToken(){var e,t,s,r,i,n;return s=this,r=void 0,i=void 0,n=function*(){let{data:s}=yield this.auth.getSession();return null!==(t=null===(e=s.session)||void 0===e?void 0:e.access_token)&&void 0!==t?t:null},new(i||(i=Promise))(function(e,t){function a(e){try{l(n.next(e))}catch(e){t(e)}}function o(e){try{l(n.throw(e))}catch(e){t(e)}}function l(t){var s;t.done?e(t.value):((s=t.value)instanceof i?s:new i(function(e){e(s)})).then(a,o)}l((n=n.apply(s,r||[])).next())})}_initSupabaseAuthClient({autoRefreshToken:e,persistSession:t,detectSessionInUrl:s,storage:r,storageKey:i,flowType:n,debug:a},o,l){var h;let c={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new tU({url:this.authUrl,headers:Object.assign(Object.assign({},c),o),storageKey:i,autoRefreshToken:e,persistSession:t,detectSessionInUrl:s,storage:r,flowType:n,debug:a,fetch:l,hasCustomAuthorizationHeader:"Authorization"in this.headers})}_initRealtimeClient(e){return new eo(this.realtimeUrl,Object.assign(Object.assign({},e),{params:Object.assign({apikey:this.supabaseKey},null==e?void 0:e.params)}))}_listenForAuthEvents(){return this.auth.onAuthStateChange((e,t)=>{this._handleTokenChanged(e,"CLIENT",null==t?void 0:t.access_token)})}_handleTokenChanged(e,t,s){("TOKEN_REFRESHED"===e||"SIGNED_IN"===e)&&this.changedAccessToken!==s?(this.realtime.setAuth(null!=s?s:null),this.changedAccessToken=s):"SIGNED_OUT"===e&&(this.realtime.setAuth(this.supabaseKey),"STORAGE"==t&&this.auth.signOut(),this.changedAccessToken=void 0)}}let tN=(e,t,s)=>new tL(e,t,s);var tD=Object.create,tJ=Object.defineProperty,tz=Object.getOwnPropertyDescriptor,tF=Object.getOwnPropertyNames,tB=Object.getPrototypeOf,tM=Object.prototype.hasOwnProperty,tq=(e,t,s,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of tF(t))tM.call(e,i)||i===s||tJ(e,i,{get:()=>t[i],enumerable:!(r=tz(t,i))||r.enumerable});return e},tK=(e,t,s)=>(s=null!=e?tD(tB(e)):{},tq(!t&&e&&e.__esModule?s:tJ(s,"default",{value:e,enumerable:!0}),e)),tX=(g={"../../node_modules/.pnpm/cookie@0.5.0/node_modules/cookie/index.js"(e){e.parse=function(e,t){if("string"!=typeof e)throw TypeError("argument str must be a string");for(var s={},i=(t||{}).decode||r,n=0;n<e.length;){var a=e.indexOf("=",n);if(-1===a)break;var o=e.indexOf(";",n);if(-1===o)o=e.length;else if(o<a){n=e.lastIndexOf(";",a-1)+1;continue}var l=e.slice(n,a).trim();if(void 0===s[l]){var h=e.slice(a+1,o).trim();34===h.charCodeAt(0)&&(h=h.slice(1,-1)),s[l]=function(e,t){try{return t(e)}catch(t){return e}}(h,i)}n=o+1}return s},e.serialize=function(e,r,n){var a=n||{},o=a.encode||i;if("function"!=typeof o)throw TypeError("option encode is invalid");if(!s.test(e))throw TypeError("argument name is invalid");var l=o(r);if(l&&!s.test(l))throw TypeError("argument val is invalid");var h=e+"="+l;if(null!=a.maxAge){var c=a.maxAge-0;if(isNaN(c)||!isFinite(c))throw TypeError("option maxAge is invalid");h+="; Max-Age="+Math.floor(c)}if(a.domain){if(!s.test(a.domain))throw TypeError("option domain is invalid");h+="; Domain="+a.domain}if(a.path){if(!s.test(a.path))throw TypeError("option path is invalid");h+="; Path="+a.path}if(a.expires){var u=a.expires;if("[object Date]"!==t.call(u)&&!(u instanceof Date)||isNaN(u.valueOf()))throw TypeError("option expires is invalid");h+="; Expires="+u.toUTCString()}if(a.httpOnly&&(h+="; HttpOnly"),a.secure&&(h+="; Secure"),a.priority)switch("string"==typeof a.priority?a.priority.toLowerCase():a.priority){case"low":h+="; Priority=Low";break;case"medium":h+="; Priority=Medium";break;case"high":h+="; Priority=High";break;default:throw TypeError("option priority is invalid")}if(a.sameSite)switch("string"==typeof a.sameSite?a.sameSite.toLowerCase():a.sameSite){case!0:case"strict":h+="; SameSite=Strict";break;case"lax":h+="; SameSite=Lax";break;case"none":h+="; SameSite=None";break;default:throw TypeError("option sameSite is invalid")}return h};var t=Object.prototype.toString,s=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function r(e){return -1!==e.indexOf("%")?decodeURIComponent(e):e}function i(e){return encodeURIComponent(e)}}},function(){return y||(0,g[tF(g)[0]])((y={exports:{}}).exports,y),y.exports}),tZ=tK(tX()),tH=tK(tX());function tG(e){if(!e)return null;try{let t=JSON.parse(e);if(!t)return null;if("Object"===t.constructor.name)return t;if("Array"!==t.constructor.name)throw Error(`Unexpected format: ${t.constructor.name}`);let[s,r,i]=t[0].split("."),n=E(r),a=new TextDecoder,{exp:o,sub:l,...h}=JSON.parse(a.decode(n));return{expires_at:o,expires_in:o-Math.round(Date.now()/1e3),token_type:"bearer",access_token:t[0],refresh_token:t[1],provider_token:t[2],provider_refresh_token:t[3],user:{id:l,factors:t[4],...h}}}catch(e){return console.warn("Failed to parse cookie string:",e),null}}function tV(e){var t;return JSON.stringify([e.access_token,e.refresh_token,e.provider_token,e.provider_refresh_token,(null==(t=e.user)?void 0:t.factors)??null])}function tW(){return"undefined"!=typeof window&&void 0!==window.document}var tY={path:"/",maxAge:31536e6},tQ=class{constructor(e){this.cookieOptions={...tY,...e}}getItem(e){let t=this.getCookie(e);return t?e.endsWith("-code-verifier")?t:JSON.stringify(tG(t)):null}setItem(e,t){if(e.endsWith("-code-verifier")){this.setCookie(e,t);return}let s=JSON.parse(t),r=tV(s);this.setCookie(e,r)}removeItem(e){this.deleteCookie(e)}},t0=class extends tQ{constructor(e){super(e)}getCookie(e){if(!tW())return null;let t=(0,tZ.parse)(document.cookie);return t[e]}setCookie(e,t){if(!tW())return null;document.cookie=(0,tZ.serialize)(e,t,{...this.cookieOptions,httpOnly:!1})}deleteCookie(e){if(!tW())return null;document.cookie=(0,tZ.serialize)(e,"",{...this.cookieOptions,maxAge:0,httpOnly:!1})}};function t1(e,t,s){var r;let i=tW();return tN(e,t,{...s,auth:{flowType:"pkce",autoRefreshToken:i,detectSessionInUrl:i,persistSession:!0,storage:s.auth.storage,...(null==(r=s.auth)?void 0:r.storageKey)?{storageKey:s.auth.storageKey}:{}}})}var t2=tH.parse,t4=tH.serialize;/*!
2
- * cookie
3
- * Copyright(c) 2012-2014 Roman Shtylman
4
- * Copyright(c) 2015 Douglas Christopher Wilson
5
- * MIT Licensed
6
- */}}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[11],{61377:function(e,n,s){Promise.resolve().then(s.t.bind(s,63512,23)),Promise.resolve().then(s.bind(s,94226))}},function(e){e.O(0,[583,540,640,215,620,770,304,339,995,954,378,374,235,873,631,106,7,226,470,730,744],function(){return e(e.s=61377)}),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[420],{61464:function(e,i,a){Promise.resolve().then(a.bind(a,37493))},49532:function(e,i,a){"use strict";let t,r;async function n(){if(t||(r||(r=fetch("/api/config").then(e=>e.json()).then(e=>t=e.apiBaseUrl)),await r),void 0===t)throw Error("API base URL is undefined");return t}a.d(i,{b:function(){return n}})},37493:function(e,i,a){"use strict";a.r(i),a.d(i,{default:function(){return G}});var t,r,n=a(24004),s=a(14978),l=a(11520),o=a(63147),c=a(93650),u=a(885),m=a(32414),d=a(49567),h=a(63362),p=a(80661),f=a(49578),v=a(18845),g=a(47908),x=a(85912),y=a(94941),j=a(65969),b=a(66642);let w={"Brand Risk":["competitors","excessive-agency","hallucination","overreliance","underconfidence","harmful:graphic-content","harmful:indiscriminate-weapons","harmful:misinformation-disinformation","harmful:non-violent-crime","harmful:radicalization","harmful:unsafe-practices"],"Legal Risk":["harmful:child-exploitation","harmful:copyright-violations","harmful:cybercrime","harmful:illegal-activities","harmful:illegal-drugs","harmful:intellectual-property","harmful:privacy","harmful:sex-crime","harmful:sexual-content","harmful:specialized-advice","harmful:violent-crime","harmful:self-harm"],"Malicious Attacks":["harmful:harassment-bullying","harmful:hate","harmful:insults","harmful:profanity","hijacking","jailbreak","pii","prompt-injection"]},Z={"Brand Risk":"Risks that can affect the brand reputation and trustworthiness.","Legal Risk":"Risks that can lead to legal consequences or violations.","Malicious Attacks":"Risks involving malicious activities targeting the system or users."},C={competitors:"Competitor mentions and endorsements","excessive-agency":"Model taking excessive initiative or misunderstanding its capabilities.",hallucination:"Model generating false or misleading information.",overreliance:"Model susceptible to relying on an incorrect user assumption or input.",underconfidence:"Model being overly cautious or uncertain.","harmful:graphic-content":"Displaying graphic or violent content.","harmful:harassment-bullying":"Content that harasses or bullies individuals.","harmful:hate":"Content that promotes hate or discrimination.","harmful:indiscriminate-weapons":"Content related to weapons without context.","harmful:insults":"Content that insults or demeans individuals.","harmful:misinformation-disinformation":"Spreading false or misleading information.","harmful:non-violent-crime":"Content related to non-violent criminal activities.","harmful:profanity":"Content containing profane or inappropriate language.","harmful:radicalization":"Content that promotes radical or extremist views.","harmful:self-harm":"Content that encourages self-harm or suicide.","harmful:unsafe-practices":"Content promoting unsafe or harmful practices.","harmful:child-exploitation":"Content exploiting or harming children.","harmful:copyright-violations":"Content violating copyright laws.","harmful:cybercrime":"Content related to cybercriminal activities.","harmful:illegal-activities":"Content promoting illegal activities.","harmful:illegal-drugs":"Content related to illegal drug use or trade.","harmful:intellectual-property":"Content violating intellectual property rights.","harmful:privacy":"Content violating privacy rights.","harmful:sex-crime":"Content related to sexual crimes.","harmful:sexual-content":"Explicit or inappropriate sexual content.","harmful:specialized-advice":"Providing advice in specialized fields without expertise.","harmful:violent-crime":"Content related to violent criminal activities.",hijacking:"Unauthorized or off-topic resource use.",jailbreak:"Bypassing security measures or restrictions.",pii:"Exposure or misuse of personally identifiable information.","prompt-injection":"Malicious inputs designed to manipulate the model's behavior."};(t=r||(r={})).Critical="Critical",t.High="High",t.Medium="Medium",t.Low="Low";let k={competitors:r.Low,"excessive-agency":r.Medium,hallucination:r.Medium,overreliance:r.Low,underconfidence:r.Low,"harmful:graphic-content":r.Medium,"harmful:harassment-bullying":r.High,"harmful:hate":r.Critical,"harmful:indiscriminate-weapons":r.Medium,"harmful:insults":r.Low,"harmful:misinformation-disinformation":r.Medium,"harmful:non-violent-crime":r.Medium,"harmful:profanity":r.Low,"harmful:radicalization":r.High,"harmful:self-harm":r.Critical,"harmful:unsafe-practices":r.Low,"harmful:child-exploitation":r.Critical,"harmful:copyright-violations":r.Medium,"harmful:cybercrime":r.High,"harmful:illegal-activities":r.High,"harmful:illegal-drugs":r.High,"harmful:intellectual-property":r.Medium,"harmful:privacy":r.High,"harmful:sex-crime":r.Critical,"harmful:sexual-content":r.High,"harmful:specialized-advice":r.High,"harmful:violent-crime":r.Critical,hijacking:r.High,jailbreak:r.Medium,pii:r.High,"prompt-injection":r.Medium},R=Object.entries(w).reduce((e,i)=>{let[a,t]=i;return t.forEach(i=>{e[i]=a}),e},{});Object.keys(R);let P={"excessive-agency":"Excessive Agency",overreliance:"Overreliance",competitors:"Competitor Endorsements",hallucination:"Hallucination",underconfidence:"Underconfidence","harmful:non-violent-crime":"Non-Violent Crime","harmful:indiscriminate-weapons":"Indiscriminate Weapons","harmful:hate":"Hate","harmful:self-harm":"Self-Harm","harmful:radicalization":"Radicalization","harmful:profanity":"Profanity","harmful:insults":"Insults","harmful:harassment-bullying":"Harassment & Bullying","harmful:illegal-activities":"Illegal Activities","harmful:graphic-content":"Graphic Content","harmful:unsafe-practices":"Unsafe Practices","harmful:misinformation-disinformation":"Misinformation & Disinformation","harmful:cybercrime":"Cybercrime","harmful:illegal-drugs":"Illegal Drugs","harmful:violent-crime":"Violent Crimes","harmful:sex-crime":"Sex Crimes","harmful:child-exploitation":"Child Exploitation","harmful:sexual-content":"Sexual Content","harmful:copyright-violations":"Copyright Violations","harmful:privacy":"Privacy","harmful:intellectual-property":"Intellectual Property","harmful:specialized-advice":"Specialized Advice",hijacking:"Hijacking",jailbreak:"Jailbreak","prompt-injection":"Prompt Injection",pii:"Personally Identifiable Information (PII)"},M=Object.entries(P).reduce((e,i)=>{let[a,t]=i;return e[t]=a,e},{});a(46553);var A=e=>{let{title:i,subtitle:a,progressValue:t,numTestsPassed:r,numTestsFailed:s,testTypes:l}=e;return(0,n.jsx)(p.Z,{children:(0,n.jsx)(f.Z,{className:"risk-card-container",children:(0,n.jsxs)(c.ZP,{container:!0,spacing:3,children:[(0,n.jsxs)(c.ZP,{item:!0,xs:12,md:6,style:{display:"flex",flexDirection:"column",alignItems:"center",textAlign:"center"},children:[(0,n.jsx)(o.Z,{variant:"h5",className:"risk-card-title",children:i}),(0,n.jsx)(o.Z,{variant:"subtitle1",color:"textSecondary",mb:2,children:a}),(0,n.jsx)(d.Z,{sx:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",width:100,height:100},children:(0,n.jsx)(b.a,{value:t,max:100,thickness:10,arc:{startAngle:-90,endAngle:90,color:"primary.main"},text:"".concat(Math.round(t),"%"),sx:{width:"100%",height:"100%"}})}),(0,n.jsxs)(o.Z,{variant:"h6",className:"risk-card-issues",children:[s," failed probes"]}),(0,n.jsxs)(o.Z,{variant:"subtitle1",color:"textSecondary",className:"risk-card-tests-passed",children:[r,"/",r+s," passed"]})]}),(0,n.jsx)(c.ZP,{item:!0,xs:6,md:4,children:(0,n.jsx)(g.Z,{dense:!0,children:l.map((e,i)=>(0,n.jsx)(j.Z,{title:C[e.name],placement:"left",arrow:!0,children:(0,n.jsxs)(x.ZP,{className:"risk-card-list-item",onClick:()=>{let i=new URLSearchParams(window.location.search),a=i.get("evalId"),t=P[e.name];window.location.href="/eval/?evalId=".concat(a,"&search=").concat(encodeURIComponent("(var=".concat(t,"|metric=").concat(t,")")))},style:{cursor:"pointer"},children:[(0,n.jsx)(y.Z,{primary:P[e.name],primaryTypographyProps:{variant:"body2"}}),e.passed?(0,n.jsx)(v.Z,{className:"risk-card-icon-passed"}):(0,n.jsx)(h.Z,{className:"risk-card-icon-failed"})]})},i))})})]})})})};a(32991);var N=e=>{let{categoryStats:i}=e,a=Object.keys(w).map(e=>({name:e,passed:w[e].every(e=>{var a,t;return(null===(a=i[e])||void 0===a?void 0:a.pass)===(null===(t=i[e])||void 0===t?void 0:t.total)})}));return(0,n.jsx)(m.Z,{spacing:4,children:a.map((e,a)=>{let t=e.name,r=w[t],s=r.reduce((e,a)=>{var t;return e+((null===(t=i[a])||void 0===t?void 0:t.pass)||0)},0),l=r.reduce((e,a)=>{var t;return e+((null===(t=i[a])||void 0===t?void 0:t.total)||0)},0);return(0,n.jsx)(A,{title:e.name,subtitle:Z[t],progressValue:s/l*100,numTestsPassed:s,numTestsFailed:l-s,testTypes:r.map(e=>{var a,t;return{name:e,passed:(null===(a=i[e])||void 0===a?void 0:a.pass)===(null===(t=i[e])||void 0===t?void 0:t.total)}})},a)})})};a(4309);var L=e=>{let{categoryStats:i}=e,a=[r.Critical,r.High,r.Medium,r.Low],t=a.reduce((e,a)=>(e[a]=Object.keys(i).reduce((e,i)=>k[i]===a?e+1:e,0),e),{});return(0,n.jsx)(c.ZP,{container:!0,spacing:2,mb:4,children:a.map(e=>(0,n.jsx)(c.ZP,{item:!0,xs:12,sm:6,md:3,children:(0,n.jsx)(p.Z,{className:"card-".concat(e.toLowerCase()),children:(0,n.jsxs)(f.Z,{onClick:()=>window.location.hash="#table",children:[(0,n.jsx)(o.Z,{variant:"body2",component:"div",children:e}),(0,n.jsxs)(o.Z,{variant:"h6",color:"text.primary",children:[t[e]," issues"]})]})})},e))})},I=a(40982),S=a(37803),H=a(65068),z=a(70417),F=a(21303),U=a(61451),D=a(26485),E=a(38592),O=a(30021),B=a(19708);a(93091);var T=a(28891);let V=e=>{let i=[];for(let[a,t]of Object.entries(w))for(let a of t)i.push({type:P[a]||a,description:C[a]||"",passRate:e[a]?(e[a].pass/e[a].total*100).toFixed(1)+"%":"N/A",severity:k[a]||"Unknown"});return i.sort((e,i)=>"N/A"===e.passRate?1:"N/A"===i.passRate?-1:parseFloat(e.passRate)-parseFloat(i.passRate))};var _=e=>{let{evalId:i,categoryStats:a}=e;(0,T.useRouter)();let t=V(a).filter(e=>"N/A"!==e.passRate),[r,l]=s.useState(0),[c,u]=s.useState(10),[m,h]=s.useState("asc"),[p,f]=s.useState("default"),v=e=>{let i=p===e&&"asc"===m;h(i?"desc":"asc"),f(e)};return(0,n.jsxs)(d.Z,{children:[(0,n.jsx)(o.Z,{variant:"h6",gutterBottom:!0,id:"table",children:"Vulnerabilities and Mitigations"}),(0,n.jsxs)(U.Z,{component:S.Z,children:[(0,n.jsxs)(H.Z,{children:[(0,n.jsx)(D.Z,{children:(0,n.jsxs)(O.Z,{children:[(0,n.jsx)(F.Z,{children:"Type"}),(0,n.jsx)(F.Z,{children:"Description"}),(0,n.jsx)(F.Z,{children:(0,n.jsx)(B.Z,{active:"passRate"===p,direction:"passRate"===p?m:"asc",onClick:()=>v("passRate"),children:"Pass rate"})}),(0,n.jsx)(F.Z,{children:(0,n.jsx)(B.Z,{active:"severity"===p,direction:"severity"===p?m:"asc",onClick:()=>v("severity"),children:"Severity"})}),(0,n.jsx)(F.Z,{children:"Actions"})]})}),(0,n.jsx)(z.Z,{children:t.sort((e,i)=>{if("passRate"===p)return"N/A"===e.passRate?1:"N/A"===i.passRate?-1:"asc"===m?parseFloat(e.passRate)-parseFloat(i.passRate):parseFloat(i.passRate)-parseFloat(e.passRate);if("severity"===p){if("N/A"===e.passRate)return 1;if("N/A"===i.passRate)return -1;let a={Critical:4,High:3,Medium:2,Low:1};return"asc"===m?a[e.severity]-a[i.severity]:a[i.severity]-a[e.severity]}{let a={Critical:4,High:3,Medium:2,Low:1};return e.severity===i.severity?parseFloat(e.passRate)-parseFloat(i.passRate):a[i.severity]-a[e.severity]}}).slice(r*c,r*c+c).map((e,i)=>{let a="";if("N/A"!==e.passRate){let i=parseFloat(e.passRate);a=i>=75?"pass-high":i>=50?"pass-medium":"pass-low"}return(0,n.jsxs)(O.Z,{children:[(0,n.jsx)(F.Z,{children:e.type}),(0,n.jsx)(F.Z,{children:e.description}),(0,n.jsx)(F.Z,{className:a,children:e.passRate}),(0,n.jsx)(F.Z,{className:"vuln-".concat(e.severity.toLowerCase()),children:e.severity}),(0,n.jsxs)(F.Z,{children:[(0,n.jsx)(I.Z,{variant:"contained",size:"small",onClick:()=>{let i=new URLSearchParams(window.location.search),a=i.get("evalId");window.location.href="/eval/?evalId=".concat(a,"&search=").concat(encodeURIComponent("(var=".concat(e.type,"|metric=").concat(e.type)))},children:"View logs"}),(0,n.jsx)(j.Z,{title:"Temporarily disabled while in beta, click to contact us to enable",children:(0,n.jsx)(I.Z,{variant:"contained",size:"small",color:"inherit",style:{marginLeft:8},onClick:()=>{window.location.href="mailto:inquiries@promptfoo.dev?subject=Promptfoo%20automatic%20vulnerability%20mitigation&body=Hello%20Promptfoo%20Team,%0D%0A%0D%0AI%20am%20interested%20in%20learning%20more%20about%20the%20automatic%20vulnerability%20mitigation%20beta.%20Please%20provide%20me%20with%20more%20details.%0D%0A%0D%0A"},children:"Apply mitigation"})})]})]},i)})})]}),t.length>c&&(0,n.jsx)(E.Z,{rowsPerPageOptions:[10,25,50],component:"div",count:t.length,rowsPerPage:c,page:r,onPageChange:(e,i)=>{l(i)},onRowsPerPageChange:e=>{u(parseInt(e.target.value,10)),l(0)}})]})]})},q=a(49532);a(67667);var G=()=>{let[e,i]=s.useState(null),[a,t]=s.useState(null);if(s.useEffect(()=>{let e=async e=>{let i=await fetch("".concat(await (0,q.b)(),"/api/results/").concat(e),{cache:"no-store"}),a=await i.json();t(a.data)},a=new URLSearchParams(window.location.search),r=a.get("evalId");r&&(i(r),e(r))},[]),!a||!e)return(0,n.jsx)("div",{children:"Loading..."});let r=a.results.table.head.prompts[0],m=a.results.table.body,d=a.results.results.reduce((e,i)=>{var a,t,r,n,s,l;let o=i.vars.harmCategory||(null===(n=i.gradingResult)||void 0===n?void 0:null===(r=n.componentResults)||void 0===r?void 0:null===(t=r.find(e=>{var i;return null===(i=e.assertion)||void 0===i?void 0:i.metric}))||void 0===t?void 0:null===(a=t.assertion)||void 0===a?void 0:a.metric),c=M[o];if(!c)return console.log("Unknown harm category:",o,"for",i.vars.harmCategory||(null===(l=i.gradingResult)||void 0===l?void 0:null===(s=l.assertion)||void 0===s?void 0:s.metric)),e;let u=i.success;return e[c]=e[c]||{pass:0,total:0},e[c].total++,u&&e[c].pass++,e},{});return(0,n.jsx)(l.Z,{children:(0,n.jsxs)(c.ZP,{container:!0,direction:"column",spacing:1,pt:6,pb:8,children:[(0,n.jsxs)(c.ZP,{item:!0,className:"report-header",children:[(0,n.jsxs)(o.Z,{variant:"h4",children:[(0,n.jsx)("strong",{children:"LLM Risk Report"}),a.config.description&&": ".concat(a.config.description)]}),(0,n.jsx)(o.Z,{variant:"subtitle1",mb:2,children:new Date(a.createdAt).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"})}),(0,n.jsxs)(o.Z,{variant:"body1",gutterBottom:!0,className:"report-details",children:[(0,n.jsx)(u.Z,{size:"small",label:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("strong",{children:"Model:"})," ",r.provider]})}),(0,n.jsx)(u.Z,{size:"small",label:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("strong",{children:"Dataset:"})," ",m.length," probes"]})}),(0,n.jsx)(u.Z,{size:"small",label:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("strong",{children:"Prompt:"}),' "',r.raw.length>20?"".concat(r.raw.substring(0,20),"..."):r.raw,'"']})})]})]}),(0,n.jsx)(c.ZP,{item:!0,children:(0,n.jsx)(L,{categoryStats:d})}),(0,n.jsx)(c.ZP,{item:!0,children:(0,n.jsx)(N,{categoryStats:d})}),(0,n.jsx)(c.ZP,{item:!0,children:(0,n.jsx)(_,{evalId:e,categoryStats:d})})]})})}},4309:function(){},67667:function(){},46553:function(){},32991:function(){},93091:function(){}},function(e){e.O(0,[540,215,620,770,304,995,378,135,470,730,744],function(){return e(e.s=61464)}),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- .custom-metric-container{display:inline-flex;flex-wrap:wrap;gap:.25rem;font-weight:400}.custom-metric-container>span{padding:.25rem .5rem;border-radius:4px;color:var(--text-color);border:1px solid var(--border-color);margin-right:.25rem}.custom-metric-container>span.clickable{cursor:pointer}.custom-metric-container>span.clickable:hover{border-color:var(--link-color)}pre{white-space:pre-wrap}.font-bold{font-weight:700}.divTable,table.results-table{border:1px solid var(--table-border-color);border-collapse:collapse;width:100%;margin:1rem 0;box-shadow:0 2px 4px rgba(0,0,0,.1)}.results-table ins{background-color:var(--insert-highlight-color);text-decoration:none}.results-table del{background-color:var(--delete-highlight-color);-webkit-text-decoration:strikethrough;text-decoration:strikethrough}.tr{display:flex}.results-table tr,.tr{width:-moz-fit-content;width:fit-content}.results-table tr:hover,.tr:hover{background-color:rgba(0,0,0,.02)}.results-table td,.results-table th,.td,.th{position:relative;box-shadow:inset 0 0 0 1px var(--border-color);vertical-align:top}.compact .td,.compact .th,.compact.results-table td,.compact.results-table th{padding:.5rem}.results-table td.variable,.results-table th.variable,.td.variable,.th.variable{background-color:var(--variable-background-color)}.results-table tr.header{background-color:var(--header-background-color)}.results-table th,.th{padding:1rem;position:relative;vertical-align:bottom;text-align:left;white-space:pre-wrap;font-weight:400}.results-table th .action{cursor:pointer;margin-left:.5rem}.results-table th .action svg{vertical-align:middle}.results-table td,.results-table th{height:1px}@-moz-document url-prefix(){.results-table td,.results-table th{height:100%}}.firefox-fix{display:table;height:100%}.results-table tr .cell{display:flex;flex-direction:column;white-space:pre-wrap;height:100%;padding:1rem}.results-table tr .cell img{max-width:256px;max-height:256px;cursor:zoom-in}.results-table tr .cell .prompt{background-color:var(--variable-background-color);padding:1rem;font-family:Courier New,Courier,monospace;font-size:.8rem}.results-table tr .cell .prompt,.results-table tr .cell .prompt .pill{border:1px solid var(--border-color);border-radius:4px;margin-bottom:.5rem}.results-table tr .cell .prompt .pill{display:block;background-color:var(--neutral-background-color);padding:.25rem;width:-moz-fit-content;width:fit-content}.results-table tr .cell-actions{display:flex;gap:.5rem;visibility:hidden;position:absolute;top:1.25rem;right:.75rem;line-height:0;font-size:1.25rem}.results-table tr:hover .cell-actions{visibility:visible}.results-table tr .cell-detail{display:flex;flex-wrap:wrap;column-gap:.5rem;row-gap:.25rem;padding-top:1rem;margin-top:auto}.results-table tr .stat-item{font-weight:400;font-size:.75rem;color:#888}.results-table tr .cell-actions .action{cursor:pointer}.results-table th .output-header{display:flex;flex-direction:column;height:100%;align-items:flex-start}.results-table th .output-header .pills{display:flex;flex-wrap:wrap;gap:.25rem;align-items:center;margin-bottom:.5rem}.results-table th .prompt-container{font-weight:700;margin-bottom:.5rem}.results-table th .prompt-container>*{display:inline}.results-table th .provider{display:inline-block;padding:.25rem .5rem;background-color:var(--neutral-background-color);border:1px solid var(--border-color);border-radius:4px;margin-right:.25rem}.results-table th .summary{font-weight:400}.results-table th .prompt-detail{display:flex;flex-wrap:wrap;column-gap:.5rem;row-gap:.25rem;font-size:.75rem;color:#888;margin-top:auto}.results-table th .summary .highlight{padding:.25rem .5rem;border-radius:4px;background-color:var(--fail-background-color);border:1px solid var(--border-color)}.results-table th .summary .highlight.success{background-color:var(--success-background-color);border:1px solid var(--pass-color)}.results-table .status{font-weight:700;margin-bottom:.5rem}.results-table .status .pill{display:inline-block;padding:.25rem .5rem;border-radius:4px;margin-right:.25rem}.results-table .pass .pill{background-color:var(--success-background-color);color:var(--pass-color);border:1px solid var(--pass-color)}.results-table .fail .pill{border:1px solid var(--fail-color)}.fail-reason,.results-table .fail{color:var(--fail-color)}.fail-reason{font-weight:700}.compact .fail-reason{display:inline}.results-table .fail .pill{background-color:var(--fail-background-color)}.results-table td .score{font-weight:400}.results-table .comment{margin-top:.5rem;padding:.25rem .5rem;border-radius:4px;background-color:var(--neutral-background-color);font-style:italic;cursor:pointer}.first-prompt-col{border-left:2px solid #888}.first-prompt-row{border-top:2px solid #888}.search-highlight{color:var(--search-text-color);background-color:var(--search-highlight-color)}.results-table tr .cell .lightbox{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:1000}.results-table tr .cell .lightbox img{max-width:90%;max-height:90%;cursor:zoom-out}.resizer{position:absolute;right:0;top:0;height:100%;width:5px;cursor:col-resize;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;background:var(--text-color);opacity:.5}.resizer.isResizing{background:var(--text-color);opacity:1}@media (hover:hover){.resizer{opacity:0}:hover>.resizer{opacity:1}}.description{cursor:pointer;transition:background-color .3s ease}.description:hover{background-color:#f0f0f0}.description-filepath{color:#bbb;font-size:.75rem}body{background-color:var(--background-color);color:var(--text-color)}.notice{display:flex;flex-direction:column;gap:1.5rem;justify-content:center;align-items:center;height:9rem}