promptfoo 0.76.1 → 0.77.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/dist/package.json +2 -2
  2. package/dist/src/assertions.d.ts +2 -0
  3. package/dist/src/assertions.d.ts.map +1 -1
  4. package/dist/src/assertions.js +12 -11
  5. package/dist/src/assertions.js.map +1 -1
  6. package/dist/src/commands/generate/redteam.d.ts.map +1 -1
  7. package/dist/src/commands/generate/redteam.js +6 -5
  8. package/dist/src/commands/generate/redteam.js.map +1 -1
  9. package/dist/src/config.d.ts.map +1 -1
  10. package/dist/src/config.js +24 -22
  11. package/dist/src/config.js.map +1 -1
  12. package/dist/src/evaluatorHelpers.d.ts.map +1 -1
  13. package/dist/src/evaluatorHelpers.js +29 -38
  14. package/dist/src/evaluatorHelpers.js.map +1 -1
  15. package/dist/src/prompts/index.js +1 -1
  16. package/dist/src/prompts/index.js.map +1 -1
  17. package/dist/src/providers/azureopenai.js +1 -1
  18. package/dist/src/providers/azureopenai.js.map +1 -1
  19. package/dist/src/providers/localai.d.ts.map +1 -1
  20. package/dist/src/providers/localai.js +6 -6
  21. package/dist/src/providers/localai.js.map +1 -1
  22. package/dist/src/providers/promptfoo.d.ts.map +1 -1
  23. package/dist/src/providers/promptfoo.js +3 -3
  24. package/dist/src/providers/promptfoo.js.map +1 -1
  25. package/dist/src/providers/voyage.d.ts.map +1 -1
  26. package/dist/src/providers/voyage.js +2 -2
  27. package/dist/src/providers/voyage.js.map +1 -1
  28. package/dist/src/redteam/constants.d.ts +3 -2
  29. package/dist/src/redteam/constants.d.ts.map +1 -1
  30. package/dist/src/redteam/constants.js +11 -2
  31. package/dist/src/redteam/constants.js.map +1 -1
  32. package/dist/src/redteam/graders.d.ts.map +1 -1
  33. package/dist/src/redteam/graders.js +2 -0
  34. package/dist/src/redteam/graders.js.map +1 -1
  35. package/dist/src/redteam/plugins/harmful.d.ts.map +1 -1
  36. package/dist/src/redteam/plugins/harmful.js +10 -4
  37. package/dist/src/redteam/plugins/harmful.js.map +1 -1
  38. package/dist/src/redteam/plugins/index.d.ts.map +1 -1
  39. package/dist/src/redteam/plugins/index.js +5 -0
  40. package/dist/src/redteam/plugins/index.js.map +1 -1
  41. package/dist/src/redteam/plugins/ssrf.d.ts +16 -0
  42. package/dist/src/redteam/plugins/ssrf.d.ts.map +1 -0
  43. package/dist/src/redteam/plugins/ssrf.js +119 -0
  44. package/dist/src/redteam/plugins/ssrf.js.map +1 -0
  45. package/dist/src/suggestions.d.ts.map +1 -1
  46. package/dist/src/suggestions.js +0 -1
  47. package/dist/src/suggestions.js.map +1 -1
  48. package/dist/src/types/index.d.ts +2 -2
  49. package/dist/src/types/index.d.ts.map +1 -1
  50. package/dist/src/types/index.js.map +1 -1
  51. package/dist/src/types/redteam.d.ts +1 -1
  52. package/dist/src/types/redteam.d.ts.map +1 -1
  53. package/dist/src/util/index.d.ts +7 -0
  54. package/dist/src/util/index.d.ts.map +1 -1
  55. package/dist/src/util/index.js +11 -2
  56. package/dist/src/util/index.js.map +1 -1
  57. package/dist/src/util/transform.d.ts +18 -3
  58. package/dist/src/util/transform.d.ts.map +1 -1
  59. package/dist/src/util/transform.js +48 -32
  60. package/dist/src/util/transform.js.map +1 -1
  61. package/dist/src/validators/prompts.js +1 -1
  62. package/dist/src/validators/prompts.js.map +1 -1
  63. package/dist/src/validators/providers.js +1 -0
  64. package/dist/src/validators/providers.js.map +1 -1
  65. package/dist/src/validators/redteam.d.ts +28 -28
  66. package/dist/src/validators/redteam.d.ts.map +1 -1
  67. package/dist/src/validators/redteam.js +11 -5
  68. package/dist/src/validators/redteam.js.map +1 -1
  69. package/dist/src/web/nextui/404/index.html +1 -1
  70. package/dist/src/web/nextui/404.html +1 -1
  71. package/dist/src/web/nextui/_next/static/chunks/258-e4da2950edde8e2a.js +1 -0
  72. package/dist/src/web/nextui/_next/static/chunks/374-45af52ed3050e856.js +1 -0
  73. package/dist/src/web/nextui/_next/static/chunks/485-d94c512bab4204ef.js +6 -0
  74. package/dist/src/web/nextui/_next/static/chunks/{902-17fd074eab50e03c.js → 856-808babe20420dc5b.js} +1 -1
  75. package/dist/src/web/nextui/_next/static/chunks/{222-8d27a2c754bc8029.js → 983-9c47c398e832cf0b.js} +1 -1
  76. package/dist/src/web/nextui/_next/static/chunks/app/auth/login/{page-92f9144478c53546.js → page-7134c0901e4f0212.js} +1 -1
  77. package/dist/src/web/nextui/_next/static/chunks/app/auth/signup/{page-a52bd72f4be1d8a3.js → page-d7ebbf82bbbce998.js} +1 -1
  78. package/dist/src/web/nextui/_next/static/chunks/app/datasets/{page-f877135091782ccc.js → page-28f9bf8ecd740718.js} +1 -1
  79. package/dist/src/web/nextui/_next/static/chunks/app/eval/[id]/{page-8800f6aac032abaf.js → page-6c4e63c9602f522f.js} +1 -1
  80. package/dist/src/web/nextui/_next/static/chunks/app/eval/{page-e64af76a729b3178.js → page-acc3dae78a7a9e91.js} +1 -1
  81. package/dist/src/web/nextui/_next/static/chunks/app/{layout-89af82fc3072f711.js → layout-3e4716f7ebdd0dab.js} +1 -1
  82. package/dist/src/web/nextui/_next/static/chunks/app/page-81e3b8fee37eaf67.js +1 -0
  83. package/dist/src/web/nextui/_next/static/chunks/app/prompts/page-34d8a2070dde71a1.js +1 -0
  84. package/dist/src/web/nextui/_next/static/chunks/app/report/page-c630a8d0cba86664.js +1 -0
  85. package/dist/src/web/nextui/_next/static/chunks/app/setup/{page-ff63fc392248afc1.js → page-e19ab8695d6ac015.js} +1 -1
  86. package/dist/src/web/nextui/_next/static/chunks/main-app-4398f7af7ad8387f.js +1 -0
  87. package/dist/src/web/nextui/auth/login/index.html +1 -1
  88. package/dist/src/web/nextui/auth/login/index.txt +3 -3
  89. package/dist/src/web/nextui/auth/signup/index.html +1 -1
  90. package/dist/src/web/nextui/auth/signup/index.txt +3 -3
  91. package/dist/src/web/nextui/datasets/index.html +1 -1
  92. package/dist/src/web/nextui/datasets/index.txt +3 -3
  93. package/dist/src/web/nextui/eval/index.html +1 -1
  94. package/dist/src/web/nextui/eval/index.txt +3 -3
  95. package/dist/src/web/nextui/index.html +1 -1
  96. package/dist/src/web/nextui/index.txt +2 -2
  97. package/dist/src/web/nextui/progress/index.html +1 -1
  98. package/dist/src/web/nextui/progress/index.txt +3 -3
  99. package/dist/src/web/nextui/prompts/index.html +1 -1
  100. package/dist/src/web/nextui/prompts/index.txt +3 -3
  101. package/dist/src/web/nextui/report/index.html +1 -1
  102. package/dist/src/web/nextui/report/index.txt +3 -3
  103. package/dist/src/web/nextui/setup/index.html +1 -1
  104. package/dist/src/web/nextui/setup/index.txt +3 -3
  105. package/dist/test/assertions.test.js +24 -0
  106. package/dist/test/assertions.test.js.map +1 -1
  107. package/dist/test/providers.anthropic.test.js +1 -1
  108. package/dist/test/providers.anthropic.test.js.map +1 -1
  109. package/dist/test/providers.test.js +2 -2
  110. package/dist/test/providers.test.js.map +1 -1
  111. package/dist/test/redteam/validators.test.js +28 -17
  112. package/dist/test/redteam/validators.test.js.map +1 -1
  113. package/dist/test/util.test.js +220 -197
  114. package/dist/test/util.test.js.map +1 -1
  115. package/dist/test/util.transform.test.js +6 -0
  116. package/dist/test/util.transform.test.js.map +1 -1
  117. package/package.json +2 -2
  118. package/dist/src/web/nextui/_next/static/chunks/163-ee6a283eb46aef3a.js +0 -6
  119. package/dist/src/web/nextui/_next/static/chunks/258-d96af6d747ab1227.js +0 -1
  120. package/dist/src/web/nextui/_next/static/chunks/281-64d9f1415a301ee5.js +0 -1
  121. package/dist/src/web/nextui/_next/static/chunks/app/page-9834800b0dc19c3f.js +0 -1
  122. package/dist/src/web/nextui/_next/static/chunks/app/prompts/page-086373e027220e78.js +0 -1
  123. package/dist/src/web/nextui/_next/static/chunks/app/report/page-a7dd52951b145b11.js +0 -1
  124. package/dist/src/web/nextui/_next/static/chunks/main-app-0dc90092cd7acaaf.js +0 -1
  125. /package/dist/src/web/nextui/_next/static/chunks/app/progress/{page-32f742244e1ce920.js → page-2d2dd4e665a6304a.js} +0 -0
  126. /package/dist/src/web/nextui/_next/static/{9MzAMUyJvm7rZqentLXAc → dLlNz9-V4NvRIcKyU_b89}/_buildManifest.js +0 -0
  127. /package/dist/src/web/nextui/_next/static/{9MzAMUyJvm7rZqentLXAc → dLlNz9-V4NvRIcKyU_b89}/_ssgManifest.js +0 -0
@@ -1,6 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[163],{14059:function(e,t,s){s.d(t,{Z:function(){return m}});var r=s(79042),i=s(94312),n=s(36975),a=s(70098),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 v(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=>v(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 y=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 y;(0,n.internal_processStyles)(e,e=>e.filter(e=>!(null!=e&&e.__mui_systemSx)));let{name:m,slot:_,skipVariantsResolver:w,skipSx:b,overridesResolver:k=(f=p(_))?(e,t)=>t[f]:null}=l,S=(0,i.Z)(l,u),T=void 0!==w?w:_&&"Root"!==_&&"root"!==_||!1,E=b||!1,O=d;"Root"===_||"root"===_?O=o:_?O=h:"string"==typeof e&&e.charCodeAt(0)>96&&(O=void 0);let j=(0,n.default)(e,(0,r.Z)({shouldForwardProp:O,label:y},S)),C=e=>"function"==typeof e&&e.__emotion_real!==e||(0,a.P)(e)?i=>v(e,(0,r.Z)({},i,{theme:g({theme:i.theme,defaultTheme:s,themeId:t})})):e,P=(i,...n)=>{let a=C(i),o=n?n.map(C):[];m&&k&&o.push(e=>{let i=g((0,r.Z)({},e,{defaultTheme:s,themeId:t}));if(!i.components||!i.components[m]||!i.components[m].styleOverrides)return null;let n=i.components[m].styleOverrides,a={};return Object.entries(n).forEach(([t,s])=>{a[t]=v(s,(0,r.Z)({},e,{theme:i}))}),k(e,a)}),m&&!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[m])?void 0:i.variants;return v({variants:a},(0,r.Z)({},e,{theme:n}))}),E||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&&(P.withConfig=j.withConfig),P}}();var m=y},38409:function(e,t,s){s.d(t,{Z:function(){return i}});var r=s(37412);function i(e){let{theme:t,name:s,props:i}=e;return t&&t.components&&t.components[s]&&t.components[s].defaultProps?(0,r.Z)(t.components[s].defaultProps,i):i}},48976:function(e,t,s){s.d(t,{Z:function(){return n}});var r=s(38409),i=s(83927);function n({props:e,name:t,defaultTheme:s,themeId:n}){let a=(0,i.Z)(s);n&&(a=a[n]||a);let o=(0,r.Z)({theme:a,name:t,props:e});return o}},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:()=>_,createMiddlewareSupabaseClient:()=>P,createPagesBrowserClient:()=>u,createPagesServerClient:()=>g,createRouteHandlerClient:()=>E,createServerActionClient:()=>O,createServerComponentClient:()=>k,createServerSupabaseClient:()=>C}),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(39386);function c({supabaseUrl:e="https://placeholder.promptfoo.dev",supabaseKey:t="abc123",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(39386),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://placeholder.promptfoo.dev",supabaseKey:s="abc123",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 v=s(39386),y=s(76051),m=class extends v.CookieAuthStorageAdapter{constructor(e,t){super(t),this.context=e}getCookie(e){var t;let s=(0,y.splitCookiesString)((null==(t=this.context.res.headers.get("set-cookie"))?void 0:t.toString())??"").map(t=>(0,v.parseCookies)(t)[e]).find(e=>!!e);return s||(0,v.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,v.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 _(e,{supabaseUrl:t="https://placeholder.promptfoo.dev",supabaseKey:s="abc123",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,v.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 m(e,i)}})}var w=s(39386),b=class extends w.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://placeholder.promptfoo.dev",supabaseKey:s="abc123",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,w.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 b(e,i)}})}var S=s(39386),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 E(e,{supabaseUrl:t="https://placeholder.promptfoo.dev",supabaseKey:s="abc123",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 O=E;function j({supabaseUrl:e="https://placeholder.promptfoo.dev",supabaseKey:t="abc123",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 C(e,{supabaseUrl:t="https://placeholder.promptfoo.dev",supabaseKey:s="abc123",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 P(e,{supabaseUrl:t="https://placeholder.promptfoo.dev",supabaseKey:s="abc123",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"),_(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},53405:function(e,t,s){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let i=r(s(87407)),n=r(s(88236));t.default=class{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=i.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,a=null,o=null,l=e.status,h=e.statusText;if(e.ok){if("HEAD"!==this.method){let t=await e.text();""===t||(a="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)/),n=null===(s=e.headers.get("content-range"))||void 0===s?void 0:s.split("/");r&&n&&n.length>1&&(o=parseInt(n[1])),this.isMaybeSingle&&"GET"===this.method&&Array.isArray(a)&&(a.length>1?(i={code:"PGRST116",details:`Results contain ${a.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},a=null,o=null,l=406,h="Not Acceptable"):a=1===a.length?a[0]:null)}else{let t=await e.text();try{i=JSON.parse(t),Array.isArray(i)&&404===e.status&&(a=[],i=null,l=200,h="OK")}catch(s){404===e.status&&""===t?(l=204,h="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,l=200,h="OK"),i&&this.shouldThrowOnError)throw new n.default(i)}let c={error:i,data:a,count:o,status:l,statusText:h};return c});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)}}},29122:function(e,t,s){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let i=r(s(46907)),n=r(s(1844)),a=s(20448);class o{constructor(e,{headers:t={},schema:s,fetch:r}={}){this.url=e,this.headers=Object.assign(Object.assign({},a.DEFAULT_HEADERS),t),this.schemaName=s,this.fetch=r}from(e){let t=new URL(`${this.url}/${e}`);return new i.default(t,{headers:Object.assign({},this.headers),schema:this.schemaName,fetch:this.fetch})}schema(e){return new o(this.url,{headers:this.headers,schema:e,fetch:this.fetch})}rpc(e,t={},{head:s=!1,get:r=!1,count:i}={}){let a,o;let l=new URL(`${this.url}/rpc/${e}`);s||r?(a=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])=>{l.searchParams.append(e,t)})):(a="POST",o=t);let h=Object.assign({},this.headers);return i&&(h.Prefer=`count=${i}`),new n.default({method:a,url:l,headers:h,schema:this.schemaName,body:o,fetch:this.fetch,allowEmpty:!1})}}t.default=o},88236:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=class extends Error{constructor(e){super(e.message),this.name="PostgrestError",this.details=e.details,this.hint=e.hint,this.code=e.code}}},1844:function(e,t,s){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let i=r(s(53172));class n extends i.default{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}}t.default=n},46907:function(e,t,s){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let i=r(s(1844));t.default=class{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,n=(null!=e?e:"*").split("").map(e=>/\s/.test(e)&&!r?"":('"'===e&&(r=!r),e)).join("");return this.url.searchParams.set("select",n),s&&(this.headers.Prefer=`count=${s}`),new i.default({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 i.default({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:n=!0}={}){let a=[`resolution=${s?"ignore":"merge"}-duplicates`];if(void 0!==t&&this.url.searchParams.set("on_conflict",t),this.headers.Prefer&&a.push(this.headers.Prefer),r&&a.push(`count=${r}`),n||a.push("missing=default"),this.headers.Prefer=a.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 i.default({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 i.default({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 i.default({method:"DELETE",url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch,allowEmpty:!1})}}},53172:function(e,t,s){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});let i=r(s(53405));class n extends i.default{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}}t.default=n},20448:function(e,t,s){Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_HEADERS=void 0;let r=s(1194);t.DEFAULT_HEADERS={"X-Client-Info":`postgrest-js/${r.version}`}},23022:function(e,t,s){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.PostgrestBuilder=t.PostgrestTransformBuilder=t.PostgrestFilterBuilder=t.PostgrestQueryBuilder=t.PostgrestClient=void 0;let i=r(s(29122));t.PostgrestClient=i.default;let n=r(s(46907));t.PostgrestQueryBuilder=n.default;let a=r(s(1844));t.PostgrestFilterBuilder=a.default;let o=r(s(53172));t.PostgrestTransformBuilder=o.default;let l=r(s(53405));t.PostgrestBuilder=l.default,t.default={PostgrestClient:i.default,PostgrestQueryBuilder:n.default,PostgrestFilterBuilder:a.default,PostgrestTransformBuilder:o.default,PostgrestBuilder:l.default}},1194:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0,t.version="0.0.0-automated"},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}},39386:function(e,t,s){s.r(t),s.d(t,{BrowserCookieAuthStorageAdapter:function(){return tQ},CookieAuthStorageAdapter:function(){return tY},DEFAULT_COOKIE_OPTIONS:function(){return tX},createSupabaseClient:function(){return t0},isBrowser:function(){return tZ},parseCookies:function(){return t1},parseSupabaseCookie:function(){return tW},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},n=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 o extends Error{constructor(e,t="FunctionsError",s){super(e),this.name=t,this.context=s}}class l extends o{constructor(e){super("Failed to send a request to the Edge Function","FunctionsFetchError",e)}}class h extends o{constructor(e){super("Relay Error invoking the Edge Function","FunctionsRelayError",e)}}class c extends o{constructor(e){super("Edge Function returned a non-2xx status code","FunctionsHttpError",e)}}(d=f||(f={})).Any="any",d.ApNortheast1="ap-northeast-1",d.ApNortheast2="ap-northeast-2",d.ApSouth1="ap-south-1",d.ApSoutheast1="ap-southeast-1",d.ApSoutheast2="ap-southeast-2",d.CaCentral1="ca-central-1",d.EuCentral1="eu-central-1",d.EuWest1="eu-west-1",d.EuWest2="eu-west-2",d.EuWest3="eu-west-3",d.SaEast1="sa-east-1",d.UsEast1="us-east-1",d.UsWest1="us-west-1",d.UsWest2="us-west-2";class u{constructor(e,{headers:t={},customFetch:s,region:r=f.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:u}=t;u||(u=this.region),u&&"any"!==u&&(o["x-region"]=u),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 d=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 l(e)}),f=d.headers.get("x-relay-error");if(f&&"true"===f)throw new h(d);if(!d.ok)throw new c(d);let p=(null!==(s=d.headers.get("Content-Type"))&&void 0!==s?s:"text/plain").split(";")[0].trim();return{data:"application/json"===p?yield d.json():"application/octet-stream"===p?yield d.blob():"text/event-stream"===p?d:"multipart/form-data"===p?yield d.formData():yield d.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 d,f,p,g,v,y,m,_,w,b,k,S,T,E,O,j,C,P,A,x,$,R,I,U=s(23022);let{PostgrestClient:L,PostgrestQueryBuilder:N,PostgrestFilterBuilder:D,PostgrestTransformBuilder:B,PostgrestBuilder:M}=U,q={"X-Client-Info":"realtime-js/2.10.2"};(T=p||(p={}))[T.connecting=0]="connecting",T[T.open=1]="open",T[T.closing=2]="closing",T[T.closed=3]="closed",(E=g||(g={})).closed="closed",E.errored="errored",E.joined="joined",E.joining="joining",E.leaving="leaving",(O=v||(v={})).close="phx_close",O.error="phx_error",O.join="phx_join",O.reply="phx_reply",O.leave="phx_leave",O.access_token="access_token",(y||(y={})).websocket="websocket",(j=m||(m={})).Connecting="connecting",j.Open="open",j.Closing="closing",j.Closed="closed";class F{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){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))}}(C=_||(_={})).abstime="abstime",C.bool="bool",C.date="date",C.daterange="daterange",C.float4="float4",C.float8="float8",C.int2="int2",C.int4="int4",C.int4range="int4range",C.int8="int8",C.int8range="int8range",C.json="json",C.jsonb="jsonb",C.money="money",C.numeric="numeric",C.oid="oid",C.reltime="reltime",C.text="text",C.time="time",C.timestamp="timestamp",C.timestamptz="timestamptz",C.timetz="timetz",C.tsrange="tsrange",C.tstzrange="tstzrange";let K=(e,t,s={})=>{var r;let i=null!==(r=s.skipTypes)&&void 0!==r?r:[];return Object.keys(t).reduce((s,r)=>(s[r]=J(r,e,t,i),s),{})},J=(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)?H(n,a):G(a)},H=(e,t)=>{if("_"===e.charAt(0)){let s=e.slice(1,e.length);return X(t,s)}switch(e){case _.bool:return W(t);case _.float4:case _.float8:case _.int2:case _.int4:case _.int8:case _.numeric:case _.oid:return V(t);case _.json:case _.jsonb:return Z(t);case _.timestamp:return Y(t);case _.abstime:case _.date:case _.daterange:case _.int4range:case _.int8range:case _.money:case _.reltime:case _.text:case _.time:case _.timestamptz:case _.timetz:case _.tsrange:case _.tstzrange:default:return G(t)}},G=e=>e,W=e=>{switch(e){case"t":return!0;case"f":return!1;default:return e}},V=e=>{if("string"==typeof e){let t=parseFloat(e);if(!Number.isNaN(t))return t}return e},Z=e=>{if("string"==typeof e)try{return JSON.parse(e)}catch(e){console.log(`JSON parse error: ${e}`)}return e},X=(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=>H(t,e))}return e},Y=e=>"string"==typeof e?e.replace(" ","T"):e,Q=e=>{let t=e;return(t=(t=t.replace(/^ws/i,"http")).replace(/(\/socket\/websocket|\/socket|\/websocket)\/?$/i,"")).replace(/\/+$/,"")};class ee{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}}(P=w||(w={})).SYNC="sync",P.JOIN="join",P.LEAVE="leave";class et{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=et.syncState(this.state,e,t,s),this.pendingDiffs.forEach(e=>{this.state=et.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=et.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()}}(A=b||(b={})).ALL="*",A.INSERT="INSERT",A.UPDATE="UPDATE",A.DELETE="DELETE",(x=k||(k={})).BROADCAST="broadcast",x.PRESENCE="presence",x.POSTGRES_CHANGES="postgres_changes",($=S||(S={})).SUBSCRIBED="SUBSCRIBED",$.TIMED_OUT="TIMED_OUT",$.CLOSED="CLOSED",$.CHANNEL_ERROR="CHANNEL_ERROR";class es{constructor(e,t={config:{}},s){this.topic=e,this.params=t,this.socket=s,this.bindings={},this.state=g.closed,this.joinedOnce=!1,this.pushBuffer=[],this.subTopic=e.replace(/^realtime:/i,""),this.params.config=Object.assign({broadcast:{ack:!1,self:!1},presence:{key:""},private:!1},t.config),this.timeout=this.socket.timeout,this.joinPush=new ee(this,v.join,this.params,this.timeout),this.rejoinTimer=new z(()=>this._rejoinUntilConnected(),this.socket.reconnectAfterMs),this.joinPush.receive("ok",()=>{this.state=g.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=g.closed,this.socket._remove(this)}),this._onError(e=>{this._isLeaving()||this._isClosed()||(this.socket.log("channel",`error ${this.topic}`,e),this.state=g.errored,this.rejoinTimer.scheduleTimeout())}),this.joinPush.receive("timeout",()=>{this._isJoining()&&(this.socket.log("channel",`timeout ${this.topic}`,this.joinPush.timeout),this.state=g.errored,this.rejoinTimer.scheduleTimeout())}),this._on(v.reply,{},(e,t)=>{this._trigger(this._replyEventName(t),e)}),this.presence=new et(this),this.broadcastEndpointURL=Q(this.socket.endPoint)+"/api/broadcast"}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,private:a}}=this.params;this._onError(t=>e&&e("CHANNEL_ERROR",t)),this._onClose(()=>e&&e("CLOSED"));let o={},l={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:[],private:a};this.socket.accessToken&&(o.access_token=this.socket.accessToken),this.updateJoinPayload(Object.assign({config:l},o)),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:{Authorization:this.socket.accessToken?`Bearer ${this.socket.accessToken}`:"",apikey:this.socket.apiKey?this.socket.apiKey:"","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!==(s=t.timeout)&&void 0!==s?s:this.timeout);return await (null===(r=e.body)||void 0===r?void 0:r.cancel()),e.ok?"ok":"error"}catch(e){if("AbortError"===e.name)return"timed out";return"error"}}}updateJoinPayload(e){this.joinPush.updatePayload(e)}unsubscribe(e=this.timeout){this.state=g.leaving;let t=()=>{this.socket.log("channel",`leave ${this.topic}`),this._trigger(v.close,"leave",this._joinRef())};return this.rejoinTimer.reset(),this.joinPush.destroy(),new Promise(s=>{let r=new ee(this,v.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",{})})}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 ee(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}=v;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===g.closed}_isJoined(){return this.state===g.joined}_isJoining(){return this.state===g.joining}_isLeaving(){return this.state===g.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&&es.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(v.close,{},e)}_onError(e){this._on(v.error,{},t=>e(t))}_canPush(){return this.socket.isConnected()&&this._isJoined()}_rejoin(e=this.timeout){this._isLeaving()||(this.socket._leaveOpenTopic(this.topic),this.state=g.joining,this.joinPush.resend(e))}_getPayloadRecords(e){let t={new:{},old:{}};return("INSERT"===e.type||"UPDATE"===e.type)&&(t.new=K(e.columns,e.record)),("UPDATE"===e.type||"DELETE"===e.type)&&(t.old=K(e.columns,e.old_record)),t}}let er=()=>{},ei="undefined"!=typeof WebSocket;class en{constructor(e,t){var r;this.accessToken=null,this.apiKey=null,this.channels=[],this.endPoint="",this.httpEndpoint="",this.headers=q,this.params={},this.timeout=1e4,this.heartbeatIntervalMs=3e4,this.heartbeatTimer=void 0,this.pendingHeartbeatRef=null,this.ref=0,this.logger=er,this.conn=null,this.sendBuffer=[],this.serializer=new F,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}/${y.websocket}`,this.httpEndpoint=Q(e),(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 z(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(ei){this.conn=new WebSocket(this._endPointURL()),this.setupConnection();return}this.conn=new ea(this._endPointURL(),void 0,{close:()=>{this.conn=null}}),s.e(407).then(s.t.bind(s,39407,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 p.connecting:return m.Connecting;case p.open:return m.Open;case p.closing:return m.Closing;default:return m.Closed}}isConnected(){return this.connectionState()===m.Open}channel(e,t={config:{}}){let s=new es(`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(v.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(v.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 ea{constructor(e,t,s){this.binaryType="arraybuffer",this.onclose=()=>{},this.onerror=()=>{},this.onmessage=()=>{},this.onopen=()=>{},this.readyState=p.connecting,this.send=()=>{},this.url=null,this.url=e,this.close=s.close}}class eo extends Error{constructor(e){super(e),this.__isStorageError=!0,this.name="StorageError"}}function el(e){return"object"==typeof e&&null!==e&&"__isStorageError"in e}class eh extends eo{constructor(e,t){super(e),this.name="StorageApiError",this.status=t}toJSON(){return{name:this.name,message:this.message,status:this.status}}}class ec extends eo{constructor(e,t){super(e),this.name="StorageUnknownError",this.originalError=t}}let eu=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)},ed=()=>{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 ef=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 ep=e=>e.msg||e.message||e.error_description||e.error||JSON.stringify(e),eg=(e,t)=>ef(void 0,void 0,void 0,function*(){let s=yield ed();e instanceof s?e.json().then(s=>{t(new eh(ep(s),e.status||500))}).catch(e=>{t(new ec(ep(e),e))}):t(new ec(ep(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 ey(e,t,s,r,i,n){return ef(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=>eg(e,o))})})}function em(e,t,s,r){return ef(this,void 0,void 0,function*(){return ey(e,"GET",t,s,r)})}function e_(e,t,s,r,i){return ef(this,void 0,void 0,function*(){return ey(e,"POST",t,r,i,s)})}function ew(e,t,s,r,i){return ef(this,void 0,void 0,function*(){return ey(e,"DELETE",t,r,i,s)})}var eb=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 ek={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},eS={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1};class eT{constructor(e,t={},s,r){this.url=e,this.headers=t,this.bucketId=s,this.fetch=eu(r)}uploadOrUpdate(e,t,s,r){return eb(this,void 0,void 0,function*(){try{let i;let n=Object.assign(Object.assign({},eS),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(el(e))return{data:null,error:e};throw e}})}upload(e,t,s){return eb(this,void 0,void 0,function*(){return this.uploadOrUpdate("POST",e,t,s)})}uploadToSignedUrl(e,t,s,r){return eb(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:eS.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(el(e))return{data:null,error:e};throw e}})}createSignedUploadUrl(e,t){return eb(this,void 0,void 0,function*(){try{let s=this._getFinalPath(e),r=Object.assign({},this.headers);(null==t?void 0:t.upsert)&&(r["x-upsert"]="true");let i=yield e_(this.fetch,`${this.url}/object/upload/sign/${s}`,{},{headers:r}),n=new URL(this.url+i.url),a=n.searchParams.get("token");if(!a)throw new eo("No token returned by API");return{data:{signedUrl:n.toString(),path:e,token:a},error:null}}catch(e){if(el(e))return{data:null,error:e};throw e}})}update(e,t,s){return eb(this,void 0,void 0,function*(){return this.uploadOrUpdate("PUT",e,t,s)})}move(e,t,s){return eb(this,void 0,void 0,function*(){try{let r=yield e_(this.fetch,`${this.url}/object/move`,{bucketId:this.bucketId,sourceKey:e,destinationKey:t,destinationBucket:null==s?void 0:s.destinationBucket},{headers:this.headers});return{data:r,error:null}}catch(e){if(el(e))return{data:null,error:e};throw e}})}copy(e,t,s){return eb(this,void 0,void 0,function*(){try{let r=yield e_(this.fetch,`${this.url}/object/copy`,{bucketId:this.bucketId,sourceKey:e,destinationKey:t,destinationBucket:null==s?void 0:s.destinationBucket},{headers:this.headers});return{data:{path:r.Key},error:null}}catch(e){if(el(e))return{data:null,error:e};throw e}})}createSignedUrl(e,t,s){return eb(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(el(e))return{data:null,error:e};throw e}})}createSignedUrls(e,t,s){return eb(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(el(e))return{data:null,error:e};throw e}})}download(e,t){return eb(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 em(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(el(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 eb(this,void 0,void 0,function*(){try{let t=yield ew(this.fetch,`${this.url}/object/${this.bucketId}`,{prefixes:e},{headers:this.headers});return{data:t,error:null}}catch(e){if(el(e))return{data:null,error:e};throw e}})}list(e,t,s){return eb(this,void 0,void 0,function*(){try{let r=Object.assign(Object.assign(Object.assign({},ek),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(el(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 eE={"X-Client-Info":"storage-js/2.6.0"};var eO=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 ej{constructor(e,t={},s){this.url=e,this.headers=Object.assign(Object.assign({},eE),t),this.fetch=eu(s)}listBuckets(){return eO(this,void 0,void 0,function*(){try{let e=yield em(this.fetch,`${this.url}/bucket`,{headers:this.headers});return{data:e,error:null}}catch(e){if(el(e))return{data:null,error:e};throw e}})}getBucket(e){return eO(this,void 0,void 0,function*(){try{let t=yield em(this.fetch,`${this.url}/bucket/${e}`,{headers:this.headers});return{data:t,error:null}}catch(e){if(el(e))return{data:null,error:e};throw e}})}createBucket(e,t={public:!1}){return eO(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(el(e))return{data:null,error:e};throw e}})}updateBucket(e,t){return eO(this,void 0,void 0,function*(){try{let s=yield function(e,t,s,r,i){return ef(this,void 0,void 0,function*(){return ey(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(el(e))return{data:null,error:e};throw e}})}emptyBucket(e){return eO(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(el(e))return{data:null,error:e};throw e}})}deleteBucket(e){return eO(this,void 0,void 0,function*(){try{let t=yield ew(this.fetch,`${this.url}/bucket/${e}`,{},{headers:this.headers});return{data:t,error:null}}catch(e){if(el(e))return{data:null,error:e};throw e}})}}class eC extends ej{constructor(e,t={},s){super(e,t,s)}from(e){return new eT(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 eA={"X-Client-Info":`supabase-js-${eP}/2.44.4`},ex={headers:eA},e$={schema:"public"},eR={autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,flowType:"implicit"},eI={};var eU=s(87407);let eL=e=>{let t;return t=e||("undefined"==typeof fetch?eU.default:fetch),(...e)=>t(...e)},eN=()=>"undefined"==typeof Headers?eU.Headers:Headers,eD=(e,t,s)=>{let r=eL(s),i=eN();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())})}},eB="2.64.4",eM={"X-Client-Info":`gotrue-js/${eB}`},eq="X-Supabase-Api-Version",eF={"2024-01-01":{timestamp:Date.parse("2024-01-01T00:00:00.0Z"),name:"2024-01-01"}},ez=()=>"undefined"!=typeof document,eK={tested:!1,writable:!1},eJ=()=>{if(!ez())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 eH(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 eG=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)},eW=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))},eZ=async(e,t)=>{let s=await e.getItem(t);if(!s)return null;try{return JSON.parse(s)}catch(e){return s}},eX=async(e,t)=>{await e.removeItem(t)};class eY{constructor(){this.promise=new eY.promiseConstructor((e,t)=>{this.resolve=e,this.reject=t})}}function eQ(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 e0(e){return await new Promise(t=>{setTimeout(()=>t(null),e)})}function e1(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 e2(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,e1).join("")}(),i=r;s&&(i+="/PASSWORD_RECOVERY"),await eV(e,`${t}-code-verifier`,i);let n=await e2(r),a=r===n?"plain":"s256";return[n,a]}eY.promiseConstructor=Promise;let e8=/^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;class e7 extends Error{constructor(e,t,s){super(e),this.__isAuthError=!0,this.name="AuthError",this.status=t,this.code=s}}function e6(e){return"object"==typeof e&&null!==e&&"__isAuthError"in e}class e9 extends e7{constructor(e,t,s){super(e,t,s),this.name="AuthApiError",this.status=t,this.code=s}}class e5 extends e7{constructor(e,t){super(e),this.name="AuthUnknownError",this.originalError=t}}class te extends e7{constructor(e,t,s,r){super(e,s,r),this.name=t,this.status=s}}class tt extends te{constructor(){super("Auth session missing!","AuthSessionMissingError",400,void 0)}}class ts extends te{constructor(){super("Auth session or user missing","AuthInvalidTokenResponseError",500,void 0)}}class tr extends te{constructor(e){super(e,"AuthInvalidCredentialsError",400,void 0)}}class ti extends te{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 tn extends te{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 ta extends te{constructor(e,t){super(e,"AuthRetryableFetchError",t,void 0)}}function to(e){return e6(e)&&"AuthRetryableFetchError"===e.name}class tl extends te{constructor(e,t,s){super(e,"AuthWeakPasswordError",t,"weak_password"),this.reasons=s}}var th=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 tc=e=>e.msg||e.message||e.error_description||e.error||JSON.stringify(e),tu=[502,503,504];async function td(e){var t;let s,r;if(!eW(e))throw new ta(tc(e),0);if(tu.includes(e.status))throw new ta(tc(e),e.status);try{s=await e.json()}catch(e){throw new e5(tc(e),e)}let i=function(e){let t=e.headers.get(eq);if(!t||!t.match(e8))return null;try{let e=new Date(`${t}T00:00:00.0Z`);return e}catch(e){return null}}(e);if(i&&i.getTime()>=eF["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 tl(tc(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 tl(tc(s),e.status,s.weak_password.reasons);throw new e9(tc(s),e.status||500,r)}let tf=(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 tp(e,t,s,r){var i;let n=Object.assign({},null==r?void 0:r.headers);n[eq]||(n[eq]=eF["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 tg(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 tg(e,t,s,r,i,n){let a;let o=tf(t,r,i,n);try{a=await e(s,Object.assign({},o))}catch(e){throw console.error(e),new ta(tc(e),0)}if(a.ok||await td(a),null==r?void 0:r.noResolveJson)return a;try{return await a.json()}catch(e){await td(e)}}function tv(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 ty(e){let t=tv(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 tm(e){var t;let s=null!==(t=e.user)&&void 0!==t?t:e;return{data:{user:s},error:null}}function t_(e){return{data:e,error:null}}function tw(e){let{action_link:t,email_otp:s,hashed_token:r,redirect_to:i,verification_type:n}=e,a=th(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 tb(e){return e}var tk=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 tS{constructor({url:e="",headers:t={},fetch:s}){this.url=e,this.headers=t,this.fetch=eG(s),this.mfa={listFactors:this._listFactors.bind(this),deleteFactor:this._deleteFactor.bind(this)}}async signOut(e,t="global"){try{return await tp(this.fetch,"POST",`${this.url}/logout?scope=${t}`,{headers:this.headers,jwt:e,noResolveJson:!0}),{data:null,error:null}}catch(e){if(e6(e))return{data:null,error:e};throw e}}async inviteUserByEmail(e,t={}){try{return await tp(this.fetch,"POST",`${this.url}/invite`,{body:{email:e,data:t.data},headers:this.headers,redirectTo:t.redirectTo,xform:tm})}catch(e){if(e6(e))return{data:{user:null},error:e};throw e}}async generateLink(e){try{let{options:t}=e,s=tk(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 tp(this.fetch,"POST",`${this.url}/admin/generate_link`,{body:r,headers:this.headers,xform:tw,redirectTo:null==t?void 0:t.redirectTo})}catch(e){if(e6(e))return{data:{properties:null,user:null},error:e};throw e}}async createUser(e){try{return await tp(this.fetch,"POST",`${this.url}/admin/users`,{body:e,headers:this.headers,xform:tm})}catch(e){if(e6(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 tp(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:tb});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(e6(e))return{data:{users:[]},error:e};throw e}}async getUserById(e){try{return await tp(this.fetch,"GET",`${this.url}/admin/users/${e}`,{headers:this.headers,xform:tm})}catch(e){if(e6(e))return{data:{user:null},error:e};throw e}}async updateUserById(e,t){try{return await tp(this.fetch,"PUT",`${this.url}/admin/users/${e}`,{body:t,headers:this.headers,xform:tm})}catch(e){if(e6(e))return{data:{user:null},error:e};throw e}}async deleteUser(e,t=!1){try{return await tp(this.fetch,"DELETE",`${this.url}/admin/users/${e}`,{headers:this.headers,body:{should_soft_delete:t},xform:tm})}catch(e){if(e6(e))return{data:{user:null},error:e};throw e}}async _listFactors(e){try{let{data:t,error:s}=await tp(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(e6(e))return{data:null,error:e};throw e}}async _deleteFactor(e){try{let t=await tp(this.fetch,"DELETE",`${this.url}/admin/users/${e.userId}/factors/${e.id}`,{headers:this.headers});return{data:t,error:null}}catch(e){if(e6(e))return{data:null,error:e};throw e}}}let tT={getItem:e=>eJ()?globalThis.localStorage.getItem(e):null,setItem:(e,t)=>{eJ()&&globalThis.localStorage.setItem(e,t)},removeItem:e=>{eJ()&&globalThis.localStorage.removeItem(e)}};function tE(e={}){return{getItem:t=>e[t]||null,setItem:(t,s)=>{e[t]=s},removeItem:t=>{delete e[t]}}}let tO={debug:!!(globalThis&&eJ()&&globalThis.localStorage&&"true"===globalThis.localStorage.getItem("supabase.gotrue-js.locks.debug"))};class tj extends Error{constructor(e){super(e),this.isAcquireTimeout=!0}}class tC extends tj{}async function tP(e,t,s){tO.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquire lock",e,t);let r=new globalThis.AbortController;return t>0&&setTimeout(()=>{r.abort(),tO.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){tO.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquired",e,r.name);try{return await s()}finally{tO.debug&&console.log("@supabase/gotrue-js: navigatorLock: released",e,r.name)}}else{if(0===t)throw tO.debug&&console.log("@supabase/gotrue-js: navigatorLock: not immediately available",e),new tC(`Acquiring an exclusive Navigator LockManager lock "${e}" immediately failed`);if(tO.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 tA={url:"http://localhost:9999",storageKey:"supabase.auth.token",autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:eM,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&&ez()&&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({},tA),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 tS({url:r.url,headers:r.headers,fetch:r.fetch}),this.url=r.url,this.headers=r.headers,this.fetch=eG(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:ez()&&(null===(t=null==globalThis?void 0:globalThis.navigator)||void 0===t?void 0:t.locks)?this.lock=tP: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:eJ()?this.storage=tT:(this.memoryStorage={},this.storage=tE(this.memoryStorage)):(this.memoryStorage={},this.storage=tE(this.memoryStorage)),ez()&&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} (${eB}) ${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=!!ez()&&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(e6(e))return{error:e};return{error:new e5("Unexpected error during initialization",e)}}finally{await this._handleVisibilityChange(),this._debug("#_initialize()","end")}}async signInAnonymously(e){var t,s,r;try{let i=await tp(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:tv}),{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(e6(e))return{data:{user:null,session:null},error:e};throw e}}async signUp(e){var t,s,r;try{let i;if("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 tp(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:tv})}else if("phone"in e){let{phone:t,password:n,options:a}=e;i=await tp(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:tv})}else throw new tr("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(e6(e))return{data:{user:null,session:null},error:e};throw e}}async signInWithPassword(e){try{let t;if("email"in e){let{email:s,password:r,options:i}=e;t=await tp(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:ty})}else if("phone"in e){let{phone:s,password:r,options:i}=e;t=await tp(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:ty})}else throw new tr("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 ts};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(e6(e))return{data:{user:null,session:null},error:e};throw e}}async signInWithOAuth(e){var t,s,r,i;return 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 eZ(this.storage,`${this.storageKey}-code-verifier`),[s,r]=(null!=t?t:"").split("/"),{data:i,error:n}=await tp(this.fetch,"POST",`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:e,code_verifier:s},xform:tv});return(await eX(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 ts}}async signInWithIdToken(e){try{let{options:t,provider:s,token:r,access_token:i,nonce:n}=e,a=await tp(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:tv}),{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 ts};return o.session&&(await this._saveSession(o.session),await this._notifyAllSubscribers("SIGNED_IN",o.session)),{data:o,error:l}}catch(e){if(e6(e))return{data:{user:null,session:null},error:e};throw e}}async signInWithOtp(e){var t,s,r,i,n;try{if("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 tp(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 tp(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 tr("You must provide either an email or phone number.")}catch(e){if(e6(e))return{data:{user:null,session:null},error:e};throw e}}async verifyOtp(e){var t,s;try{let r,i;"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 tp(this.fetch,"POST",`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},e),{gotrue_meta_security:{captcha_token:i}}),redirectTo:r,xform:tv});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(e6(e))return{data:{user:null,session:null},error:e};throw e}}async signInWithSSO(e){var t,s,r;try{let i=null,n=null;return"pkce"===this.flowType&&([i,n]=await e3(this.storage,this.storageKey)),await tp(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:t_})}catch(e){if(e6(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 tt;let{error:r}=await tp(this.fetch,"GET",`${this.url}/reauthenticate`,{headers:this.headers,jwt:t.access_token});return{data:{user:null,session:null},error:r}})}catch(e){if(e6(e))return{data:{user:null,session:null},error:e};throw e}}async resend(e){try{let t=`${this.url}/resend`;if("email"in e){let{email:s,type:r,options:i}=e,{error:n}=await tp(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 tp(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 tr("You must provide either an email or phone number and a type")}catch(e){if(e6(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 eZ(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."),t=!0,this.suppressGetSessionWarning=!0),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 tp(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:e,xform:tm});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 tp(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:tm}):{data:{user:null},error:new tt}})}catch(e){if(e6(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 tt;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 tp(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:tm});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(e6(e))return{data:{user:null},error:e};throw e}}_decodeJWT(e){return eQ(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 tt;let t=Date.now()/1e3,s=t,r=!0,i=null,n=eQ(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(e6(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 tt;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(e6(e))return{data:{user:null,session:null},error:e};throw e}}async _getSessionFromURL(e){try{if(!ez())throw new ti("No browser detected.");if("implicit"!==this.flowType||this._isImplicitGrantFlow()){if("pkce"==this.flowType&&!e)throw new tn("Not a valid PKCE flow url.")}else throw new ti("Not a valid implicit grant flow url.");let t=eH(window.location.href);if(e){if(!t.code)throw new tn("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 ti(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 ti("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 v={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:v,redirectType:t.type},error:null}}catch(e){if(e6(e))return{data:{session:null,redirectType:null},error:e};throw e}}_isImplicitGrantFlow(){let e=eH(window.location.href);return!!(ez()&&(e.access_token||e.error_description))}async _isPKCEFlow(){let e=eH(window.location.href),t=await eZ(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&&!(e6(t)&&"AuthApiError"===t.name&&(404===t.status||401===t.status||403===t.status)))return{error:t}}return"others"!==e&&(await this._removeSession(),await eX(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 tp(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(e6(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(e6(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 tp(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!ez()||(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(e6(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 tp(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(e6(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 e0(200*Math.pow(2,s-1)),this._debug(t,"refreshing attempt",s),await tp(this.fetch,"POST",`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:e},headers:this.headers,xform:tv})),(e,t)=>t&&to(t)&&Date.now()+200*Math.pow(2,e)-s<3e4)}catch(e){if(this._debug(t,"error",e),e6(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),ez()&&!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 eZ(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),to(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 tt;if(this.refreshingDeferred)return this.refreshingDeferred.promise;let r=`#_callRefreshToken(${e.substring(0,5)}...)`;this._debug(r,"begin");try{this.refreshingDeferred=new eY;let{data:t,error:s}=await this._refreshAccessToken(e);if(s)throw s;if(!t.session)throw new tt;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),e6(e)){let s={session:null,error:e};return to(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 eX(this.storage,this.storageKey)}_removeVisibilityChangedCallback(){this._debug("#_removeVisibilityChangedCallback()");let e=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{e&&ez()&&(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 tj)this._debug("auto refresh token tick lock not available");else throw e}}async _handleVisibilityChange(){if(this._debug("#_handleVisibilityChange()"),!ez()||!(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 tp(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(e6(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 tp(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(e6(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 tp(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(e6(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 tp(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(e6(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 tI extends tR{constructor(e){super(e)}}class tU{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:e$,realtime:eI,auth:Object.assign(Object.assign({},eR),{storageKey:o}),global:ex},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=eD(t,this._getAccessToken.bind(this),h.global.fetch),this.realtime=this._initRealtimeClient(Object.assign({headers:this.headers},h.realtime)),this.rest=new L(`${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 eC(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 tI({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 en(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 tL=(e,t,s)=>new tU(e,t,s);var tN=Object.create,tD=Object.defineProperty,tB=Object.getOwnPropertyDescriptor,tM=Object.getOwnPropertyNames,tq=Object.getPrototypeOf,tF=Object.prototype.hasOwnProperty,tz=(e,t,s,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of tM(t))tF.call(e,i)||i===s||tD(e,i,{get:()=>t[i],enumerable:!(r=tB(t,i))||r.enumerable});return e},tK=(e,t,s)=>(s=null!=e?tN(tq(e)):{},tz(!t&&e&&e.__esModule?s:tD(s,"default",{value:e,enumerable:!0}),e)),tJ=(R={"../../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 I||(0,R[tM(R)[0]])((I={exports:{}}).exports,I),I.exports}),tH=tK(tJ()),tG=tK(tJ());function tW(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("."),a=n(r),o=new TextDecoder,{exp:l,sub:h,...c}=JSON.parse(o.decode(a));return{expires_at:l,expires_in:l-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:h,factors:t[4],...c}}}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 tZ(){return"undefined"!=typeof window&&void 0!==window.document}var tX={path:"/",maxAge:31536e6},tY=class{constructor(e){this.cookieOptions={...tX,...e}}getItem(e){let t=this.getCookie(e);return t?e.endsWith("-code-verifier")?t:JSON.stringify(tW(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)}},tQ=class extends tY{constructor(e){super(e)}getCookie(e){if(!tZ())return null;let t=(0,tH.parse)(document.cookie);return t[e]}setCookie(e,t){if(!tZ())return null;document.cookie=(0,tH.serialize)(e,t,{...this.cookieOptions,httpOnly:!1})}deleteCookie(e){if(!tZ())return null;document.cookie=(0,tH.serialize)(e,"",{...this.cookieOptions,maxAge:0,httpOnly:!1})}};function t0(e,t,s){var r;let i=tZ();return tL(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 t1=tG.parse,t4=tG.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([[258],{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}})},55258:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return ti}});var s=n(24004),l=n(14978),a=n(77580);let r=a.env.NEXT_PUBLIC_PROMPTFOO_REMOTE_API_BASE_URL||a.env.NEXT_PUBLIC_PROMPTFOO_BASE_URL||a.env.PROMPTFOO_REMOTE_API_BASE_URL||"https://api.promptfoo.dev",i=a.env.NEXT_PUBLIC_PROMPTFOO_BASE_URL||a.env.PROMPTFOO_REMOTE_APP_BASE_URL||"https://app.promptfoo.dev";a?.stdout?.columns&&a?.stdout?.columns>10&&a?.stdout?.columns;var o=n(49532);let c=(0,l.createContext)(void 0),d=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)(c.Provider,{value:n,children:t})};var u=n(22262),h=n(6363);let p=(0,l.createContext)(void 0),m=()=>{let e=(0,l.useContext)(p);if(!e)throw Error("useToast must be used within a ToastProvider");return e},x=e=>{let{children:t}=e,[n,a]=(0,l.useState)({message:"",severity:"info",open:!1}),r=()=>{a(e=>({...e,open:!1}))};return(0,s.jsxs)(p.Provider,{value:{showToast:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"info";a({message:e,severity:t,open:!0})}},children:[t,(0,s.jsx)(u.Z,{open:n.open,autoHideDuration:6e3,onClose:r,children:(0,s.jsx)(h.Z,{onClose:r,severity:n.severity,children:n.message})})]})};var v=n(52428),g=n(11615),j=n(12594),f=n(28891),b=n(10804),y=n(93179),Z=n(47887),w=n(43205),C=n(5592),S=n(14931),k=n(41366),E=n(75307),R=n(17178),I=n(29234),N=n(42610),P=n(49567),F=n(40982),T=n(24362),D=n(885),M=n(39813),O=n(82197),L=n(1852),A=n(57027),U=n(94941),W=n(36273),z=n(96976),V=n(8508),_=n(34304),B=n(32414),J=n(67339),H=n(65969),X=n(14059),G=n(23223),K=n(94068),Y=n(29794),q=n(22701),$=n(51956),Q=n(82669),ee=n(37803),et=n(65068),en=n(70417),es=n(21303),el=n(61451),ea=n(26485),er=n(30021),ei=n(63147),eo=n(32162),ec=n.n(eo),ed=e=>{let{open:t,onClose:n,recentEvals:a,onRecentEvalSelected:r,title:i,description:o}=e,[c,d]=(0,l.useState)(""),[u,h]=(0,l.useState)(-1),p=l.useRef(null),m=l.useRef(null),x=()=>{n(),d(""),h(-1)},v=a.filter(e=>ec()(c.toLowerCase(),e.label.toLowerCase())||"string"==typeof e.description&&ec()(c.toLowerCase(),e.description.toLowerCase())),g=e=>{r(e),x()},j=l.useCallback(()=>{if(u>=0&&m.current){let e=m.current.querySelectorAll("tbody tr"),t=Math.min(u+3,e.length-1);e[t]&&e[t].scrollIntoView({behavior:"smooth",block:"nearest"})}},[u]);l.useEffect(()=>{j()},[j]),l.useEffect(()=>{t&&(h(0),setTimeout(()=>{var e;null===(e=p.current)||void 0===e||e.focus()},0))},[t]);let f=l.useId();return(0,s.jsxs)(Y.Z,{open:t,onClose:x,maxWidth:"md",fullWidth:!0,children:[i?(0,s.jsx)(Q.Z,{children:i}):null,(0,s.jsxs)($.Z,{children:[o?(0,s.jsx)(P.Z,{sx:{mb:4},children:o}):null,(0,s.jsxs)(P.Z,{sx:{width:"100%",mt:2},children:[(0,s.jsx)(J.Z,{fullWidth:!0,variant:"outlined",placeholder:"Search",value:c,onChange:e=>{d(e.target.value),h(0)},onKeyDown:e=>{if(e.stopPropagation(),t)switch(e.key){case"ArrowDown":e.preventDefault(),h(e=>Math.min(e+1,v.length-1));break;case"ArrowUp":e.preventDefault(),h(e=>Math.max(e-1,0));break;case"Enter":e.preventDefault(),u>=0&&u<v.length?g(v[u].evalId):v.length>0&&g(v[0].evalId);break;case"Escape":e.preventDefault(),x()}},sx:{mb:2},inputRef:p,id:"eval-selector-search-".concat(f)}),(0,s.jsx)(el.Z,{component:ee.Z,sx:{height:"600px",overflow:"auto"},ref:m,children:(0,s.jsxs)(et.Z,{stickyHeader:!0,children:[(0,s.jsx)(ea.Z,{children:(0,s.jsxs)(er.Z,{children:[(0,s.jsx)(es.Z,{children:"Created"}),(0,s.jsx)(es.Z,{children:"Description"}),(0,s.jsx)(es.Z,{children:"# Tests"})]})}),(0,s.jsx)(en.Z,{children:v.length>0?v.map((e,t)=>(0,s.jsxs)(er.Z,{hover:!0,onClick:()=>g(e.evalId),sx:{cursor:"pointer",backgroundColor:t===u?"rgba(255, 255, 0, 0.1)":"inherit"},children:[(0,s.jsx)(es.Z,{children:new Date(e.createdAt).toLocaleString()}),(0,s.jsx)(es.Z,{children:e.description||e.label}),(0,s.jsx)(es.Z,{children:e.numTests})]},e.evalId)):(0,s.jsx)(er.Z,{children:(0,s.jsx)(es.Z,{colSpan:3,align:"center",sx:{py:4},children:(0,s.jsxs)(P.Z,{sx:{textAlign:"center",color:"text.secondary"},children:[(0,s.jsx)(P.Z,{sx:{fontSize:"3rem",mb:2},children:"\uD83D\uDD0D"}),(0,s.jsx)(ei.Z,{variant:"h6",gutterBottom:!0,children:"No evaluations found"}),(0,s.jsx)(ei.Z,{variant:"body2",children:"Try adjusting your search or create a new evaluation"})]})})})})]})})]})]}),(0,s.jsx)(q.Z,{children:(0,s.jsx)(F.Z,{onClick:x,children:"Cancel"})})]})},eu=n(37204),eh=n(79685),ep=n(74595);let em={getItem:async e=>await (0,eu.U2)(e)||null,setItem:async(e,t)=>{await (0,eu.t8)(e,t)},removeItem:async e=>{await (0,eu.IV)(e)}},ex=(0,eh.Ue)()((0,ep.tJ)((e,t)=>({evalId:null,setEvalId:t=>e(()=>({evalId:t})),author:null,setAuthor:t=>e(()=>({author: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})),showPassFail:!0,setShowPassFail:t=>e(()=>({showPassFail:t})),inComparisonMode:!1,setInComparisonMode:t=>e(()=>({inComparisonMode:t})),columnStates:{},setColumnState:(t,n)=>e(e=>({columnStates:{...e.columnStates,[t]:n}}))}),{name:"ResultsViewStorage",storage:(0,ep.FL)(()=>em)}));var ev=function(e){let{initialEvals:t,onComparisonEvalSelected:n}=e,{evalId:a}=ex(),[r,i]=(0,l.useState)(!1),[c,d]=(0,l.useState)(t),u=async()=>{try{let e=await (0,o.b)(),n=a||t[0].evalId,s=await fetch("".concat(e,"/api/results/").concat(n),{cache:"no-store"}),l=await s.json(),r=l.data.datasetId;if(!r){console.error("No datasetId found for current eval "+n);return}let i=await fetch("".concat(e,"/api/results?datasetId=").concat(r),{cache:"no-store"}),c=await i.json();d(c.data.filter(e=>e.evalId!==n))}catch(e){console.error("Error fetching recent evals:",e)}},h=()=>{i(!1)};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(H.Z,{title:"Combine this eval with another eval run",placement:"left",children:(0,s.jsxs)(z.Z,{onClick:()=>{u(),i(!0)},children:[(0,s.jsx)(A.Z,{children:(0,s.jsx)(K.Z,{fontSize:"small"})}),(0,s.jsx)(U.Z,{children:"Compare with another eval"})]})}),(0,s.jsx)(ed,{open:r,onClose:h,recentEvals:c,onRecentEvalSelected:e=>{n(e),h()},title:"Select an eval to compare",description:"Only evals with the same dataset can be compared."})]})},eg=n(26110),ej=n(48931),ef=n(99645),eb=n(77656);function ey(e){let{open:t,onClose:a}=e,{config:r}=ex(),i=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(r))})()},[t,r]);let h=()=>{c(!1),a()};return(0,s.jsxs)(Y.Z,{open:t,onClose:h,"aria-labelledby":"config-dialog-title",maxWidth:"md",fullWidth:!0,children:[(0,s.jsx)(Q.Z,{id:"config-dialog-title",children:(0,s.jsxs)(P.Z,{display:"flex",justifyContent:"space-between",alignItems:"center",children:[(0,s.jsx)(ei.Z,{variant:"h6",style:{flexGrow:1},children:"Config"}),(0,s.jsxs)(P.Z,{children:[(0,s.jsx)(H.Z,{title:"Copy to clipboard",children:(0,s.jsx)(eb.Z,{onClick:()=>{i.current&&(i.current.select(),document.execCommand("copy"),c(!0))},children:o?(0,s.jsx)(eg.Z,{}):(0,s.jsx)(ef.Z,{})})}),(0,s.jsx)(H.Z,{title:"Download .yaml",children:(0,s.jsx)(eb.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)(ej.Z,{})})})]})]})}),(0,s.jsx)($.Z,{children:(0,s.jsx)(ei.Z,{variant:"body1",component:"div",children:(0,s.jsx)("textarea",{ref:i,readOnly:!0,value:d,style:{width:"100%",minHeight:"400px",fontFamily:"monospace",border:"1px solid #ccc"}})})}),(0,s.jsx)(q.Z,{children:(0,s.jsx)(F.Z,{onClick:h,color:"primary",children:"Close"})})]})}var eZ=n(79715),ew=n(34235),eC=function(){let{table:e,config:t,evalId:n}=ex(),[a,r]=l.useState(!1),i=(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=()=>{r(!1)};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(z.Z,{onClick:()=>{r(!0)},children:[(0,s.jsx)(A.Z,{children:(0,s.jsx)(ej.Z,{fontSize:"small"})}),(0,s.jsx)(U.Z,{children:"Download"})]}),(0,s.jsx)(Y.Z,{onClose:o,open:a,children:(0,s.jsx)($.Z,{children:(0,s.jsxs)(B.Z,{direction:"column",spacing:2,sx:{width:"100%"},children:[(0,s.jsx)(F.Z,{onClick:()=>{let e=ew.default.dump(t),n=new Blob([e],{type:"text/yaml;charset=utf-8"});i(n,"promptfooconfig.yaml"),o()},startIcon:(0,s.jsx)(ej.Z,{}),fullWidth:!0,sx:{justifyContent:"flex-start"},children:"Download YAML Config"}),(0,s.jsx)(F.Z,{onClick:()=>{if(!e){alert("No table data");return}let t=[],s=[...e.head.vars,...e.head.prompts.map(e=>"[".concat(e.provider,"] ").concat(e.label))];t.push(s),e.body.forEach(e=>{let n=[...e.vars,...e.outputs.map(e=>{let{pass:t,text:n}=e;return(t?"[PASS] ":"[FAIL] ")+n})];t.push(n)});let l=(0,eZ.P)(t),a=new Blob([l],{type:"text/csv;charset=utf-8;"});i(a,"".concat(n,"-table.csv")),o()},startIcon:(0,s.jsx)(ej.Z,{}),fullWidth:!0,sx:{justifyContent:"flex-start"},children:"Download Table CSV"}),(0,s.jsx)(F.Z,{onClick:()=>{if(!e){alert("No table data");return}let t=new Blob([JSON.stringify(e,null,2)],{type:"application/json"});i(t,"".concat(n,"-table.json")),o()},startIcon:(0,s.jsx)(ej.Z,{}),fullWidth:!0,sx:{justifyContent:"flex-start"},children:"Download Table JSON"}),(0,s.jsx)(F.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"});i(s,"".concat(n,"-dpo.json")),o()},startIcon:(0,s.jsx)(ej.Z,{}),fullWidth:!0,sx:{justifyContent:"flex-start"},children:"Download DPO JSON"})]})})})]})},eS=e=>{let{recentEvals:t,onRecentEvalSelected:n}=e,[a,r]=(0,l.useState)(!1);"undefined"!=typeof navigator&&navigator.platform.toUpperCase().indexOf("MAC");let i=()=>{r(!0)};return l.useEffect(()=>{let e=e=>{(e.ctrlKey||e.metaKey)&&"k"===e.key&&(e.preventDefault(),i())};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[]),(0,s.jsx)(s.Fragment,{children:(0,s.jsx)(ed,{title:"Open an Eval",open:a,onClose:()=>{r(!1)},recentEvals:t,onRecentEvalSelected:n})})},ek=n(69179),eE=n(92715),eR=n(92863),eI=n(36001);let eN=["#fd7f6f","#7eb0d5","#b2e061","#bd7ebe","#ffb55a","#ffee65","#beb9db","#fdcce5","#8bd3c7"];function eP(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,r=Array.from({length:11},(e,t)=>parseFloat((Math.floor(s)+t*l).toFixed(2))),i=t.head.prompts.map((e,n)=>{let s=t.body.flatMap(e=>e.outputs[n].score),a=r.map(e=>s.filter(t=>t>=e&&t<e+l).length);return{label:"Column ".concat(n+1),data:a,backgroundColor:eN[n%eN.length]}});a.current=new eI.kL(n.current,{type:"bar",data:{labels:r,datasets:i},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=r[t],s=r[t+1];return s?"".concat(n," <= score < ").concat(s):"".concat(n," <= score")}}}}}})},[t]),(0,s.jsx)("canvas",{ref:n,style:{maxHeight:"300px"}})}function eF(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:eN[n%eN.length]}});a.current=new eI.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 eT(e){let{table:t}=e,n=(0,l.useRef)(null),a=(0,l.useRef)(null),[r,i]=(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),i=t.body.map(e=>{let t=e.outputs[r].score,n=e.outputs[o].score;return{x:t,y:n,backgroundColor:n>t?"green":n<t?"red":"gray"}});a.current=new eI.kL(n.current,{type:"scatter",data:{datasets:[{data:i,backgroundColor:i.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(r+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,r,o]),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(Y.Z,{open:d,onClose:()=>u(!1),children:[(0,s.jsx)(Q.Z,{children:"Compare prompt outputs"}),(0,s.jsxs)($.Z,{children:[(0,s.jsx)(M.Z,{sx:{m:1,minWidth:120},children:(0,s.jsx)(_.Z,{value:r,onChange:e=>i(Number(e.target.value)),children:t.head.prompts.map((e,t)=>(0,s.jsxs)(z.Z,{value:t,children:["Prompt ",t+1]},t))})}),(0,s.jsx)(M.Z,{sx:{m:1,minWidth:120},children:(0,s.jsx)(_.Z,{value:o,onChange:e=>c(Number(e.target.value)),children:t.head.prompts.map((e,t)=>(0,s.jsxs)(z.Z,{value:t,children:["Prompt ",t+1]},t))})})]})]}),(0,s.jsx)("canvas",{ref:n,style:{maxHeight:"300px",cursor:"pointer"},onClick:()=>u(!0)})]})}function eD(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:eN[n%eN.length]}});a.current=new eI.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"}})}eI.kL.register(eI.vn,eI.ST,eI.ho,eI.uw,eI.f$,eI.ZL,eI.jn,eI.od,eI.u,eI.wL);var eM=l.memo(function(e){var t;let{columnVisibility:n}=e,a=(0,eR.Z)();eI.kL.defaults.color="dark"===a.palette.mode?"#aaa":"#666";let[r,i]=(0,l.useState)(!0),{table:o}=ex();if(!o||!r||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)(ek.SV,{fallback:null,children:(0,s.jsxs)(ee.Z,{sx:{position:"relative",padding:3,mt:2},children:[(0,s.jsx)(eb.Z,{style:{position:"absolute",right:0,top:0},onClick:()=>i(!1),children:(0,s.jsx)(eE.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)(eF,{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)(eD,{table:o}):(0,s.jsx)(eP,{table:o})}),(0,s.jsx)("div",{style:{width:"33%"},children:(0,s.jsx)(eT,{table:o})})]})]})})}),eO=n(36128),eL=n(9317),eA=n(5971);n(55974);var eU=e=>{let{lookup:t,metricTotals:n,onSearchTextChange:a}=e,[r,i]=l.useState(!1);if(!t||!Object.keys(t).length)return null;let o=Object.entries(t),c=r?o:o.slice(0,10);return(0,s.jsxs)("div",{className:"custom-metric-container",children:[c.map(e=>{let[t,l]=e;return t&&void 0!==l?(0,s.jsxs)("span",{onClick:()=>a&&a("metric=".concat(t,":")),className:a?"clickable":"",children:[t,":"," ",n&&n[t]?(0,s.jsxs)(s.Fragment,{children:[(l/n[t]*100).toFixed(2),"% (",l,"/",n[t],")"]}):l]},t):null}),o.length>10&&(0,s.jsx)("span",{className:"clickable",onClick:()=>i(!r),children:r?"Show less":"Show more..."})]})},eW=n(35185),ez=n(22689);function eV(e,t){return e.length<=t?e:e.slice(0,t)+"..."}function e_(e){let{gradingResults:t}=e,[n,a]=(0,l.useState)({});if(!t)return null;let r=e=>{a(t=>({...t,[e]:!t[e]}))};return(0,s.jsxs)(P.Z,{mt:2,children:[(0,s.jsx)(ei.Z,{variant:"subtitle1",children:"Assertions"}),(0,s.jsx)(el.Z,{children:(0,s.jsxs)(et.Z,{children:[(0,s.jsx)(ea.Z,{children:(0,s.jsxs)(er.Z,{children:[(0,s.jsx)(es.Z,{style:{fontWeight:"bold"},children:"Pass"}),(0,s.jsx)(es.Z,{style:{fontWeight:"bold"},children:"Score"}),(0,s.jsx)(es.Z,{style:{fontWeight:"bold"},children:"Type"}),(0,s.jsx)(es.Z,{style:{fontWeight:"bold"},children:"Value"}),(0,s.jsx)(es.Z,{style:{fontWeight:"bold"},children:"Reason"})]})}),(0,s.jsx)(en.Z,{children:t.map((e,t)=>{var l,a,i;if(!e)return null;let o=(null===(l=e.assertion)||void 0===l?void 0:l.value)?"object"==typeof e.assertion.value?JSON.stringify(e.assertion.value,null,2):String(e.assertion.value):"-",c=eV(o,300),d=n[t]||!1;return(0,s.jsxs)(er.Z,{children:[(0,s.jsx)(es.Z,{children:e.pass?"✅":"❌"}),(0,s.jsx)(es.Z,{children:null===(a=e.score)||void 0===a?void 0:a.toFixed(2)}),(0,s.jsx)(es.Z,{children:(null===(i=e.assertion)||void 0===i?void 0:i.type)||""}),(0,s.jsx)(es.Z,{style:{whiteSpace:"pre-wrap",cursor:"pointer"},onClick:()=>r(t),children:d?o:c}),(0,s.jsx)(es.Z,{style:{whiteSpace:"pre-wrap"},children:e.reason})]},t)})})]})})]})}function eB(e){let{open:t,onClose:n,prompt:a,provider:r,output:i,gradingResults:o,metadata:c}=e,[d,u]=(0,l.useState)(!1),[h,p]=(0,l.useState)({});(0,l.useEffect)(()=>{u(!1)},[a]);let m=async e=>{await navigator.clipboard.writeText(e),u(!0)},x=e=>{p(t=>({...t,[e]:!t[e]}))};return(0,s.jsxs)(Y.Z,{open:t,onClose:n,fullWidth:!0,maxWidth:"lg",children:[(0,s.jsxs)(Q.Z,{children:["Details",r&&": ".concat(r)]}),(0,s.jsxs)($.Z,{children:[(0,s.jsxs)(P.Z,{mb:2,children:[(0,s.jsx)(ei.Z,{variant:"subtitle1",style:{marginBottom:"1rem"},children:"Prompt"}),(0,s.jsx)(ez.Z,{readOnly:!0,value:a,style:{width:"100%",padding:"0.75rem"},maxRows:20}),(0,s.jsx)(eb.Z,{onClick:()=>m(a),style:{position:"absolute",right:"10px",top:"10px"},children:d?(0,s.jsx)(eg.Z,{}):(0,s.jsx)(eW.Z,{})})]}),(null==c?void 0:c.redteamFinalPrompt)&&(0,s.jsxs)(P.Z,{my:2,children:[(0,s.jsx)(ei.Z,{variant:"subtitle1",style:{marginBottom:"1rem",marginTop:"1rem"},children:"Modified User Input (Red Team)"}),(0,s.jsx)(ez.Z,{readOnly:!0,maxRows:20,value:c.redteamFinalPrompt,style:{width:"100%",padding:"0.75rem"}})]}),i&&(0,s.jsxs)(P.Z,{my:2,children:[(0,s.jsx)(ei.Z,{variant:"subtitle1",style:{marginBottom:"1rem",marginTop:"1rem"},children:"Output"}),(0,s.jsx)(ez.Z,{readOnly:!0,maxRows:20,value:i,style:{width:"100%",padding:"0.75rem"}})]}),(0,s.jsx)(e_,{gradingResults:o}),c&&Object.keys(c).length>0&&(0,s.jsxs)(P.Z,{my:2,children:[(0,s.jsx)(ei.Z,{variant:"subtitle1",style:{marginBottom:"1rem",marginTop:"1rem"},children:"Metadata"}),(0,s.jsx)(el.Z,{children:(0,s.jsxs)(et.Z,{size:"small",children:[(0,s.jsx)(ea.Z,{children:(0,s.jsxs)(er.Z,{children:[(0,s.jsx)(es.Z,{children:(0,s.jsx)("strong",{children:"Key"})}),(0,s.jsx)(es.Z,{children:(0,s.jsx)("strong",{children:"Value"})})]})}),(0,s.jsx)(en.Z,{children:Object.entries(c).map(e=>{let[t,n]=e,l="string"==typeof n?n:JSON.stringify(n),a=eV(l,300),r=h[t]||!1;return(0,s.jsxs)(er.Z,{children:[(0,s.jsx)(es.Z,{children:t}),(0,s.jsx)(es.Z,{style:{whiteSpace:"pre-wrap",cursor:"pointer"},onClick:()=>x(t),children:r?l:a})]},t)})})]})})]})]}),(0,s.jsx)(q.Z,{children:(0,s.jsx)(F.Z,{onClick:n,children:"Close"})})]})}var eJ=n(12431),eH=n(8541),eX=function(){let e=(0,eR.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)(F.Z,{variant:"text",color:"primary",startIcon:(0,s.jsx)(eJ.Z,{}),onClick:()=>{n(!0)},children:"Generate test cases"})}),(0,s.jsxs)(Y.Z,{open:t,onClose:a,children:[(0,s.jsx)(Q.Z,{children:"Run on Command Line"}),(0,s.jsx)($.Z,{children:(0,s.jsxs)(eH.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)(q.Z,{children:(0,s.jsx)(F.Z,{onClick:a,color:"primary",children:"Close"})})]})]})};function eG(e){return"string"==typeof e||"number"==typeof e?e.toString().length:Array.isArray(e)?e.reduce((e,t)=>e+eG(t),0):l.isValidElement(e)&&e.props.children?l.Children.toArray(e.props.children).reduce((e,t)=>e+eG(t),0):0}let eK=l.memo(function(e){let t,{text:n,maxLength:a}=e,[r,i]=l.useState(!0),o=()=>{i(!r)},c=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=eG(t);if(s+e>a){n.push(c(t,s));break}n.push(t),s+=e}return n}if(l.isValidElement(e)&&e.props.children){let n=eG(e.props.children);if(n>a-t)return l.cloneElement(e,{...e.props,children:c(e.props.children,t)})}return e};t=l.isValidElement(n)||"string"==typeof n?n:JSON.stringify(n);let d=r?c(t):t,u=eG(t)>a;return(0,s.jsxs)("div",{style:{cursor:u?"pointer":"normal"},onMouseDown:e=>{let t=e.clientX,n=e.clientY,s=e=>{let l=e.clientX,a=e.clientY;5>Math.abs(l-t)&&5>Math.abs(a-n)&&o(),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s)},children:[d,r&&eG(t)>a&&(0,s.jsx)("span",{children:"..."})]})});var eY=n(59682),eq=n(62268),e$=n(38640),eQ=n.n(e$),e0=n(33352),e1=n(73490),e2=n(24495);n(16658);var e5=e=>{let{failReasons:t}=e,[n,a]=(0,l.useState)(0);return t.length<1?null:(0,s.jsxs)("div",{className:"fail-reason",children:[t.length>1&&(0,s.jsxs)("span",{className:"fail-reason-carousel-controls",children:[(0,s.jsx)(eb.Z,{onClick:()=>{a(e=>e>0?e-1:t.length-1)},children:(0,s.jsx)(e1.Z,{sx:{fontSize:12}})}),(0,s.jsxs)("span",{children:[n+1,"/",t.length]}),(0,s.jsx)(eb.Z,{onClick:()=>{a(e=>e<t.length-1?e+1:0)},children:(0,s.jsx)(e2.Z,{sx:{fontSize:12}})})]}),t[n].trim().split("\n").map((e,t)=>(0,s.jsxs)(l.Fragment,{children:[e,(0,s.jsx)("br",{})]},t))]})},e3=e=>{let{open:t,contextText:n,commentText:l,onClose:a,onSave:r,onChange:i}=e,o="dark"===(0,eR.Z)().palette.mode;return(0,s.jsxs)(Y.Z,{open:t,onClose:a,fullWidth:!0,maxWidth:"sm",children:[(0,s.jsx)(Q.Z,{children:"Edit Comment"}),(0,s.jsxs)($.Z,{children:[(0,s.jsx)(P.Z,{sx:{backgroundColor:o?"#1e1e1e":"#f0f0f0",padding:2,marginBottom:2},children:n}),(0,s.jsx)(J.Z,{autoFocus:!0,margin:"dense",type:"text",fullWidth:!0,multiline:!0,rows:4,value:l,onChange:e=>i(e.target.value)})]}),(0,s.jsxs)(q.Z,{children:[(0,s.jsx)(F.Z,{onClick:r,color:"primary",variant:"contained",children:"Save"}),(0,s.jsx)(F.Z,{onClick:a,color:"primary",children:"Cancel"})]})]})};let e4=()=>{let e=(0,l.useContext)(c);if(void 0===e)throw Error("useShiftKey must be used within a ShiftKeyProvider");return e};var e8=n(68192);let e6=l.memo(function(e){var t,n,a,r,i,o,c,d,u,h,p,m,x;let v,g,j,f,b,y,{output:Z,maxTextLength:w,rowIndex:C,promptIndex:S,onRating:k,firstOutput:E,showDiffs:R,searchText:I,showStats:N}=e,{renderMarkdown:P,prettifyJson:F,showPrompts:T,showPassFail:D,inComparisonMode:M}=ex(),[O,L]=l.useState(!1),[A,U]=l.useState(!1),[W,z]=l.useState(null),V=e=>{z(e||null),U(!A)},[_,B]=l.useState(!1),[J,X]=l.useState((null===(t=Z.gradingResult)||void 0===t?void 0:t.comment)||""),G=()=>{B(!0)},K="string"==typeof Z.text?Z.text:JSON.stringify(Z.text),Y=[];if(!Z.pass&&K.includes("---")&&(Y=((null===(h=Z.gradingResult)||void 0===h?void 0:h.componentResults)||[]).filter(e=>!!e&&!e.pass).map(e=>e.reason),K=K.split("---").slice(1).join("---")),R&&E){let e,t="string"==typeof E.text?E.text:JSON.stringify(E.text);t.includes("---")&&(t=t.split("---").slice(1).join("---"));try{JSON.parse(t),JSON.parse(K),e=(0,e8.CT)(t,K)}catch(n){e=t.includes(". ")&&K.includes(". ")?(0,e8.SY)(t,K):(0,e8.NV)(t,K)}v=(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(K));)n.push({start:e.index,end:t.lastIndex});v=(0,s.jsx)(s.Fragment,{children:n.length>0?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{children:K.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:K.substring(e.start,e.end)},"match-"+t),(0,s.jsx)("span",{children:K.substring(e.end,n[t+1]?n[t+1].start:K.length)},"text-after-"+t)]}))]}):(0,s.jsx)("span",{children:K},"no-match")})}catch(e){console.error("Invalid regular expression:",e.message)}else if(P&&!R)v=(0,s.jsx)(eA.U,{remarkPlugins:[e0.Z],components:{img:e=>{let{src:t,alt:n}=e;return(0,s.jsx)("img",{loading:"lazy",src:t,alt:n,onClick:()=>V(t),style:{cursor:"pointer"}})}},children:K});else if(F)try{v=(0,s.jsx)("pre",{children:JSON.stringify(JSON.parse(K),null,2)})}catch(e){}let q=l.useCallback(e=>{var t;k(e,void 0,null===(t=Z.gradingResult)||void 0===t?void 0:t.comment)},[k,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;k(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.")}},[k,Z.score,null===(a=Z.gradingResult)||void 0===a?void 0:a.comment]),[Q,ee]=l.useState(!1),et=l.useCallback(()=>{navigator.clipboard.writeText(Z.text),ee(!0)},[Z.text]);if(Z.latencyMs&&(j=(0,s.jsxs)("span",{children:[Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(Z.latencyMs)," ms"]})),null===(r=Z.tokenUsage)||void 0===r?void 0:r.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===(i=Z.tokenUsage)||void 0===i?void 0:i.cached)g=(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!==(p=Z.tokenUsage.prompt)&&void 0!==p?p: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);g=(0,s.jsx)(H.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 en=(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,es=N?(0,s.jsxs)("div",{className:"cell-detail",children:[g&&(0,s.jsxs)("div",{className:"stat-item",children:[(0,s.jsx)("strong",{children:"Tokens:"})," ",g]}),j&&(0,s.jsxs)("div",{className:"stat-item",children:[(0,s.jsx)("strong",{children:"Latency:"})," ",j]}),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,el=e4(),ea=(0,s.jsxs)("div",{className:"cell-actions",children:[el&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"action",onClick:et,onMouseDown:e=>e.preventDefault(),children:(0,s.jsx)(H.Z,{title:"Copy output to clipboard",children:(0,s.jsx)("span",{children:Q?"✅":"\uD83D\uDCCB"})})}),(0,s.jsx)("span",{className:"action",onClick:()=>{let e;J.startsWith("!highlight")?k(void 0,void 0,e=J.slice(10).trim()):k(void 0,void 0,e=("!highlight "+J).trim()),X(e)},onMouseDown:e=>e.preventDefault(),children:(0,s.jsx)(H.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)(H.Z,{title:"View output and test details",children:(0,s.jsx)("span",{children:"\uD83D\uDD0E"})})}),(0,s.jsx)(eB,{open:O,onClose:()=>{L(!1)},prompt:Z.prompt,provider:Z.provider,gradingResults:null===(d=Z.gradingResult)||void 0===d?void 0:d.componentResults,output:K,metadata:Z.metadata})]}),(0,s.jsx)("span",{className:"action",onClick:()=>q(!0),children:(0,s.jsx)(H.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)(H.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)(H.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)(H.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 ei=0,eo=0,ec=Z.gradingResult;if(ec?ec.componentResults?ec.componentResults.forEach(e=>{(null==e?void 0:e.pass)?ei++:eo++}):(ei=ec.pass?1:0,eo=ec.pass?0:1):Z.pass?ei=1:Z.pass||(eo=1),1===eo&&1===ei)y=(0,s.jsxs)(s.Fragment,{children:["".concat(eo," FAIL")," ","".concat(ei," PASS")]});else{let e="";eo>1||ei>1&&eo>0?e="".concat(eo," FAIL"):1===eo&&(e="FAIL");let t="";ei>1||eo>1&&ei>0?t="".concat(ei," PASS"):1===ei&&0===eo&&(t="PASS");let n=e&&t?" ":"";y=(0,s.jsxs)(s.Fragment,{children:[e,n,t]})}let ed=null===(x=Z.score)||0===x||1===x?"":"(".concat(x.toFixed(2),")");return(0,s.jsxs)("div",{className:"cell",style:er,children:[D&&(0,s.jsx)(s.Fragment,{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,ed&&(0,s.jsxs)("span",{className:"score",children:[" ",ed]})]}),(0,s.jsx)(eU,{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,ed&&(0,s.jsxs)("span",{className:"score",children:[" ",ed]})]}),(0,s.jsx)(eU,{lookup:Z.namedScores}),(0,s.jsx)("span",{className:"fail-reason",children:(0,s.jsx)(e5,{failReasons:Y})})]})})}),T&&E.prompt&&(0,s.jsxs)("div",{className:"prompt",children:[(0,s.jsx)("span",{className:"pill",children:"Prompt"}),Z.prompt]}),(0,s.jsx)(eK,{text:v||K,maxLength:w}),en,es,ea,A&&W&&(0,s.jsx)("div",{className:"lightbox",onClick:()=>V(),children:(0,s.jsx)("img",{src:W,alt:"Lightbox"})}),(0,s.jsx)(e3,{open:_,contextText:Z.text,commentText:J,onClose:()=>{B(!1)},onSave:()=>{k(void 0,void 0,J),B(!1)},onChange:X})]})});function e7(e){let{text:t,maxLength:n,expandedText:a,resourceId:r,className:i}=e,[o,c]=l.useState(!1);return(0,s.jsxs)("div",{className:"".concat(i||""),children:[(0,s.jsx)(eK,{text:t,maxLength:n}),a&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(H.Z,{title:"View prompt",children:(0,s.jsx)("span",{className:"action",onClick:()=>{c(!0)},children:"\uD83D\uDD0E"})}),(0,s.jsx)(eB,{open:o,onClose:()=>{c(!1)},prompt:a}),r&&(0,s.jsx)(H.Z,{title:"View other evals and datasets for this prompt",children:(0,s.jsx)("span",{className:"action",children:(0,s.jsx)(eQ(),{href:"/prompts/?id=".concat(r),target:"_blank",children:(0,s.jsx)(eY.Z,{fontSize:"small"})})})})]})]})}n(93207);var e9=l.memo(function(e){let{maxTextLength:t,columnVisibility:n,wordBreak:a,filterMode:r,failureFilter:i,searchText:c,showStats:d,onFailureFilterToggle:u,onSearchTextChange:h}=e,{evalId:p,table:x,setTable:v,config:g,inComparisonMode:j}=ex(),{showToast:f}=m();(0,y.Z)(x,"Table should be defined");let{head:b,body:Z}=x,w=l.useCallback(async(e,t,n,s,l)=>{var a,r;let i=[...Z],c={...i[e]},d=[...c.outputs],u=null!=n?n:d[t].pass,h=void 0===s?n?1:0:s||0;d[t].pass=u,d[t].score=h;let m=(null===(a=d[t].gradingResult)||void 0===a?void 0:a.componentResults)||[];if(void 0!==n){let e=m.findIndex(e=>{var t;return(null===(t=e.assertion)||void 0===t?void 0:t.type)==="human"}),t={pass:u,score:h,reason:"Manual result (overrides all other grading results)",comment:l,assertion:{type:"human"}};-1!==e?m[e]=t:m.push(t)}let x={...d[t].gradingResult||{},pass:u,score:h,reason:"Manual result (overrides all other grading results)",comment:l,assertion:(null===(r=d[t].gradingResult)||void 0===r?void 0:r.assertion)||null,componentResults:m};d[t].gradingResult=x,c.outputs=d,i[e]=c;let g={head:b,body:i};if(v(g),j)f("Ratings are not saved in comparison mode","warning");else try{let e=await fetch("".concat(await (0,o.b)(),"/api/eval/").concat(p),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({table:g})});if(!e.ok)throw Error("Network response was not ok")}catch(e){console.error("Failed to update table:",e)}},[Z,b,v,p,j,f]),C=Object.keys(n).length>0,S=l.useMemo(()=>{try{return RegExp(c,"i")}catch(e){return console.error("Invalid regular expression:",e.message),null}},[c]),k=l.useMemo(()=>{try{return Z.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 i[s]&&!e.pass&&(!C||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||!S||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,":").concat(t.namedScores[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)||""),r="".concat(l," ").concat(a);return S.test(r)}))})}catch(e){return console.error("Invalid regular expression:",e.message),Z}},[Z,i,r,c,n,C,S]),[E,R]=l.useState({pageIndex:0,pageSize:50});l.useEffect(()=>{R(e=>({...e,pageIndex:0}))},[i,r,c]);let I=l.useMemo(()=>b.prompts.map((e,t)=>Z.reduce((e,n)=>e+(n.outputs[t].pass?1:0),0)),[b.prompts,Z]),N=l.useMemo(()=>b.prompts.map((e,t)=>Z.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,Z]),D=l.useMemo(()=>b.prompts.map((e,t)=>Z.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=>null==e?void 0:e.pass).length:0)},0)),[b.prompts,Z]),M=l.useMemo(()=>I.reduce((e,t,n,s)=>t>s[e]?n:e,0),[I]),O=I[M],L=l.useMemo(()=>(0,eO.Cl)(),[]),{renderMarkdown:A}=ex(),U=l.useMemo(()=>b.vars.length>0?[L.group({id:"vars",header:()=>(0,s.jsx)("span",{className:"font-bold",children:"Variables"}),columns:b.vars.map((e,n)=>L.accessor(e=>e.vars[n],{id:"Variable ".concat(n+1),header:()=>(0,s.jsx)(e7,{text:e,maxLength:t,className:"font-bold"}),cell:e=>{let n=e.getValue();return(0,s.jsx)("div",{className:"cell",children:A?(0,s.jsx)(eA.U,{remarkPlugins:[e0.Z],children:n}):(0,s.jsx)(eK,{text:n,maxLength:t})})},size:50}))})]:[],[L,b.vars,t,A]),W=l.useCallback((e,t)=>k[e].outputs[t],[k]),V=l.useCallback(e=>k[e].outputs[0],[k]),B=l.useMemo(()=>{let e={};return null==x||x.body.forEach(t=>{var n;null===(n=t.test.assert)||void 0===n||n.forEach(t=>{t.metric&&(e[t.metric]=(e[t.metric]||0)+1),"assert"in t&&Array.isArray(t.assert)&&t.assert.forEach(t=>{"metric"in t&&t.metric&&(e[t.metric]=(e[t.metric]||0)+1)})})}),e},[x]),X=l.useMemo(()=>[L.group({id:"prompts",header:()=>(0,s.jsx)("span",{className:"font-bold",children:"Outputs"}),columns:b.prompts.map((e,n)=>L.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,o,c,p,m,x,v;let j=I[n]&&Z.length?(I[n]/Z.length*100).toFixed(2):"0.00",f=I[n]===O&&0!==O,b="Prompt ".concat(n+1),y=i[b]||!1,w=d?(0,s.jsxs)("div",{className:"prompt-detail",children:[N[n]?(0,s.jsxs)("div",{children:[(0,s.jsx)("strong",{children:"Asserts:"})," ",D[n],"/",N[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/Z.length)," ","ms"]}):null,(null===(o=e.metrics)||void 0===o?void 0:null===(a=o.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/Z.length)]}):null,(null===(c=e.metrics)||void 0===c?void 0:c.totalLatencyMs)&&(null===(m=e.metrics)||void 0===m?void 0:null===(p=m.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===(x=e.metrics)||void 0===x?void 0:x.cost)?(0,s.jsxs)("div",{children:[(0,s.jsx)("strong",{children:"Cost:"})," $",e.metrics.cost.toPrecision(2)]}):null]}):null,C=Array.isArray(null==g?void 0:g.providers)?g.providers[n]:void 0,S=e.provider?e.provider.split(":"):[],k=(0,s.jsx)(H.Z,{title:C?(0,s.jsx)("pre",{children:ew.default.dump(C)}):"",children:S.length>1?(0,s.jsxs)(s.Fragment,{children:[S[0],":",(0,s.jsx)("strong",{children:S.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:[j,"% passing"]})," (",I[n],"/",Z.length," cases)"]})}),(null===(v=e.metrics)||void 0===v?void 0:v.namedScores)&&Object.keys(e.metrics.namedScores).length>0?(0,s.jsx)(eU,{lookup:e.metrics.namedScores,metricTotals:B,onSearchTextChange:h}):null]}),(0,s.jsx)(e7,{className:"prompt-container",text:e.label||e.display||e.raw,expandedText:e.raw,maxLength:t,resourceId:e.id}),w,"failures"===r&&(0,s.jsx)(eq.Z,{sx:{"& .MuiFormControlLabel-label":{fontSize:"0.75rem"}},control:(0,s.jsx)(T.Z,{checked:y,onChange:e=>u(b,e.target.checked)}),label:"Show failures"})]})},cell:e=>{var l,a;let i=W(e.row.index,n);return(0,s.jsx)(e6,{output:i,maxTextLength:t,rowIndex:e.row.index,promptIndex:n,onRating:w.bind(null,null!==(l=i.originalRowIndex)&&void 0!==l?l:e.row.index,null!==(a=i.originalPromptIndex)&&void 0!==a?a:n),firstOutput:V(e.row.index),showDiffs:"different"===r,searchText:c,showStats:d})}}))})],[Z.length,null==g?void 0:g.providers,L,i,r,V,W,w,b.prompts,O,t,B,N,D,I,u,h,c,d]),G=l.useMemo(()=>{let e=Z.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)("div",{className:"cell",children:(0,s.jsx)(eK,{text:String(e.getValue()),maxLength:t})}),size:50}:null},[Z,t]),K=l.useMemo(()=>{let e=[];return G&&e.push(G),e.push(...U,...X),e},[G,U,X]),Y=(0,eL.b7)({data:k,columns:K,columnResizeMode:"onChange",getCoreRowModel:(0,eO.sC)(),getPaginationRowModel:(0,eO.G_)(),state:{columnVisibility:n,pagination:E}});return(0,s.jsxs)("div",{children:[(0,s.jsxs)("table",{className:"results-table firefox-fix ".concat(t<=25?"compact":""),style:{wordBreak:a},children:[(0,s.jsx)("thead",{children:Y.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,eL.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:Y.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,eL.ie)(e.column.columnDef.cell,e.getContext())},e.id)})},e.id)})})]}),Y.getPageCount()>1&&(0,s.jsxs)(P.Z,{className:"pagination",mx:1,sx:{display:"flex",alignItems:"center",gap:2},children:[(0,s.jsx)(F.Z,{onClick:()=>{R(e=>({...e,pageIndex:Math.max(e.pageIndex-1,0)})),window.scrollTo(0,0)},disabled:0===Y.getState().pagination.pageIndex,variant:"contained",children:"Previous"}),(0,s.jsxs)(ei.Z,{component:"span",sx:{display:"flex",alignItems:"center",gap:1},children:["Page",(0,s.jsx)(J.Z,{size:"small",type:"number",value:Y.getState().pagination.pageIndex+1,onChange:e=>{let t=e.target.value?Number(e.target.value)-1:0;R(e=>({...e,pageIndex:Math.min(Math.max(t,0),Y.getPageCount()-1)}))},InputProps:{style:{width:"60px",textAlign:"center"}},variant:"outlined"}),(0,s.jsxs)("span",{children:["of ",Y.getPageCount()]})]}),(0,s.jsx)(F.Z,{onClick:()=>{R(e=>({...e,pageIndex:Math.min(e.pageIndex+1,Y.getPageCount()-1)})),window.scrollTo(0,0)},disabled:Y.getState().pagination.pageIndex+1>=Y.getPageCount(),variant:"contained",children:"Next"}),(0,s.jsxs)(ei.Z,{component:"span",sx:{display:"flex",alignItems:"center",gap:1},children:[(0,s.jsxs)(_.Z,{value:E.pageSize,onChange:e=>{R({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)(z.Z,{value:10,children:"10"}),(0,s.jsx)(z.Z,{value:50,children:"50"}),(0,s.jsx)(z.Z,{value:100,children:"100"}),(0,s.jsx)(z.Z,{value:500,children:"500"}),(0,s.jsx)(z.Z,{value:1e3,children:"1000"})]}),(0,s.jsx)("span",{children:"results per page"})]})]}),(0,s.jsx)(eX,{})]})}),te=n(97540),tt=e=>{let{open:t,onClose:n}=e,{maxTextLength:l,setMaxTextLength:a,wordBreak:r,setWordBreak:i,showInferenceDetails:o,setShowInferenceDetails:c,renderMarkdown:d,setRenderMarkdown:u,prettifyJson:h,setPrettifyJson:p,showPrompts:m,setShowPrompts:x,showPassFail:v,setShowPassFail:g}=ex();return(0,s.jsxs)(Y.Z,{open:t,onClose:n,fullWidth:!0,maxWidth:"sm",children:[(0,s.jsx)(Q.Z,{children:"Table View Settings"}),(0,s.jsxs)($.Z,{children:[(0,s.jsx)(P.Z,{children:(0,s.jsx)(H.Z,{title:"Forcing line breaks makes it easier to adjust column widths to your liking",placement:"right",children:(0,s.jsx)(eq.Z,{control:(0,s.jsx)(T.Z,{checked:"break-all"===r,onChange:e=>i(e.target.checked?"break-all":"break-word")}),label:"Force line breaks"})})}),(0,s.jsx)(P.Z,{children:(0,s.jsx)(eq.Z,{control:(0,s.jsx)(T.Z,{checked:d,onChange:e=>u(e.target.checked)}),label:"Render model outputs as Markdown"})}),(0,s.jsx)(P.Z,{children:(0,s.jsx)(eq.Z,{control:(0,s.jsx)(T.Z,{checked:h,onChange:e=>p(e.target.checked)}),label:"Prettify JSON outputs"})}),(0,s.jsx)(P.Z,{children:(0,s.jsx)(H.Z,{title:"Show the final prompt that produced the output in each cell.",placement:"right",children:(0,s.jsx)(eq.Z,{control:(0,s.jsx)(T.Z,{checked:m,onChange:e=>x(e.target.checked)}),label:"Show full prompt in output cell"})})}),(0,s.jsx)(P.Z,{children:(0,s.jsx)(H.Z,{title:"Show pass/fail status for each output.",placement:"right",children:(0,s.jsx)(eq.Z,{control:(0,s.jsx)(T.Z,{checked:v,onChange:e=>g(e.target.checked)}),label:"Show pass/fail status"})})}),(0,s.jsx)(P.Z,{children:(0,s.jsx)(H.Z,{title:"Show detailed inference statistics such as latency, tokens used, cost, etc.",placement:"right",children:(0,s.jsx)(eq.Z,{control:(0,s.jsx)(T.Z,{checked:o,onChange:e=>c(e.target.checked)}),label:"Show inference details"})})}),(0,s.jsxs)(P.Z,{maxWidth:"sm",children:[(0,s.jsxs)(ei.Z,{mt:2,children:["Max text length: ",l]}),(0,s.jsx)(te.ZP,{min:25,max:1e3,value:l,onChange:(e,t)=>a(t)})]})]}),(0,s.jsx)(q.Z,{children:(0,s.jsx)(F.Z,{onClick:n,children:"Close"})})]})},tn=e=>{let{open:t,onClose:n,shareUrl:a}=e,r=(0,l.useRef)(null),[i,o]=(0,l.useState)(!1),c=()=>{n(),o(!1)};return(0,s.jsxs)(Y.Z,{open:t,onClose:c,PaperProps:{style:{minWidth:"min(660px, 100%)"}},children:[(0,s.jsx)(Q.Z,{children:"Your eval is ready to share"}),(0,s.jsxs)($.Z,{children:[(0,s.jsx)(J.Z,{inputRef:r,value:a,fullWidth:!0,InputProps:{readOnly:!0,endAdornment:(0,s.jsx)(eb.Z,{onClick:()=>{r.current&&(r.current.select(),document.execCommand("copy"),o(!0))},children:i?(0,s.jsx)(eg.Z,{}):(0,s.jsx)(ef.Z,{})})}}),(0,s.jsx)(eH.Z,{sx:{fontSize:"0.75rem"},children:"Shared URLs are deleted after 2 weeks."})]}),(0,s.jsx)(q.Z,{children:(0,s.jsx)(F.Z,{onClick:c,color:"primary",children:"Close"})})]})};n(58022);let ts=(0,X.Z)(B.Z)(e=>{let{theme:t}=e;return{maxWidth:"100%",flexWrap:"wrap",[t.breakpoints.down("sm")]:{flexDirection:"column"}}});function tl(e){var t;let{recentEvals:n,onRecentEvalSelected:a,defaultEvalId:c}=e,d=(0,f.useRouter)(),h=(0,f.useSearchParams)(),{author:p,table:m,setTable:x,config:v,setConfig:j,maxTextLength:b,wordBreak:B,showInferenceDetails:X,evalId:K,inComparisonMode:Y,setInComparisonMode:q,columnStates:$,setColumnState:Q}=ex(),{setStateFromConfig:ee}=(0,Z.o)(),[et,en]=l.useState((null==h?void 0:h.get("search"))||""),[es]=(0,G.Nr)(et,1e3),el=e=>{en(e)},[ea,er]=l.useState({}),ei=l.useCallback((e,t)=>{er(n=>({...n,[e]:t}))},[er]);(0,y.Z)(m,"Table data must be loaded before rendering ResultsView");let{head:eo}=m,[ec,eu]=l.useState("all"),[eh,ep]=l.useState(!1),[em,eg]=l.useState(""),[ej,ef]=l.useState(!1),[eb,eZ]=l.useState(null),ew=async()=>{ef(!0);try{let e=await fetch("".concat(r,"/api/eval"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:{version:2,createdAt:new Date().toISOString(),results:{table:m},config:v}})}),{id:t}=await e.json(),n="".concat(i,"/eval/").concat(t);eg(n),ep(!0)}catch(e){alert("Sorry, something went wrong.")}finally{ef(!1)}},ek=async e=>{eZ(null);try{var t;let n=await fetch("".concat(await (0,o.b)(),"/api/results/").concat(e),{cache:"no-store"}),s=await n.json(),l=s.data.results.table,a={head:{prompts:[...m.head.prompts.map(e=>({...e,label:"[".concat(K||c||"Eval A","] ").concat(e.label||"")})),...l.head.prompts.map(t=>({...t,label:"[".concat(e,"] ").concat(t.label||"")}))],vars:m.head.vars},body:m.body.map((e,t)=>{var n;return{...e,outputs:[...e.outputs,...(null===(n=l.body[t])||void 0===n?void 0:n.outputs)||[]]}})};x(a),j({...v,...s.data.config,description:'Combined: "'.concat((null==v?void 0:v.description)||"Eval A",'" and "').concat((null===(t=s.data.config)||void 0===t?void 0:t.description)||"Eval B",'"')}),q(!0)}catch(e){console.error("Error fetching comparison eval:",e),alert("Failed to load comparison eval. Please try again.")}},eE=l.useMemo(()=>m.body.some(e=>e.description),[m.body]),eR=eo.prompts.map((e,t)=>{let n=e.label||e.display||e.raw;return{value:"Prompt ".concat(t+1),label:"Prompt ".concat(t+1,": ").concat(n&&n.length>100?n.slice(0,100)+"...":n||""),group:"Prompts"}}),eI=l.useMemo(()=>[...eE?[{value:"description",label:"Description"}]:[],...eo.vars.map((e,t)=>({value:"Variable ".concat(t+1),label:"Var ".concat(t+1,": ").concat(eo.vars[t].length>100?eo.vars[t].slice(0,97)+"...":eo.vars[t]),group:"Variables"})),...eR],[eo.vars,eR,eE]),[eN,eP]=l.useState(!1),[eF,eT]=l.useState(!1),eD=l.useMemo(()=>[...eE?["description"]:[],...eo.vars.map((e,t)=>"Variable ".concat(t+1)),...eo.prompts.map((e,t)=>"Prompt ".concat(t+1))],[eE,eo.vars,eo.prompts]),eO=K||c||"default",eL=$[eO]||{selectedColumns:[],columnVisibility:{}},eA=l.useCallback(e=>{let t={};eD.forEach(n=>{t[n]=e.includes(n)}),Q(eO,{selectedColumns:e,columnVisibility:t})},[eD,Q,eO]);l.useEffect(()=>{0!==eL.selectedColumns.length&&eL.selectedColumns.every(e=>eD.includes(e))||eA(eD)},[eD,eL.selectedColumns,eA]);let eU=l.useCallback(e=>{let t=Array.isArray(e.target.value)?e.target.value:e.target.value.split(",");eA(t)},[eA]),eW=async()=>{(0,y.Z)(v,"Config must be loaded before clicking its description");let e=window.prompt("Enter new description:",v.description);if(null!==e&&e!==v.description){let t={...v,description:e};try{let e=await fetch("".concat(await (0,o.b)(),"/api/eval/").concat(K),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({config:t})});if(!e.ok)throw Error("Network response was not ok");j(t)}catch(e){console.error("Failed to update table:",e)}}},ez=async()=>{if(window.confirm("Are you sure you want to delete this evaluation?"))try{let e=await fetch("".concat(await (0,o.b)(),"/api/eval/").concat(K),{method:"DELETE"});if(!e.ok)throw Error("Network response was not ok");d.push("/")}catch(e){console.error("Failed to delete evaluation:",e),alert("Failed to delete evaluation")}},[eV,e_]=l.useState(!1),[eB,eJ]=l.useState(!1),eH=async()=>{K&&(await navigator.clipboard.writeText(K),e_(!0),setTimeout(()=>{e_(!1)},1e3))};return(0,s.jsxs)("div",{style:{marginLeft:"1rem",marginRight:"1rem"},children:[(0,s.jsxs)(ts,{direction:"row",mb:3,spacing:1,alignItems:"center",className:"eval-header",children:[(0,s.jsxs)(P.Z,{sx:{display:"flex",alignItems:"center",width:"100%",maxWidth:250},children:[(0,s.jsx)(J.Z,{variant:"outlined",size:"small",fullWidth:!0,value:(null==v?void 0:v.description)||K||"",InputProps:{readOnly:!0,startAdornment:(0,s.jsx)(O.Z,{position:"start",children:(0,s.jsx)(I.Z,{})}),endAdornment:(0,s.jsx)(O.Z,{position:"end",children:(0,s.jsx)(w.Z,{})})},onClick:()=>eJ(!0),placeholder:"Search or select an eval...",sx:{cursor:"pointer"}}),(0,s.jsx)(ed,{open:eB,onClose:()=>eJ(!1),recentEvals:n,onRecentEvalSelected:a,title:"Select an Eval"})]}),(null==v?void 0:v.description)&&K&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(H.Z,{title:"Click to copy",children:(0,s.jsx)(D.Z,{size:"small",label:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("strong",{children:"ID:"})," ",K]}),sx:{opacity:.7,cursor:"pointer"},onClick:eH})}),(0,s.jsx)(u.Z,{open:eV,autoHideDuration:1e3,onClose:()=>e_(!1),message:"Eval id copied to clipboard"})]}),(0,s.jsx)(H.Z,{title:p?"":"Set eval author with `promptfoo config set email`",children:(0,s.jsx)(D.Z,{size:"small",label:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("strong",{children:"Author:"})," ",p||"Unknown"]}),sx:{opacity:.7}})})]}),(0,s.jsxs)(ts,{direction:"row",spacing:1,alignItems:"center",children:[(0,s.jsx)(P.Z,{children:(0,s.jsxs)(M.Z,{sx:{minWidth:200,maxWidth:350},size:"small",children:[(0,s.jsx)(L.Z,{id:"visible-columns-label",children:"Columns"}),(0,s.jsx)(_.Z,{labelId:"visible-columns-label",id:"visible-columns",multiple:!0,value:eL.selectedColumns,onChange:eU,input:(0,s.jsx)(V.Z,{label:"Visible columns"}),renderValue:e=>e.join(", "),children:eI.map(e=>(0,s.jsxs)(z.Z,{dense:!0,value:e.value,children:[(0,s.jsx)(T.Z,{checked:eL.selectedColumns.includes(e.value)}),(0,s.jsx)(U.Z,{primary:e.label})]},e.value))})]})}),(0,s.jsx)(P.Z,{children:(0,s.jsxs)(M.Z,{sx:{minWidth:180},size:"small",children:[(0,s.jsx)(L.Z,{id:"failure-filter-mode-label",children:"Display"}),(0,s.jsxs)(_.Z,{labelId:"filter-mode-label",id:"filter-mode",value:ec,onChange:e=>{let t=e.target.value;eu(t);let n={};eo.prompts.forEach((e,s)=>{n["Prompt ".concat(s+1)]="failures"===t}),er(n)},label:"Filter",children:[(0,s.jsx)(z.Z,{value:"all",children:"Show all results"}),(0,s.jsx)(z.Z,{value:"failures",children:"Show failures only"}),(0,s.jsx)(z.Z,{value:"different",children:"Show different only"}),(0,s.jsx)(z.Z,{value:"highlights",children:"Show highlights only"})]})]})}),(0,s.jsx)(P.Z,{children:(0,s.jsx)(J.Z,{sx:{minWidth:180},size:"small",label:"Search",placeholder:"Text or regex",value:et,onChange:e=>el(e.target.value)})}),(0,s.jsx)(P.Z,{flexGrow:1}),(0,s.jsx)(P.Z,{display:"flex",justifyContent:"flex-end",children:(0,s.jsxs)(ts,{direction:"row",spacing:2,children:[(0,s.jsx)(F.Z,{color:"primary",onClick:e=>{eZ(e.currentTarget)},startIcon:(0,s.jsx)(w.Z,{}),children:"Eval actions"}),v&&(0,s.jsxs)(W.Z,{id:"eval-actions-menu",anchorEl:eb,keepMounted:!0,open:!!eb,onClose:()=>{eZ(null)},children:[(0,s.jsx)(H.Z,{title:"Edit the name of this eval",placement:"left",children:(0,s.jsxs)(z.Z,{onClick:eW,children:[(0,s.jsx)(A.Z,{children:(0,s.jsx)(S.Z,{fontSize:"small"})}),"Edit name"]})}),(0,s.jsx)(H.Z,{title:"Edit this eval in the web UI",placement:"left",children:(0,s.jsxs)(z.Z,{onClick:()=>{ee(v),d.push("/setup/")},children:[(0,s.jsx)(A.Z,{children:(0,s.jsx)(k.Z,{fontSize:"small"})}),"Edit and re-run"]})}),(0,s.jsx)(ev,{initialEvals:n,onComparisonEvalSelected:ek}),(0,s.jsx)(H.Z,{title:"View the configuration that defines this eval",placement:"left",children:(0,s.jsxs)(z.Z,{onClick:()=>eP(!0),children:[(0,s.jsx)(A.Z,{children:(0,s.jsx)(N.Z,{fontSize:"small"})}),"View YAML"]})}),(0,s.jsx)(eC,{}),(null==v?void 0:v.sharing)&&(0,s.jsx)(H.Z,{title:"Generate a unique URL that others can access",placement:"left",children:(0,s.jsxs)(z.Z,{onClick:ew,disabled:ej,children:[(0,s.jsx)(A.Z,{children:ej?(0,s.jsx)(g.Z,{size:16}):(0,s.jsx)(R.Z,{fontSize:"small"})}),"Share"]})}),(0,s.jsx)(H.Z,{title:"Delete this eval",placement:"left",children:(0,s.jsxs)(z.Z,{onClick:ez,children:[(0,s.jsx)(A.Z,{children:(0,s.jsx)(C.Z,{fontSize:"small"})}),"Delete"]})})]}),(0,s.jsx)(H.Z,{title:"Edit table view settings",placement:"bottom",children:(0,s.jsx)(F.Z,{color:"primary",onClick:()=>eT(!0),startIcon:(0,s.jsx)(E.Z,{}),children:"Table Settings"})}),(null==v?void 0:null===(t=v.metadata)||void 0===t?void 0:t.redteam)&&(0,s.jsx)(H.Z,{title:"View vulnerability scan report",placement:"bottom",children:(0,s.jsx)(F.Z,{color:"primary",variant:"contained",startIcon:(0,s.jsx)(N.Z,{}),onClick:()=>d.push("/report/?evalId=".concat(K||c)),children:"Vulnerability Report"})})]})})]}),(0,s.jsx)(eM,{columnVisibility:eL.columnVisibility}),(0,s.jsx)(e9,{maxTextLength:b,columnVisibility:eL.columnVisibility,wordBreak:B,showStats:X,filterMode:ec,failureFilter:ea,searchText:es,onFailureFilterToggle:ei,onSearchTextChange:el}),(0,s.jsx)(ey,{open:eN,onClose:()=>eP(!1)}),(0,s.jsx)(tn,{open:eh,onClose:()=>ep(!1),shareUrl:em}),(0,s.jsx)(tt,{open:eF,onClose:()=>eT(!1)}),(0,s.jsx)(eS,{recentEvals:n,onRecentEvalSelected:a})]})}async function ta(){let e=(0,j.createClientComponentClient)(),{data:{user:t}}=await e.auth.getUser();(0,y.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 tr(e){let t=(0,j.createClientComponentClient)(),{data:n,error:s}=await t.from("EvaluationResult").select("*").eq("id",e).single();return n}function ti(e){var t;let{fetchId:n,preloadedData:a,recentEvals:i,defaultEvalId:c}=e,u=(0,f.useRouter)(),{table:h,setTable:p,config:m,setConfig:j,evalId:Z,setEvalId:w,setAuthor:C,setInComparisonMode:S}=ex(),[k,E]=l.useState(!1),[R,I]=l.useState(!1),[N,P]=l.useState(i||[]),F=async()=>{let e=await fetch("".concat(await (0,o.b)(),"/api/results"),{cache:"no-store"}),t=await e.json();return P(t.data),t.data},T=l.useCallback(async e=>{let t=await fetch("".concat(await (0,o.b)(),"/api/results/").concat(e),{cache:"no-store"}),n=await t.json();p(n.data.results.table),j(n.data.config),C(n.data.author),w(e)},[p,j,w,C]),D=async e=>{v.Ox?(E(!1),u.push("/eval/remote:".concat(encodeURIComponent(e)))):u.push("/eval/?evalId=".concat(encodeURIComponent(e)))},[M,O]=l.useState(c||(null===(t=N[0])||void 0===t?void 0:t.evalId)),L=(0,f.useSearchParams)(),A=L?L.get("evalId"):null;return(l.useEffect(()=>{if(A){console.log("Eval init: Fetching eval by id",A);let e=async()=>{await T(A),E(!0),O(A),F()};e()}else if(a){var e;console.log("Eval init: Using preloaded data"),p(null===(e=a.data.results)||void 0===e?void 0:e.table),j(a.data.config),C(a.data.author||null),E(!0)}else if(n){console.log("Eval init: Fetching eval from remote server",n);let e=async()=>{var e;let t="".concat(r,"/api/eval/").concat(n);console.log("Fetching eval from remote server",t);let s=await fetch(t);if(!s.ok){I(!0);return}let l=await s.json();p(null===(e=l.data.results)||void 0===e?void 0:e.table),j(l.data.config),C(l.data.author||null),E(!0)};e()}else if(v.T8)console.log("Eval init: Using local server websocket"),(0,o.b)().then(e=>{let t=(0,b.io)(e);return t.on("init",e=>{console.log("Initialized socket connection",e),E(!0),p(null==e?void 0:e.results.table),j(null==e?void 0:e.config),C((null==e?void 0:e.author)||null),F().then(e=>{var t,n,s;O(null===(t=e[0])||void 0===t?void 0:t.evalId),console.log("setting default eval id",null===(n=e[0])||void 0===n?void 0:n.evalId),w(null===(s=e[0])||void 0===s?void 0:s.evalId)})}),t.on("update",e=>{console.log("Received data update",e),p(e.results.table),j(e.config),C(e.author||null),F().then(e=>{var t;let n=null===(t=e[0])||void 0===t?void 0:t.evalId;n&&(O(n),w(n))})}),()=>{t.disconnect()}});else if(v.Ox)console.log("Eval init: Using Supabase"),ta().then(e=>{P(e.map(e=>({evalId:e.id,datasetId:null,label:e.createdAt,createdAt:new Date(e.createdAt).getTime(),description:"None",numTests:-1}))),e.length>0&&tr(e[0].id).then(t=>{(0,y.Z)(t,"Eval not found");let n=t.results,s=t.config;O(e[0].id),p(n.table),j(s),C(null),E(!0)})});else{console.log("Eval init: Fetching eval via recent");let e=async()=>{let e=await F();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,o.b)(),n=e[0].evalId,s=await fetch("".concat(t,"/api/results/").concat(n)),l=await s.json();p(l.data.results.table),j(l.data.config),C(l.data.author||null),E(!0),O(n),w(n)}};e()}S(!1)},[n,p,j,C,w,T,a,O,A,S]),l.useEffect(()=>{document.title="".concat((null==m?void 0:m.description)||Z||"Eval"," | promptfoo")},[m,Z]),R)?(0,s.jsx)("div",{className:"notice",children:"404 Eval not found"}):k&&h?(0,s.jsx)(x,{children:(0,s.jsx)(d,{children:(0,s.jsx)(tl,{defaultEvalId:M,recentEvals:N,onRecentEvalSelected:D})})}):(0,s.jsxs)("div",{className:"notice",children:[(0,s.jsx)("div",{children:(0,s.jsx)(g.Z,{size:22})}),(0,s.jsx)("div",{children:"Waiting for 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 r}});var s=n(77580);let l=!s.env.NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER,a=!!s.env.NEXT_PUBLIC_PROMPTFOO_USE_SUPABASE,r=""},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:{},scenarios:[],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}),setScenarios:t=>e({scenarios: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),t.scenarios&&(n.scenarios=t.scenarios),e(n)},getTestSuite:()=>{let{description:e,testCases:n,providers:s,prompts:l,env:a,scenarios:r}=t();return{env:a,description:e,providers:s,prompts:l,tests:n,scenarios:r}}}),{name:"promptfoo",skipHydration:!0}))},55974:function(){},94455:function(){},16658:function(){},93207:function(){},58022:function(){}}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[281],{29794:function(e,r,t){"use strict";t.d(r,{Z:function(){return R}});var o=t(94312),a=t(79042),i=t(14978),n=t(53468),l=t(84006),p=t(16399),s=t(81427),d=t(90843),c=t(67027),u=t(37803),h=t(87286),g=t(31608),m=t(60201),Z=t(80683);function v(e){return(0,Z.ZP)("MuiDialog",e)}let f=(0,m.Z)("MuiDialog",["root","scrollPaper","scrollBody","container","paper","paperScrollPaper","paperScrollBody","paperWidthFalse","paperWidthXs","paperWidthSm","paperWidthMd","paperWidthLg","paperWidthXl","paperFullWidth","paperFullScreen"]);var x=t(4476),b=t(76998),y=t(92863),W=t(24004);let w=["aria-describedby","aria-labelledby","BackdropComponent","BackdropProps","children","className","disableEscapeKeyDown","fullScreen","fullWidth","maxWidth","onBackdropClick","onClick","onClose","open","PaperComponent","PaperProps","scroll","TransitionComponent","transitionDuration","TransitionProps"],S=(0,g.ZP)(b.Z,{name:"MuiDialog",slot:"Backdrop",overrides:(e,r)=>r.backdrop})({zIndex:-1}),k=e=>{let{classes:r,scroll:t,maxWidth:o,fullWidth:a,fullScreen:i}=e,n={root:["root"],container:["container",`scroll${(0,s.Z)(t)}`],paper:["paper",`paperScroll${(0,s.Z)(t)}`,`paperWidth${(0,s.Z)(String(o))}`,a&&"paperFullWidth",i&&"paperFullScreen"]};return(0,l.Z)(n,v,r)},M=(0,g.ZP)(d.Z,{name:"MuiDialog",slot:"Root",overridesResolver:(e,r)=>r.root})({"@media print":{position:"absolute !important"}}),P=(0,g.ZP)("div",{name:"MuiDialog",slot:"Container",overridesResolver:(e,r)=>{let{ownerState:t}=e;return[r.container,r[`scroll${(0,s.Z)(t.scroll)}`]]}})(({ownerState:e})=>(0,a.Z)({height:"100%","@media print":{height:"auto"},outline:0},"paper"===e.scroll&&{display:"flex",justifyContent:"center",alignItems:"center"},"body"===e.scroll&&{overflowY:"auto",overflowX:"hidden",textAlign:"center","&::after":{content:'""',display:"inline-block",verticalAlign:"middle",height:"100%",width:"0"}})),D=(0,g.ZP)(u.Z,{name:"MuiDialog",slot:"Paper",overridesResolver:(e,r)=>{let{ownerState:t}=e;return[r.paper,r[`scrollPaper${(0,s.Z)(t.scroll)}`],r[`paperWidth${(0,s.Z)(String(t.maxWidth))}`],t.fullWidth&&r.paperFullWidth,t.fullScreen&&r.paperFullScreen]}})(({theme:e,ownerState:r})=>(0,a.Z)({margin:32,position:"relative",overflowY:"auto","@media print":{overflowY:"visible",boxShadow:"none"}},"paper"===r.scroll&&{display:"flex",flexDirection:"column",maxHeight:"calc(100% - 64px)"},"body"===r.scroll&&{display:"inline-block",verticalAlign:"middle",textAlign:"left"},!r.maxWidth&&{maxWidth:"calc(100% - 64px)"},"xs"===r.maxWidth&&{maxWidth:"px"===e.breakpoints.unit?Math.max(e.breakpoints.values.xs,444):`max(${e.breakpoints.values.xs}${e.breakpoints.unit}, 444px)`,[`&.${f.paperScrollBody}`]:{[e.breakpoints.down(Math.max(e.breakpoints.values.xs,444)+64)]:{maxWidth:"calc(100% - 64px)"}}},r.maxWidth&&"xs"!==r.maxWidth&&{maxWidth:`${e.breakpoints.values[r.maxWidth]}${e.breakpoints.unit}`,[`&.${f.paperScrollBody}`]:{[e.breakpoints.down(e.breakpoints.values[r.maxWidth]+64)]:{maxWidth:"calc(100% - 64px)"}}},r.fullWidth&&{width:"calc(100% - 64px)"},r.fullScreen&&{margin:0,width:"100%",maxWidth:"100%",height:"100%",maxHeight:"none",borderRadius:0,[`&.${f.paperScrollBody}`]:{margin:0,maxWidth:"100%"}})),C=i.forwardRef(function(e,r){let t=(0,h.i)({props:e,name:"MuiDialog"}),l=(0,y.Z)(),s={enter:l.transitions.duration.enteringScreen,exit:l.transitions.duration.leavingScreen},{"aria-describedby":d,"aria-labelledby":g,BackdropComponent:m,BackdropProps:Z,children:v,className:f,disableEscapeKeyDown:b=!1,fullScreen:C=!1,fullWidth:R=!1,maxWidth:B="sm",onBackdropClick:$,onClick:N,onClose:T,open:j,PaperComponent:A=u.Z,PaperProps:F={},scroll:E="paper",TransitionComponent:I=c.Z,transitionDuration:Y=s,TransitionProps:_}=t,L=(0,o.Z)(t,w),X=(0,a.Z)({},t,{disableEscapeKeyDown:b,fullScreen:C,fullWidth:R,maxWidth:B,scroll:E}),H=k(X),K=i.useRef(),O=(0,p.Z)(g),z=i.useMemo(()=>({titleId:O}),[O]);return(0,W.jsx)(M,(0,a.Z)({className:(0,n.Z)(H.root,f),closeAfterTransition:!0,components:{Backdrop:S},componentsProps:{backdrop:(0,a.Z)({transitionDuration:Y,as:m},Z)},disableEscapeKeyDown:b,onClose:T,open:j,ref:r,onClick:e=>{N&&N(e),K.current&&(K.current=null,$&&$(e),T&&T(e,"backdropClick"))},ownerState:X},L,{children:(0,W.jsx)(I,(0,a.Z)({appear:!0,in:j,timeout:Y,role:"presentation"},_,{children:(0,W.jsx)(P,{className:(0,n.Z)(H.container),onMouseDown:e=>{K.current=e.target===e.currentTarget},ownerState:X,children:(0,W.jsx)(D,(0,a.Z)({as:A,elevation:24,role:"dialog","aria-describedby":d,"aria-labelledby":O},F,{className:(0,n.Z)(H.paper,F.className),ownerState:X,children:(0,W.jsx)(x.Z.Provider,{value:z,children:v})}))})}))}))});var R=C},4476:function(e,r,t){"use strict";var o=t(14978);let a=o.createContext({});r.Z=a},22701:function(e,r,t){"use strict";t.d(r,{Z:function(){return f}});var o=t(94312),a=t(79042),i=t(14978),n=t(53468),l=t(84006),p=t(31608),s=t(87286),d=t(60201),c=t(80683);function u(e){return(0,c.ZP)("MuiDialogActions",e)}(0,d.Z)("MuiDialogActions",["root","spacing"]);var h=t(24004);let g=["className","disableSpacing"],m=e=>{let{classes:r,disableSpacing:t}=e;return(0,l.Z)({root:["root",!t&&"spacing"]},u,r)},Z=(0,p.ZP)("div",{name:"MuiDialogActions",slot:"Root",overridesResolver:(e,r)=>{let{ownerState:t}=e;return[r.root,!t.disableSpacing&&r.spacing]}})(({ownerState:e})=>(0,a.Z)({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",flex:"0 0 auto"},!e.disableSpacing&&{"& > :not(style) ~ :not(style)":{marginLeft:8}})),v=i.forwardRef(function(e,r){let t=(0,s.i)({props:e,name:"MuiDialogActions"}),{className:i,disableSpacing:l=!1}=t,p=(0,o.Z)(t,g),d=(0,a.Z)({},t,{disableSpacing:l}),c=m(d);return(0,h.jsx)(Z,(0,a.Z)({className:(0,n.Z)(c.root,i),ownerState:d,ref:r},p))});var f=v},51956:function(e,r,t){"use strict";t.d(r,{Z:function(){return x}});var o=t(94312),a=t(79042),i=t(14978),n=t(53468),l=t(84006),p=t(31608),s=t(87286),d=t(60201),c=t(80683);function u(e){return(0,c.ZP)("MuiDialogContent",e)}(0,d.Z)("MuiDialogContent",["root","dividers"]);var h=t(18730),g=t(24004);let m=["className","dividers"],Z=e=>{let{classes:r,dividers:t}=e;return(0,l.Z)({root:["root",t&&"dividers"]},u,r)},v=(0,p.ZP)("div",{name:"MuiDialogContent",slot:"Root",overridesResolver:(e,r)=>{let{ownerState:t}=e;return[r.root,t.dividers&&r.dividers]}})(({theme:e,ownerState:r})=>(0,a.Z)({flex:"1 1 auto",WebkitOverflowScrolling:"touch",overflowY:"auto",padding:"20px 24px"},r.dividers?{padding:"16px 24px",borderTop:`1px solid ${(e.vars||e).palette.divider}`,borderBottom:`1px solid ${(e.vars||e).palette.divider}`}:{[`.${h.Z.root} + &`]:{paddingTop:0}})),f=i.forwardRef(function(e,r){let t=(0,s.i)({props:e,name:"MuiDialogContent"}),{className:i,dividers:l=!1}=t,p=(0,o.Z)(t,m),d=(0,a.Z)({},t,{dividers:l}),c=Z(d);return(0,g.jsx)(v,(0,a.Z)({className:(0,n.Z)(c.root,i),ownerState:d,ref:r},p))});var x=f},82669:function(e,r,t){"use strict";var o=t(79042),a=t(94312),i=t(14978),n=t(53468),l=t(84006),p=t(63147),s=t(31608),d=t(87286),c=t(18730),u=t(4476),h=t(24004);let g=["className","id"],m=e=>{let{classes:r}=e;return(0,l.Z)({root:["root"]},c.a,r)},Z=(0,s.ZP)(p.Z,{name:"MuiDialogTitle",slot:"Root",overridesResolver:(e,r)=>r.root})({padding:"16px 24px",flex:"0 0 auto"}),v=i.forwardRef(function(e,r){let t=(0,d.i)({props:e,name:"MuiDialogTitle"}),{className:l,id:p}=t,s=(0,a.Z)(t,g),c=m(t),{titleId:v=p}=i.useContext(u.Z);return(0,h.jsx)(Z,(0,o.Z)({component:"h2",className:(0,n.Z)(c.root,l),ownerState:t,ref:r,variant:"h6",id:null!=p?p:v},s))});r.Z=v},18730:function(e,r,t){"use strict";t.d(r,{a:function(){return i}});var o=t(60201),a=t(80683);function i(e){return(0,a.ZP)("MuiDialogTitle",e)}let n=(0,o.Z)("MuiDialogTitle",["root"]);r.Z=n},63147:function(e,r,t){"use strict";t.d(r,{Z:function(){return w}});var o=t(94312),a=t(79042),i=t(14978),n=t(53468),l=t(86251),p=t(84006),s=t(31608),d=t(87286),c=t(81427),u=t(60201),h=t(80683);function g(e){return(0,h.ZP)("MuiTypography",e)}(0,u.Z)("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom","paragraph"]);var m=t(24004);let Z=["align","className","component","gutterBottom","noWrap","paragraph","variant","variantMapping"],v=e=>{let{align:r,gutterBottom:t,noWrap:o,paragraph:a,variant:i,classes:n}=e,l={root:["root",i,"inherit"!==e.align&&`align${(0,c.Z)(r)}`,t&&"gutterBottom",o&&"noWrap",a&&"paragraph"]};return(0,p.Z)(l,g,n)},f=(0,s.ZP)("span",{name:"MuiTypography",slot:"Root",overridesResolver:(e,r)=>{let{ownerState:t}=e;return[r.root,t.variant&&r[t.variant],"inherit"!==t.align&&r[`align${(0,c.Z)(t.align)}`],t.noWrap&&r.noWrap,t.gutterBottom&&r.gutterBottom,t.paragraph&&r.paragraph]}})(({theme:e,ownerState:r})=>(0,a.Z)({margin:0},"inherit"===r.variant&&{font:"inherit"},"inherit"!==r.variant&&e.typography[r.variant],"inherit"!==r.align&&{textAlign:r.align},r.noWrap&&{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},r.gutterBottom&&{marginBottom:"0.35em"},r.paragraph&&{marginBottom:16})),x={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},b={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},y=e=>b[e]||e,W=i.forwardRef(function(e,r){let t=(0,d.i)({props:e,name:"MuiTypography"}),i=y(t.color),p=(0,l.Z)((0,a.Z)({},t,{color:i})),{align:s="inherit",className:c,component:u,gutterBottom:h=!1,noWrap:g=!1,paragraph:b=!1,variant:W="body1",variantMapping:w=x}=p,S=(0,o.Z)(p,Z),k=(0,a.Z)({},p,{align:s,color:i,className:c,component:u,gutterBottom:h,noWrap:g,paragraph:b,variant:W,variantMapping:w}),M=u||(b?"p":w[W]||x[W])||"span",P=v(k);return(0,m.jsx)(f,(0,a.Z)({as:M,ref:r,ownerState:k,className:(0,n.Z)(P.root,c)},S))});var w=W},28891:function(e,r,t){e.exports=t(98556)}}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[931],{25109:function(e,n,t){Promise.resolve().then(t.t.bind(t,16662,23)),Promise.resolve().then(t.t.bind(t,30910,23)),Promise.resolve().then(t.t.bind(t,27924,23)),Promise.resolve().then(t.t.bind(t,81885,23)),Promise.resolve().then(t.t.bind(t,48607,23))},81885:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),function(e,n){for(var t in n)Object.defineProperty(e,t,{enumerable:!0,get:n[t]})}(n,{suspense:function(){return o},NoSSR:function(){return i}}),t(69278),t(14978);let r=t(66995);function o(){let e=Error(r.NEXT_DYNAMIC_NO_SSR_CODE);throw e.digest=r.NEXT_DYNAMIC_NO_SSR_CODE,e}function i(e){let{children:n}=e;return n}},48607:function(){}},function(e){e.O(0,[470,730,744],function(){return e(e.s=25109)}),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[794],{9458:function(e,t,i){Promise.resolve().then(i.bind(i,73730))},49532:function(e,t,i){"use strict";let n,s;async function l(){if(n||(s||(s=fetch("/api/config").then(e=>e.json()).then(e=>n=e.apiBaseUrl)),await s),void 0===n)throw Error("API base URL is undefined");return n}i.d(t,{b:function(){return l}})},73730:function(e,t,i){"use strict";i.r(t),i.d(t,{default:function(){return P}});var n=i(24004),s=i(14978),l=i(49532),r=i(49567),c=i(30469),d=i(65068),a=i(70417),o=i(21303),h=i(61451),u=i(26485),x=i(30021),j=i(19708),Z=i(65969),v=i(38640),p=i.n(v),f=i(28891),m=i(40982),w=i(29794),y=i(22701),C=i(51956),g=i(82669),E=i(22689),k=i(63147),I=e=>{var t;let{openDialog:i,handleClose:s,selectedPrompt:l}=e;return(0,n.jsxs)(w.Z,{open:i,onClose:s,fullWidth:!0,maxWidth:"lg",children:[(0,n.jsxs)(g.Z,{children:["Prompt ",l.id.slice(0,6)]}),(0,n.jsxs)(C.Z,{children:[(0,n.jsx)(k.Z,{variant:"h6",style:{marginTop:"1rem"},children:"Prompt"}),(0,n.jsx)(E.Z,{readOnly:!0,value:null==l?void 0:null===(t=l.prompt)||void 0===t?void 0:t.raw,style:{width:"100%",padding:"0.75rem"},maxRows:50}),(0,n.jsx)(k.Z,{variant:"h6",style:{marginTop:"1rem"},children:"Used in..."}),(0,n.jsxs)(d.Z,{children:[(0,n.jsx)(u.Z,{children:(0,n.jsxs)(x.Z,{children:[(0,n.jsx)(o.Z,{children:"Eval ID"}),(0,n.jsx)(o.Z,{children:"Dataset ID"}),(0,n.jsx)(o.Z,{children:"Raw score"}),(0,n.jsx)(o.Z,{children:"Pass rate"}),(0,n.jsx)(o.Z,{children:"Pass count"}),(0,n.jsx)(o.Z,{children:"Fail count"})]})}),(0,n.jsx)(a.Z,{children:null==l?void 0:l.evals.sort((e,t)=>t.id.localeCompare(e.id)).map(e=>{var t,i,s,l,r,c,d;let a=null!==(r=null===(t=e.metrics)||void 0===t?void 0:t.testPassCount)&&void 0!==r?r:0,h=null!==(c=null===(i=e.metrics)||void 0===i?void 0:i.testFailCount)&&void 0!==c?c:0,u=a+h>0?(a/(a+h)*100).toFixed(2)+"%":"-";return(0,n.jsxs)(x.Z,{children:[(0,n.jsx)(o.Z,{children:(0,n.jsx)(p(),{href:"/eval/?evalId=".concat(e.id),children:e.id})}),(0,n.jsx)(o.Z,{children:(0,n.jsx)(p(),{href:"/datasets/?id=".concat(e.datasetId),children:e.datasetId.slice(0,6)})}),(0,n.jsx)(o.Z,{children:null!==(d=null===(l=e.metrics)||void 0===l?void 0:null===(s=l.score)||void 0===s?void 0:s.toFixed(2))&&void 0!==d?d:"-"}),(0,n.jsx)(o.Z,{children:u}),(0,n.jsx)(o.Z,{children:a}),(0,n.jsx)(o.Z,{children:h})]},"eval-".concat(e.id))})})]})]}),(0,n.jsx)(y.Z,{children:(0,n.jsx)(m.Z,{onClick:s,children:"Close"})})]})};function P(){let e=(0,f.useSearchParams)(),[t,i]=(0,s.useState)([]),[v,m]=(0,s.useState)("date"),[w,y]=(0,s.useState)("desc"),[C,g]=(0,s.useState)(1),[E,k]=(0,s.useState)(10),[P,S]=(0,s.useState)(!1),[D,b]=(0,s.useState)(0),_=e=>{let t=v===e&&"asc"===w?"desc":"asc";m(e),y(t)};(0,s.useEffect)(()=>{(async()=>{fetch("".concat(await (0,l.b)(),"/api/prompts")).then(e=>e.json()).then(e=>{let t=[...e.data].sort((e,t)=>null===v?0:"asc"===w?e[v]>t[v]?1:-1:e[v]<t[v]?1:-1);i(t)})})()},[v,w]);let F=e=>{S(!0),b(e)};return(0,s.useEffect)(()=>{let i=null==e?void 0:e.get("id");if(i){let e=t.findIndex(e=>e.id.startsWith(i));-1!==e&&F(e)}},[t,e]),(0,n.jsx)(r.Z,{paddingX:2,children:(0,n.jsxs)(h.Z,{children:[(0,n.jsxs)(d.Z,{children:[(0,n.jsx)(u.Z,{children:(0,n.jsxs)(x.Z,{children:[(0,n.jsx)(o.Z,{style:{width:"10%"},children:"ID"}),(0,n.jsx)(o.Z,{style:{width:"60%"},children:(0,n.jsx)(j.Z,{active:"raw"===v,direction:"raw"===v?w:"asc",onClick:()=>_("raw"),children:"Prompt"})}),(0,n.jsx)(o.Z,{style:{width:"20%"},children:(0,n.jsx)(Z.Z,{title:"The date of the most recent eval for this prompt",children:(0,n.jsx)(j.Z,{active:"date"===v,direction:"date"===v?w:"asc",onClick:()=>_("date"),children:"Most recent eval"})})}),(0,n.jsx)(o.Z,{style:{width:"10%"},children:(0,n.jsx)(j.Z,{active:"count"===v,direction:"count"===v?w:"asc",onClick:()=>_("count"),children:"# Evals"})})]})}),(0,n.jsx)(a.Z,{children:t.slice((C-1)*E,C*E).map((e,t)=>(0,n.jsxs)(x.Z,{hover:!0,children:[(0,n.jsx)(o.Z,{style:{width:"10%"},children:e.id.slice(0,6)}),(0,n.jsx)(o.Z,{style:{width:"60%",whiteSpace:"pre-wrap",cursor:"pointer"},onClick:()=>F(t),children:e.prompt.raw.length>500?e.prompt.raw.slice(0,500)+"...":e.prompt.raw}),(0,n.jsx)(o.Z,{style:{width:"20%"},children:e.recentEvalDate?(0,n.jsx)(p(),{href:"/eval?evalId=".concat(e.recentEvalId),children:e.recentEvalDate}):"Unknown"}),(0,n.jsx)(o.Z,{style:{width:"10%"},children:e.count})]},t))})]}),Math.ceil(t.length/E)>1&&(0,n.jsx)(c.Z,{count:Math.ceil(t.length/E),page:C,onChange:(e,t)=>g(t)}),t[D]&&(0,n.jsx)(I,{openDialog:P,handleClose:()=>{S(!1)},selectedPrompt:t[D]})]})})}}},function(e){e.O(0,[903,640,493,281,969,322,470,730,744],function(){return e(e.s=9458)}),_N_E=e.O()}]);